Botany 杂项物品
基本信息
| 属性 | 值 |
|---|---|
| 注册名 | Botany:misc(只有一个注册名) |
| 变种方式 | ItemStack 的 damage 值 = 枚举 ordinal()(0-7) |
| 数量 | 8 种 |
⚠️ 已订正(重大:注册名机制写错):原文的「物品列表」表把
powderAsh、powderPulp、mortar、weedkiller等 8 个字符串当成各自的注册名。这是错的——它们只是枚举构造参数里的name,用途有且仅有两个:
- i18n 键:
I18N.localise("botany.item." + name + ".name")(botany/items/BotanyItems.java:53-55)- 图标路径:
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)