diff --git a/src/main/java/net/parsell/cherry/common/blocks/CherryTrapdoorBlock.java b/src/main/java/net/parsell/cherry/common/blocks/CherryTrapdoorBlock.java new file mode 100644 index 0000000..eef8225 --- /dev/null +++ b/src/main/java/net/parsell/cherry/common/blocks/CherryTrapdoorBlock.java @@ -0,0 +1,15 @@ +package net.parsell.cherry.common.blocks; + +import net.minecraft.block.BlockState; +import net.minecraft.block.TrapdoorBlock; +import net.minecraft.block.enums.BlockHalf; +import net.minecraft.util.math.Direction; + +public class CherryTrapdoorBlock extends TrapdoorBlock{ + + public CherryTrapdoorBlock(Settings settings) { + super(settings); + this.setDefaultState((BlockState)((BlockState)((BlockState)((BlockState)((BlockState)((BlockState)this.stateManager.getDefaultState()).with(FACING, Direction.NORTH)).with(OPEN, false)).with(HALF, BlockHalf.BOTTOM)).with(POWERED, false)).with(WATERLOGGED, false)); + } + +} diff --git a/src/main/java/net/parsell/cherry/core/CherryBlocks.java b/src/main/java/net/parsell/cherry/core/CherryBlocks.java index c59cc69..c235790 100644 --- a/src/main/java/net/parsell/cherry/core/CherryBlocks.java +++ b/src/main/java/net/parsell/cherry/core/CherryBlocks.java @@ -15,7 +15,8 @@ import net.minecraft.block.PillarBlock; import net.minecraft.client.render.RenderLayer; import net.minecraft.util.Identifier; import net.minecraft.util.registry.Registry; -import net.parsell.cherry.common.blocks.CherryDoor; +import net.parsell.cherry.common.blocks.CherryDoorBlock; +import net.parsell.cherry.common.blocks.CherryTrapdoorBlock; import net.parsell.cherry.mixin.AxeItemAccessor; public class CherryBlocks { @@ -29,7 +30,8 @@ public class CherryBlocks { public static final Block CHERRYPLANKS = registerBlock("cherry_planks", FabricBlockSettings.copyOf(Blocks.OAK_PLANKS), 5, 20); public static final Block CHERRYFENCE = registerFence("cherry_fence", FabricBlockSettings.copyOf(Blocks.OAK_FENCE), 5, 20); // TODO: Textures, tags (as required) public static final Block CHERRYFENCEGATE = registerFenceGate("cherry_fence_gate", FabricBlockSettings.copyOf(Blocks.OAK_FENCE_GATE), 5, 20); // Textures, recipe, loot_tables, tags (as required) - public static final Block CHERRYDOOR = registerDoor("cherry_door", FabricBlockSettings.copyOf(Blocks.OAK_DOOR), 5, 20); // TODO: Textures, recipe, loot_tables, tags (as required) + public static final Block CHERRYDOOR = registerDoor("cherry_door", FabricBlockSettings.copyOf(Blocks.OAK_DOOR), 5, 20); // TODO: recipe, loot_tables, tags (as required) + public static final Block CHERRYTRAPDOOR = registerTrapDoor("cherry_trapdoor", FabricBlockSettings.copyOf(Blocks.OAK_TRAPDOOR), 5, 20); //TODO: recipe, loot_tables, tags (as required) private static Block registerBlock(String blockID, FabricBlockSettings settings, int burnChance, int burnSpread) { Block block = new Block(settings); @@ -78,7 +80,15 @@ public class CherryBlocks { } private static Block registerDoor(String blockID, FabricBlockSettings settings, int burnChance, int burnSpread){ - Block block = new CherryDoor(settings); + Block block = new CherryDoorBlock(settings); + Registry.register(Registry.BLOCK, new Identifier("cherry", blockID), block); + FlammableBlockRegistry.getDefaultInstance().add(block, burnChance, burnSpread); + BlockRenderLayerMap.INSTANCE.putBlock(block, RenderLayer.getCutout()); + return block; + } + + private static Block registerTrapDoor(String blockID, FabricBlockSettings settings, int burnChance, int burnSpread){ + Block block = new CherryTrapdoorBlock(settings); Registry.register(Registry.BLOCK, new Identifier("cherry", blockID), block); FlammableBlockRegistry.getDefaultInstance().add(block, burnChance, burnSpread); BlockRenderLayerMap.INSTANCE.putBlock(block, RenderLayer.getCutout()); @@ -94,4 +104,4 @@ public class CherryBlocks { // Register unique logs AxeItemAccessor.setStrippedLogs(STRIPPABLE_BLOCKS.build()); } -} +} \ No newline at end of file diff --git a/src/main/java/net/parsell/cherry/core/CherryItems.java b/src/main/java/net/parsell/cherry/core/CherryItems.java index 5f3c16c..3f3acd6 100644 --- a/src/main/java/net/parsell/cherry/core/CherryItems.java +++ b/src/main/java/net/parsell/cherry/core/CherryItems.java @@ -19,6 +19,7 @@ public class CherryItems { registerBlockItem("cherry_fence", CherryBlocks.CHERRYFENCE, ItemGroup.BUILDING_BLOCKS); registerBlockItem("cherry_fence_gate", CherryBlocks.CHERRYFENCEGATE, ItemGroup.BUILDING_BLOCKS); registerBlockItem("cherry_door", CherryBlocks.CHERRYDOOR, ItemGroup.BUILDING_BLOCKS); + registerBlockItem("cherry_trapdoor", CherryBlocks.CHERRYTRAPDOOR, ItemGroup.BUILDING_BLOCKS); } // Register a standard blockItem diff --git a/src/main/resources/assets/cherry/blockstates/cherry_trapdoor.json b/src/main/resources/assets/cherry/blockstates/cherry_trapdoor.json new file mode 100644 index 0000000..f7c2af6 --- /dev/null +++ b/src/main/resources/assets/cherry/blockstates/cherry_trapdoor.json @@ -0,0 +1,69 @@ +{ + "variants": { + "facing=east,half=bottom,open=false": { + "model": "cherry:block/cherry_trapdoor_bottom", + "y": 90 + }, + "facing=east,half=bottom,open=true": { + "model": "cherry:block/cherry_trapdoor_open", + "y": 90 + }, + "facing=east,half=top,open=false": { + "model": "cherry:block/cherry_trapdoor_top", + "y": 90 + }, + "facing=east,half=top,open=true": { + "model": "cherry:block/cherry_trapdoor_open", + "x": 180, + "y": 270 + }, + "facing=north,half=bottom,open=false": { + "model": "cherry:block/cherry_trapdoor_bottom" + }, + "facing=north,half=bottom,open=true": { + "model": "cherry:block/cherry_trapdoor_open" + }, + "facing=north,half=top,open=false": { + "model": "cherry:block/cherry_trapdoor_top" + }, + "facing=north,half=top,open=true": { + "model": "cherry:block/cherry_trapdoor_open", + "x": 180, + "y": 180 + }, + "facing=south,half=bottom,open=false": { + "model": "cherry:block/cherry_trapdoor_bottom", + "y": 180 + }, + "facing=south,half=bottom,open=true": { + "model": "cherry:block/cherry_trapdoor_open", + "y": 180 + }, + "facing=south,half=top,open=false": { + "model": "cherry:block/cherry_trapdoor_top", + "y": 180 + }, + "facing=south,half=top,open=true": { + "model": "cherry:block/cherry_trapdoor_open", + "x": 180, + "y": 0 + }, + "facing=west,half=bottom,open=false": { + "model": "cherry:block/cherry_trapdoor_bottom", + "y": 270 + }, + "facing=west,half=bottom,open=true": { + "model": "cherry:block/cherry_trapdoor_open", + "y": 270 + }, + "facing=west,half=top,open=false": { + "model": "cherry:block/cherry_trapdoor_top", + "y": 270 + }, + "facing=west,half=top,open=true": { + "model": "cherry:block/cherry_trapdoor_open", + "x": 180, + "y": 90 + } + } + } \ No newline at end of file diff --git a/src/main/resources/assets/cherry/lang/en_us.json b/src/main/resources/assets/cherry/lang/en_us.json index 84a7b88..c371c60 100644 --- a/src/main/resources/assets/cherry/lang/en_us.json +++ b/src/main/resources/assets/cherry/lang/en_us.json @@ -7,5 +7,6 @@ "block.cherry.cherry_planks": "Cherry Planks", "block.cherry.cherry_fence": "Cherry Fence", "block.cherry.cherry_fence_gate": "Cherry Fence Gate", - "block.cherry.cherry_door": "Cherry Door" + "block.cherry.cherry_door": "Cherry Door", + "block.cherry.cherry_trapdoor": "Cherry Trapdoor" } \ No newline at end of file diff --git a/src/main/resources/assets/cherry/models/block/cherry_trapdoor_bottom.json b/src/main/resources/assets/cherry/models/block/cherry_trapdoor_bottom.json new file mode 100644 index 0000000..61b5baf --- /dev/null +++ b/src/main/resources/assets/cherry/models/block/cherry_trapdoor_bottom.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_orientable_trapdoor_bottom", + "textures": { + "texture": "cherry:block/cherry_trapdoor" + } + } \ No newline at end of file diff --git a/src/main/resources/assets/cherry/models/block/cherry_trapdoor_open.json b/src/main/resources/assets/cherry/models/block/cherry_trapdoor_open.json new file mode 100644 index 0000000..5925298 --- /dev/null +++ b/src/main/resources/assets/cherry/models/block/cherry_trapdoor_open.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_orientable_trapdoor_open", + "textures": { + "texture": "cherry:block/cherry_trapdoor" + } + } \ No newline at end of file diff --git a/src/main/resources/assets/cherry/models/block/cherry_trapdoor_top.json b/src/main/resources/assets/cherry/models/block/cherry_trapdoor_top.json new file mode 100644 index 0000000..cb35f28 --- /dev/null +++ b/src/main/resources/assets/cherry/models/block/cherry_trapdoor_top.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_orientable_trapdoor_top", + "textures": { + "texture": "cherry:block/cherry_trapdoor" + } + } \ No newline at end of file diff --git a/src/main/resources/assets/cherry/models/item/cherry_trapdoor.json b/src/main/resources/assets/cherry/models/item/cherry_trapdoor.json new file mode 100644 index 0000000..1609930 --- /dev/null +++ b/src/main/resources/assets/cherry/models/item/cherry_trapdoor.json @@ -0,0 +1,3 @@ +{ + "parent": "cherry:block/cherry_trapdoor" +} \ No newline at end of file