我的世界1.8.9模组开发:方块物品栏纹理丢失问题求助
我的世界1.8.9 Forge模组物品栏方块纹理丢失问题
我正在开发我的世界1.8.9版本(Forge 11.15.1.2318)的模组。运行游戏时,模组方块对应的物品在物品栏中丢失纹理,但放置后的方块显示正常。
截图:
相关代码
ClientProxy.java
public class ClientProxy extends CommonProxy { @Override public void registerRenders() { ModItems.registerRenders(); ModBlocks.registerRenders(); } }
ModBlocks.java
public class ModBlocks { public static Block vibranium_ore; public static Block vibranium_block; public static void init() { vibranium_ore = new BlockVibraniumOre("vibranium_ore"); vibranium_block = new BlockVibraniumBlock("vibranium_block"); } public static void register() { registerBlock(vibranium_ore); registerBlock(vibranium_block); } public static void registerRenders() { registerRender(vibranium_ore); registerRender(vibranium_block); } public static void registerBlock(Block block) { GameRegistry.registerBlock(block, block.getUnlocalizedName().substring(5)); Logging.log("Registered Block: " + block.getUnlocalizedName().substring(5)); } public static void registerRender(Block block) { Item item = Item.getItemFromBlock(block); Minecraft.getMinecraft().getRenderItem().getItemModelMesher().register(item, 0, new ModelResourceLocation(Reference.MODID + ":" + item.getUnlocalizedName().substring(5), "inventory")); } }
模型配置
方块模型(vibranium_block.json)
{ "parent": "block/cube_all", "textures": { "all": "legtech:blocks/res/pure/ingot/vb" } }
物品模型(vibranium_block.json)
{ "parent": "block/vibranium_block", "textures": { "layer0": "legtech:blocks/res/pure/ingot/vb" }, "display": { "thirdperson": { "rotation": [ 10, -45, 170 ], "translation": [ 0, 1.5, -2.75 ], "scale": [ 0.375, 0.375, 0.375 ] } } }
问题解决方法
1. 修正物品模型的父级引用
1.8.9 Forge中,物品模型继承方块模型时,必须使用带MODID的完整路径。修改物品模型的parent字段:
"parent": "legtech:block/vibranium_block"
2. 移除冗余的纹理定义
因为已经继承了方块模型的纹理配置,无需重复声明textures字段,简化后的物品模型如下:
{ "parent": "legtech:block/vibranium_block", "display": { "thirdperson": { "rotation": [ 10, -45, 170 ], "translation": [ 0, 1.5, -2.75 ], "scale": [ 0.375, 0.375, 0.375 ] } } }
3. 校验资源文件路径与命名
- 方块模型文件需放在
resources/assets/legtech/models/block/目录下,对应命名为vibranium_block.json、vibranium_ore.json - 物品模型文件需放在
resources/assets/legtech/models/item/目录下,对应命名为vibranium_block.json、vibranium_ore.json - 纹理文件需存在于
resources/assets/legtech/textures/blocks/res/pure/ingot/目录下,命名为vb.png
4. 确认MODID一致性
检查Reference.MODID的值是否为legtech,确保和模型、纹理中的命名空间完全匹配,否则会导致资源加载失败。
内容的提问来源于stack exchange,提问作者hye0ngit
相关产品推荐
相关产品推荐

