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
zh_cn:tutorial:items [2023/11/18 08:03] solidblockzh_cn:tutorial:items [2024/04/15 01:25] (current) – [如果我想更改物品的堆叠大小怎么办?] 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 17: Line 17:
 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 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"]>+<yarncode 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));
     [...]     [...]
 } }
-</code>+</yarncode>
  
 ==== 让物品能作为燃料或者可堆肥 ==== ==== 让物品能作为燃料或者可堆肥 ====
zh_cn/tutorial/items.1700294597.txt.gz · Last modified: 2023/11/18 08:03 by solidblock