MCBBS Wiki欢迎您共同参与编辑!在参与编辑之前请先阅读Wiki方针

如果在编辑的过程中遇到了什么问题,可以去讨论板提问。

为了您能够无阻碍地参与编辑 未验证/绑定过邮箱的用户,请尽快绑定/验证

MCBBS Wiki GitHub群组已上线!

您可以在回声洞中发表吐槽!

服务器状态监控。点击进入

本站由MCBBS用户自行搭建,与MCBBS及东银河系漫游指南(北京)科技有限公司没有从属关系。点此了解 MCBBS Wiki 不是什么>>

用户:MashKJo/1.21.1模组开发教程/5.1.第一个物品:修订间差异

跳到导航 跳到搜索
 
(未显示同一用户的6个中间版本)
第19行: 第19行:
  //别忘了在你的入口类构造方法中调用它!
  //别忘了在你的入口类构造方法中调用它!
  public static void register(IEventBus bus) {
  public static void register(IEventBus bus) {
ITEMS.register(bus);
    ITEMS.register(bus);
  }
  }


第30行: 第30行:


  {
  {
  "parent": "minecraft:item/generated",
    "parent": "minecraft:item/generated",
"textures": {
    "textures": {
"layer0": "tutorialmod:item/one_example_item"
        "layer0": "tutorialmod:item/one_example_item"
}
    }
  }
  }


第41行: 第41行:


=== 数据生成 ===
=== 数据生成 ===
鉴于作者还没研究明白物品/方块模型的数据生成,且复杂的物品/方块模型的数据生成很复杂,一般是在Blockbench中制作,直接导出为JSON,因此作者仍习惯于手写物品/方块模型的JSON,这里就不教数据生成了。
物品模型的对应的DataProvider实现类是ItemModelProvider,其提供了一些辅助方法来简化物品模型的datagen。
 
public class MyItemModelProvider extends ItemModelProvider {
    public MyItemModelProvider(PackOutput output, ExistingFileHelper existingFileHelper) {
        super(output, TutorialMod.MODID, existingFileHelper);
    }
    @Override
    protected void registerModels() {
        basicItem(ModItems.ONE_EXAMPLE_ITEM.get());
        //最简单的一个物品模型。
        withExistingParent(ModItems.ANOTHER_EXAMPLE_ITEM.getId().toString(), mcLoc("item/generated"))
                .texture("layer0", ResourceLocation.fromNamespaceAndPath(...))
        //通用的datagen代码,可以通过继续调用#texture增加更多层的纹理。
    }
}
 
简单的物品模型可以这样datagen出来。至于复杂的物品模型(如涉及到不同视角的自定义变换),一般是通过Blockbench做出来的,能直接导出为JSON文件,因此一般不通过datagen生成(虽然也确实可以)。


== 语言文件 ==
== 语言文件 ==
第50行: 第67行:


  {
  {
"item.tutorialmod.one_example_item": "One Example Item"
    "item.tutorialmod.one_example_item": "One Example Item"
  }
  }


第56行: 第73行:


  {
  {
"item.tutorialmod.one_example_item": "一个示例物品"
    "item.tutorialmod.one_example_item": "一个示例物品"
  }
  }


第71行: 第88行:
     @Override
     @Override
     protected void addTranslations() {
     protected void addTranslations() {
         addItem(ModItems.EXAMPLE_ITEM, "Example Item");
         addItem(ModItems.ONE_EXAMPLE_ITEM, "One Example Item");
         //添加某物品的本地化名。
         //添加某物品的本地化名。
         //还有其他一些辅助方法,如addBlock、addDimension之类的。
         //还有其他一些辅助方法,如addBlock、addDimension之类的。
第77行: 第94行:
     }
     }
  }
  }
中文语言文件的LanguageProvider类似,这里就不贴代码了。


最后不要忘了在GatherDataEvent监听器中添加你的LanguageProvider!
最后不要忘了在GatherDataEvent监听器中添加你的LanguageProvider!
行政员、​优秀编辑者、​界面管理员、​监督员、​管理员、​小部件编辑者
3,417

个编辑

我们提供服务需要使用Cookie。您使用我们的服务,即表示您同意我们使用Cookie。

导航菜单