diff --git a/src/main/java/ru/betterend/blocks/basis/BlockCraftingTable.java b/src/main/java/ru/betterend/blocks/basis/BlockCraftingTable.java index 3bfef447..e65ef5ff 100644 --- a/src/main/java/ru/betterend/blocks/basis/BlockCraftingTable.java +++ b/src/main/java/ru/betterend/blocks/basis/BlockCraftingTable.java @@ -1,6 +1,8 @@ package ru.betterend.blocks.basis; +import java.io.Reader; import java.util.Collections; +import java.util.HashMap; import java.util.List; import net.fabricmc.fabric.api.object.builder.v1.block.FabricBlockSettings; @@ -9,9 +11,11 @@ import net.minecraft.block.BlockState; import net.minecraft.block.CraftingTableBlock; import net.minecraft.item.ItemStack; import net.minecraft.loot.context.LootContext; +import net.minecraft.util.Identifier; +import net.minecraft.util.registry.Registry; +import ru.betterend.interfaces.Patterned; -public class BlockCraftingTable extends CraftingTableBlock -{ +public class BlockCraftingTable extends CraftingTableBlock implements Patterned { public BlockCraftingTable(Block source) { super(FabricBlockSettings.copyOf(source)); } @@ -20,4 +24,33 @@ public class BlockCraftingTable extends CraftingTableBlock public List getDroppedStacks(BlockState state, LootContext.Builder builder) { return Collections.singletonList(new ItemStack(this.asItem())); } + + @Override + public String getStatesPattern(Reader data, String block) { + Identifier blockId = Registry.BLOCK.getId(this); + return Patterned.createJson(data, blockId, block); + } + + @Override + public String getModelPattern(String block) { + Identifier blockId = Registry.BLOCK.getId(this); + String blockName = blockId.getPath(); + return Patterned.createJson(Patterned.SIDED_BLOCK_MODEL, new HashMap() { + private static final long serialVersionUID = 1L; + { + put("%particle%", blockName + "_front"); + put("%down%", blockName + "_bottom"); + put("%up%", blockName + "_top"); + put("%north%", blockName + "_front"); + put("%south%", blockName + "_side"); + put("%west%", blockName + "_front"); + put("%east%", blockName + "_side"); + } + }); + } + + @Override + public Identifier statePatternId() { + return Patterned.BLOCK_STATES_PATTERN; + } } diff --git a/src/main/java/ru/betterend/interfaces/Patterned.java b/src/main/java/ru/betterend/interfaces/Patterned.java index e14144c5..c6f4c721 100644 --- a/src/main/java/ru/betterend/interfaces/Patterned.java +++ b/src/main/java/ru/betterend/interfaces/Patterned.java @@ -31,6 +31,7 @@ public interface Patterned { //Models Block public final static Identifier BASE_BLOCK_MODEL = BetterEnd.makeID("patterns/block/pattern_block.json"); + public final static Identifier SIDED_BLOCK_MODEL = BetterEnd.makeID("patterns/block/pattern_block_sided.json"); public final static Identifier SLAB_BLOCK_MODEL = BetterEnd.makeID("patterns/block/pattern_slab.json"); public final static Identifier STAIRS_MODEL = BetterEnd.makeID("patterns/block/pattern_stairs.json"); public final static Identifier STAIRS_MODEL_INNER = BetterEnd.makeID("patterns/block/pattern_inner_stairs.json"); diff --git a/src/main/resources/assets/betterend/patterns/block/pattern_block_sided.json b/src/main/resources/assets/betterend/patterns/block/pattern_block_sided.json new file mode 100644 index 00000000..7d956ddd --- /dev/null +++ b/src/main/resources/assets/betterend/patterns/block/pattern_block_sided.json @@ -0,0 +1,12 @@ +{ + "parent": "minecraft:block/cube", + "textures": { + "particle": "betterend:block/%particle%", + "down": "betterend:block/%down%", + "up": "betterend:block/%up%", + "north": "betterend:block/%north%", + "south": "betterend:block/%south%", + "west": "betterend:block/%west%", + "east": "betterend:block/%east%" + } +}