From 1dc48360dc083f6fef27d48e8d9c0ae21f448b9a Mon Sep 17 00:00:00 2001 From: Aleksey Date: Wed, 14 Oct 2020 10:37:30 +0300 Subject: [PATCH] Fence pattern --- .../ru/betterend/blocks/basis/BlockFence.java | 33 ++- .../betterend/blocks/basis/BlockPillar.java | 1 + .../ru/betterend/interfaces/Patterned.java | 4 + .../blockstates/pythadendron_stairs.json | 209 ------------------ .../models/block/pythadendron_stairs.json | 8 - .../patterns/block/pattern_fence_post.json | 6 + .../patterns/block/pattern_fence_side.json | 6 + .../patterns/blockstate/pattern_fence.json | 48 ++++ .../patterns/item/pattern_fence.json | 6 + 9 files changed, 103 insertions(+), 218 deletions(-) delete mode 100644 src/main/resources/assets/betterend/blockstates/pythadendron_stairs.json delete mode 100644 src/main/resources/assets/betterend/models/block/pythadendron_stairs.json create mode 100644 src/main/resources/assets/betterend/patterns/block/pattern_fence_post.json create mode 100644 src/main/resources/assets/betterend/patterns/block/pattern_fence_side.json create mode 100644 src/main/resources/assets/betterend/patterns/blockstate/pattern_fence.json create mode 100644 src/main/resources/assets/betterend/patterns/item/pattern_fence.json diff --git a/src/main/java/ru/betterend/blocks/basis/BlockFence.java b/src/main/java/ru/betterend/blocks/basis/BlockFence.java index d2afb79a..b08f3f43 100644 --- a/src/main/java/ru/betterend/blocks/basis/BlockFence.java +++ b/src/main/java/ru/betterend/blocks/basis/BlockFence.java @@ -1,5 +1,6 @@ package ru.betterend.blocks.basis; +import java.io.Reader; import java.util.Collections; import java.util.List; @@ -9,14 +10,44 @@ import net.minecraft.block.BlockState; import net.minecraft.block.FenceBlock; 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 BlockFence extends FenceBlock { +public class BlockFence extends FenceBlock implements Patterned { + + private final Block parent; + public BlockFence(Block source) { super(FabricBlockSettings.copyOf(source).nonOpaque()); + this.parent = source; } @Override public List getDroppedStacks(BlockState state, LootContext.Builder builder) { return Collections.singletonList(new ItemStack(this)); } + + @Override + public String getStatesPattern(Reader data, String block) { + Identifier parentId = Registry.BLOCK.getId(parent); + return Patterned.createJson(data, parentId, block); + } + + @Override + public String getModelPattern(String block) { + Identifier parentId = Registry.BLOCK.getId(parent); + if (block.contains("item")) { + return Patterned.createJson(Patterned.FENCE_ITEM_MODEL, parentId, block); + } + if (block.contains("side")) { + return Patterned.createJson(Patterned.FENCE_SIDE_MODEL, parentId, block); + } + return Patterned.createJson(Patterned.FENCE_POST_MODEL, parentId, block); + } + + @Override + public Identifier statePatternId() { + return Patterned.FENCE_STATES_PATTERN; + } } diff --git a/src/main/java/ru/betterend/blocks/basis/BlockPillar.java b/src/main/java/ru/betterend/blocks/basis/BlockPillar.java index 545caab2..6af5e8d5 100644 --- a/src/main/java/ru/betterend/blocks/basis/BlockPillar.java +++ b/src/main/java/ru/betterend/blocks/basis/BlockPillar.java @@ -34,6 +34,7 @@ public class BlockPillar extends PillarBlock implements Patterned { return Patterned.createJson(Patterned.PILLAR_BLOCK_MODEL, blockId, block); } + @Override public Identifier statePatternId() { return Patterned.PILLAR_STATES_PATTERN; } diff --git a/src/main/java/ru/betterend/interfaces/Patterned.java b/src/main/java/ru/betterend/interfaces/Patterned.java index 99123f42..bf21d195 100644 --- a/src/main/java/ru/betterend/interfaces/Patterned.java +++ b/src/main/java/ru/betterend/interfaces/Patterned.java @@ -20,6 +20,7 @@ public interface Patterned { public final static Identifier SLAB_STATES_PATTERN = BetterEnd.makeID("patterns/blockstate/pattern_slab.json"); public final static Identifier STAIRS_STATES_PATTERN = BetterEnd.makeID("patterns/blockstate/pattern_stairs.json"); public final static Identifier WALL_STATES_PATTERN = BetterEnd.makeID("patterns/blockstate/pattern_wall.json"); + public final static Identifier FENCE_STATES_PATTERN = BetterEnd.makeID("patterns/blockstate/pattern_fence.json"); public final static Identifier BUTTON_STATES_PATTERN = BetterEnd.makeID("patterns/blockstate/pattern_button.json"); public final static Identifier PILLAR_STATES_PATTERN = BetterEnd.makeID("patterns/blockstate/pattern_pillar.json"); public final static Identifier PLATE_STATES_PATTERN = BetterEnd.makeID("patterns/blockstate/pattern_pressure_plate.json"); @@ -35,6 +36,8 @@ public interface Patterned { public final static Identifier WALL_POST_MODEL = BetterEnd.makeID("patterns/block/pattern_wall_post.json"); public final static Identifier WALL_SIDE_MODEL = BetterEnd.makeID("patterns/block/pattern_wall_side.json"); public final static Identifier WALL_SIDE_TALL_MODEL = BetterEnd.makeID("patterns/block/pattern_wall_side_tall.json"); + public final static Identifier FENCE_POST_MODEL = BetterEnd.makeID("patterns/block/pattern_fence_post.json"); + public final static Identifier FENCE_SIDE_MODEL = BetterEnd.makeID("patterns/block/pattern_fence_side.json"); public final static Identifier BUTTON_BLOCK_MODEL = BetterEnd.makeID("patterns/block/pattern_button.json"); public final static Identifier BUTTON_PRESSED_MODEL = BetterEnd.makeID("patterns/block/pattern_button_pressed.json"); public final static Identifier PILLAR_BLOCK_MODEL = BetterEnd.makeID("patterns/block/pattern_pillar.json"); @@ -48,6 +51,7 @@ public interface Patterned { //Models Item public final static Identifier WALL_ITEM_MODEL = BetterEnd.makeID("patterns/item/pattern_wall.json"); + public final static Identifier FENCE_ITEM_MODEL = BetterEnd.makeID("patterns/item/pattern_fence.json"); public final static Identifier BUTTON_ITEM_MODEL = BetterEnd.makeID("patterns/item/pattern_button.json"); public final static Identifier ITEM_MODEL = BetterEnd.makeID("patterns/item/pattern_item.json"); diff --git a/src/main/resources/assets/betterend/blockstates/pythadendron_stairs.json b/src/main/resources/assets/betterend/blockstates/pythadendron_stairs.json deleted file mode 100644 index 4e016b18..00000000 --- a/src/main/resources/assets/betterend/blockstates/pythadendron_stairs.json +++ /dev/null @@ -1,209 +0,0 @@ -{ - "variants": { - "facing=east,half=bottom,shape=inner_left": { - "model": "betterend:block/pythadendron_inner_stairs", - "uvlock": true, - "y": 270 - }, - "facing=east,half=bottom,shape=inner_right": { - "model": "betterend:block/pythadendron_inner_stairs" - }, - "facing=east,half=bottom,shape=outer_left": { - "model": "betterend:block/pythadendron_outer_stairs", - "uvlock": true, - "y": 270 - }, - "facing=east,half=bottom,shape=outer_right": { - "model": "betterend:block/pythadendron_outer_stairs" - }, - "facing=east,half=bottom,shape=straight": { - "model": "betterend:block/pythadendron_stairs" - }, - "facing=east,half=top,shape=inner_left": { - "model": "betterend:block/pythadendron_inner_stairs", - "uvlock": true, - "x": 180 - }, - "facing=east,half=top,shape=inner_right": { - "model": "betterend:block/pythadendron_inner_stairs", - "uvlock": true, - "x": 180, - "y": 90 - }, - "facing=east,half=top,shape=outer_left": { - "model": "betterend:block/pythadendron_outer_stairs", - "uvlock": true, - "x": 180 - }, - "facing=east,half=top,shape=outer_right": { - "model": "betterend:block/pythadendron_outer_stairs", - "uvlock": true, - "x": 180, - "y": 90 - }, - "facing=east,half=top,shape=straight": { - "model": "betterend:block/pythadendron_stairs", - "uvlock": true, - "x": 180 - }, - "facing=north,half=bottom,shape=inner_left": { - "model": "betterend:block/pythadendron_inner_stairs", - "uvlock": true, - "y": 180 - }, - "facing=north,half=bottom,shape=inner_right": { - "model": "betterend:block/pythadendron_inner_stairs", - "uvlock": true, - "y": 270 - }, - "facing=north,half=bottom,shape=outer_left": { - "model": "betterend:block/pythadendron_outer_stairs", - "uvlock": true, - "y": 180 - }, - "facing=north,half=bottom,shape=outer_right": { - "model": "betterend:block/pythadendron_outer_stairs", - "uvlock": true, - "y": 270 - }, - "facing=north,half=bottom,shape=straight": { - "model": "betterend:block/pythadendron_stairs", - "uvlock": true, - "y": 270 - }, - "facing=north,half=top,shape=inner_left": { - "model": "betterend:block/pythadendron_inner_stairs", - "uvlock": true, - "x": 180, - "y": 270 - }, - "facing=north,half=top,shape=inner_right": { - "model": "betterend:block/pythadendron_inner_stairs", - "uvlock": true, - "x": 180 - }, - "facing=north,half=top,shape=outer_left": { - "model": "betterend:block/pythadendron_outer_stairs", - "uvlock": true, - "x": 180, - "y": 270 - }, - "facing=north,half=top,shape=outer_right": { - "model": "betterend:block/pythadendron_outer_stairs", - "uvlock": true, - "x": 180 - }, - "facing=north,half=top,shape=straight": { - "model": "betterend:block/pythadendron_stairs", - "uvlock": true, - "x": 180, - "y": 270 - }, - "facing=south,half=bottom,shape=inner_left": { - "model": "betterend:block/pythadendron_inner_stairs" - }, - "facing=south,half=bottom,shape=inner_right": { - "model": "betterend:block/pythadendron_inner_stairs", - "uvlock": true, - "y": 90 - }, - "facing=south,half=bottom,shape=outer_left": { - "model": "betterend:block/pythadendron_outer_stairs" - }, - "facing=south,half=bottom,shape=outer_right": { - "model": "betterend:block/pythadendron_outer_stairs", - "uvlock": true, - "y": 90 - }, - "facing=south,half=bottom,shape=straight": { - "model": "betterend:block/pythadendron_stairs", - "uvlock": true, - "y": 90 - }, - "facing=south,half=top,shape=inner_left": { - "model": "betterend:block/pythadendron_inner_stairs", - "uvlock": true, - "x": 180, - "y": 90 - }, - "facing=south,half=top,shape=inner_right": { - "model": "betterend:block/pythadendron_inner_stairs", - "uvlock": true, - "x": 180, - "y": 180 - }, - "facing=south,half=top,shape=outer_left": { - "model": "betterend:block/pythadendron_outer_stairs", - "uvlock": true, - "x": 180, - "y": 90 - }, - "facing=south,half=top,shape=outer_right": { - "model": "betterend:block/pythadendron_outer_stairs", - "uvlock": true, - "x": 180, - "y": 180 - }, - "facing=south,half=top,shape=straight": { - "model": "betterend:block/pythadendron_stairs", - "uvlock": true, - "x": 180, - "y": 90 - }, - "facing=west,half=bottom,shape=inner_left": { - "model": "betterend:block/pythadendron_inner_stairs", - "uvlock": true, - "y": 90 - }, - "facing=west,half=bottom,shape=inner_right": { - "model": "betterend:block/pythadendron_inner_stairs", - "uvlock": true, - "y": 180 - }, - "facing=west,half=bottom,shape=outer_left": { - "model": "betterend:block/pythadendron_outer_stairs", - "uvlock": true, - "y": 90 - }, - "facing=west,half=bottom,shape=outer_right": { - "model": "betterend:block/pythadendron_outer_stairs", - "uvlock": true, - "y": 180 - }, - "facing=west,half=bottom,shape=straight": { - "model": "betterend:block/pythadendron_stairs", - "uvlock": true, - "y": 180 - }, - "facing=west,half=top,shape=inner_left": { - "model": "betterend:block/pythadendron_inner_stairs", - "uvlock": true, - "x": 180, - "y": 180 - }, - "facing=west,half=top,shape=inner_right": { - "model": "betterend:block/pythadendron_inner_stairs", - "uvlock": true, - "x": 180, - "y": 270 - }, - "facing=west,half=top,shape=outer_left": { - "model": "betterend:block/pythadendron_outer_stairs", - "uvlock": true, - "x": 180, - "y": 180 - }, - "facing=west,half=top,shape=outer_right": { - "model": "betterend:block/pythadendron_outer_stairs", - "uvlock": true, - "x": 180, - "y": 270 - }, - "facing=west,half=top,shape=straight": { - "model": "betterend:block/pythadendron_stairs", - "uvlock": true, - "x": 180, - "y": 180 - } - } -} diff --git a/src/main/resources/assets/betterend/models/block/pythadendron_stairs.json b/src/main/resources/assets/betterend/models/block/pythadendron_stairs.json deleted file mode 100644 index 0415770f..00000000 --- a/src/main/resources/assets/betterend/models/block/pythadendron_stairs.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "parent": "block/stairs", - "textures": { - "bottom": "betterend:block/pythadendron_planks", - "side": "betterend:block/pythadendron_planks", - "top": "betterend:block/pythadendron_planks" - } -} diff --git a/src/main/resources/assets/betterend/patterns/block/pattern_fence_post.json b/src/main/resources/assets/betterend/patterns/block/pattern_fence_post.json new file mode 100644 index 00000000..057cfbe3 --- /dev/null +++ b/src/main/resources/assets/betterend/patterns/block/pattern_fence_post.json @@ -0,0 +1,6 @@ +{ + "parent": "block/fence_post", + "textures": { + "texture": "betterend:block/%parent%" + } +} diff --git a/src/main/resources/assets/betterend/patterns/block/pattern_fence_side.json b/src/main/resources/assets/betterend/patterns/block/pattern_fence_side.json new file mode 100644 index 00000000..8870ba9b --- /dev/null +++ b/src/main/resources/assets/betterend/patterns/block/pattern_fence_side.json @@ -0,0 +1,6 @@ +{ + "parent": "block/fence_side", + "textures": { + "texture": "betterend:block/%parent%" + } +} diff --git a/src/main/resources/assets/betterend/patterns/blockstate/pattern_fence.json b/src/main/resources/assets/betterend/patterns/blockstate/pattern_fence.json new file mode 100644 index 00000000..9667f89d --- /dev/null +++ b/src/main/resources/assets/betterend/patterns/blockstate/pattern_fence.json @@ -0,0 +1,48 @@ +{ + "multipart": [ + { + "apply": { + "model": "betterend:pattern/%block%/%block%_post" + } + }, + { + "apply": { + "model": "betterend:pattern/%block%/%block%_side", + "uvlock": true + }, + "when": { + "north": true + } + }, + { + "apply": { + "model": "betterend:pattern/%block%/%block%_side", + "uvlock": true, + "y": 90 + }, + "when": { + "east": true + } + }, + { + "apply": { + "model": "betterend:pattern/%block%/%block%_side", + "uvlock": true, + "y": 180 + }, + "when": { + "south": true + } + }, + { + "apply": { + "model": "betterend:pattern/%block%/%block%_side", + "uvlock": true, + "y": 270 + }, + "when": { + "west": true + } + } + ] +} diff --git a/src/main/resources/assets/betterend/patterns/item/pattern_fence.json b/src/main/resources/assets/betterend/patterns/item/pattern_fence.json new file mode 100644 index 00000000..d63ee15b --- /dev/null +++ b/src/main/resources/assets/betterend/patterns/item/pattern_fence.json @@ -0,0 +1,6 @@ +{ + "parent": "block/fence_inventory", + "textures": { + "texture": "betterend:block/%parent%" + } +}