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:118 new ItemBasic("basicItem")),21 个变体(ItemBasic.names,ItemBasic.java:27)。 两个 basicItem 分属不同 modid(GalacticraftCore:basicItem vs GalacticraftMars: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 的不是同一个方法。

相关条目