跳转至

原文:MinecraftForge/Documentation · 目标版本:Forge 1.20.1

物品

与方块(Block)一样,物品(Item)也是大多数模组的关键组成部分。方块构成了你周围的世界,而物品则存在于物品栏与容器(inventory)之中。

创建物品

基础物品

不需要特殊功能的基础物品(比如木棍或糖)无需自定义类。你可以通过实例化 Item 类并传入一个 Item$Properties 对象来创建物品。这个 Item$Properties 对象可以通过其构造函数创建,并通过调用它的方法进行定制。例如:

方法 说明
requiredFeatures 设置所需的 FeatureFlags,用于决定该物品是否显示在它所加入的 CreativeModeTab(创造模式标签页)中。
durability 设置该物品的最大耐久值。如果大于 0,会额外添加 "damaged" 和 "damage" 两个物品属性。
stacksTo 设置最大堆叠数量。一个物品不能既可损耗又可堆叠。
setNoRepair 使该物品无法被修复,即使它是可损耗的。注意:该方法在 Forge 1.20.1 中尚不存在,属于后续版本新增的方法;在 1.20.1 中如需禁止修复,可以覆写(Override)Item#isValidRepairItem 并返回 false
craftRemainder 设置该物品的容器物品(container item),就像岩浆桶在使用后会给你留下一个空桶一样。

上述方法都支持链式调用(chainable),即它们会 return this,以便连续调用。

进阶物品

像上面那样设置物品属性只适用于简单物品。如果你想要更复杂的物品,就应该继承 Item 类并覆写它的方法。

创造模式标签页

可以通过模组事件总线上的 BuildCreativeModeTabContentsEvent 将物品添加到 CreativeModeTab 中。通过 #accept 可以无需任何额外配置地添加一个或多个物品。

// 注册在 MOD 事件总线上
// 假设我们有名为 ITEM 和 BLOCK 的 RegistryObject<Item> 和 RegistryObject<Block>
@SubscribeEvent
public void buildContents(BuildCreativeModeTabContentsEvent event) {
  // 添加到“材料”标签页
  if (event.getTabKey() == CreativeModeTabs.INGREDIENTS) {
    event.accept(ITEM);
    event.accept(BLOCK); // 接收 ItemLike,假定方块已注册了对应的物品
  }
}

你还可以通过 FeatureFlagSet 中的 FeatureFlag,或通过一个决定玩家是否有权限查看管理员(operator)创造标签页的布尔值,来启用或禁用物品的添加。

自定义创造标签页

自定义的 CreativeModeTab 必须注册。可以通过 CreativeModeTab#builder 创建构建器(builder)。标签页可以设置标题、图标、默认物品以及许多其他属性。此外,Forge 还提供了额外的方法来自定义标签页的图像、标签和格子(slot)颜色、标签页的排列位置等。

// 假设我们有一个名为 REGISTRAR 的 DeferredRegister<CreativeModeTab>
// 假设我们有名为 ITEM 和 BLOCK 的 RegistryObject<Item> 和 RegistryObject<Block>
public static final RegistryObject<CreativeModeTab> EXAMPLE_TAB = REGISTRAR.register("example", () -> CreativeModeTab.builder(CreativeModeTab.Row.TOP, 0)
  // 设置标签页显示的名称
  .title(Component.translatable("item_group." + MOD_ID + ".example"))
  // 设置创造标签页的图标
  .icon(() -> new ItemStack(ITEM.get()))
  // 向标签页添加默认物品
  .displayItems((params, output) -> {
    output.accept(ITEM.get());
    output.accept(BLOCK.get());
  })
  .build()
);

注册物品

物品必须注册才能正常工作。

相关章节