diff --git a/src/main/java/ru/betterend/blocks/basis/EndFurnaceBlock.java b/src/main/java/ru/betterend/blocks/basis/EndFurnaceBlock.java index c75e50dd..7920088b 100644 --- a/src/main/java/ru/betterend/blocks/basis/EndFurnaceBlock.java +++ b/src/main/java/ru/betterend/blocks/basis/EndFurnaceBlock.java @@ -18,12 +18,16 @@ import net.minecraft.util.registry.Registry; import net.minecraft.world.BlockView; import net.minecraft.world.World; import ru.betterend.blocks.entities.EFurnaceBlockEntity; +import ru.betterend.client.render.ERenderLayer; +import ru.betterend.interfaces.IRenderTypeable; import ru.betterend.patterns.BlockPatterned; import ru.betterend.patterns.Patterns; -public class EndFurnaceBlock extends FurnaceBlock implements BlockPatterned { +public class EndFurnaceBlock extends FurnaceBlock implements BlockPatterned, IRenderTypeable { public EndFurnaceBlock(Block source) { - super(FabricBlockSettings.copyOf(source)); + super(FabricBlockSettings.copyOf(source).luminance((state) -> { + return state.get(LIT) ? 13 : 0; + })); } @Override @@ -48,18 +52,28 @@ public class EndFurnaceBlock extends FurnaceBlock implements BlockPatterned { @Override public String getModelPattern(String block) { - String add = block.contains("_on") ? "_on" : ""; Identifier blockId = Registry.BLOCK.getId(this); Map map = Maps.newHashMap(); map.put("%top%", blockId.getPath() + "_top"); - map.put("%front%", blockId.getPath() + "_front" + add); map.put("%side%", blockId.getPath() + "_side"); - map.put("%bottom%", blockId.getPath() + "_bottom"); - return Patterns.createJson(Patterns.BLOCK_FURNACE, map); + if (block.contains("_on")) { + map.put("%front%", blockId.getPath() + "_front_on"); + map.put("%glow%", blockId.getPath() + "_glow"); + return Patterns.createJson(Patterns.BLOCK_FURNACE_GLOW, map); + } + else { + map.put("%front%", blockId.getPath() + "_front"); + return Patterns.createJson(Patterns.BLOCK_FURNACE, map); + } } @Override public Identifier statePatternId() { return Patterns.STATE_FURNACE; } + + @Override + public ERenderLayer getRenderLayer() { + return ERenderLayer.CUTOUT; + } } diff --git a/src/main/java/ru/betterend/blocks/complex/MetalMaterial.java b/src/main/java/ru/betterend/blocks/complex/MetalMaterial.java index cba55195..01728e0e 100644 --- a/src/main/java/ru/betterend/blocks/complex/MetalMaterial.java +++ b/src/main/java/ru/betterend/blocks/complex/MetalMaterial.java @@ -40,6 +40,7 @@ import ru.betterend.recipe.builders.GridRecipe; import ru.betterend.recipe.builders.SmithingTableRecipe; import ru.betterend.registry.EndBlocks; import ru.betterend.registry.EndItems; +import ru.betterend.registry.EndTags; import ru.betterend.util.TagHelper; public class MetalMaterial { @@ -198,5 +199,6 @@ public class MetalMaterial { GridRecipe.make(name + "_boots", boots).setShape("# #", "# #").addMaterial('#', ingot).setGroup("end_metal_boots").build(); TagHelper.addTag(BlockTags.ANVIL, anvil); + TagHelper.addTag(EndTags.IRON_INGOTS, ingot); } } \ No newline at end of file diff --git a/src/main/java/ru/betterend/blocks/complex/StoneMaterial.java b/src/main/java/ru/betterend/blocks/complex/StoneMaterial.java index b98fcd97..08fde481 100644 --- a/src/main/java/ru/betterend/blocks/complex/StoneMaterial.java +++ b/src/main/java/ru/betterend/blocks/complex/StoneMaterial.java @@ -90,6 +90,7 @@ public class StoneMaterial { TagHelper.addTag(ItemTags.STONE_BRICKS, bricks); TagHelper.addTag(ItemTags.STONE_CRAFTING_MATERIALS, stone); TagHelper.addTag(ItemTags.STONE_TOOL_MATERIALS, stone); + TagHelper.addTag(EndTags.FURNACES, furnace); // Block Tags // TagHelper.addTag(BlockTags.STONE_BRICKS, bricks); diff --git a/src/main/java/ru/betterend/patterns/Patterns.java b/src/main/java/ru/betterend/patterns/Patterns.java index 9bcf7a28..48fbe9ca 100644 --- a/src/main/java/ru/betterend/patterns/Patterns.java +++ b/src/main/java/ru/betterend/patterns/Patterns.java @@ -99,6 +99,7 @@ public class Patterns { public final static Identifier BLOCK_CHANDELIER_WALL = BetterEnd.makeID("patterns/block/chandelier_wall.json"); public final static Identifier BLOCK_CHANDELIER_CEIL = BetterEnd.makeID("patterns/block/chandelier_ceil.json"); public final static Identifier BLOCK_FURNACE = BetterEnd.makeID("patterns/block/furnace.json"); + public final static Identifier BLOCK_FURNACE_GLOW = BetterEnd.makeID("patterns/block/furnace_glow.json"); //Models Item public final static Identifier ITEM_WALL = BetterEnd.makeID("patterns/item/pattern_wall.json"); diff --git a/src/main/java/ru/betterend/recipe/CraftingRecipes.java b/src/main/java/ru/betterend/recipe/CraftingRecipes.java index d88c8adc..9a41e21a 100644 --- a/src/main/java/ru/betterend/recipe/CraftingRecipes.java +++ b/src/main/java/ru/betterend/recipe/CraftingRecipes.java @@ -40,7 +40,7 @@ public class CraftingRecipes { .setShape("T#T", "V V", "T#T") .addMaterial('#', Blocks.END_STONE_BRICKS) .addMaterial('T', EndBlocks.THALLASIUM.ingot) - .addMaterial('V', Items.BUCKET) + .addMaterial('V', EndTags.FURNACES) .build(); registerPedestal("andesite_pedestal", EndBlocks.ANDESITE_PEDESTAL, Blocks.POLISHED_ANDESITE_SLAB, Blocks.POLISHED_ANDESITE); diff --git a/src/main/java/ru/betterend/registry/EndTags.java b/src/main/java/ru/betterend/registry/EndTags.java index a85ade47..0a6c9cb2 100644 --- a/src/main/java/ru/betterend/registry/EndTags.java +++ b/src/main/java/ru/betterend/registry/EndTags.java @@ -29,6 +29,9 @@ import ru.betterend.mixin.common.ComposterBlockAccessor; import ru.betterend.util.TagHelper; public class EndTags { + // Table with common (c) tags: + // https://fabricmc.net/wiki/tutorial:tags + // Block Tags public static final Tag.Identified BOOKSHELVES = makeCommonBlockTag("bookshelves"); public static final Tag.Identified GEN_TERRAIN = makeBlockTag("gen_terrain"); @@ -39,6 +42,8 @@ public class EndTags { // Item Tags public static final Tag.Identified ITEM_CHEST = makeCommonItemTag("chest"); + public static final Tag.Identified IRON_INGOTS = makeCommonItemTag("iron_ingots"); + public static final Tag.Identified FURNACES = makeCommonItemTag("furnaces"); public final static Tag HAMMERS = registerFabricItemTag("hammers"); public static Tag.Identified makeBlockTag(String name) { @@ -106,6 +111,8 @@ public class EndTags { EndBlocks.TERMINITE.hammer ) )); + + TagHelper.addTag(FURNACES, Blocks.FURNACE); } public static void addSurfaceBlock(Block block) { diff --git a/src/main/resources/assets/betterend/materialmaps/block/flavolite_furnace.json b/src/main/resources/assets/betterend/materialmaps/block/flavolite_furnace.json new file mode 100644 index 00000000..9e241063 --- /dev/null +++ b/src/main/resources/assets/betterend/materialmaps/block/flavolite_furnace.json @@ -0,0 +1,10 @@ +{ + "defaultMap": { + "spriteMap": [ + { + "sprite": "betterend:block/flavolite_furnace_glow", + "material": "betterend:glow_all" + } + ] + } +} \ No newline at end of file diff --git a/src/main/resources/assets/betterend/materialmaps/block/sulphuric_rock_furnace.json b/src/main/resources/assets/betterend/materialmaps/block/sulphuric_rock_furnace.json new file mode 100644 index 00000000..be8b6e0f --- /dev/null +++ b/src/main/resources/assets/betterend/materialmaps/block/sulphuric_rock_furnace.json @@ -0,0 +1,10 @@ +{ + "defaultMap": { + "spriteMap": [ + { + "sprite": "betterend:block/sulphuric_rock_furnace_glow", + "material": "betterend:glow_all" + } + ] + } +} \ No newline at end of file diff --git a/src/main/resources/assets/betterend/materialmaps/block/violecite_furnace.json b/src/main/resources/assets/betterend/materialmaps/block/violecite_furnace.json new file mode 100644 index 00000000..d8868020 --- /dev/null +++ b/src/main/resources/assets/betterend/materialmaps/block/violecite_furnace.json @@ -0,0 +1,10 @@ +{ + "defaultMap": { + "spriteMap": [ + { + "sprite": "betterend:block/violecite_furnace_glow", + "material": "betterend:glow_all" + } + ] + } +} \ No newline at end of file diff --git a/src/main/resources/assets/betterend/patterns/block/furnace_glow.json b/src/main/resources/assets/betterend/patterns/block/furnace_glow.json new file mode 100644 index 00000000..db2bd401 --- /dev/null +++ b/src/main/resources/assets/betterend/patterns/block/furnace_glow.json @@ -0,0 +1,38 @@ +{ + "parent": "block/block", + "textures": { + "top": "betterend:block/%top%", + "front": "betterend:block/%front%", + "side": "betterend:block/%side%", + "glow": "betterend:block/%glow%" + }, + "display": { + "firstperson_righthand": { + "rotation": [ 0, 135, 0 ], + "translation": [ 0, 0, 0 ], + "scale": [ 0.40, 0.40, 0.40 ] + } + }, + "elements": [ + { + "from": [ 0, 0, 0 ], + "to": [ 16, 16, 16 ], + "faces": { + "down": { "texture": "#top", "cullface": "down" }, + "up": { "texture": "#top", "cullface": "up" }, + "north": { "texture": "#front", "cullface": "north" }, + "south": { "texture": "#side", "cullface": "south" }, + "west": { "texture": "#side", "cullface": "west" }, + "east": { "texture": "#side", "cullface": "east" } + } + }, + { + "from": [ 0, 0, 0 ], + "to": [ 16, 16, 16 ], + "shade": false, + "faces": { + "north": { "texture": "#glow", "cullface": "north" } + } + } + ] +} diff --git a/src/main/resources/assets/betterend/textures/block/flavolite_furnace_front_on.png b/src/main/resources/assets/betterend/textures/block/flavolite_furnace_front_on.png index 57455f26..1aade713 100644 Binary files a/src/main/resources/assets/betterend/textures/block/flavolite_furnace_front_on.png and b/src/main/resources/assets/betterend/textures/block/flavolite_furnace_front_on.png differ diff --git a/src/main/resources/assets/betterend/textures/block/flavolite_furnace_glow.png b/src/main/resources/assets/betterend/textures/block/flavolite_furnace_glow.png new file mode 100644 index 00000000..1c3df136 Binary files /dev/null and b/src/main/resources/assets/betterend/textures/block/flavolite_furnace_glow.png differ diff --git a/src/main/resources/assets/betterend/textures/block/flavolite_furnace_front_on.png.mcmeta b/src/main/resources/assets/betterend/textures/block/flavolite_furnace_glow.png.mcmeta similarity index 100% rename from src/main/resources/assets/betterend/textures/block/flavolite_furnace_front_on.png.mcmeta rename to src/main/resources/assets/betterend/textures/block/flavolite_furnace_glow.png.mcmeta diff --git a/src/main/resources/assets/betterend/textures/block/sulphuric_rock_furnace_front.png b/src/main/resources/assets/betterend/textures/block/sulphuric_rock_furnace_front.png new file mode 100644 index 00000000..62a1030e Binary files /dev/null and b/src/main/resources/assets/betterend/textures/block/sulphuric_rock_furnace_front.png differ diff --git a/src/main/resources/assets/betterend/textures/block/sulphuric_rock_furnace_front_on.png b/src/main/resources/assets/betterend/textures/block/sulphuric_rock_furnace_front_on.png new file mode 100644 index 00000000..437b180d Binary files /dev/null and b/src/main/resources/assets/betterend/textures/block/sulphuric_rock_furnace_front_on.png differ diff --git a/src/main/resources/assets/betterend/textures/block/sulphuric_rock_furnace_glow.png b/src/main/resources/assets/betterend/textures/block/sulphuric_rock_furnace_glow.png new file mode 100644 index 00000000..1c3df136 Binary files /dev/null and b/src/main/resources/assets/betterend/textures/block/sulphuric_rock_furnace_glow.png differ diff --git a/src/main/resources/assets/betterend/textures/block/violecite_furnace_front_on.png.mcmeta b/src/main/resources/assets/betterend/textures/block/sulphuric_rock_furnace_glow.png.mcmeta similarity index 100% rename from src/main/resources/assets/betterend/textures/block/violecite_furnace_front_on.png.mcmeta rename to src/main/resources/assets/betterend/textures/block/sulphuric_rock_furnace_glow.png.mcmeta diff --git a/src/main/resources/assets/betterend/textures/block/sulphuric_rock_furnace_side.png b/src/main/resources/assets/betterend/textures/block/sulphuric_rock_furnace_side.png new file mode 100644 index 00000000..be7c8f10 Binary files /dev/null and b/src/main/resources/assets/betterend/textures/block/sulphuric_rock_furnace_side.png differ diff --git a/src/main/resources/assets/betterend/textures/block/sulphuric_rock_furnace_top.png b/src/main/resources/assets/betterend/textures/block/sulphuric_rock_furnace_top.png new file mode 100644 index 00000000..080d1212 Binary files /dev/null and b/src/main/resources/assets/betterend/textures/block/sulphuric_rock_furnace_top.png differ diff --git a/src/main/resources/assets/betterend/textures/block/violecite_furnace_front_on.png b/src/main/resources/assets/betterend/textures/block/violecite_furnace_front_on.png index 38e1c90b..1656e41d 100644 Binary files a/src/main/resources/assets/betterend/textures/block/violecite_furnace_front_on.png and b/src/main/resources/assets/betterend/textures/block/violecite_furnace_front_on.png differ diff --git a/src/main/resources/assets/betterend/textures/block/violecite_furnace_glow.png b/src/main/resources/assets/betterend/textures/block/violecite_furnace_glow.png new file mode 100644 index 00000000..1c3df136 Binary files /dev/null and b/src/main/resources/assets/betterend/textures/block/violecite_furnace_glow.png differ diff --git a/src/main/resources/assets/betterend/textures/block/violecite_furnace_glow.png.mcmeta b/src/main/resources/assets/betterend/textures/block/violecite_furnace_glow.png.mcmeta new file mode 100644 index 00000000..98b9ae71 --- /dev/null +++ b/src/main/resources/assets/betterend/textures/block/violecite_furnace_glow.png.mcmeta @@ -0,0 +1,12 @@ +{ + "animation": { + "interpolate": true, + "frametime": 8, + "frames": [ + 0, + 1, + 2, + 3 + ] + } +}