跳到正文
烈焰甘蔗Wiki

Botany 杂项物品

基本信息

属性 值
注册名 Botany:misc(只有一个注册名)
变种方式 ItemStack 的 damage 值 = 枚举 ordinal()(0-7)
数量 8 种

⚠️ 已订正(重大:注册名机制写错):原文的「物品列表」表把 powderAsh、powderPulp、mortar、weedkiller 等 8 个字符串当成各自的注册名。这是错的——它们只是枚举构造参数里的 name,用途有且仅有两个:

  1. i18n 键:I18N.localise("botany.item." + name + ".name")(botany/items/BotanyItems.java:53-55)
  2. 图标路径:iconPath = name(:30-32),经 Botany.proxy.getIcon(register, iconPath) 载入(:40-42)

注册过程(binnie/core/item/ItemMisc.java:20-27)只发生一次:

setUnlocalizedName("misc");
registerItem(this, getUnlocalizedName().substring(5));   // → "misc"

8 个物品共用这一个 Item 实例,靠 setHasSubtypes(true) + getStack(type, size) 返回 new ItemStack(this, size, type.ordinal()) 区分(ItemMisc.java:47-49,BotanyItems.java:59-61)。 换言之:游戏内不存在 Botany:powderAsh 这个资源名,/give @p Botany:powderAsh 无效。

8 种变种(damage = ordinal())

damage 枚举名 name(仅 i18n/图标用) 说明
0 AshPowder powderAsh 灰粉
1 PulpPowder powderPulp 纸浆粉
2 MulchPowder powderMulch 覆盖物粉
3 SulphurPowder powderSulphur 硫磺粉
4 FertiliserPowder powderFertiliser 肥料粉
5 CompostPowder powderCompost 堆肥粉
6 Mortar mortar 砂浆
7 Weedkiller weedkiller 除草剂

✅ 原文的 8 个枚举名与顺序经复核完全正确(BotanyItems.java:14-22),错的只是「注册名」这一列的含义。

统一注册

  • 实例化:Botany.misc = new ItemMisc(CreativeTabBotany.instance, BotanyItems.values())(botany/gardening/ModuleGardening.java:80)
  • 取得物品:BotanyItems.X.get(n) → new ItemStack(Botany.misc, n, X.ordinal())
  • isActive() 恒为 true,8 种全部出现在创造栏(BotanyItems.java:63-66)
  • i18n 键格式:botany.item.<name>.name(注意带 .name 后缀)
  • 创造栏:CreativeTabBotany.instance

源码引用

  • 枚举:binnie/botany/items/BotanyItems.java
  • 注册机制:binnie/core/item/ItemMisc.java
  • 实现接口:IItemMisc(binnie/core/item/IItemMisc.java)
浏览全部模组