item.itemBasicMars

基本信息

属性 值
注册名 item.itemBasicMars
物品类 ItemBasicMars
所属 modid GalacticraftMars
注册变量 MarsItems.marsItemBasic / marsItemBasic
构造 MarsItems.java:34 — new ItemBasicMars()(无参,且没有 setUnlocalizedName)
注册名来源 无显式设置 → 落到 net.minecraft.item.Item.getUnlocalizedName(),其返回 "item." + getClass().getSimpleName(),故为 item.itemBasicMars
注册 MarsItems.java:63
变体数 7(ItemBasicMars.names,ItemBasicMars.java:22)
源码 micdoodle8/mods/galacticraft/planets/mars/items/MarsItems.java

说明

⚠️ 注册名既不是变量名 marsItemBasic,也不是类名 ItemBasicMars。 MarsItems.java:34 的 new ItemBasicMars() 既没有字符串实参、也没有 .setUnlocalizedName(...),所以注册用的名字由 Item 基类的默认实现派生: "item." + getClass().getSimpleName() → item.itemBasicMars。 这是本分类里唯一一个注册名由基类默认值兜底的物品。

7 个 metadata 变体由 getUnlocalizedName(ItemStack) 覆写按 names[damage] 取名 (ItemBasicMars.java:71-77),显示名为: rawDesh、deshStick、ingotDesh、reinforcedPlateT2、slimelingCargo、 compressedDesh、fluidManip(ItemBasicMars.java:22)。 越界时返回字符串 "unnamed"(ItemBasicMars.java:76)。

⚠️ 覆写只影响带 ItemStack 的显示名;GameRegistry.registerItem 用的是 无参 getUnlocalizedName(),所以注册表里的键仍是 item.itemBasicMars。

说明

由 GalacticraftMars 注册,注册辅助方法为 registerItem(Item),其实现为:

// MarsItems.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 的不是同一个方法。

相关条目