User Tools

Site Tools


zh_cn:tutorial:items

Differences

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

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
Last revisionBoth sides next revision
zh_cn:tutorial:items [2022/12/16 00:09] – [如果我想更改物品的堆叠大小怎么办?] solidblockzh_cn:tutorial:items [2024/04/15 01:23] solidblock
Line 5: Line 5:
 添加一个基本的物品是编写模组的第一步。你将需要创建一个 ''Item'' 对象,注册,并提供一个纹理。要向物品添加其他行为,你将需要一个自定义的 ''Item'' 类。在本教程以及以后的所有教程中,均使用 ''tutorial'' 作为命名空间。如果你有单独的模组 ID,那就直接使用它。 添加一个基本的物品是编写模组的第一步。你将需要创建一个 ''Item'' 对象,注册,并提供一个纹理。要向物品添加其他行为,你将需要一个自定义的 ''Item'' 类。在本教程以及以后的所有教程中,均使用 ''tutorial'' 作为命名空间。如果你有单独的模组 ID,那就直接使用它。
 ==== 注册物品 ==== ==== 注册物品 ====
-首先,创建一个 ''Item'' 的实例,存储为静态常量字段。''Item'' 的构造方法接受一个 ''Item.Settings''(或 ''FabricItemSettings'')对象,该对象用于设置物品属性,例如耐久和堆叠数量。+首先,创建一个 ''Item'' 的实例,存储为静态常量字段。''Item'' 的构造方法接受一个 ''Item.Settings''(或 ''FabricItemSettings'',除非是 1.20.5 以上版本)对象,该对象用于设置物品属性,例如耐久和堆叠数量。
 <yarncode java [enable_line_numbers="true"]> <yarncode java [enable_line_numbers="true"]>
 public class ExampleMod implements ModInitializer { public class ExampleMod implements ModInitializer {
Line 13: Line 13:
 } }
 </yarncode> </yarncode>
-这里使用原版注册方式来注册,基本语法是 ''Registry#register(注册表类型, ID, 内容)'',注册表类型是存储在 ''Registries'' 或 ''Registry'' 对象中的静态字段,标识符用来给内容“加标签”。内容则是您添加的东西的一个实例。这可以随时调用,只要发生在初始化阶段。+这里使用原版注册方式来注册,基本语法是 ''Registry#register(注册表类型, ID, 内容)'',注册表类型是存储在 ''Registries'' 或 ''Registry'' 中的静态字段,标识符用来给内容“加标签”。内容则是您添加的东西的一个实例。这可以随时调用,只要发生在初始化阶段。
 <yarncode java [enable_line_numbers="true"]> <yarncode java [enable_line_numbers="true"]>
 public class ExampleMod implements ModInitializer { public class ExampleMod implements ModInitializer {
     // 新物品的实例     // 新物品的实例
 +    // 对于 1.20.4 之前版本
     public static final class_1792 CUSTOM_ITEM = new class_1792(new FabricItemSettings());     public static final class_1792 CUSTOM_ITEM = new class_1792(new FabricItemSettings());
 +    // 对于 1.20.5 之后版本
 +    public static final class_1792 CUSTOM_ITEM = new class_1792(new class_1792.class_1793());
  
     @Override     @Override
Line 25: Line 28:
 } }
 </yarncode> </yarncode>
-现在新物品已添加到 Minecraft 中,运行“Minecraft Client”运行配置或者 ''runClient'' Gradle任务以查看它的运行情况。+现在新物品已添加到 Minecraft 中,运行“Minecraft Client”运行配置或者 ''runClient'' Gradle任务以查看它的运行情况,在游戏内执行命令 ''/​give @s tutorial:​custom_item''
  
 {{:tutorial:2019-02-17_16.50.44.png?400|}} {{:tutorial:2019-02-17_16.50.44.png?400|}}
Line 36: Line 39:
     public static final class_1792 CUSTOM_ITEM =     public static final class_1792 CUSTOM_ITEM =
       class_2378.method_10230(class_7923.field_41178, new class_2960("tutorial", "custom_item"),       class_2378.method_10230(class_7923.field_41178, new class_2960("tutorial", "custom_item"),
-        new class_1792(new FabricItemSettings()));+        new class_1792(new class_1792.class_1793()));
  
     @Override     @Override
Line 91: Line 94:
  
     @Override     @Override
-    public class_1271<class_1799> method_7836(class_1937 world, class_1657 playerEntity, class_1268 hand) {+    public class_1271<class_1799> method_7836(class_1937 world, class_1657 user, class_1268 hand) {
         playerEntity.method_5783(class_3417.field_14983, 1.0F, 1.0F);         playerEntity.method_5783(class_3417.field_14983, 1.0F, 1.0F);
         return class_1271.method_22427(playerEntity.method_5998(hand));         return class_1271.method_22427(playerEntity.method_5998(hand));
Line 103: Line 106:
  
     // 新物品的实例     // 新物品的实例
-    public static final CustomItem CUSTOM_ITEM = new CustomItem(new FabricItemSettings());+    public static final CustomItem CUSTOM_ITEM = new CustomItem(new class_1792.class_1793());
     [...]     [...]
 } }
Line 111: Line 114:
 ==== 如果我想更改物品的堆叠大小怎么办? ==== ==== 如果我想更改物品的堆叠大小怎么办? ====
  
-使用 ''FabricItemSettings'' 内的 ''<yarn method_7889>(int size)'' 来指定最大堆叠数。请注意,如果你的物品是有耐久的(及耐久归零后会被破坏),那么此物品无法设置最大堆叠数,否则游戏将抛出 RuntimeException。+使用 ''Item.Settings'' 内的 ''maxCount(int size)'' 来指定最大堆叠数。请注意,如果你的物品是有耐久的(及耐久归零后会被破坏),那么此物品无法设置最大堆叠数,否则游戏将抛出 RuntimeException。
 <code java [enable_line_numbers="true"]> <code java [enable_line_numbers="true"]>
 public class ExampleMod implements ModInitializer { public class ExampleMod implements ModInitializer {
  
     // 我们新物品的实例,最大堆叠大小为16     // 我们新物品的实例,最大堆叠大小为16
-    public static final CustomItem CUSTOM_ITEM = new CustomItem(new FabricItemSettings().method_7889(16));+    public static final CustomItem CUSTOM_ITEM = new CustomItem(new class_1792.class_1793().maxCount(16));
     [...]     [...]
 } }
zh_cn/tutorial/items.txt · Last modified: 2024/04/15 01:25 by solidblock