From 88cfeaf8077ba7a5941f18044da85bfefd4c8911 Mon Sep 17 00:00:00 2001 From: Justin Parsell Date: Sun, 21 Mar 2021 00:56:02 -0400 Subject: [PATCH] introduction of signs (does not work) --- .../net/parsell/cherry/core/CherryBlocks.java | 25 ++++++++++++++++--- .../net/parsell/cherry/core/CherryItems.java | 6 +++++ .../cherry/blockstates/cherry_sign.json | 7 ++++++ .../cherry/models/block/cherry_sign.json | 5 ++++ .../cherry/models/item/cherry_sign.json | 6 +++++ .../data/minecraft/tags/blocks/signs.json | 6 +++++ .../minecraft/tags/blocks/standing_signs.json | 6 +++++ .../tags/blocks/wall_post_override.json | 6 +++++ 8 files changed, 63 insertions(+), 4 deletions(-) create mode 100644 src/main/resources/assets/cherry/blockstates/cherry_sign.json create mode 100644 src/main/resources/assets/cherry/models/block/cherry_sign.json create mode 100644 src/main/resources/assets/cherry/models/item/cherry_sign.json create mode 100644 src/main/resources/data/minecraft/tags/blocks/signs.json create mode 100644 src/main/resources/data/minecraft/tags/blocks/standing_signs.json create mode 100644 src/main/resources/data/minecraft/tags/blocks/wall_post_override.json diff --git a/src/main/java/net/parsell/cherry/core/CherryBlocks.java b/src/main/java/net/parsell/cherry/core/CherryBlocks.java index 8a4f053..098fa45 100644 --- a/src/main/java/net/parsell/cherry/core/CherryBlocks.java +++ b/src/main/java/net/parsell/cherry/core/CherryBlocks.java @@ -14,11 +14,19 @@ import net.minecraft.block.FenceGateBlock; import net.minecraft.block.LeavesBlock; import net.minecraft.block.PillarBlock; import net.minecraft.block.PressurePlateBlock; +import net.minecraft.block.SignBlock; import net.minecraft.block.SlabBlock; +import net.minecraft.block.entity.BlockEntityType; +import net.minecraft.block.entity.SignBlockEntity; import net.minecraft.client.render.RenderLayer; import net.minecraft.util.Identifier; +import net.minecraft.util.SignType; import net.minecraft.util.registry.Registry; -import net.parsell.cherry.common.blocks.*; +import net.parsell.cherry.common.blocks.CherryButtonBlock; +import net.parsell.cherry.common.blocks.CherryDoorBlock; +import net.parsell.cherry.common.blocks.CherryPressurePlate; +import net.parsell.cherry.common.blocks.CherryStairsBlock; +import net.parsell.cherry.common.blocks.CherryTrapdoorBlock; import net.parsell.cherry.mixin.AxeItemAccessor; public class CherryBlocks { @@ -31,13 +39,14 @@ public class CherryBlocks { public static final Block CHERRYLEAVES = registerLeaves("cherry_leaves", FabricBlockSettings.copyOf(Blocks.OAK_LEAVES), 30, 60, 6649929); 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: tags (as required) - public static final Block CHERRYFENCEGATE = registerFenceGate("cherry_fence_gate", FabricBlockSettings.copyOf(Blocks.OAK_FENCE_GATE), 5, 20); // recipe, loot_tables, tags (as required) + public static final Block CHERRYFENCEGATE = registerFenceGate("cherry_fence_gate", FabricBlockSettings.copyOf(Blocks.OAK_FENCE_GATE), 5, 20); // TODO: 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) public static final Block CHERRYSLAB = registerSlab("cherry_slab", FabricBlockSettings.copyOf(Blocks.OAK_SLAB), 5, 20); // TODO: recipe, loot tables, tags (as required) public static final Block CHERRYSTAIRS = registerStair("cherry_stairs", CHERRYPLANKS.getDefaultState(), FabricBlockSettings.copyOf(Blocks.OAK_STAIRS), 5, 20); //TODO: recipe, loot tables, tags (as required) - public static final Block CHERRYBUTTON = registerButton("cherry_button", FabricBlockSettings.copyOf(Blocks.OAK_BUTTON), 5, 20); - public static final Block CHERRYPRESSUREPLATE = registerPressurePlate("cherry_pressure_plate", PressurePlateBlock.ActivationRule.EVERYTHING, FabricBlockSettings.copyOf(Blocks.OAK_PRESSURE_PLATE), 5, 20); + public static final Block CHERRYBUTTON = registerButton("cherry_button", FabricBlockSettings.copyOf(Blocks.OAK_BUTTON), 5, 20); //TODO: recipe, loot tables, tags (as required) + public static final Block CHERRYPRESSUREPLATE = registerPressurePlate("cherry_pressure_plate", PressurePlateBlock.ActivationRule.EVERYTHING, FabricBlockSettings.copyOf(Blocks.OAK_PRESSURE_PLATE), 5, 20); //TODO: recipe, loot tables, tags (as required) + public static final Block CHERRYSIGN = registerSign("cherry_sign", SignType.OAK, FabricBlockSettings.copyOf(Blocks.OAK_SIGN), 5, 20); // TODO: recipe, loot tables private static Block registerBlock(String blockID, FabricBlockSettings settings, int burnChance, int burnSpread) { Block block = new Block(settings); @@ -74,6 +83,14 @@ public class CherryBlocks { return block; } + private static Block registerSign(String blockID, SignType type, FabricBlockSettings settings, int burnChance, int burnSpread) { + Block block = new SignBlock(settings, type); + Registry.register(Registry.BLOCK, new Identifier("cherry", blockID), block); + Registry.register(Registry.BLOCK_ENTITY_TYPE, new Identifier("cherry", blockID), BlockEntityType.Builder.create(SignBlockEntity::new, block).build(null)); + FlammableBlockRegistry.getDefaultInstance().add(block, burnChance, burnSpread); + return block; + } + private static Block registerFence(String blockID, FabricBlockSettings settings, int burnChance, int burnSpread) { Block block = new FenceBlock(settings); Registry.register(Registry.BLOCK, new Identifier("cherry", blockID), block); diff --git a/src/main/java/net/parsell/cherry/core/CherryItems.java b/src/main/java/net/parsell/cherry/core/CherryItems.java index 0d1a327..ee3e158 100644 --- a/src/main/java/net/parsell/cherry/core/CherryItems.java +++ b/src/main/java/net/parsell/cherry/core/CherryItems.java @@ -5,6 +5,7 @@ import net.fabricmc.fabric.api.item.v1.FabricItemSettings; import net.minecraft.block.Block; import net.minecraft.item.BlockItem; import net.minecraft.item.ItemGroup; +import net.minecraft.item.SignItem; import net.minecraft.util.Identifier; import net.minecraft.util.registry.Registry; @@ -24,6 +25,7 @@ public class CherryItems { registerBlockItem("cherry_stairs", CherryBlocks.CHERRYSTAIRS, ItemGroup.BUILDING_BLOCKS); registerBlockItem("cherry_button", CherryBlocks.CHERRYBUTTON, ItemGroup.BUILDING_BLOCKS); registerBlockItem("cherry_pressure_plate", CherryBlocks.CHERRYPRESSUREPLATE, ItemGroup.BUILDING_BLOCKS); + registerSignItem("cherry_sign", CherryBlocks.CHERRYSIGN, CherryBlocks.CHERRYSIGN, ItemGroup.BUILDING_BLOCKS); } // Register a standard blockItem @@ -41,6 +43,10 @@ public class CherryItems { ); } + private static void registerSignItem(String itemID, Block standingBlock, Block wallBlock, ItemGroup group) { + Registry.register(Registry.ITEM, new Identifier("cherry", itemID), new SignItem(new FabricItemSettings().group(group), standingBlock, wallBlock)); + } + public static void init(){ registerBlockItems(); } diff --git a/src/main/resources/assets/cherry/blockstates/cherry_sign.json b/src/main/resources/assets/cherry/blockstates/cherry_sign.json new file mode 100644 index 0000000..0b617ea --- /dev/null +++ b/src/main/resources/assets/cherry/blockstates/cherry_sign.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "cherry:block/cherry_sign" + } + } + } \ No newline at end of file diff --git a/src/main/resources/assets/cherry/models/block/cherry_sign.json b/src/main/resources/assets/cherry/models/block/cherry_sign.json new file mode 100644 index 0000000..574826b --- /dev/null +++ b/src/main/resources/assets/cherry/models/block/cherry_sign.json @@ -0,0 +1,5 @@ +{ + "textures": { + "particle": "cherry:block/cherry_planks" + } + } \ No newline at end of file diff --git a/src/main/resources/assets/cherry/models/item/cherry_sign.json b/src/main/resources/assets/cherry/models/item/cherry_sign.json new file mode 100644 index 0000000..342bce1 --- /dev/null +++ b/src/main/resources/assets/cherry/models/item/cherry_sign.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "cherry:item/cherry_sign" + } + } \ No newline at end of file diff --git a/src/main/resources/data/minecraft/tags/blocks/signs.json b/src/main/resources/data/minecraft/tags/blocks/signs.json new file mode 100644 index 0000000..a223fd7 --- /dev/null +++ b/src/main/resources/data/minecraft/tags/blocks/signs.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "cherry:cherry_sign" + ] +} \ No newline at end of file diff --git a/src/main/resources/data/minecraft/tags/blocks/standing_signs.json b/src/main/resources/data/minecraft/tags/blocks/standing_signs.json new file mode 100644 index 0000000..a223fd7 --- /dev/null +++ b/src/main/resources/data/minecraft/tags/blocks/standing_signs.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "cherry:cherry_sign" + ] +} \ No newline at end of file diff --git a/src/main/resources/data/minecraft/tags/blocks/wall_post_override.json b/src/main/resources/data/minecraft/tags/blocks/wall_post_override.json new file mode 100644 index 0000000..a223fd7 --- /dev/null +++ b/src/main/resources/data/minecraft/tags/blocks/wall_post_override.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "cherry:cherry_sign" + ] +} \ No newline at end of file