ExtraTrees 杂项物品
基本信息
| 属性 | 值 |
|---|---|
| 注册名 | ExtraTrees:misc(只有一个注册名) |
| 变种方式 | ItemStack 的 damage 值 = 枚举 ordinal()(0-5) |
| 数量 | 6 种,其中创造栏可见 5 种 |
⚠️ 已订正(重大:注册名机制写错):原文把
carpentryHammer、sawdust、bark等当成各自的注册名。错的——它们是枚举构造参数name,只用于 i18n 键和图标路径。binnie/core/item/ItemMisc.java:20-27只注册一次:setUnlocalizedName("misc"); registerItem(this, getUnlocalizedName().substring(5)); // → "misc"6 个变种共用一个
Item,靠 damage =ordinal()区分(ItemMisc.java:47-49)。游戏内不存在ExtraTrees:carpentryHammer这个资源名。✅ 原文 6 个枚举名与顺序经复核完全正确(
extratrees/item/ExtraTreeItems.java:13-19)。
6 种变种(damage = ordinal())
| damage | 枚举名 | name(仅 i18n/图标用) |
创造栏可见 | 说明 |
|---|---|---|---|---|
| 0 | CarpentryHammer |
carpentryHammer |
否 | 木匠锤 |
| 1 | Sawdust |
sawdust |
是 | 锯末 |
| 2 | Bark |
bark |
是 | 树皮 |
| 3 | ProvenGear |
provenGear |
是 | 验证齿轮 |
| 4 | WoodWax |
woodWax |
是 | 木蜡 |
| 5 | GlassFitting |
glassFitting |
是 | 玻璃配件 |
已复核正确的原文断言
⚠️ 已订正(该断言正确,保留并给出证据):原文「
CarpentryHammer的isActive()返回false,表示该物品不激活(不可见)」完全正确:public boolean isActive() { return this != ExtraTreeItems.CarpentryHammer; } // ExtraTreeItems.java:52-54
ItemMisc.getSubItems只把isActive()为 true 的加入创造栏(ItemMisc.java:33-37),所以木匠锤仍可通过合成/代码取得,但不进创造栏。⚠️ 补充(原文未写清的「不可见」含义):不是「未注册」也不是「无资源」,它照样占用 damage 0,只是创造栏不列出。
统一注册
- 实例化:
ExtraTrees.itemMisc = new ItemMisc(Tabs.tabArboriculture, ExtraTreeItems.values()) - 取得物品:
ExtraTreeItems.X.get(n)→new ItemStack(ExtraTrees.itemMisc, n, X.ordinal())(ExtraTreeItems.java:56-58) - i18n 键格式:
extratrees.item.<name>(无.name后缀,ExtraTreeItems.java:43-45)
⚠️ mod 自身缺陷(i18n 键格式不一致):同一套
ItemMisc机制下,四个枚举的 i18n 键格式不统一——botany.item.<n>.name(BotanyItems.java:54)、genetics.item.<n>.name(GeneticsItems.java:54)带.name;extratrees.item.<n>(ExtraTreeItems.java:44)、extrabees.item.<n>(ExtraBeeItems.java:217)不带。翻译文件需分别处理。
源码引用
- 枚举:
binnie/extratrees/item/ExtraTreeItems.java - 注册机制:
binnie/core/item/ItemMisc.java - 实现接口:
IItemMisc