User Tools

Site Tools


zh_cn:tutorial:datagen_model

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
zh_cn:tutorial:datagen_model [2023/02/17 15:20] – created hanatomizuzh_cn:tutorial:datagen_model [2023/02/24 10:41] (current) – [生成模型] 不明白上次创建页面的时候在想什么,抱歉。感谢 solidblock 修正了很多错误。 hanatomizu
Line 34: Line 34:
 =====添加方块模型===== =====添加方块模型=====
  
-''BlockStateModelGenerator'' 类包含了很多创建方块模型的方法。在本例中,我们将会创建一个每个面都相同的方块。同时作为 ''minecraft:block/cube_all'' 出现在 JSON 中+''BlockStateModelGenerator'' 类包含了很多创建方块模型的方法。在本例中,我们将会创建一个每个面都相同的方块,也就是 JSON 中的 ''minecraft:block/cube_all''
  
 <code java> <code java>
-public static Block SIMPLE_BLOCK = Registry.register(Registry.BLOCK, new Identifier("mymod", "simple_block"), new Block(...)); +public static Block SIMPLE_BLOCK = Registry.register(Registries.BLOCK, new Identifier("tutorial", "simple_block"), new Block(...)); 
-public static BlockItem SIMPLE_BLOCK_ITEM = Registry.register(Registry.ITEM, ..., new BlockItem(SIMPLE_BLOCK, ...));+public static BlockItem SIMPLE_BLOCK_ITEM = Registry.register(Registries.ITEM, ..., new BlockItem(SIMPLE_BLOCK, ...));
 // ... // ...
  
Line 47: Line 47:
 </code> </code>
  
-因为 ''SIMPLE_BLOCK'' 的 ''BlockItem'' 已经存在并且已经注册,所以一个项目模型也会自动生成,作为块模型的父级。这可以在 ''generateItemModels'' 方法中重写。+因为 ''SIMPLE_BLOCK'' 的 ''BlockItem'' 已经存在并且已经注册,所以会自动生成一个物品模型该物品模型直接继承方块模型。这可以在 ''generateItemModels'' 方法中重写。
  
 ====严格验证===== ====严格验证=====
  
-默认情况下,如果运行没有为所有属于处理 mods 的块生成块状态,数据生成将报错。Fabric API 允许禁用该功能为此,请编辑你的 ''build.gradle'' 文件,删除 ''-Dfabric-api.datagen.strict-validation'',VM 参数将会来自 ''loom{}'' +默认情况下,如果运行过程中,没有为所有属于处理的模组的方块生成模型,数据生成将报错。Fabric API 允许禁用该功能为此,请编辑你的 ''build.gradle'' 文件,删除 ''loom {}'' 块中的 VM 参数 ''-Dfabric-api.datagen.strict-validation''
 =====添加物品模型===== =====添加物品模型=====
  
-''ItemModelGenerator'' 包含了多种创建物品模型的方法。+''ItemModelGenerator'' 包含了其他的多种创建物品模型的方法。
  
-在这个例子中,我们重写上一个例子中的 ''SIMPLE_BLOCK'' 方块模型生成的项目模型。我们将从 ''SIMPLE_BLOCK_ITEM''生成一个项目模型。+在这个例子中,我们重写上一个例子中的 ''SIMPLE_BLOCK'' 方块模型生成的物品模型。我们将从 ''SIMPLE_BLOCK_ITEM'' 生成一个物品模型。
  
 <code java> <code java>
-public static Block SIMPLE_BLOCK = Registry.register(Registry.BLOCK, new Identifier("mymod", "simple_block"), new Block(...)); +public static Block SIMPLE_BLOCK = Registry.register(Registries.BLOCK, new Identifier("tutorial", "simple_block"), new Block(...)); 
-public static BlockItem SIMPLE_BLOCK_ITEM = Registry.register(Registry.ITEM, ..., new BlockItem(SIMPLE_BLOCK, ...));+public static BlockItem SIMPLE_BLOCK_ITEM = Registry.register(Registries.ITEM, ..., new BlockItem(SIMPLE_BLOCK, ...));
 // ... // ...
  
Line 72: Line 71:
 FIXME //**正在施工中**// FIXME //**正在施工中**//
  
-====的数据生成====+==== 为带有朝向的方块添加数据生成 ====
  
-**快速警告**:这将非常复杂!!!+**警告**:这将非常复杂!!!
  
-在本例中,我们将为 ''MACHINE_BLOCK'' 生成向块。+在本例中,我们将为 ''MACHINE_BLOCK'' 生成带有朝的方模型
  
 首先,添加方块自身并且注册它。 首先,添加方块自身并且注册它。
 +
 <code java> <code java>
-// 在 Tutorial 类里 (或者你自己的 mod 的初始化类中)+// 在 Tutorial 类或者你自己的模组的初始化类中
 public static final Block MACHINE_BLOCK = new Block(FabricBlockSettings.copy(Blocks.BLAST_FURNACE)); public static final Block MACHINE_BLOCK = new Block(FabricBlockSettings.copy(Blocks.BLAST_FURNACE));
  
 @Override @Override
-public void onInitialize() +public void onInitialize() { 
-+    Registry.register(Registries.BLOCK, new Identifier("tutorial", "machine"), MACHINE_BLOCK);
-    Registry.register(Registry.BLOCK, new Identifier("tutorial", "machine"), MACHINE_BLOCK);+
 } }
 </code> </code>
  
-现在我们成功地注册好了方块,让我们进入重点+现在我们成功地注册好了方块,让我们向好的方向发展
  
 <code java> <code java>
zh_cn/tutorial/datagen_model.1676647256.txt.gz · Last modified: 2023/02/17 15:20 by hanatomizu