diff --git a/src/main/java/com/hbm/crafting/RodRecipes.java b/src/main/java/com/hbm/crafting/RodRecipes.java index 91b675b0a..df96051fd 100644 --- a/src/main/java/com/hbm/crafting/RodRecipes.java +++ b/src/main/java/com/hbm/crafting/RodRecipes.java @@ -3,6 +3,7 @@ package com.hbm.crafting; import static com.hbm.inventory.OreDictManager.*; import com.hbm.items.ModItems; import com.hbm.items.machine.ItemBreedingRod.*; +import com.hbm.items.machine.ItemZirnoxRod.EnumZirnoxType; import com.hbm.main.CraftingManager; import cpw.mods.fml.common.registry.GameRegistry; @@ -21,17 +22,17 @@ public class RodRecipes { //Zirnox Fuel GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.rod_zirnox_empty, 4), new Object[] { "Z Z", "ZBZ", "Z Z", 'Z', "nuggetZirconium", 'B', "ingotBeryllium" })); - addZIRNOXRod(U, ModItems.rod_zirnox_natural_uranium_fuel); - addZIRNOXRod(ModItems.billet_uranium_fuel, ModItems.rod_zirnox_uranium_fuel); - addZIRNOXRod(TH232, ModItems.rod_zirnox_th232); - addZIRNOXRod(ModItems.billet_thorium_fuel, ModItems.rod_zirnox_thorium_fuel); - addZIRNOXRod(ModItems.billet_mox_fuel, ModItems.rod_zirnox_mox_fuel); - addZIRNOXRod(ModItems.billet_plutonium_fuel, ModItems.rod_zirnox_plutonium_fuel); - addZIRNOXRod(U233, ModItems.rod_zirnox_u233_fuel); - addZIRNOXRod(U235, ModItems.rod_zirnox_u235_fuel); - addZIRNOXRod(ModItems.billet_les, ModItems.rod_zirnox_les_fuel); - CraftingManager.addShapelessAuto(new ItemStack(ModItems.rod_zirnox_lithium), new Object[] { ModItems.rod_zirnox_empty, LI.ingot(), LI.ingot() }); - CraftingManager.addShapelessAuto(new ItemStack(ModItems.rod_zirnox_zfb_mox), new Object[] { ModItems.rod_zirnox_empty, ModItems.billet_mox_fuel, ZR.billet() }); + addZIRNOXRod(U, EnumZirnoxType.NATURAL_URANIUM_FUEL); + addZIRNOXRod(ModItems.billet_uranium_fuel, EnumZirnoxType.URANIUM_FUEL); + addZIRNOXRod(TH232, EnumZirnoxType.TH232); + addZIRNOXRod(ModItems.billet_thorium_fuel, EnumZirnoxType.THORIUM_FUEL); + addZIRNOXRod(ModItems.billet_mox_fuel, EnumZirnoxType.MOX_FUEL); + addZIRNOXRod(ModItems.billet_plutonium_fuel, EnumZirnoxType.PLUTONIUM_FUEL); + addZIRNOXRod(U233, EnumZirnoxType.U233_FUEL); + addZIRNOXRod(U235, EnumZirnoxType.U235_FUEL); + addZIRNOXRod(ModItems.billet_les, EnumZirnoxType.LES_FUEL); + CraftingManager.addShapelessAuto(new ItemStack(ModItems.rod_zirnox, 1, EnumZirnoxType.LITHIUM.ordinal()), new Object[] { ModItems.rod_zirnox_empty, LI.ingot(), LI.ingot() }); + CraftingManager.addShapelessAuto(new ItemStack(ModItems.rod_zirnox, 1, EnumZirnoxType.ZFB_MOX.ordinal()), new Object[] { ModItems.rod_zirnox_empty, ModItems.billet_mox_fuel, ZR.billet() }); CraftingManager.addShapelessAuto(new ItemStack(ModItems.waste_natural_uranium, 2, 1), new Object[] { ModItems.rod_zirnox_natural_uranium_fuel_depleted }); CraftingManager.addShapelessAuto(new ItemStack(ModItems.waste_uranium, 2, 1), new Object[] { ModItems.rod_zirnox_uranium_fuel_depleted }); @@ -215,12 +216,12 @@ public class RodRecipes { } /** Fill ZIRNOX rod with two billets **/ - public static void addZIRNOXRod(Item billet, Item out) { - CraftingManager.addShapelessAuto(new ItemStack(out), new Object[] { ModItems.rod_zirnox_empty, billet, billet }); + public static void addZIRNOXRod(Item billet, EnumZirnoxType num) { + CraftingManager.addShapelessAuto(new ItemStack(ModItems.rod_zirnox, 1, num.ordinal()), new Object[] { ModItems.rod_zirnox_empty, billet, billet }); } /** Fill ZIRNOX rod with two billets with OreDict **/ - public static void addZIRNOXRod(DictFrame mat, Item out) { - CraftingManager.addShapelessAuto(new ItemStack(out), new Object[] { ModItems.rod_zirnox_empty, mat.billet(), mat.billet() }); + public static void addZIRNOXRod(DictFrame mat, EnumZirnoxType num) { + CraftingManager.addShapelessAuto(new ItemStack(ModItems.rod_zirnox, 1, num.ordinal()), new Object[] { ModItems.rod_zirnox_empty, mat.billet(), mat.billet() }); } } diff --git a/src/main/java/com/hbm/hazard/HazardRegistry.java b/src/main/java/com/hbm/hazard/HazardRegistry.java index 4b2cfc43b..a105d4e87 100644 --- a/src/main/java/com/hbm/hazard/HazardRegistry.java +++ b/src/main/java/com/hbm/hazard/HazardRegistry.java @@ -13,6 +13,7 @@ import com.hbm.inventory.material.MaterialShapes; import com.hbm.items.ModItems; import com.hbm.items.machine.ItemBreedingRod.BreedingRodType; import com.hbm.items.machine.ItemRTGPelletDepleted.DepletedRTGMaterial; +import com.hbm.items.machine.ItemZirnoxRod.EnumZirnoxType; import com.hbm.items.special.ItemHolotapeImage.EnumHoloImage; import com.hbm.util.Compat; import com.hbm.util.Compat.ReikaIsotope; @@ -218,17 +219,17 @@ public class HazardRegistry { HazardSystem.register(new ItemStack(ModBlocks.sellafield, 1, 4), makeData(RADIATION, 5F)); HazardSystem.register(new ItemStack(ModBlocks.sellafield, 1, 5), makeData(RADIATION, 10F)); - registerOtherFuel(rod_zirnox_natural_uranium_fuel, u * rod_dual, wst * rod_dual * 11.5F, false); - registerOtherFuel(rod_zirnox_uranium_fuel, uf * rod_dual, wst * rod_dual * 10F, false); - registerOtherFuel(rod_zirnox_th232, th232 * rod_dual, thf * rod_dual, false); - registerOtherFuel(rod_zirnox_thorium_fuel, thf * rod_dual, wst * rod_dual * 7.5F, false); - registerOtherFuel(rod_zirnox_mox_fuel, mox * rod_dual, wst * rod_dual * 10F, false); - registerOtherFuel(rod_zirnox_plutonium_fuel, puf * rod_dual, wst * rod_dual * 12.5F, false); - registerOtherFuel(rod_zirnox_u233_fuel, u233 * rod_dual, wst * rod_dual * 10F, false); - registerOtherFuel(rod_zirnox_u235_fuel, u235 * rod_dual, wst * rod_dual * 11F, false); - registerOtherFuel(rod_zirnox_les_fuel, saf * rod_dual, wst * rod_dual * 15F, false); - registerOtherFuel(rod_zirnox_lithium, 0, 0.001F * rod_dual, false); - registerOtherFuel(rod_zirnox_zfb_mox, mox * rod_dual, wst * rod_dual * 5F, false); + registerOtherFuel(rod_zirnox, EnumZirnoxType.NATURAL_URANIUM_FUEL.ordinal(), u * rod_dual, wst * rod_dual * 11.5F, false); + registerOtherFuel(rod_zirnox, EnumZirnoxType.URANIUM_FUEL.ordinal(), uf * rod_dual, wst * rod_dual * 10F, false); + registerOtherFuel(rod_zirnox, EnumZirnoxType.TH232.ordinal(), th232 * rod_dual, thf * rod_dual, false); + registerOtherFuel(rod_zirnox, EnumZirnoxType.THORIUM_FUEL.ordinal(), thf * rod_dual, wst * rod_dual * 7.5F, false); + registerOtherFuel(rod_zirnox, EnumZirnoxType.MOX_FUEL.ordinal(), mox * rod_dual, wst * rod_dual * 10F, false); + registerOtherFuel(rod_zirnox, EnumZirnoxType.PLUTONIUM_FUEL.ordinal(), puf * rod_dual, wst * rod_dual * 12.5F, false); + registerOtherFuel(rod_zirnox, EnumZirnoxType.U233_FUEL.ordinal(), u233 * rod_dual, wst * rod_dual * 10F, false); + registerOtherFuel(rod_zirnox, EnumZirnoxType.U235_FUEL.ordinal(), u235 * rod_dual, wst * rod_dual * 11F, false); + registerOtherFuel(rod_zirnox, EnumZirnoxType.LES_FUEL.ordinal(), saf * rod_dual, wst * rod_dual * 15F, false); + registerOtherFuel(rod_zirnox, EnumZirnoxType.LITHIUM.ordinal(), 0, 0.001F * rod_dual, false); + registerOtherFuel(rod_zirnox, EnumZirnoxType.ZFB_MOX.ordinal(), mox * rod_dual, wst * rod_dual * 5F, false); HazardSystem.register(rod_zirnox_natural_uranium_fuel_depleted, makeData(RADIATION, wst * rod_dual * 11.5F)); HazardSystem.register(rod_zirnox_uranium_fuel_depleted, makeData(RADIATION, wst * rod_dual * 10F)); @@ -561,6 +562,15 @@ public class HazardRegistry { HazardSystem.register(fuel, data); } + private static void registerOtherFuel(Item fuel, int meta, float base, float target, boolean blinding) { + + HazardData data = new HazardData(); + data.addEntry(new HazardEntry(RADIATION, base).addMod(new HazardModifierFuelRadiation(target))); + if(blinding) + data.addEntry(BLINDING, 20F); + HazardSystem.register(new ItemStack(fuel, 1, meta), data); + } + private static void registerRTGPellet(Item pellet, float base, float target) { registerRTGPellet(pellet, base, target, 0, 0); } private static void registerRTGPellet(Item pellet, float base, float target, float hot) { registerRTGPellet(pellet, base, target, hot, 0); } diff --git a/src/main/java/com/hbm/hazard/modifier/HazardModifierFuelRadiation.java b/src/main/java/com/hbm/hazard/modifier/HazardModifierFuelRadiation.java index bc1584e9d..1ac0d7620 100644 --- a/src/main/java/com/hbm/hazard/modifier/HazardModifierFuelRadiation.java +++ b/src/main/java/com/hbm/hazard/modifier/HazardModifierFuelRadiation.java @@ -15,14 +15,8 @@ float target; @Override public float modify(ItemStack stack, EntityLivingBase holder, float level) { - - if(stack.getItem() instanceof ItemFuelRod) { - ItemFuelRod fuel = (ItemFuelRod) stack.getItem(); - double depletion = Math.pow(fuel.getDurabilityForDisplay(stack), 0.4D); - - level = (float) (level + (this.target - level) * depletion); - - } + double depletion = Math.pow(stack.getItem().getDurabilityForDisplay(stack), 0.4D); + level = (float) (level + (this.target - level) * depletion); return level; } diff --git a/src/main/java/com/hbm/inventory/container/ContainerMachineTurbineGas.java b/src/main/java/com/hbm/inventory/container/ContainerMachineTurbineGas.java index bf18a213b..b1aa96ca1 100644 --- a/src/main/java/com/hbm/inventory/container/ContainerMachineTurbineGas.java +++ b/src/main/java/com/hbm/inventory/container/ContainerMachineTurbineGas.java @@ -1,11 +1,8 @@ package com.hbm.inventory.container; -import com.hbm.inventory.SlotMachineOutput; import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; -import com.hbm.items.ModItems; import com.hbm.items.machine.ItemFluidIdentifier; -import com.hbm.items.machine.ItemZirnoxRod; import com.hbm.tileentity.machine.TileEntityMachineTurbineGas; import api.hbm.energy.IBatteryItem; @@ -13,7 +10,6 @@ import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.inventory.Container; import net.minecraft.inventory.Slot; -import net.minecraft.item.Item; import net.minecraft.item.ItemStack; public class ContainerMachineTurbineGas extends Container { diff --git a/src/main/java/com/hbm/items/ModItems.java b/src/main/java/com/hbm/items/ModItems.java index f148a81ff..a3df02132 100644 --- a/src/main/java/com/hbm/items/ModItems.java +++ b/src/main/java/com/hbm/items/ModItems.java @@ -24,6 +24,7 @@ import com.hbm.items.machine.ItemRBMKRod.EnumBurnFunc; import com.hbm.items.machine.ItemRBMKRod.EnumDepleteFunc; import com.hbm.items.machine.ItemRTGPelletDepleted.DepletedRTGMaterial; import com.hbm.items.machine.ItemStamp.StampType; +import com.hbm.items.machine.ItemZirnoxRod.EnumZirnoxType; import com.hbm.items.special.*; import com.hbm.items.special.ItemPlasticScrap.ScrapType; import com.hbm.items.tool.*; @@ -1052,18 +1053,19 @@ public class ModItems { public static Item rod_quad; public static Item rod_zirnox_empty; - public static Item rod_zirnox_natural_uranium_fuel; - public static Item rod_zirnox_uranium_fuel; - public static Item rod_zirnox_th232; - public static Item rod_zirnox_thorium_fuel; - public static Item rod_zirnox_mox_fuel; - public static Item rod_zirnox_plutonium_fuel; - public static Item rod_zirnox_u233_fuel; - public static Item rod_zirnox_u235_fuel; - public static Item rod_zirnox_les_fuel; - public static Item rod_zirnox_lithium; + //public static Item rod_zirnox_natural_uranium_fuel; + //public static Item rod_zirnox_uranium_fuel; + //public static Item rod_zirnox_th232; + //public static Item rod_zirnox_thorium_fuel; + //public static Item rod_zirnox_mox_fuel; + //public static Item rod_zirnox_plutonium_fuel; + //public static Item rod_zirnox_u233_fuel; + //public static Item rod_zirnox_u235_fuel; + //public static Item rod_zirnox_les_fuel; + //public static Item rod_zirnox_lithium; public static Item rod_zirnox_tritium; - public static Item rod_zirnox_zfb_mox; + //public static Item rod_zirnox_zfb_mox; + public static ItemEnumMulti rod_zirnox; public static Item rod_zirnox_natural_uranium_fuel_depleted; public static Item rod_zirnox_uranium_fuel_depleted; @@ -3692,18 +3694,19 @@ public class ModItems { rod_quad = (ItemEnumMulti) new ItemBreedingRod().setUnlocalizedName("rod_quad").setContainerItem(ModItems.rod_quad_empty).setCreativeTab(MainRegistry.controlTab); rod_zirnox_empty = new Item().setUnlocalizedName("rod_zirnox_empty").setMaxStackSize(64).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":rod_zirnox_empty"); - rod_zirnox_natural_uranium_fuel = new ItemZirnoxRod(250000, 30).setUnlocalizedName("rod_zirnox_natural_uranium_fuel").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.rod_zirnox_empty).setTextureName(RefStrings.MODID + ":rod_zirnox_natural_uranium_fuel"); - rod_zirnox_uranium_fuel = new ItemZirnoxRod(200000, 50).setUnlocalizedName("rod_zirnox_uranium_fuel").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.rod_zirnox_empty).setTextureName(RefStrings.MODID + ":rod_zirnox_uranium_fuel"); - rod_zirnox_th232 = new ItemZirnoxBreedingRod(20000, 0).setUnlocalizedName("rod_zirnox_th232").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":rod_zirnox_th232"); - rod_zirnox_thorium_fuel = new ItemZirnoxRod(200000, 40).setUnlocalizedName("rod_zirnox_thorium_fuel").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":rod_zirnox_thorium_fuel"); - rod_zirnox_mox_fuel = new ItemZirnoxRod(165000, 75).setUnlocalizedName("rod_zirnox_mox_fuel").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":rod_zirnox_mox_fuel"); - rod_zirnox_plutonium_fuel = new ItemZirnoxRod(175000, 65).setUnlocalizedName("rod_zirnox_plutonium_fuel").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":rod_zirnox_plutonium_fuel"); - rod_zirnox_u233_fuel = new ItemZirnoxRod(150000, 100).setUnlocalizedName("rod_zirnox_u233_fuel").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":rod_zirnox_u233_fuel"); - rod_zirnox_u235_fuel = new ItemZirnoxRod(165000, 85).setUnlocalizedName("rod_zirnox_u235_fuel").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":rod_zirnox_u235_fuel"); - rod_zirnox_les_fuel = new ItemZirnoxRod(150000, 150).setUnlocalizedName("rod_zirnox_les_fuel").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":rod_zirnox_les_fuel"); - rod_zirnox_lithium = new ItemZirnoxBreedingRod(20000, 0).setUnlocalizedName("rod_zirnox_lithium").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":rod_zirnox_lithium"); + //rod_zirnox_natural_uranium_fuel = new ItemZirnoxRodDeprecated(250000, 30).setUnlocalizedName("rod_zirnox_natural_uranium_fuel").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.rod_zirnox_empty).setTextureName(RefStrings.MODID + ":rod_zirnox_natural_uranium_fuel"); + //rod_zirnox_uranium_fuel = new ItemZirnoxRodDeprecated(200000, 50).setUnlocalizedName("rod_zirnox_uranium_fuel").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.rod_zirnox_empty).setTextureName(RefStrings.MODID + ":rod_zirnox_uranium_fuel"); + //rod_zirnox_th232 = new ItemZirnoxBreedingRod(20000, 0).setUnlocalizedName("rod_zirnox_th232").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":rod_zirnox_th232"); + //rod_zirnox_thorium_fuel = new ItemZirnoxRodDeprecated(200000, 40).setUnlocalizedName("rod_zirnox_thorium_fuel").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":rod_zirnox_thorium_fuel"); + //rod_zirnox_mox_fuel = new ItemZirnoxRodDeprecated(165000, 75).setUnlocalizedName("rod_zirnox_mox_fuel").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":rod_zirnox_mox_fuel"); + //rod_zirnox_plutonium_fuel = new ItemZirnoxRodDeprecated(175000, 65).setUnlocalizedName("rod_zirnox_plutonium_fuel").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":rod_zirnox_plutonium_fuel"); + //rod_zirnox_u233_fuel = new ItemZirnoxRodDeprecated(150000, 100).setUnlocalizedName("rod_zirnox_u233_fuel").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":rod_zirnox_u233_fuel"); + //rod_zirnox_u235_fuel = new ItemZirnoxRodDeprecated(165000, 85).setUnlocalizedName("rod_zirnox_u235_fuel").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":rod_zirnox_u235_fuel"); + //rod_zirnox_les_fuel = new ItemZirnoxRodDeprecated(150000, 150).setUnlocalizedName("rod_zirnox_les_fuel").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":rod_zirnox_les_fuel"); + //rod_zirnox_lithium = new ItemZirnoxBreedingRod(20000, 0).setUnlocalizedName("rod_zirnox_lithium").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":rod_zirnox_lithium"); rod_zirnox_tritium = new Item().setUnlocalizedName("rod_zirnox_tritium").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.rod_zirnox_empty).setTextureName(RefStrings.MODID + ":rod_zirnox_tritium"); - rod_zirnox_zfb_mox = new ItemZirnoxRod(50000, 35).setUnlocalizedName("rod_zirnox_zfb_mox").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":rod_zirnox_zfb_mox"); + //rod_zirnox_zfb_mox = new ItemZirnoxRodDeprecated(50000, 35).setUnlocalizedName("rod_zirnox_zfb_mox").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":rod_zirnox_zfb_mox"); + rod_zirnox = (ItemEnumMulti) new ItemZirnoxRod().setUnlocalizedName("rod_zirnox").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":rod_zirnox"); rod_zirnox_natural_uranium_fuel_depleted = new Item().setUnlocalizedName("rod_zirnox_natural_uranium_fuel_depleted").setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.rod_zirnox_empty).setTextureName(RefStrings.MODID + ":rod_zirnox_uranium_fuel_depleted"); rod_zirnox_uranium_fuel_depleted = new Item().setUnlocalizedName("rod_zirnox_uranium_fuel_depleted").setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.rod_zirnox_empty).setTextureName(RefStrings.MODID + ":rod_zirnox_uranium_fuel_depleted"); @@ -6924,18 +6927,19 @@ public class ModItems { //ZIRNOX parts GameRegistry.registerItem(rod_zirnox_empty, rod_zirnox_empty.getUnlocalizedName()); - GameRegistry.registerItem(rod_zirnox_natural_uranium_fuel, rod_zirnox_natural_uranium_fuel.getUnlocalizedName()); - GameRegistry.registerItem(rod_zirnox_uranium_fuel, rod_zirnox_uranium_fuel.getUnlocalizedName()); - GameRegistry.registerItem(rod_zirnox_th232, rod_zirnox_th232.getUnlocalizedName()); - GameRegistry.registerItem(rod_zirnox_thorium_fuel, rod_zirnox_thorium_fuel.getUnlocalizedName()); - GameRegistry.registerItem(rod_zirnox_mox_fuel, rod_zirnox_mox_fuel.getUnlocalizedName()); - GameRegistry.registerItem(rod_zirnox_plutonium_fuel, rod_zirnox_plutonium_fuel.getUnlocalizedName()); - GameRegistry.registerItem(rod_zirnox_u233_fuel, rod_zirnox_u233_fuel.getUnlocalizedName()); - GameRegistry.registerItem(rod_zirnox_u235_fuel, rod_zirnox_u235_fuel.getUnlocalizedName()); - GameRegistry.registerItem(rod_zirnox_les_fuel, rod_zirnox_les_fuel.getUnlocalizedName()); - GameRegistry.registerItem(rod_zirnox_lithium, rod_zirnox_lithium.getUnlocalizedName()); + //GameRegistry.registerItem(rod_zirnox_natural_uranium_fuel, rod_zirnox_natural_uranium_fuel.getUnlocalizedName()); + //GameRegistry.registerItem(rod_zirnox_uranium_fuel, rod_zirnox_uranium_fuel.getUnlocalizedName()); + //GameRegistry.registerItem(rod_zirnox_th232, rod_zirnox_th232.getUnlocalizedName()); + //GameRegistry.registerItem(rod_zirnox_thorium_fuel, rod_zirnox_thorium_fuel.getUnlocalizedName()); + //GameRegistry.registerItem(rod_zirnox_mox_fuel, rod_zirnox_mox_fuel.getUnlocalizedName()); + //GameRegistry.registerItem(rod_zirnox_plutonium_fuel, rod_zirnox_plutonium_fuel.getUnlocalizedName()); + //GameRegistry.registerItem(rod_zirnox_u233_fuel, rod_zirnox_u233_fuel.getUnlocalizedName()); + //GameRegistry.registerItem(rod_zirnox_u235_fuel, rod_zirnox_u235_fuel.getUnlocalizedName()); + //GameRegistry.registerItem(rod_zirnox_les_fuel, rod_zirnox_les_fuel.getUnlocalizedName()); + //GameRegistry.registerItem(rod_zirnox_lithium, rod_zirnox_lithium.getUnlocalizedName()); GameRegistry.registerItem(rod_zirnox_tritium, rod_zirnox_tritium.getUnlocalizedName()); - GameRegistry.registerItem(rod_zirnox_zfb_mox, rod_zirnox_zfb_mox.getUnlocalizedName()); + //GameRegistry.registerItem(rod_zirnox_zfb_mox, rod_zirnox_zfb_mox.getUnlocalizedName()); + GameRegistry.registerItem(rod_zirnox, rod_zirnox.getUnlocalizedName()); GameRegistry.registerItem(rod_zirnox_natural_uranium_fuel_depleted, rod_zirnox_natural_uranium_fuel_depleted.getUnlocalizedName()); GameRegistry.registerItem(rod_zirnox_uranium_fuel_depleted, rod_zirnox_uranium_fuel_depleted.getUnlocalizedName()); @@ -8605,6 +8609,18 @@ public class ModItems { addRemap("canned_recursion", canned_conserve, EnumFoodType.RECURSION); addRemap("canned_bark", canned_conserve, EnumFoodType.BARK); + addRemap("rod_zirnox_natural_uranium_fuel", rod_zirnox, EnumZirnoxType.NATURAL_URANIUM_FUEL); + addRemap("rod_zirnox_uranium_fuel", rod_zirnox, EnumZirnoxType.URANIUM_FUEL); + addRemap("rod_zirnox_th232", rod_zirnox, EnumZirnoxType.TH232); + addRemap("rod_zirnox_thorium_fuel", rod_zirnox, EnumZirnoxType.THORIUM_FUEL); + addRemap("rod_zirnox_mox_fuel", rod_zirnox, EnumZirnoxType.MOX_FUEL); + addRemap("rod_zirnox_plutonium_fuel", rod_zirnox, EnumZirnoxType.PLUTONIUM_FUEL); + addRemap("rod_zirnox_u233_fuel", rod_zirnox, EnumZirnoxType.U233_FUEL); + addRemap("rod_zirnox_u235_fuel", rod_zirnox, EnumZirnoxType.U235_FUEL); + addRemap("rod_zirnox_les_fuel", rod_zirnox, EnumZirnoxType.LES_FUEL); + addRemap("rod_zirnox_lithium", rod_zirnox, EnumZirnoxType.LITHIUM); + addRemap("rod_zirnox_zfb_mox", rod_zirnox, EnumZirnoxType.ZFB_MOX); + } public static void addRemap(String unloc, int removoingTheseWouldTakeForever, Item item, Enum sub) { diff --git a/src/main/java/com/hbm/items/machine/ItemZirnoxBreedingRod.java b/src/main/java/com/hbm/items/machine/ItemZirnoxBreedingRod.java deleted file mode 100644 index c0623d2d2..000000000 --- a/src/main/java/com/hbm/items/machine/ItemZirnoxBreedingRod.java +++ /dev/null @@ -1,27 +0,0 @@ -package com.hbm.items.machine; - -import java.util.List; - -import com.hbm.util.BobMathUtil; -import com.hbm.util.I18nUtil; - -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; -import net.minecraft.util.EnumChatFormatting; - -public class ItemZirnoxBreedingRod extends ItemZirnoxRod { - - public ItemZirnoxBreedingRod(int life, int heat) { - super(life, heat); - } - - @Override - public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) { - - String[] descLocs = I18nUtil.resolveKeyArray("desc.item.zirnoxBreedingRod", BobMathUtil.getShortNumber(lifeTime)); - - for(String loc : descLocs) { - list.add(loc); - } - } -} \ No newline at end of file diff --git a/src/main/java/com/hbm/items/machine/ItemZirnoxRod.java b/src/main/java/com/hbm/items/machine/ItemZirnoxRod.java index 5ef69303a..689593e97 100644 --- a/src/main/java/com/hbm/items/machine/ItemZirnoxRod.java +++ b/src/main/java/com/hbm/items/machine/ItemZirnoxRod.java @@ -2,29 +2,124 @@ package com.hbm.items.machine; import java.util.List; +import com.hbm.items.ItemEnumMulti; import com.hbm.util.BobMathUtil; +import com.hbm.util.EnumUtil; import com.hbm.util.I18nUtil; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; -import net.minecraft.util.EnumChatFormatting; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.IIcon; -public class ItemZirnoxRod extends ItemFuelRod { - - public int heat; - - public ItemZirnoxRod(int life, int heat) { - super(life); - this.heat = heat; +public class ItemZirnoxRod extends ItemEnumMulti { + + public ItemZirnoxRod() { + super(EnumZirnoxType.class, true, true); + this.setMaxStackSize(1); + this.canRepair = false; } - - @Override - public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) { + + public static void incrementLifeTime(ItemStack stack) { - String[] descLocs = I18nUtil.resolveKeyArray("desc.item.zirnoxRod", heat, BobMathUtil.getShortNumber(lifeTime)); + if(!stack.hasTagCompound()) + stack.stackTagCompound = new NBTTagCompound(); - for(String loc : descLocs) { - list.add(loc); + int time = stack.stackTagCompound.getInteger("life"); + + stack.stackTagCompound.setInteger("life", time + 1); + } + + public static void setLifeTime(ItemStack stack, int time) { + + if(!stack.hasTagCompound()) + stack.stackTagCompound = new NBTTagCompound(); + + stack.stackTagCompound.setInteger("life", time); + } + + public static int getLifeTime(ItemStack stack) { + + if(!stack.hasTagCompound()) { + stack.stackTagCompound = new NBTTagCompound(); + return 0; + } + + return stack.stackTagCompound.getInteger("life"); + } + + public boolean showDurabilityBar(ItemStack stack) { + return getDurabilityForDisplay(stack) > 0D; + } + + public double getDurabilityForDisplay(ItemStack stack) { + EnumZirnoxType num = EnumUtil.grabEnumSafely(theEnum, stack.getItemDamage()); + return (double)getLifeTime(stack) / (double)num.maxLife; + } + + @Override + public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean bool) { + EnumZirnoxType num = EnumUtil.grabEnumSafely(theEnum, stack.getItemDamage()); + String[] loc = I18nUtil.resolveKeyArray("desc.item.zirnox" + (num.breeding ? "BreedingRod" : "Rod"), BobMathUtil.getShortNumber(num.maxLife)); + + if(num.breeding) + loc = I18nUtil.resolveKeyArray("desc.item.zirnoxBreedingRod", BobMathUtil.getShortNumber(num.maxLife)); + else + loc = I18nUtil.resolveKeyArray("desc.item.zirnoxRod", num.heat, BobMathUtil.getShortNumber(num.maxLife)); + + for(String s : loc) { + list.add(s); } } -} \ No newline at end of file + + @Override + @SideOnly(Side.CLIENT) + public void registerIcons(IIconRegister reg) { + Enum[] enums = theEnum.getEnumConstants(); + this.icons = new IIcon[enums.length]; + + for(int i = 0; i < icons.length; i++) { + Enum num = enums[i]; + this.icons[i] = reg.registerIcon(this.getIconString() + "_" + num.name().toLowerCase()); + } + } + + @Override + public String getUnlocalizedName(ItemStack stack) { + Enum num = EnumUtil.grabEnumSafely(theEnum, stack.getItemDamage()); + return super.getUnlocalizedName() + "_" + num.name().toLowerCase(); + } + + public static enum EnumZirnoxType { + NATURAL_URANIUM_FUEL(250_000, 30), + URANIUM_FUEL(200_000, 50), + TH232(20_000, 0, true), + THORIUM_FUEL(200_000, 40), + MOX_FUEL(165_000, 75), + PLUTONIUM_FUEL(175_000, 65), + U233_FUEL(150_000, 100), + U235_FUEL(165_000, 85), + LES_FUEL(150_000, 150), + LITHIUM(20_000, 0, true), + ZFB_MOX(50_000, 35); + + public final int maxLife; + public final int heat; + public final boolean breeding; + + private EnumZirnoxType(int life, int heat, boolean breeding) { + this.maxLife = life; + this.heat = heat; + this.breeding = breeding; + } + + private EnumZirnoxType(int life, int heat) { + this.maxLife = life; + this.heat = heat; + this.breeding = false; + } + } +} diff --git a/src/main/java/com/hbm/lib/HbmChestContents.java b/src/main/java/com/hbm/lib/HbmChestContents.java index c405dab26..185495790 100644 --- a/src/main/java/com/hbm/lib/HbmChestContents.java +++ b/src/main/java/com/hbm/lib/HbmChestContents.java @@ -6,6 +6,7 @@ import com.hbm.items.ItemAmmoEnums.Ammo357Magnum; import com.hbm.items.ItemAmmoEnums.AmmoFatman; import com.hbm.items.ModItems; import com.hbm.items.machine.ItemBreedingRod.*; +import com.hbm.items.machine.ItemZirnoxRod.EnumZirnoxType; import com.hbm.items.special.ItemBookLore.BookLoreType; import net.minecraft.init.Items; @@ -178,15 +179,15 @@ public class HbmChestContents { new WeightedRandomChestContent(ModItems.rod_dual, BreedingRodType.PU239.ordinal(), 1, 1, 3), new WeightedRandomChestContent(ModItems.rod_quad, BreedingRodType.U235.ordinal(), 1, 1, 3), new WeightedRandomChestContent(ModItems.rod_quad, BreedingRodType.PU239.ordinal(), 1, 1, 3), - new WeightedRandomChestContent(ModItems.rod_zirnox_uranium_fuel, 0, 1, 1, 4), - new WeightedRandomChestContent(ModItems.rod_zirnox_plutonium_fuel, 0, 1, 1, 4), - new WeightedRandomChestContent(ModItems.rod_zirnox_mox_fuel, 0, 1, 1, 4), - new WeightedRandomChestContent(ModItems.rod_zirnox_lithium, 0, 1, 1, 3), - new WeightedRandomChestContent(ModItems.rod_zirnox_thorium_fuel, 0, 1, 1, 3), + new WeightedRandomChestContent(ModItems.rod_zirnox, EnumZirnoxType.URANIUM_FUEL.ordinal(), 1, 1, 4), + new WeightedRandomChestContent(ModItems.rod_zirnox, EnumZirnoxType.PLUTONIUM_FUEL.ordinal(), 1, 1, 4), + new WeightedRandomChestContent(ModItems.rod_zirnox, EnumZirnoxType.MOX_FUEL.ordinal(), 1, 1, 4), + new WeightedRandomChestContent(ModItems.rod_zirnox, EnumZirnoxType.LITHIUM.ordinal(), 1, 1, 3), + new WeightedRandomChestContent(ModItems.rod_zirnox, EnumZirnoxType.THORIUM_FUEL.ordinal(), 1, 1, 3), new WeightedRandomChestContent(ModItems.rod_dual, BreedingRodType.THF.ordinal(), 1, 1, 3), new WeightedRandomChestContent(ModItems.rod_zirnox_tritium, 0, 1, 1, 1), - new WeightedRandomChestContent(ModItems.rod_zirnox_u233_fuel, 0, 1, 1, 1), - new WeightedRandomChestContent(ModItems.rod_zirnox_u235_fuel, 0, 1, 1, 1), + new WeightedRandomChestContent(ModItems.rod_zirnox, EnumZirnoxType.U233_FUEL.ordinal(), 1, 1, 1), + new WeightedRandomChestContent(ModItems.rod_zirnox, EnumZirnoxType.U235_FUEL.ordinal(), 1, 1, 1), new WeightedRandomChestContent(ModItems.pellet_rtg, 0, 1, 1, 3), new WeightedRandomChestContent(ModItems.powder_thorium, 0, 1, 1, 1), new WeightedRandomChestContent(ModItems.powder_neptunium, 0, 1, 1, 1), diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityReactorZirnox.java b/src/main/java/com/hbm/tileentity/machine/TileEntityReactorZirnox.java index f56240304..3f8eaa2ac 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityReactorZirnox.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityReactorZirnox.java @@ -20,16 +20,22 @@ import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.fluid.tank.FluidTank; import com.hbm.items.ModItems; -import com.hbm.items.machine.ItemZirnoxBreedingRod; import com.hbm.items.machine.ItemZirnoxRod; +import com.hbm.items.machine.ItemZirnoxRod.EnumZirnoxType; import com.hbm.lib.Library; import com.hbm.main.MainRegistry; import com.hbm.tileentity.TileEntityMachineBase; +import com.hbm.util.EnumUtil; import com.hbm.util.fauxpointtwelve.DirPos; import api.hbm.fluid.IFluidStandardTransceiver; +import cpw.mods.fml.common.Optional; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import li.cil.oc.api.machine.Arguments; +import li.cil.oc.api.machine.Callback; +import li.cil.oc.api.machine.Context; +import li.cil.oc.api.network.SimpleComponent; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; @@ -37,12 +43,6 @@ import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.Vec3; import net.minecraftforge.common.util.ForgeDirection; -import cpw.mods.fml.common.Optional; -import li.cil.oc.api.machine.Arguments; -import li.cil.oc.api.machine.Callback; -import li.cil.oc.api.machine.Context; -import li.cil.oc.api.network.SimpleComponent; - @Optional.InterfaceList({@Optional.Interface(iface = "li.cil.oc.api.network.SimpleComponent", modid = "OpenComputers")}) public class TileEntityReactorZirnox extends TileEntityMachineBase implements IFluidContainer, IFluidAcceptor, IFluidSource, IControlReceiver, IFluidStandardTransceiver, SimpleComponent { @@ -63,17 +63,17 @@ public class TileEntityReactorZirnox extends TileEntityMachineBase implements IF public static final HashMap fuelMap = new HashMap(); static { - fuelMap.put(new ComparableStack(ModItems.rod_zirnox_natural_uranium_fuel), new ItemStack(ModItems.rod_zirnox_natural_uranium_fuel_depleted)); - fuelMap.put(new ComparableStack(ModItems.rod_zirnox_uranium_fuel), new ItemStack(ModItems.rod_zirnox_uranium_fuel_depleted)); - fuelMap.put(new ComparableStack(ModItems.rod_zirnox_th232), new ItemStack(ModItems.rod_zirnox_thorium_fuel)); - fuelMap.put(new ComparableStack(ModItems.rod_zirnox_thorium_fuel), new ItemStack(ModItems.rod_zirnox_thorium_fuel_depleted)); - fuelMap.put(new ComparableStack(ModItems.rod_zirnox_mox_fuel), new ItemStack(ModItems.rod_zirnox_mox_fuel_depleted)); - fuelMap.put(new ComparableStack(ModItems.rod_zirnox_plutonium_fuel), new ItemStack(ModItems.rod_zirnox_plutonium_fuel_depleted)); - fuelMap.put(new ComparableStack(ModItems.rod_zirnox_u233_fuel), new ItemStack(ModItems.rod_zirnox_u233_fuel_depleted)); - fuelMap.put(new ComparableStack(ModItems.rod_zirnox_u235_fuel), new ItemStack(ModItems.rod_zirnox_u235_fuel_depleted)); - fuelMap.put(new ComparableStack(ModItems.rod_zirnox_les_fuel), new ItemStack(ModItems.rod_zirnox_les_fuel_depleted)); - fuelMap.put(new ComparableStack(ModItems.rod_zirnox_lithium), new ItemStack(ModItems.rod_zirnox_tritium)); - fuelMap.put(new ComparableStack(ModItems.rod_zirnox_zfb_mox), new ItemStack(ModItems.rod_zirnox_zfb_mox_depleted)); + fuelMap.put(new ComparableStack(ModItems.rod_zirnox, 1, EnumZirnoxType.NATURAL_URANIUM_FUEL.ordinal()), new ItemStack(ModItems.rod_zirnox_natural_uranium_fuel_depleted)); + fuelMap.put(new ComparableStack(ModItems.rod_zirnox, 1, EnumZirnoxType.URANIUM_FUEL.ordinal()), new ItemStack(ModItems.rod_zirnox_uranium_fuel_depleted)); + fuelMap.put(new ComparableStack(ModItems.rod_zirnox, 1, EnumZirnoxType.TH232.ordinal()), new ItemStack(ModItems.rod_zirnox, 1, EnumZirnoxType.THORIUM_FUEL.ordinal())); + fuelMap.put(new ComparableStack(ModItems.rod_zirnox, 1, EnumZirnoxType.THORIUM_FUEL.ordinal()), new ItemStack(ModItems.rod_zirnox_thorium_fuel_depleted)); + fuelMap.put(new ComparableStack(ModItems.rod_zirnox, 1, EnumZirnoxType.MOX_FUEL.ordinal()), new ItemStack(ModItems.rod_zirnox_mox_fuel_depleted)); + fuelMap.put(new ComparableStack(ModItems.rod_zirnox, 1, EnumZirnoxType.PLUTONIUM_FUEL.ordinal()), new ItemStack(ModItems.rod_zirnox_plutonium_fuel_depleted)); + fuelMap.put(new ComparableStack(ModItems.rod_zirnox, 1, EnumZirnoxType.U233_FUEL.ordinal()), new ItemStack(ModItems.rod_zirnox_u233_fuel_depleted)); + fuelMap.put(new ComparableStack(ModItems.rod_zirnox, 1, EnumZirnoxType.U235_FUEL.ordinal()), new ItemStack(ModItems.rod_zirnox_u235_fuel_depleted)); + fuelMap.put(new ComparableStack(ModItems.rod_zirnox, 1, EnumZirnoxType.LES_FUEL.ordinal()), new ItemStack(ModItems.rod_zirnox_les_fuel_depleted)); + fuelMap.put(new ComparableStack(ModItems.rod_zirnox, 1, EnumZirnoxType.LITHIUM.ordinal()), new ItemStack(ModItems.rod_zirnox_tritium)); + fuelMap.put(new ComparableStack(ModItems.rod_zirnox, 1, EnumZirnoxType.ZFB_MOX.ordinal()), new ItemStack(ModItems.rod_zirnox_zfb_mox_depleted)); } public TileEntityReactorZirnox() { @@ -262,8 +262,9 @@ public class TileEntityReactorZirnox extends TileEntityMachineBase implements IF private boolean hasFuelRod(int id) { if(slots[id] != null) { - if(!(slots[id].getItem() instanceof ItemZirnoxBreedingRod)) { - return slots[id].getItem() instanceof ItemZirnoxRod; + if(slots[id].getItem() instanceof ItemZirnoxRod) { + final EnumZirnoxType num = EnumUtil.grabEnumSafely(EnumZirnoxType.class, slots[id].getItemDamage()); + return !num.breeding; } } @@ -290,17 +291,16 @@ public class TileEntityReactorZirnox extends TileEntityMachineBase implements IF // itemstack in slots[id] has to contain ItemZirnoxRod private void decay(int id) { int decay = getNeighbourCount(id); + final EnumZirnoxType num = EnumUtil.grabEnumSafely(EnumZirnoxType.class, slots[id].getItemDamage()); - if(!(slots[id].getItem() instanceof ItemZirnoxBreedingRod)) { + if(!num.breeding) decay++; - } for(int i = 0; i < decay; i++) { - ItemZirnoxRod rod = ((ItemZirnoxRod) slots[id].getItem()); - this.heat += rod.heat; - ItemZirnoxRod.setLifeTime(slots[id], ItemZirnoxRod.getLifeTime(slots[id]) + 1); + this.heat += num.heat; + ItemZirnoxRod.incrementLifeTime(slots[id]); - if(ItemZirnoxRod.getLifeTime(slots[id]) > rod.lifeTime) { + if(ItemZirnoxRod.getLifeTime(slots[id]) > num.maxLife) { slots[id] = fuelMap.get(new ComparableStack(getStackInSlot(id))).copy(); break; }