itemBasicAsteroids
基本信息
| 属性 | 值 |
|---|---|
| 注册名 | itemBasicAsteroids |
| 物品类 | ItemBasicAsteroids |
| 所属 modid | GalacticraftMars |
| 注册变量 | AsteroidsItems.basicItem / basicItem |
| 构造 | AsteroidsItems.java:47 — new ItemBasicAsteroids()(无参) |
| 注册名来源 | ItemBasicAsteroids.java:29 — 构造器内 this.setUnlocalizedName("itemBasicAsteroids") |
| 注册 | AsteroidsItems.java:89 |
| 变体数 | 9(ItemBasicAsteroids.names,ItemBasicAsteroids.java:22) |
| 源码 | micdoodle8/mods/galacticraft/planets/asteroids/items/AsteroidsItems.java |
说明
⚠️ 注册名是 itemBasicAsteroids,变量名却是 basicItem——两者不同。
GameRegistry 用的第三个参数是 item.getUnlocalizedName(),而
ItemBasicAsteroids 的无参构造器在 ItemBasicAsteroids.java:29 调
setUnlocalizedName("itemBasicAsteroids"),所以真实注册 id 是
GalacticraftMars:itemBasicAsteroids。
9 个 metadata 变体(ItemBasicAsteroids.names,ItemBasicAsteroids.java:22):
reinforcedPlateT3、engineT2、rocketFinsT2、shardIron、shardTitanium、
ingotTitanium、compressedTitanium、thermalCloth、beamCore,
逐个由 getUnlocalizedName(ItemStack) 按 names[damage] 取名
(ItemBasicAsteroids.java:72-74)。
💡 同一「变量名 ≠ 注册名」的坑在 Core 侧也有一处:
GCItems.basicItem的注册名就是basicItem(GCItems.java:118new ItemBasic("basicItem")),21 个变体(ItemBasic.names,ItemBasic.java:27)。 两个basicItem分属不同 modid(GalacticraftCore:basicItemvsGalacticraftMars:itemBasicAsteroids), 不冲突。
说明
由 GalacticraftMars 注册,注册辅助方法为 registerItem(Item),其实现为:
// AsteroidsItems.java —— 本类**自带的** registerItem 辅助方法
public static void registerItem(Item item) {
GameRegistry.registerItem(item, item.getUnlocalizedName(), Constants.MOD_ID_PLANETS);
}
Constants.MOD_ID_PLANETS的值是GalacticraftMars(core/Constants.java:8), 与本条目所属 modid 一致。Mars / Asteroids 各有自己的registerItem, 与GCItems.java:330-332那个写死MOD_ID_CORE的不是同一个方法。
相关条目
- Galacticraft 分类页 - 2 个 modid、4 个维度的总览与注册真源