bucketFuel

基本信息

属性 值
注册名 bucketFuel
本地名 bucketFuel
物品类 ItemBucketGC
所属 modid GalacticraftCore
注册变量 GCItems.bucketFuel / bucketFuel
构造 core/GalacticraftCore.java:488 — new ItemBucketGC(GCBlocks.fuel, TEXTURE_PREFIX)
注册名来源 core/GalacticraftCore.java:489 — GCItems.bucketFuel.setUnlocalizedName("bucketFuel")
注册 core/GalacticraftCore.java:490 — GCItems.registerItem(GCItems.bucketFuel)
源码 micdoodle8/mods/galacticraft/core/GalacticraftCore.java

说明

火箭燃料桶。与 bucketOil 同一套写法,同样不在 GCItems.java 里, 而是在 core/GalacticraftCore.java:487-495、夹在 fuel 流体块注册之后。

双重条件门控(core/GalacticraftCore.java:487):

if (GCBlocks.fuel != null && Item.itemRegistry.getObject("buildcraftenergy:items/bucketFuel") == null) {
    GCItems.bucketFuel = new ItemBucketGC(GCBlocks.fuel, TEXTURE_PREFIX);
    GCItems.bucketFuel.setUnlocalizedName("bucketFuel");
    GCItems.registerItem(GCItems.bucketFuel);
    ...
}

GCBlocks.fuel != null 只保证变量被赋值——注意 fuel 流体块自身是 if (fluidFuel.getBlock() == null) … else GCBlocks.fuel = fluidFuel.getBlock(), 所以在「别的 mod 已注册 fuel 流体」的情况下 GCBlocks.fuel 非空但不是 GC 注册的, 此时 bucketFuel 仍会被 GC 注册,只是它装的是别人的 fuel 方块。

Item.itemRegistry.getObject("buildcraftenergy:items/bucketFuel") == null 则保证 BuildCraft Energy 有桶时 GC 让位。

注册走 GCItems.registerItem(Item)(GCItems.java:330-332), 写死 Constants.MOD_ID_CORE,与本物品所属 modid 一致。

相关条目