diff --git a/src/main/java/ru/betterend/BetterEnd.java b/src/main/java/ru/betterend/BetterEnd.java index 5ee920a1..32a7ed61 100644 --- a/src/main/java/ru/betterend/BetterEnd.java +++ b/src/main/java/ru/betterend/BetterEnd.java @@ -95,6 +95,10 @@ public class BetterEnd implements ModInitializer { public static String getStringId(String id) { return String.format("%s:%s", MOD_ID, id); } + + public static boolean isModId(ResourceLocation id) { + return id.getNamespace().equals(MOD_ID); + } public static boolean isDevEnvironment() { return FabricLoader.getInstance().isDevelopmentEnvironment(); diff --git a/src/main/java/ru/betterend/blocks/BulbVineLanternBlock.java b/src/main/java/ru/betterend/blocks/BulbVineLanternBlock.java index d9d19915..ef807ff6 100644 --- a/src/main/java/ru/betterend/blocks/BulbVineLanternBlock.java +++ b/src/main/java/ru/betterend/blocks/BulbVineLanternBlock.java @@ -60,7 +60,7 @@ public class BulbVineLanternBlock extends EndLanternBlock implements IRenderType } @Override - public String getModelPattern(String block) { + public String getModelString(String block) { ResourceLocation blockId = Registry.BLOCK.getKey(this); Map map = Maps.newHashMap(); map.put("%glow%", getGlowTexture()); diff --git a/src/main/java/ru/betterend/blocks/ChandelierBlock.java b/src/main/java/ru/betterend/blocks/ChandelierBlock.java index 36d883df..ee8d2314 100644 --- a/src/main/java/ru/betterend/blocks/ChandelierBlock.java +++ b/src/main/java/ru/betterend/blocks/ChandelierBlock.java @@ -46,7 +46,7 @@ public class ChandelierBlock extends AttachedBlock implements IRenderTypeable, B } @Override - public String getModelPattern(String block) { + public String getModelString(String block) { ResourceLocation blockId = Registry.BLOCK.getKey(this); if (block.contains("item")) { return Patterns.createJson(Patterns.ITEM_GENERATED, "item/" + blockId.getPath()); diff --git a/src/main/java/ru/betterend/blocks/EmeraldIceBlock.java b/src/main/java/ru/betterend/blocks/EmeraldIceBlock.java index 754dab66..2072296e 100644 --- a/src/main/java/ru/betterend/blocks/EmeraldIceBlock.java +++ b/src/main/java/ru/betterend/blocks/EmeraldIceBlock.java @@ -93,7 +93,7 @@ public class EmeraldIceBlock extends HalfTransparentBlock implements IRenderType } @Override - public String getModelPattern(String block) { + public String getModelString(String block) { ResourceLocation blockId = Registry.BLOCK.getKey(this); return Patterns.createJson(Patterns.BLOCK_BASE, blockId.getPath(), block); } diff --git a/src/main/java/ru/betterend/blocks/EndPathBlock.java b/src/main/java/ru/betterend/blocks/EndPathBlock.java index 0f24bb7f..be685d52 100644 --- a/src/main/java/ru/betterend/blocks/EndPathBlock.java +++ b/src/main/java/ru/betterend/blocks/EndPathBlock.java @@ -55,7 +55,7 @@ public class EndPathBlock extends BlockBaseNotFull { } @Override - public String getModelPattern(String block) { + public String getModelString(String block) { String name = Registry.BLOCK.getKey(this).getPath(); Map map = Maps.newHashMap(); map.put("%top%", name + "_top"); diff --git a/src/main/java/ru/betterend/blocks/EndPedestal.java b/src/main/java/ru/betterend/blocks/EndPedestal.java index b626629a..04cf33ff 100644 --- a/src/main/java/ru/betterend/blocks/EndPedestal.java +++ b/src/main/java/ru/betterend/blocks/EndPedestal.java @@ -17,7 +17,7 @@ public class EndPedestal extends PedestalBlock { } @Override - public String getModelPattern(String block) { + public String getModelString(String block) { ResourceLocation blockId = Registry.BLOCK.getKey(parent); String name = blockId.getPath(); Map textures = new HashMap() { diff --git a/src/main/java/ru/betterend/blocks/EndTerrainBlock.java b/src/main/java/ru/betterend/blocks/EndTerrainBlock.java index ae1840ea..b58d03dc 100644 --- a/src/main/java/ru/betterend/blocks/EndTerrainBlock.java +++ b/src/main/java/ru/betterend/blocks/EndTerrainBlock.java @@ -95,7 +95,7 @@ public class EndTerrainBlock extends BlockBase { } @Override - public String getModelPattern(String block) { + public String getModelString(String block) { String name = Registry.BLOCK.getKey(this).getPath(); Map map = Maps.newHashMap(); map.put("%top%", "betterend:block/" + name + "_top"); diff --git a/src/main/java/ru/betterend/blocks/HydraluxPetalColoredBlock.java b/src/main/java/ru/betterend/blocks/HydraluxPetalColoredBlock.java index 89cb5897..90448a87 100644 --- a/src/main/java/ru/betterend/blocks/HydraluxPetalColoredBlock.java +++ b/src/main/java/ru/betterend/blocks/HydraluxPetalColoredBlock.java @@ -36,7 +36,7 @@ public class HydraluxPetalColoredBlock extends HydraluxPetalBlock implements ICo } @Override - public String getModelPattern(String block) { + public String getModelString(String block) { String path = "betterend:block/block_petal_colored"; return Patterns.createJson(Patterns.BLOCK_PETAL_COLORED, path, path); } diff --git a/src/main/java/ru/betterend/blocks/JellyshroomCapBlock.java b/src/main/java/ru/betterend/blocks/JellyshroomCapBlock.java index 3e105494..20d49a70 100644 --- a/src/main/java/ru/betterend/blocks/JellyshroomCapBlock.java +++ b/src/main/java/ru/betterend/blocks/JellyshroomCapBlock.java @@ -73,7 +73,7 @@ public class JellyshroomCapBlock extends SlimeBlock implements IRenderTypeable, } @Override - public String getModelPattern(String block) { + public String getModelString(String block) { return Patterns.createJson(Patterns.BLOCK_COLORED, "jellyshroom_cap"); } diff --git a/src/main/java/ru/betterend/blocks/PedestalVanilla.java b/src/main/java/ru/betterend/blocks/PedestalVanilla.java index 122ff0a1..30949b32 100644 --- a/src/main/java/ru/betterend/blocks/PedestalVanilla.java +++ b/src/main/java/ru/betterend/blocks/PedestalVanilla.java @@ -16,7 +16,7 @@ public class PedestalVanilla extends PedestalBlock { } @Override - public String getModelPattern(String block) { + public String getModelString(String block) { ResourceLocation blockId = Registry.BLOCK.getKey(parent); String name = blockId.getPath().replace("_block", ""); Map textures = new HashMap() { diff --git a/src/main/java/ru/betterend/blocks/UmbrellaTreeMembraneBlock.java b/src/main/java/ru/betterend/blocks/UmbrellaTreeMembraneBlock.java index 215bb8a2..4afa53f5 100644 --- a/src/main/java/ru/betterend/blocks/UmbrellaTreeMembraneBlock.java +++ b/src/main/java/ru/betterend/blocks/UmbrellaTreeMembraneBlock.java @@ -74,7 +74,7 @@ public class UmbrellaTreeMembraneBlock extends SlimeBlock implements IRenderType } @Override - public String getModelPattern(String block) { + public String getModelString(String block) { ResourceLocation blockId = Registry.BLOCK.getKey(this); return Patterns.createJson(Patterns.BLOCK_BASE, blockId.getPath(), block); } diff --git a/src/main/java/ru/betterend/blocks/basis/BarkBlock.java b/src/main/java/ru/betterend/blocks/basis/BarkBlock.java index f408f369..2ebb66d8 100644 --- a/src/main/java/ru/betterend/blocks/basis/BarkBlock.java +++ b/src/main/java/ru/betterend/blocks/basis/BarkBlock.java @@ -12,7 +12,7 @@ public class BarkBlock extends EndPillarBlock { } @Override - public String getModelPattern(String block) { + public String getModelString(String block) { ResourceLocation blockId = Registry.BLOCK.getKey(this); return Patterns.createJson(Patterns.BLOCK_BASE, getName(blockId), blockId.getPath()); } diff --git a/src/main/java/ru/betterend/blocks/basis/EndAnvilBlock.java b/src/main/java/ru/betterend/blocks/basis/EndAnvilBlock.java index cb7a867a..d7645308 100644 --- a/src/main/java/ru/betterend/blocks/basis/EndAnvilBlock.java +++ b/src/main/java/ru/betterend/blocks/basis/EndAnvilBlock.java @@ -61,7 +61,7 @@ public class EndAnvilBlock extends AnvilBlock implements BlockPatterned { } @Override - public String getModelPattern(String block) { + public String getModelString(String block) { ResourceLocation blockId = Registry.BLOCK.getKey(this); Map map = Maps.newHashMap(); map.put("%anvil%", blockId.getPath()); diff --git a/src/main/java/ru/betterend/blocks/basis/EndBarrelBlock.java b/src/main/java/ru/betterend/blocks/basis/EndBarrelBlock.java index 96e02235..ae0cd3e8 100644 --- a/src/main/java/ru/betterend/blocks/basis/EndBarrelBlock.java +++ b/src/main/java/ru/betterend/blocks/basis/EndBarrelBlock.java @@ -95,7 +95,7 @@ public class EndBarrelBlock extends BarrelBlock implements BlockPatterned { } @Override - public String getModelPattern(String block) { + public String getModelString(String block) { String texture = Registry.BLOCK.getKey(this).getPath(); if (block.contains("open")) { return Patterns.createJson(Patterns.BLOCK_BARREL_OPEN, texture, texture); diff --git a/src/main/java/ru/betterend/blocks/basis/EndBookshelfBlock.java b/src/main/java/ru/betterend/blocks/basis/EndBookshelfBlock.java index cbe352f3..154cc17b 100644 --- a/src/main/java/ru/betterend/blocks/basis/EndBookshelfBlock.java +++ b/src/main/java/ru/betterend/blocks/basis/EndBookshelfBlock.java @@ -40,7 +40,7 @@ public class EndBookshelfBlock extends BlockBase { } @Override - public String getModelPattern(String block) { + public String getModelString(String block) { ResourceLocation blockId = Registry.BLOCK.getKey(this); return Patterns.createJson(Patterns.BLOCK_BOOKSHELF, getName(blockId), blockId.getPath()); } diff --git a/src/main/java/ru/betterend/blocks/basis/EndChainBlock.java b/src/main/java/ru/betterend/blocks/basis/EndChainBlock.java index 1b03516c..3707089c 100644 --- a/src/main/java/ru/betterend/blocks/basis/EndChainBlock.java +++ b/src/main/java/ru/betterend/blocks/basis/EndChainBlock.java @@ -35,7 +35,7 @@ public class EndChainBlock extends ChainBlock implements BlockPatterned, IRender } @Override - public String getModelPattern(String block) { + public String getModelString(String block) { ResourceLocation blockId = Registry.BLOCK.getKey(this); if (block.contains("item")) { return Patterns.createJson(Patterns.ITEM_GENERATED, "item/" + blockId.getPath()); diff --git a/src/main/java/ru/betterend/blocks/basis/EndChestBlock.java b/src/main/java/ru/betterend/blocks/basis/EndChestBlock.java index a7d6344a..15cd39f2 100644 --- a/src/main/java/ru/betterend/blocks/basis/EndChestBlock.java +++ b/src/main/java/ru/betterend/blocks/basis/EndChestBlock.java @@ -49,7 +49,7 @@ public class EndChestBlock extends ChestBlock implements BlockPatterned { } @Override - public String getModelPattern(String path) { + public String getModelString(String path) { ResourceLocation blockId = Registry.BLOCK.getKey(this); ResourceLocation parentId = Registry.BLOCK.getKey(parent); if (path.contains("item")) { diff --git a/src/main/java/ru/betterend/blocks/basis/EndComposterBlock.java b/src/main/java/ru/betterend/blocks/basis/EndComposterBlock.java index fdf45dff..c2c46b0f 100644 --- a/src/main/java/ru/betterend/blocks/basis/EndComposterBlock.java +++ b/src/main/java/ru/betterend/blocks/basis/EndComposterBlock.java @@ -32,7 +32,7 @@ public class EndComposterBlock extends ComposterBlock implements BlockPatterned } @Override - public String getModelPattern(String block) { + public String getModelString(String block) { ResourceLocation blockId = Registry.BLOCK.getKey(this); String blockName = blockId.getPath(); return Patterns.createJson(Patterns.BLOCK_COMPOSTER, blockName); diff --git a/src/main/java/ru/betterend/blocks/basis/EndCraftingTableBlock.java b/src/main/java/ru/betterend/blocks/basis/EndCraftingTableBlock.java index 0f930b7f..a4d9e401 100644 --- a/src/main/java/ru/betterend/blocks/basis/EndCraftingTableBlock.java +++ b/src/main/java/ru/betterend/blocks/basis/EndCraftingTableBlock.java @@ -33,7 +33,7 @@ public class EndCraftingTableBlock extends CraftingTableBlock implements BlockPa } @Override - public String getModelPattern(String block) { + public String getModelString(String block) { ResourceLocation blockId = Registry.BLOCK.getKey(this); String blockName = blockId.getPath(); return Patterns.createJson(Patterns.BLOCK_SIDED, new HashMap() { diff --git a/src/main/java/ru/betterend/blocks/basis/EndDoorBlock.java b/src/main/java/ru/betterend/blocks/basis/EndDoorBlock.java index edd17f80..5257f9cd 100644 --- a/src/main/java/ru/betterend/blocks/basis/EndDoorBlock.java +++ b/src/main/java/ru/betterend/blocks/basis/EndDoorBlock.java @@ -43,7 +43,7 @@ public class EndDoorBlock extends DoorBlock implements IRenderTypeable, BlockPat } @Override - public String getModelPattern(String block) { + public String getModelString(String block) { String blockId = Registry.BLOCK.getKey(this).getPath(); if (block.contains("item")) { return Patterns.createJson(Patterns.ITEM_GENERATED, block); diff --git a/src/main/java/ru/betterend/blocks/basis/EndFenceBlock.java b/src/main/java/ru/betterend/blocks/basis/EndFenceBlock.java index 513214fd..069b4d49 100644 --- a/src/main/java/ru/betterend/blocks/basis/EndFenceBlock.java +++ b/src/main/java/ru/betterend/blocks/basis/EndFenceBlock.java @@ -36,7 +36,7 @@ public class EndFenceBlock extends FenceBlock implements BlockPatterned { } @Override - public String getModelPattern(String block) { + public String getModelString(String block) { ResourceLocation blockId = Registry.BLOCK.getKey(this); ResourceLocation parentId = Registry.BLOCK.getKey(parent); if (block.contains("item")) { diff --git a/src/main/java/ru/betterend/blocks/basis/EndFurnaceBlock.java b/src/main/java/ru/betterend/blocks/basis/EndFurnaceBlock.java index 68690e6c..6fcc0c9b 100644 --- a/src/main/java/ru/betterend/blocks/basis/EndFurnaceBlock.java +++ b/src/main/java/ru/betterend/blocks/basis/EndFurnaceBlock.java @@ -57,7 +57,7 @@ public class EndFurnaceBlock extends FurnaceBlock implements BlockPatterned, IRe } @Override - public String getModelPattern(String block) { + public String getModelString(String block) { ResourceLocation blockId = Registry.BLOCK.getKey(this); Map map = Maps.newHashMap(); map.put("%top%", blockId.getPath() + "_top"); diff --git a/src/main/java/ru/betterend/blocks/basis/EndGateBlock.java b/src/main/java/ru/betterend/blocks/basis/EndGateBlock.java index 156407c2..e7b6ec13 100644 --- a/src/main/java/ru/betterend/blocks/basis/EndGateBlock.java +++ b/src/main/java/ru/betterend/blocks/basis/EndGateBlock.java @@ -36,7 +36,7 @@ public class EndGateBlock extends FenceGateBlock implements BlockPatterned { } @Override - public String getModelPattern(String block) { + public String getModelString(String block) { ResourceLocation blockId = Registry.BLOCK.getKey(this); ResourceLocation parentId = Registry.BLOCK.getKey(parent); if (block.contains("wall")) { diff --git a/src/main/java/ru/betterend/blocks/basis/EndLadderBlock.java b/src/main/java/ru/betterend/blocks/basis/EndLadderBlock.java index 505b3ae9..971e3a36 100644 --- a/src/main/java/ru/betterend/blocks/basis/EndLadderBlock.java +++ b/src/main/java/ru/betterend/blocks/basis/EndLadderBlock.java @@ -144,7 +144,7 @@ public class EndLadderBlock extends BlockBaseNotFull implements IRenderTypeable, } @Override - public String getModelPattern(String block) { + public String getModelString(String block) { ResourceLocation blockId = Registry.BLOCK.getKey(this); if (block.contains("item")) { return Patterns.createJson(Patterns.ITEM_BLOCK, blockId.getPath()); diff --git a/src/main/java/ru/betterend/blocks/basis/EndLeavesBlock.java b/src/main/java/ru/betterend/blocks/basis/EndLeavesBlock.java index 4e9509ca..dfa07ed5 100644 --- a/src/main/java/ru/betterend/blocks/basis/EndLeavesBlock.java +++ b/src/main/java/ru/betterend/blocks/basis/EndLeavesBlock.java @@ -60,7 +60,7 @@ public class EndLeavesBlock extends LeavesBlock implements BlockPatterned, IRend } @Override - public String getModelPattern(String block) { + public String getModelString(String block) { String blockId = Registry.BLOCK.getKey(this).getPath(); return Patterns.createJson(Patterns.BLOCK_BASE, blockId, blockId); } diff --git a/src/main/java/ru/betterend/blocks/basis/EndMetalPaneBlock.java b/src/main/java/ru/betterend/blocks/basis/EndMetalPaneBlock.java index a10f97ff..fdd46e61 100644 --- a/src/main/java/ru/betterend/blocks/basis/EndMetalPaneBlock.java +++ b/src/main/java/ru/betterend/blocks/basis/EndMetalPaneBlock.java @@ -37,7 +37,7 @@ public class EndMetalPaneBlock extends IronBarsBlock implements BlockPatterned, } @Override - public String getModelPattern(String block) { + public String getModelString(String block) { ResourceLocation blockId = Registry.BLOCK.getKey(this); if (block.contains("item")) { return Patterns.createJson(Patterns.ITEM_BLOCK, blockId.getPath()); diff --git a/src/main/java/ru/betterend/blocks/basis/EndMetalPlateBlock.java b/src/main/java/ru/betterend/blocks/basis/EndMetalPlateBlock.java index 307dda00..d374bac1 100644 --- a/src/main/java/ru/betterend/blocks/basis/EndMetalPlateBlock.java +++ b/src/main/java/ru/betterend/blocks/basis/EndMetalPlateBlock.java @@ -36,7 +36,7 @@ public class EndMetalPlateBlock extends WeightedPressurePlateBlock implements Bl } @Override - public String getModelPattern(String block) { + public String getModelString(String block) { ResourceLocation blockId = Registry.BLOCK.getKey(this); ResourceLocation parentId = Registry.BLOCK.getKey(parent); if (block.contains("down")) { diff --git a/src/main/java/ru/betterend/blocks/basis/EndOreBlock.java b/src/main/java/ru/betterend/blocks/basis/EndOreBlock.java index 74c0bbb7..fb43e2cd 100644 --- a/src/main/java/ru/betterend/blocks/basis/EndOreBlock.java +++ b/src/main/java/ru/betterend/blocks/basis/EndOreBlock.java @@ -78,7 +78,7 @@ public class EndOreBlock extends OreBlock implements BlockPatterned { } @Override - public String getModelPattern(String block) { + public String getModelString(String block) { ResourceLocation blockId = Registry.BLOCK.getKey(this); return Patterns.createJson(Patterns.BLOCK_BASE, blockId.getPath(), block); } diff --git a/src/main/java/ru/betterend/blocks/basis/EndPillarBlock.java b/src/main/java/ru/betterend/blocks/basis/EndPillarBlock.java index 82e02e7a..b45bb1db 100644 --- a/src/main/java/ru/betterend/blocks/basis/EndPillarBlock.java +++ b/src/main/java/ru/betterend/blocks/basis/EndPillarBlock.java @@ -36,7 +36,7 @@ public class EndPillarBlock extends RotatedPillarBlock implements BlockPatterned } @Override - public String getModelPattern(String block) { + public String getModelString(String block) { String texture = Registry.BLOCK.getKey(this).getPath(); return Patterns.createJson(Patterns.BLOCK_PILLAR, texture, texture); } diff --git a/src/main/java/ru/betterend/blocks/basis/EndPlateBlock.java b/src/main/java/ru/betterend/blocks/basis/EndPlateBlock.java index a178faad..cae86edc 100644 --- a/src/main/java/ru/betterend/blocks/basis/EndPlateBlock.java +++ b/src/main/java/ru/betterend/blocks/basis/EndPlateBlock.java @@ -36,7 +36,7 @@ public class EndPlateBlock extends PressurePlateBlock implements BlockPatterned } @Override - public String getModelPattern(String block) { + public String getModelString(String block) { ResourceLocation blockId = Registry.BLOCK.getKey(this); ResourceLocation parentId = Registry.BLOCK.getKey(parent); if (block.contains("down")) { diff --git a/src/main/java/ru/betterend/blocks/basis/EndSignBlock.java b/src/main/java/ru/betterend/blocks/basis/EndSignBlock.java index eca5c594..ffc081cf 100644 --- a/src/main/java/ru/betterend/blocks/basis/EndSignBlock.java +++ b/src/main/java/ru/betterend/blocks/basis/EndSignBlock.java @@ -152,7 +152,7 @@ public class EndSignBlock extends SignBlock implements BlockPatterned, ISpetialI } @Override - public String getModelPattern(String path) { + public String getModelString(String path) { ResourceLocation parentId = Registry.BLOCK.getKey(parent); if (path.contains("item")) { return Patterns.createJson(Patterns.ITEM_GENERATED, path); diff --git a/src/main/java/ru/betterend/blocks/basis/EndSlabBlock.java b/src/main/java/ru/betterend/blocks/basis/EndSlabBlock.java index ef75cac8..4c313ff4 100644 --- a/src/main/java/ru/betterend/blocks/basis/EndSlabBlock.java +++ b/src/main/java/ru/betterend/blocks/basis/EndSlabBlock.java @@ -36,7 +36,7 @@ public class EndSlabBlock extends SlabBlock implements BlockPatterned { } @Override - public String getModelPattern(String block) { + public String getModelString(String block) { ResourceLocation blockId = Registry.BLOCK.getKey(this); ResourceLocation parentId = Registry.BLOCK.getKey(parent); return Patterns.createJson(Patterns.BLOCK_SLAB, parentId.getPath(), blockId.getPath()); diff --git a/src/main/java/ru/betterend/blocks/basis/EndStairsBlock.java b/src/main/java/ru/betterend/blocks/basis/EndStairsBlock.java index 98d020cd..2b1b572a 100644 --- a/src/main/java/ru/betterend/blocks/basis/EndStairsBlock.java +++ b/src/main/java/ru/betterend/blocks/basis/EndStairsBlock.java @@ -37,7 +37,7 @@ public class EndStairsBlock extends StairBlock implements BlockPatterned { } @Override - public String getModelPattern(String block) { + public String getModelString(String block) { ResourceLocation blockId = Registry.BLOCK.getKey(this); ResourceLocation parentId = Registry.BLOCK.getKey(parent); if (block.contains("inner")) { diff --git a/src/main/java/ru/betterend/blocks/basis/EndStoneButtonBlock.java b/src/main/java/ru/betterend/blocks/basis/EndStoneButtonBlock.java index 538d06f8..b46ef135 100644 --- a/src/main/java/ru/betterend/blocks/basis/EndStoneButtonBlock.java +++ b/src/main/java/ru/betterend/blocks/basis/EndStoneButtonBlock.java @@ -36,7 +36,7 @@ public class EndStoneButtonBlock extends StoneButtonBlock implements BlockPatter } @Override - public String getModelPattern(String block) { + public String getModelString(String block) { ResourceLocation blockId = Registry.BLOCK.getKey(this); ResourceLocation parentId = Registry.BLOCK.getKey(parent); if (block.contains("item")) { diff --git a/src/main/java/ru/betterend/blocks/basis/EndTrapdoorBlock.java b/src/main/java/ru/betterend/blocks/basis/EndTrapdoorBlock.java index 626beccd..5cead0d6 100644 --- a/src/main/java/ru/betterend/blocks/basis/EndTrapdoorBlock.java +++ b/src/main/java/ru/betterend/blocks/basis/EndTrapdoorBlock.java @@ -40,7 +40,7 @@ public class EndTrapdoorBlock extends TrapDoorBlock implements IRenderTypeable, } @Override - public String getModelPattern(String block) { + public String getModelString(String block) { ResourceLocation blockId = Registry.BLOCK.getKey(this); String name = blockId.getPath(); return Patterns.createJson(Patterns.BLOCK_TRAPDOOR, new HashMap() { diff --git a/src/main/java/ru/betterend/blocks/basis/EndWallBlock.java b/src/main/java/ru/betterend/blocks/basis/EndWallBlock.java index c8e51c77..169eb7bc 100644 --- a/src/main/java/ru/betterend/blocks/basis/EndWallBlock.java +++ b/src/main/java/ru/betterend/blocks/basis/EndWallBlock.java @@ -37,7 +37,7 @@ public class EndWallBlock extends WallBlock implements BlockPatterned { } @Override - public String getModelPattern(String block) { + public String getModelString(String block) { ResourceLocation blockId = Registry.BLOCK.getKey(this); ResourceLocation parentId = Registry.BLOCK.getKey(parent); if (block.contains("item")) { diff --git a/src/main/java/ru/betterend/blocks/basis/EndWoodenButtonBlock.java b/src/main/java/ru/betterend/blocks/basis/EndWoodenButtonBlock.java index a2455f6d..cbe6b140 100644 --- a/src/main/java/ru/betterend/blocks/basis/EndWoodenButtonBlock.java +++ b/src/main/java/ru/betterend/blocks/basis/EndWoodenButtonBlock.java @@ -36,7 +36,7 @@ public class EndWoodenButtonBlock extends WoodButtonBlock implements BlockPatter } @Override - public String getModelPattern(String block) { + public String getModelString(String block) { ResourceLocation blockId = Registry.BLOCK.getKey(this); ResourceLocation parentId = Registry.BLOCK.getKey(parent); if (block.contains("item")) { diff --git a/src/main/java/ru/betterend/blocks/basis/FeatureSaplingBlock.java b/src/main/java/ru/betterend/blocks/basis/FeatureSaplingBlock.java index b5b4b11c..b982a580 100644 --- a/src/main/java/ru/betterend/blocks/basis/FeatureSaplingBlock.java +++ b/src/main/java/ru/betterend/blocks/basis/FeatureSaplingBlock.java @@ -104,7 +104,7 @@ public abstract class FeatureSaplingBlock extends BlockBaseNotFull implements Bo } @Override - public String getModelPattern(String block) { + public String getModelString(String block) { if (block.contains("item")) { block = block.split("/")[1]; return Patterns.createJson(Patterns.ITEM_BLOCK, block); diff --git a/src/main/java/ru/betterend/blocks/basis/PedestalBlock.java b/src/main/java/ru/betterend/blocks/basis/PedestalBlock.java index 7f3a1f7e..04b45b57 100644 --- a/src/main/java/ru/betterend/blocks/basis/PedestalBlock.java +++ b/src/main/java/ru/betterend/blocks/basis/PedestalBlock.java @@ -341,7 +341,7 @@ public class PedestalBlock extends BlockBaseNotFull implements EntityBlock { } @Override - public String getModelPattern(String block) { + public String getModelString(String block) { ResourceLocation blockId = Registry.BLOCK.getKey(parent); String name = blockId.getPath(); Map textures = new HashMap() { diff --git a/src/main/java/ru/betterend/blocks/basis/SimpleLeavesBlock.java b/src/main/java/ru/betterend/blocks/basis/SimpleLeavesBlock.java index 8fc9a20b..a467d3a5 100644 --- a/src/main/java/ru/betterend/blocks/basis/SimpleLeavesBlock.java +++ b/src/main/java/ru/betterend/blocks/basis/SimpleLeavesBlock.java @@ -43,7 +43,7 @@ public class SimpleLeavesBlock extends BlockBaseNotFull implements IRenderTypeab } @Override - public String getModelPattern(String block) { + public String getModelString(String block) { String texture = Registry.BLOCK.getKey(this).getPath(); return Patterns.createJson(Patterns.BLOCK_BASE, texture, texture); } diff --git a/src/main/java/ru/betterend/blocks/basis/StalactiteBlock.java b/src/main/java/ru/betterend/blocks/basis/StalactiteBlock.java index 4bcf8179..2eaac818 100644 --- a/src/main/java/ru/betterend/blocks/basis/StalactiteBlock.java +++ b/src/main/java/ru/betterend/blocks/basis/StalactiteBlock.java @@ -192,7 +192,7 @@ public class StalactiteBlock extends BlockBaseNotFull implements SimpleWaterlogg } @Override - public String getModelPattern(String block) { + public String getModelString(String block) { ResourceLocation blockId = Registry.BLOCK.getKey(this); if (block.contains("item")) { return Patterns.createJson(Patterns.ITEM_GENERATED, "item/" + blockId.getPath()); diff --git a/src/main/java/ru/betterend/blocks/basis/StoneLanternBlock.java b/src/main/java/ru/betterend/blocks/basis/StoneLanternBlock.java index 8488dca9..55a69fa2 100644 --- a/src/main/java/ru/betterend/blocks/basis/StoneLanternBlock.java +++ b/src/main/java/ru/betterend/blocks/basis/StoneLanternBlock.java @@ -68,7 +68,7 @@ public class StoneLanternBlock extends EndLanternBlock implements IColorProvider } @Override - public String getModelPattern(String block) { + public String getModelString(String block) { String texture = Registry.BLOCK.getKey(this).getPath(); if (block.contains("ceil")) { return Patterns.createJson(Patterns.BLOCK_STONE_LANTERN_CEIL, texture, texture); diff --git a/src/main/java/ru/betterend/blocks/basis/TripleTerrainBlock.java b/src/main/java/ru/betterend/blocks/basis/TripleTerrainBlock.java index e9f013d6..a2b4501b 100644 --- a/src/main/java/ru/betterend/blocks/basis/TripleTerrainBlock.java +++ b/src/main/java/ru/betterend/blocks/basis/TripleTerrainBlock.java @@ -49,7 +49,7 @@ public class TripleTerrainBlock extends EndTerrainBlock { } @Override - public String getModelPattern(String block) { + public String getModelString(String block) { String name = Registry.BLOCK.getKey(this).getPath(); if (block.endsWith("_middle")) { return Patterns.createJson(Patterns.BLOCK_BASE, name + "_top", name + "_top"); diff --git a/src/main/java/ru/betterend/item/EnchantedPetalItem.java b/src/main/java/ru/betterend/item/EnchantedPetalItem.java index 27d04935..8883964a 100644 --- a/src/main/java/ru/betterend/item/EnchantedPetalItem.java +++ b/src/main/java/ru/betterend/item/EnchantedPetalItem.java @@ -16,7 +16,7 @@ public class EnchantedPetalItem extends PatternedItem { } @Override - public String getModelPattern(String name) { + public String getModelString(String name) { return Patterns.createJson(Patterns.ITEM_GENERATED, "item/hydralux_petal"); } } diff --git a/src/main/java/ru/betterend/item/EndBucketItem.java b/src/main/java/ru/betterend/item/EndBucketItem.java index 5b84e7a4..23cb8898 100644 --- a/src/main/java/ru/betterend/item/EndBucketItem.java +++ b/src/main/java/ru/betterend/item/EndBucketItem.java @@ -12,7 +12,7 @@ public class EndBucketItem extends BucketItem implements Patterned { } @Override - public String getModelPattern(String name) { + public String getModelString(String name) { return Patterns.createJson(Patterns.ITEM_GENERATED, name); } } diff --git a/src/main/java/ru/betterend/item/EndSpawnEggItem.java b/src/main/java/ru/betterend/item/EndSpawnEggItem.java index cf2d2e35..26901a0f 100644 --- a/src/main/java/ru/betterend/item/EndSpawnEggItem.java +++ b/src/main/java/ru/betterend/item/EndSpawnEggItem.java @@ -11,7 +11,7 @@ public class EndSpawnEggItem extends SpawnEggItem implements Patterned { } @Override - public String getModelPattern(String name) { + public String getModelString(String name) { return Patterns.createJson(Patterns.ITEM_SPAWN_EGG, name); } } diff --git a/src/main/java/ru/betterend/item/PatternedDiscItem.java b/src/main/java/ru/betterend/item/PatternedDiscItem.java index 44a32123..c867429d 100644 --- a/src/main/java/ru/betterend/item/PatternedDiscItem.java +++ b/src/main/java/ru/betterend/item/PatternedDiscItem.java @@ -11,7 +11,7 @@ public class PatternedDiscItem extends RecordItem implements Patterned { } @Override - public String getModelPattern(String name) { + public String getModelString(String name) { return Patterns.createJson(Patterns.ITEM_GENERATED, name); } } diff --git a/src/main/java/ru/betterend/item/PatternedItem.java b/src/main/java/ru/betterend/item/PatternedItem.java index 2d5dce7a..e0072bc4 100644 --- a/src/main/java/ru/betterend/item/PatternedItem.java +++ b/src/main/java/ru/betterend/item/PatternedItem.java @@ -10,7 +10,7 @@ public class PatternedItem extends Item implements Patterned { } @Override - public String getModelPattern(String name) { + public String getModelString(String name) { return Patterns.createItemGenerated(name); } } diff --git a/src/main/java/ru/betterend/item/tool/EndAxeItem.java b/src/main/java/ru/betterend/item/tool/EndAxeItem.java index 0720695c..b1977ed0 100644 --- a/src/main/java/ru/betterend/item/tool/EndAxeItem.java +++ b/src/main/java/ru/betterend/item/tool/EndAxeItem.java @@ -26,7 +26,7 @@ public class EndAxeItem extends AxeItem implements DynamicAttributeTool, Pattern } @Override - public String getModelPattern(String name) { + public String getModelString(String name) { return Patterns.createJson(Patterns.ITEM_HANDHELD, name); } } diff --git a/src/main/java/ru/betterend/item/tool/EndHammerItem.java b/src/main/java/ru/betterend/item/tool/EndHammerItem.java index 2fe92f82..6f4ffa8f 100644 --- a/src/main/java/ru/betterend/item/tool/EndHammerItem.java +++ b/src/main/java/ru/betterend/item/tool/EndHammerItem.java @@ -135,7 +135,7 @@ public class EndHammerItem extends DiggerItem implements DynamicAttributeTool, P } @Override - public String getModelPattern(String name) { + public String getModelString(String name) { return Patterns.createJson(Patterns.ITEM_HANDHELD, name); } } diff --git a/src/main/java/ru/betterend/item/tool/EndHoeItem.java b/src/main/java/ru/betterend/item/tool/EndHoeItem.java index 07fa387e..66f23a07 100644 --- a/src/main/java/ru/betterend/item/tool/EndHoeItem.java +++ b/src/main/java/ru/betterend/item/tool/EndHoeItem.java @@ -11,7 +11,7 @@ public class EndHoeItem extends HoeItem implements Patterned { } @Override - public String getModelPattern(String name) { + public String getModelString(String name) { return Patterns.createJson(Patterns.ITEM_HANDHELD, name); } } diff --git a/src/main/java/ru/betterend/item/tool/EndPickaxeItem.java b/src/main/java/ru/betterend/item/tool/EndPickaxeItem.java index a7aac37c..d1aac622 100644 --- a/src/main/java/ru/betterend/item/tool/EndPickaxeItem.java +++ b/src/main/java/ru/betterend/item/tool/EndPickaxeItem.java @@ -38,7 +38,7 @@ public class EndPickaxeItem extends PickaxeItem implements DynamicAttributeTool, } @Override - public String getModelPattern(String name) { + public String getModelString(String name) { return Patterns.createJson(Patterns.ITEM_HANDHELD, name); } } diff --git a/src/main/java/ru/betterend/item/tool/EndShovelItem.java b/src/main/java/ru/betterend/item/tool/EndShovelItem.java index 5a59a2bc..be67f603 100644 --- a/src/main/java/ru/betterend/item/tool/EndShovelItem.java +++ b/src/main/java/ru/betterend/item/tool/EndShovelItem.java @@ -34,7 +34,7 @@ public class EndShovelItem extends ShovelItem implements DynamicAttributeTool, P } @Override - public String getModelPattern(String name) { + public String getModelString(String name) { return Patterns.createJson(Patterns.ITEM_HANDHELD, name); } } diff --git a/src/main/java/ru/betterend/item/tool/EndSwordItem.java b/src/main/java/ru/betterend/item/tool/EndSwordItem.java index 43aa6761..3507970b 100644 --- a/src/main/java/ru/betterend/item/tool/EndSwordItem.java +++ b/src/main/java/ru/betterend/item/tool/EndSwordItem.java @@ -12,7 +12,7 @@ public class EndSwordItem extends SwordItem implements DynamicAttributeTool, Pat } @Override - public String getModelPattern(String name) { + public String getModelString(String name) { return Patterns.createJson(Patterns.ITEM_HANDHELD, name); } } diff --git a/src/main/java/ru/betterend/mixin/client/ModelLoaderMixin.java b/src/main/java/ru/betterend/mixin/client/ModelLoaderMixin.java index 79da3ba1..48b74e96 100644 --- a/src/main/java/ru/betterend/mixin/client/ModelLoaderMixin.java +++ b/src/main/java/ru/betterend/mixin/client/ModelLoaderMixin.java @@ -1,59 +1,79 @@ package ru.betterend.mixin.client; -import java.io.InputStreamReader; -import java.io.Reader; -import java.nio.charset.StandardCharsets; -import java.util.Optional; - -import net.minecraft.client.resources.model.ModelResourceLocation; -import net.minecraft.client.resources.model.UnbakedModel; -import org.spongepowered.asm.mixin.Final; -import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.Shadow; -import org.spongepowered.asm.mixin.injection.At; -import org.spongepowered.asm.mixin.injection.Inject; -import org.spongepowered.asm.mixin.injection.ModifyVariable; -import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; - import net.minecraft.client.renderer.block.model.BlockModel; import net.minecraft.client.resources.model.ModelBakery; +import net.minecraft.client.resources.model.ModelResourceLocation; +import net.minecraft.client.resources.model.UnbakedModel; import net.minecraft.core.Registry; import net.minecraft.resources.ResourceLocation; import net.minecraft.server.packs.resources.Resource; import net.minecraft.server.packs.resources.ResourceManager; import net.minecraft.world.item.Item; import net.minecraft.world.level.block.Block; +import org.spongepowered.asm.mixin.Final; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.Shadow; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.ModifyVariable; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; import ru.betterend.BetterEnd; import ru.betterend.patterns.Patterned; import ru.betterend.world.generator.GeneratorOptions; +import java.io.InputStreamReader; +import java.io.Reader; +import java.nio.charset.StandardCharsets; +import java.util.Map; +import java.util.Objects; +import java.util.Optional; + @Mixin(ModelBakery.class) -public class ModelLoaderMixin { +public abstract class ModelLoaderMixin { @Final @Shadow private ResourceManager resourceManager; + @Final + @Shadow + private Map unbakedCache; - @Inject(method = "getModel", at = @At("HEAD"), cancellable = true) - public void be_registerModel(ResourceLocation resourceLocation, CallbackInfoReturnable info) { - if (resourceLocation.getNamespace().equals(BetterEnd.MOD_ID)) { - if (resourceLocation instanceof ModelResourceLocation) { - ModelResourceLocation modelId = (ModelResourceLocation) resourceLocation; - String variant = modelId.getVariant(); - if (variant.equals("inventory")) { + @Shadow + protected abstract void cacheAndQueueDependencies(ResourceLocation resourceLocation, UnbakedModel unbakedModel); + + @Inject(method = "loadModel", at = @At("HEAD"), cancellable = true) + private void be_loadModels(ResourceLocation resourceLocation, CallbackInfo info) { + if (BetterEnd.isModId(resourceLocation) && resourceLocation instanceof ModelResourceLocation) { + ResourceLocation clearLoc = new ResourceLocation(resourceLocation.getNamespace(), resourceLocation.getPath()); + ModelResourceLocation modelLoc = (ModelResourceLocation) resourceLocation; + if (Objects.equals(modelLoc.getVariant(), "inventory")) { + ResourceLocation itemModelLoc = new ResourceLocation(resourceLocation.getNamespace(), "models/" + resourceLocation.getPath() + ".json"); + if (!resourceManager.hasResource(itemModelLoc)) { + Item item = Registry.ITEM.get(clearLoc); + if (item instanceof Patterned) { + BlockModel model = ((Patterned) item).getItemModel(); + ResourceLocation itemLoc = new ResourceLocation(resourceLocation.getNamespace(), "item/" + resourceLocation.getPath()); + model.name = itemLoc.toString(); + cacheAndQueueDependencies(modelLoc, model); + unbakedCache.put(modelLoc, model); + info.cancel(); + } + } + } else { + ResourceLocation blockstateId = new ResourceLocation(resourceLocation.getNamespace(), "blockstates/" + resourceLocation.getPath() + ".json"); + if (!resourceManager.hasResource(blockstateId)) { - } else { - System.out.println(modelId.getVariant()); } } } } - + @Inject(method = "loadBlockModel", at = @At("HEAD"), cancellable = true) private void be_loadModelPattern(ResourceLocation id, CallbackInfoReturnable info) { - if (id.getNamespace().equals(BetterEnd.MOD_ID)) { + if (BetterEnd.isModId(id)) { ResourceLocation modelId = new ResourceLocation(id.getNamespace(), "models/" + id.getPath() + ".json"); BlockModel model; - try (Resource resource = this.resourceManager.getResource(modelId)) { + try (Resource resource = resourceManager.getResource(modelId)) { Reader reader = new InputStreamReader(resource.getInputStream(), StandardCharsets.UTF_8); model = BlockModel.fromStream(reader); model.name = id.toString(); @@ -66,14 +86,14 @@ public class ModelLoaderMixin { if (block.isPresent()) { if (block.get() instanceof Patterned) { Patterned patterned = (Patterned) block.get(); - model = this.be_getModel(data, id, patterned); + model = be_getModel(data, id, patterned); info.setReturnValue(model); } } else { Optional item = Registry.ITEM.getOptional(itemId); if (item.isPresent() && item.get() instanceof Patterned) { Patterned patterned = (Patterned) item.get(); - model = this.be_getModel(data, id, patterned); + model = be_getModel(data, id, patterned); info.setReturnValue(model); } } @@ -81,16 +101,16 @@ public class ModelLoaderMixin { } } } - + private BlockModel be_getModel(String[] data, ResourceLocation id, Patterned patterned) { String pattern; if (id.getPath().contains("item")) { - pattern = patterned.getModelPattern(id.getPath()); + pattern = patterned.getModelString(id.getPath()); } else { if (data.length > 2) { - pattern = patterned.getModelPattern(data[2]); + pattern = patterned.getModelString(data[2]); } else { - pattern = patterned.getModelPattern(data[1]); + pattern = patterned.getModelString(data[1]); } } BlockModel model = BlockModel.fromString(pattern); diff --git a/src/main/java/ru/betterend/patterns/BlockPatterned.java b/src/main/java/ru/betterend/patterns/BlockPatterned.java index 8b6e0f71..3d063bcf 100644 --- a/src/main/java/ru/betterend/patterns/BlockPatterned.java +++ b/src/main/java/ru/betterend/patterns/BlockPatterned.java @@ -2,16 +2,13 @@ package ru.betterend.patterns; import java.io.Reader; -import net.minecraft.client.renderer.block.model.BlockModel; +import net.minecraft.client.resources.model.UnbakedModel; import net.minecraft.resources.ResourceLocation; import net.minecraft.world.level.block.state.BlockState; +import org.jetbrains.annotations.NotNull; public interface BlockPatterned extends Patterned { - //BlockModel getBlockModel(BlockState state); - default String getStatesPattern(Reader data) { - return null; - } - default ResourceLocation statePatternId() { - return null; - } -} \ No newline at end of file + String getStatesPattern(Reader data); + ResourceLocation statePatternId(); + @NotNull UnbakedModel getBlockModel(BlockState blockState); +} diff --git a/src/main/java/ru/betterend/patterns/Patterned.java b/src/main/java/ru/betterend/patterns/Patterned.java index 8fb7de92..0a70ec7c 100644 --- a/src/main/java/ru/betterend/patterns/Patterned.java +++ b/src/main/java/ru/betterend/patterns/Patterned.java @@ -1,5 +1,9 @@ package ru.betterend.patterns; +import net.minecraft.client.renderer.block.model.BlockModel; +import org.jetbrains.annotations.NotNull; + public interface Patterned { - String getModelPattern(String name); + String getModelString(String name); + @NotNull BlockModel getItemModel(); } \ No newline at end of file