User Tools

Site Tools


zh_cn:tutorial:itemgroup

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:itemgroup [2024/08/23 13:03] solidblockzh_cn:tutorial:itemgroup [2024/08/23 13:06] (current) – [创建自定义物品组] solidblock
Line 1: Line 1:
 ====== 物品组 ====== ====== 物品组 ======
  
-//这是 1.20+ 版本的教程,对于 1.19 版本,请阅读[[tutorial:1.19:itemgroup1.19:itemgroup|创建物品组(1.19)(英文)]]。//+//这是 1.20+ 版本的教程,对于 1.19 版本,请阅读[[tutorial:1.19:itemgroup|创建物品组(1.19)(英文)]]。//
  
 现在,你可以使用命令 ''/give @s tutorial:custom_item'' 来获得你的物品。但是,不像原版物品,它还不存在于任何物品组中,你不能在创造模式轻易获取!有两种方式实现: 现在,你可以使用命令 ''/give @s tutorial:custom_item'' 来获得你的物品。但是,不像原版物品,它还不存在于任何物品组中,你不能在创造模式轻易获取!有两种方式实现:
Line 71: Line 71:
 如果你认为需要自己的物品组,可以使用 ''FabricItemGroup.builder'' 方法来创建物品组的构建器,并调用 ''build'' 方法来完成: 如果你认为需要自己的物品组,可以使用 ''FabricItemGroup.builder'' 方法来创建物品组的构建器,并调用 ''build'' 方法来完成:
 <yarncode java [enable_line_numbers="true"]> <yarncode java [enable_line_numbers="true"]>
-private static final class_1761 ITEM_GROUP = FabricItemGroup.builder() +public final class TutorialItemGroups { 
- .icon(() -> new class_1799(CUSTOM_ITEM)) +    public static final class_1761 TEST_GROUP = FabricItemGroup.builder() 
- .displayName(class_2561.method_43469("itemGroup.tutorial.test_group"))+        .icon(() -> new class_1799(TutorialItems.CUSTOM_ITEM)) 
 +        .displayName(class_2561.method_43469("itemGroup.tutorial.test_group"))
         .entries((context, entries) -> {         .entries((context, entries) -> {
- entries.add(CUSTOM_ITEM); +            entries.add(TutorialItems.CUSTOM_ITEM); 
- }) +        }) 
- .build();+        .build(); 
 +}
 </yarncode> </yarncode>
  
Line 87: Line 89:
  
 <yarncode java [enable_line_numbers="true"]> <yarncode java [enable_line_numbers="true"]>
-class_2378.method_10230(class_7923.field_44687, new class_2960("tutorial", "test_group"), ITEM_GROUP);+public final class TutorialItemGroups { 
 +    // .... 
 +     
 +    public static void initialize() { 
 +        // 自从 1.21: 
 +        class_2378.method_10230(class_7923.field_44687, Identifier.of("tutorial", "test_group"), ITEM_GROUP); 
 +         
 +        // 在 1.21 之前: 
 +        class_2378.method_10230(class_7923.field_44687, new class_2960("tutorial", "test_group"), ITEM_GROUP); 
 +    } 
 +}
 </yarncode> </yarncode>
 +
 +当然,也可以在给字段赋值时,直接注册:
 +<yarncode java [enable_line_numbers="true"]>
 +public final class TutorialItemGroups {
 +    public static final class_1761 TEST_GROUP = class_2378.method_10230(class_7923.field_44687, new class_2960("tutorial", "test_group"), FabricItemGroup.builder()
 +        .icon(() -> new class_1799(CUSTOM_ITEM))
 +        .displayName(class_2561.method_43469("itemGroup.tutorial.test_group"))
 +        .entries((context, entries) -> {
 +            entries.add(TutorialItems.CUSTOM_ITEM);
 +        })
 +        .build());
 +    
 +    public static void initialize() {
 +    }
 +}
 +</yarncode>
 +
 +记得在你的 ''ModInitializer'' 中静态加载类。
 +<yarncode java [enable_line_numbers="true"]>
 +public class ExampleMod implements ModInitializer {
 +    @Override
 +    public void onInitialize() {
 +        TutorialItemGroups.initialize();
 +    }
 +}
 +</yarncode>
 +
 +:!: 下面的截图已过时。
  
 {{:tutorial:item_group_append_items.png?nolink&400|}} {{:tutorial:item_group_append_items.png?nolink&400|}}
zh_cn/tutorial/itemgroup.1724418231.txt.gz · Last modified: 2024/08/23 13:03 by solidblock