From 8b2a304e62ee49d2a7789e544f62d1d07407a67e Mon Sep 17 00:00:00 2001 From: Vaern Date: Tue, 14 Feb 2023 15:04:53 -0800 Subject: [PATCH 1/6] start of moving zirnox, other rods to enummulti --- .../container/ContainerMachineTurbineGas.java | 2 +- .../container/ContainerReactorZirnox.java | 4 +- src/main/java/com/hbm/items/ModItems.java | 18 +-- .../items/machine/ItemNuclearWasteMulti.java | 34 ++++++ .../items/machine/ItemZirnoxBreedingRod.java | 2 +- .../com/hbm/items/machine/ItemZirnoxRod.java | 103 ++++++++++++++---- .../machine/ItemZirnoxRodDeprecated.java | 30 +++++ .../machine/TileEntityReactorZirnox.java | 16 +-- 8 files changed, 168 insertions(+), 41 deletions(-) create mode 100644 src/main/java/com/hbm/items/machine/ItemNuclearWasteMulti.java create mode 100644 src/main/java/com/hbm/items/machine/ItemZirnoxRodDeprecated.java diff --git a/src/main/java/com/hbm/inventory/container/ContainerMachineTurbineGas.java b/src/main/java/com/hbm/inventory/container/ContainerMachineTurbineGas.java index bf18a213b..b993d3a65 100644 --- a/src/main/java/com/hbm/inventory/container/ContainerMachineTurbineGas.java +++ b/src/main/java/com/hbm/inventory/container/ContainerMachineTurbineGas.java @@ -5,7 +5,7 @@ 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.items.machine.ItemZirnoxRodDeprecated; import com.hbm.tileentity.machine.TileEntityMachineTurbineGas; import api.hbm.energy.IBatteryItem; diff --git a/src/main/java/com/hbm/inventory/container/ContainerReactorZirnox.java b/src/main/java/com/hbm/inventory/container/ContainerReactorZirnox.java index 99365242e..a3a18bb73 100644 --- a/src/main/java/com/hbm/inventory/container/ContainerReactorZirnox.java +++ b/src/main/java/com/hbm/inventory/container/ContainerReactorZirnox.java @@ -3,7 +3,7 @@ package com.hbm.inventory.container; import com.hbm.inventory.FluidContainerRegistry; import com.hbm.inventory.SlotMachineOutput; import com.hbm.inventory.fluid.Fluids; -import com.hbm.items.machine.ItemZirnoxRod; +import com.hbm.items.machine.ItemZirnoxRodDeprecated; import com.hbm.tileentity.machine.TileEntityReactorZirnox; import net.minecraft.entity.player.EntityPlayer; @@ -88,7 +88,7 @@ public class ContainerReactorZirnox extends Container { } else { - if(stack.getItem() instanceof ItemZirnoxRod) { + if(stack.getItem() instanceof ItemZirnoxRodDeprecated) { if(!this.mergeItemStack(stack, 0, 24, true)) return null; diff --git a/src/main/java/com/hbm/items/ModItems.java b/src/main/java/com/hbm/items/ModItems.java index 9617da267..955065c51 100644 --- a/src/main/java/com/hbm/items/ModItems.java +++ b/src/main/java/com/hbm/items/ModItems.java @@ -3682,18 +3682,18 @@ 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_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 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_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_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"); diff --git a/src/main/java/com/hbm/items/machine/ItemNuclearWasteMulti.java b/src/main/java/com/hbm/items/machine/ItemNuclearWasteMulti.java new file mode 100644 index 000000000..b6b94f077 --- /dev/null +++ b/src/main/java/com/hbm/items/machine/ItemNuclearWasteMulti.java @@ -0,0 +1,34 @@ +package com.hbm.items.machine; + +import java.util.List; + +import com.hbm.items.ItemEnumMulti; +import com.hbm.items.machine.ItemZirnoxRod.EnumZirnoxType; +import com.hbm.util.EnumUtil; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; + +public class ItemNuclearWasteMulti extends ItemEnumMulti { + + public ItemNuclearWasteMulti(Class theEnum, boolean multiName, boolean multiTexture) { + super(theEnum, multiName, multiTexture); + } + + @Override + @SideOnly(Side.CLIENT) + public void getSubItems(Item item, CreativeTabs tab, List list) { + for(int i = 0; i < theEnum.getEnumConstants().length; i++) { + if(theEnum == ItemZirnoxRod.EnumZirnoxType.class) { //i could make an interface or a base enum, but it's only used for 'nox rods anyway + EnumZirnoxType num = EnumUtil.grabEnumSafely(EnumZirnoxType.class, i); + if(!num.breeding) list.add(new ItemStack(item, 1, i)); //wastes' ordinals are always equal to their fuels' ordinals + } else + list.add(new ItemStack(item, 1, i)); + } + } + + //TODO: cooling stuff +} diff --git a/src/main/java/com/hbm/items/machine/ItemZirnoxBreedingRod.java b/src/main/java/com/hbm/items/machine/ItemZirnoxBreedingRod.java index c0623d2d2..c8c869f25 100644 --- a/src/main/java/com/hbm/items/machine/ItemZirnoxBreedingRod.java +++ b/src/main/java/com/hbm/items/machine/ItemZirnoxBreedingRod.java @@ -9,7 +9,7 @@ import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraft.util.EnumChatFormatting; -public class ItemZirnoxBreedingRod extends ItemZirnoxRod { +public class ItemZirnoxBreedingRod extends ItemZirnoxRodDeprecated { public ItemZirnoxBreedingRod(int life, int heat) { super(life, heat); diff --git a/src/main/java/com/hbm/items/machine/ItemZirnoxRod.java b/src/main/java/com/hbm/items/machine/ItemZirnoxRod.java index 5ef69303a..6f15c59f8 100644 --- a/src/main/java/com/hbm/items/machine/ItemZirnoxRod.java +++ b/src/main/java/com/hbm/items/machine/ItemZirnoxRod.java @@ -1,30 +1,93 @@ package com.hbm.items.machine; -import java.util.List; +import com.hbm.items.ItemEnumMulti; +import com.hbm.util.EnumUtil; -import com.hbm.util.BobMathUtil; -import com.hbm.util.I18nUtil; - -import net.minecraft.entity.player.EntityPlayer; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.client.renderer.texture.IIconRegister; 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); } - - @Override - public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) { + + public static void setLifeTime(ItemStack stack, int time) { - 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); + 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 + @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()); } } -} \ No newline at end of file + + @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 int maxLife; + public int heat; + /** Doesn't auto-generate a waste type, waste rods, etc. */ + public boolean breeding = false; + + 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; + } + } +} diff --git a/src/main/java/com/hbm/items/machine/ItemZirnoxRodDeprecated.java b/src/main/java/com/hbm/items/machine/ItemZirnoxRodDeprecated.java new file mode 100644 index 000000000..1e0605f4e --- /dev/null +++ b/src/main/java/com/hbm/items/machine/ItemZirnoxRodDeprecated.java @@ -0,0 +1,30 @@ +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 ItemZirnoxRodDeprecated extends ItemFuelRod { + + public int heat; + + public ItemZirnoxRodDeprecated(int life, int heat) { + super(life); + this.heat = heat; + } + + @Override + public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) { + + String[] descLocs = I18nUtil.resolveKeyArray("desc.item.zirnoxRod", heat, BobMathUtil.getShortNumber(lifeTime)); + + for(String loc : descLocs) { + list.add(loc); + } + } +} \ No newline at end of file diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityReactorZirnox.java b/src/main/java/com/hbm/tileentity/machine/TileEntityReactorZirnox.java index f56240304..a7d118374 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityReactorZirnox.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityReactorZirnox.java @@ -21,7 +21,7 @@ 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.ItemZirnoxRodDeprecated; import com.hbm.lib.Library; import com.hbm.main.MainRegistry; import com.hbm.tileentity.TileEntityMachineBase; @@ -95,12 +95,12 @@ public class TileEntityReactorZirnox extends TileEntityMachineBase implements IF @Override public boolean isItemValidForSlot(int i, ItemStack stack) { - return i < 24 && stack.getItem() instanceof ItemZirnoxRod; + return i < 24 && stack.getItem() instanceof ItemZirnoxRodDeprecated; } @Override public boolean canExtractItem(int i, ItemStack stack, int j) { - return i < 24 && !(stack.getItem() instanceof ItemZirnoxRod); + return i < 24 && !(stack.getItem() instanceof ItemZirnoxRodDeprecated); } @Override @@ -201,7 +201,7 @@ public class TileEntityReactorZirnox extends TileEntityMachineBase implements IF for(int i = 0; i < 24; i++) { if(slots[i] != null) { - if(slots[i].getItem() instanceof ItemZirnoxRod) + if(slots[i].getItem() instanceof ItemZirnoxRodDeprecated) decay(i); else if(slots[i].getItem() == ModItems.meteorite_sword_bred) slots[i] = new ItemStack(ModItems.meteorite_sword_irradiated); @@ -263,7 +263,7 @@ 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; + return slots[id].getItem() instanceof ItemZirnoxRodDeprecated; } } @@ -296,11 +296,11 @@ public class TileEntityReactorZirnox extends TileEntityMachineBase implements IF } for(int i = 0; i < decay; i++) { - ItemZirnoxRod rod = ((ItemZirnoxRod) slots[id].getItem()); + ItemZirnoxRodDeprecated rod = ((ItemZirnoxRodDeprecated) slots[id].getItem()); this.heat += rod.heat; - ItemZirnoxRod.setLifeTime(slots[id], ItemZirnoxRod.getLifeTime(slots[id]) + 1); + ItemZirnoxRodDeprecated.setLifeTime(slots[id], ItemZirnoxRodDeprecated.getLifeTime(slots[id]) + 1); - if(ItemZirnoxRod.getLifeTime(slots[id]) > rod.lifeTime) { + if(ItemZirnoxRodDeprecated.getLifeTime(slots[id]) > rod.lifeTime) { slots[id] = fuelMap.get(new ComparableStack(getStackInSlot(id))).copy(); break; } From 0af3e1eac69ce16e52db11cf67fea05940ace52a Mon Sep 17 00:00:00 2001 From: Vaern Date: Tue, 14 Feb 2023 17:50:51 -0800 Subject: [PATCH 2/6] better name :3 --- .../{ItemNuclearWasteMulti.java => ItemDepletedWaste.java} | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) rename src/main/java/com/hbm/items/machine/{ItemNuclearWasteMulti.java => ItemDepletedWaste.java} (86%) diff --git a/src/main/java/com/hbm/items/machine/ItemNuclearWasteMulti.java b/src/main/java/com/hbm/items/machine/ItemDepletedWaste.java similarity index 86% rename from src/main/java/com/hbm/items/machine/ItemNuclearWasteMulti.java rename to src/main/java/com/hbm/items/machine/ItemDepletedWaste.java index b6b94f077..ee4f49c0b 100644 --- a/src/main/java/com/hbm/items/machine/ItemNuclearWasteMulti.java +++ b/src/main/java/com/hbm/items/machine/ItemDepletedWaste.java @@ -12,9 +12,9 @@ import net.minecraft.creativetab.CreativeTabs; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; -public class ItemNuclearWasteMulti extends ItemEnumMulti { +public class ItemDepletedWaste extends ItemEnumMulti { - public ItemNuclearWasteMulti(Class theEnum, boolean multiName, boolean multiTexture) { + public ItemDepletedWaste(Class theEnum, boolean multiName, boolean multiTexture) { super(theEnum, multiName, multiTexture); } From 54a2855efae63e4c0759ab561d8ee2e88ad7af3e Mon Sep 17 00:00:00 2001 From: Vaern Date: Tue, 14 Feb 2023 22:39:35 -0800 Subject: [PATCH 3/6] expectation management wowwe, the wastes were getting a bit too spaghetti for my liking --- .../hbm/items/machine/ItemDepletedWaste.java | 34 ------------------- .../com/hbm/items/machine/ItemZirnoxRod.java | 12 ++----- 2 files changed, 2 insertions(+), 44 deletions(-) delete mode 100644 src/main/java/com/hbm/items/machine/ItemDepletedWaste.java diff --git a/src/main/java/com/hbm/items/machine/ItemDepletedWaste.java b/src/main/java/com/hbm/items/machine/ItemDepletedWaste.java deleted file mode 100644 index ee4f49c0b..000000000 --- a/src/main/java/com/hbm/items/machine/ItemDepletedWaste.java +++ /dev/null @@ -1,34 +0,0 @@ -package com.hbm.items.machine; - -import java.util.List; - -import com.hbm.items.ItemEnumMulti; -import com.hbm.items.machine.ItemZirnoxRod.EnumZirnoxType; -import com.hbm.util.EnumUtil; - -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.creativetab.CreativeTabs; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; - -public class ItemDepletedWaste extends ItemEnumMulti { - - public ItemDepletedWaste(Class theEnum, boolean multiName, boolean multiTexture) { - super(theEnum, multiName, multiTexture); - } - - @Override - @SideOnly(Side.CLIENT) - public void getSubItems(Item item, CreativeTabs tab, List list) { - for(int i = 0; i < theEnum.getEnumConstants().length; i++) { - if(theEnum == ItemZirnoxRod.EnumZirnoxType.class) { //i could make an interface or a base enum, but it's only used for 'nox rods anyway - EnumZirnoxType num = EnumUtil.grabEnumSafely(EnumZirnoxType.class, i); - if(!num.breeding) list.add(new ItemStack(item, 1, i)); //wastes' ordinals are always equal to their fuels' ordinals - } else - list.add(new ItemStack(item, 1, i)); - } - } - - //TODO: cooling stuff -} diff --git a/src/main/java/com/hbm/items/machine/ItemZirnoxRod.java b/src/main/java/com/hbm/items/machine/ItemZirnoxRod.java index 6f15c59f8..d2abfda19 100644 --- a/src/main/java/com/hbm/items/machine/ItemZirnoxRod.java +++ b/src/main/java/com/hbm/items/machine/ItemZirnoxRod.java @@ -64,26 +64,18 @@ public class ItemZirnoxRod extends ItemEnumMulti { public static enum EnumZirnoxType { NATURAL_URANIUM_FUEL(250_000, 30), URANIUM_FUEL(200_000, 50), - TH232(20_000, 0, true), + TH232(20_000, 0), 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), + LITHIUM(20_000, 0), ZFB_MOX(50_000, 35); public int maxLife; public int heat; - /** Doesn't auto-generate a waste type, waste rods, etc. */ - public boolean breeding = false; - - 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; From 7a4cad092371aa155d5007dc9ebf6d46474a6694 Mon Sep 17 00:00:00 2001 From: Vaern Date: Tue, 14 Feb 2023 23:00:22 -0800 Subject: [PATCH 4/6] Moved ZIRNOX rods to itemenummulti fully the lord is my shepherd; i shall not want --- .../java/com/hbm/crafting/RodRecipes.java | 31 +++---- .../java/com/hbm/hazard/HazardRegistry.java | 32 +++++--- src/main/java/com/hbm/items/ModItems.java | 82 +++++++++++-------- .../com/hbm/items/machine/ItemZirnoxRod.java | 1 + .../java/com/hbm/lib/HbmChestContents.java | 15 ++-- .../machine/TileEntityReactorZirnox.java | 23 +++--- 6 files changed, 107 insertions(+), 77 deletions(-) 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 1903b04de..50036c36b 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)); @@ -560,6 +561,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/items/ModItems.java b/src/main/java/com/hbm/items/ModItems.java index 955065c51..8fa6c19f9 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.*; @@ -1047,18 +1048,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; @@ -3682,18 +3684,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 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_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 ItemZirnoxRodDeprecated(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"); @@ -6909,18 +6912,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()); @@ -8590,6 +8594,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/ItemZirnoxRod.java b/src/main/java/com/hbm/items/machine/ItemZirnoxRod.java index d2abfda19..d42a3cf30 100644 --- a/src/main/java/com/hbm/items/machine/ItemZirnoxRod.java +++ b/src/main/java/com/hbm/items/machine/ItemZirnoxRod.java @@ -14,6 +14,7 @@ public class ItemZirnoxRod extends ItemEnumMulti { public ItemZirnoxRod() { super(EnumZirnoxType.class, true, true); + this.setMaxStackSize(1); } public static void setLifeTime(ItemStack stack, int time) { 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 a7d118374..f4f1afc39 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityReactorZirnox.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityReactorZirnox.java @@ -22,6 +22,7 @@ import com.hbm.inventory.fluid.tank.FluidTank; import com.hbm.items.ModItems; import com.hbm.items.machine.ItemZirnoxBreedingRod; import com.hbm.items.machine.ItemZirnoxRodDeprecated; +import com.hbm.items.machine.ItemZirnoxRod.EnumZirnoxType; import com.hbm.lib.Library; import com.hbm.main.MainRegistry; import com.hbm.tileentity.TileEntityMachineBase; @@ -63,17 +64,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() { From 0cfcbf1a97d5f1045a0e6907c572e9cc7eef1bdf Mon Sep 17 00:00:00 2001 From: Vaern Date: Wed, 15 Feb 2023 09:24:04 -0800 Subject: [PATCH 5/6] zox rod changes untested --- .../container/ContainerMachineTurbineGas.java | 4 -- .../container/ContainerReactorZirnox.java | 4 +- .../items/machine/ItemZirnoxBreedingRod.java | 27 ------------ .../com/hbm/items/machine/ItemZirnoxRod.java | 42 +++++++++++++++++-- .../machine/ItemZirnoxRodDeprecated.java | 30 ------------- .../machine/TileEntityReactorZirnox.java | 37 ++++++++-------- 6 files changed, 58 insertions(+), 86 deletions(-) delete mode 100644 src/main/java/com/hbm/items/machine/ItemZirnoxBreedingRod.java delete mode 100644 src/main/java/com/hbm/items/machine/ItemZirnoxRodDeprecated.java diff --git a/src/main/java/com/hbm/inventory/container/ContainerMachineTurbineGas.java b/src/main/java/com/hbm/inventory/container/ContainerMachineTurbineGas.java index b993d3a65..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.ItemZirnoxRodDeprecated; 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/inventory/container/ContainerReactorZirnox.java b/src/main/java/com/hbm/inventory/container/ContainerReactorZirnox.java index a3a18bb73..99365242e 100644 --- a/src/main/java/com/hbm/inventory/container/ContainerReactorZirnox.java +++ b/src/main/java/com/hbm/inventory/container/ContainerReactorZirnox.java @@ -3,7 +3,7 @@ package com.hbm.inventory.container; import com.hbm.inventory.FluidContainerRegistry; import com.hbm.inventory.SlotMachineOutput; import com.hbm.inventory.fluid.Fluids; -import com.hbm.items.machine.ItemZirnoxRodDeprecated; +import com.hbm.items.machine.ItemZirnoxRod; import com.hbm.tileentity.machine.TileEntityReactorZirnox; import net.minecraft.entity.player.EntityPlayer; @@ -88,7 +88,7 @@ public class ContainerReactorZirnox extends Container { } else { - if(stack.getItem() instanceof ItemZirnoxRodDeprecated) { + if(stack.getItem() instanceof ItemZirnoxRod) { if(!this.mergeItemStack(stack, 0, 24, true)) return null; 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 c8c869f25..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 ItemZirnoxRodDeprecated { - - 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 d42a3cf30..d98f0c5b5 100644 --- a/src/main/java/com/hbm/items/machine/ItemZirnoxRod.java +++ b/src/main/java/com/hbm/items/machine/ItemZirnoxRod.java @@ -1,11 +1,16 @@ 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.nbt.NBTTagCompound; import net.minecraft.util.IIcon; @@ -15,6 +20,17 @@ public class ItemZirnoxRod extends ItemEnumMulti { public ItemZirnoxRod() { super(EnumZirnoxType.class, true, true); this.setMaxStackSize(1); + this.canRepair = false; + } + + public static void incrementLifeTime(ItemStack stack) { + + if(!stack.hasTagCompound()) + stack.stackTagCompound = new NBTTagCompound(); + + int time = stack.stackTagCompound.getInteger("life"); + + stack.stackTagCompound.setInteger("life", time + 1); } public static void setLifeTime(ItemStack stack, int time) { @@ -43,6 +59,16 @@ public class ItemZirnoxRod extends ItemEnumMulti { 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)); + + for(String s : loc) { + list.add(s); + } + } @Override @SideOnly(Side.CLIENT) @@ -65,22 +91,30 @@ public class ItemZirnoxRod extends ItemEnumMulti { public static enum EnumZirnoxType { NATURAL_URANIUM_FUEL(250_000, 30), URANIUM_FUEL(200_000, 50), - TH232(20_000, 0), + 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), + LITHIUM(20_000, 0, true), ZFB_MOX(50_000, 35); - public int maxLife; - public int heat; + 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/items/machine/ItemZirnoxRodDeprecated.java b/src/main/java/com/hbm/items/machine/ItemZirnoxRodDeprecated.java deleted file mode 100644 index 1e0605f4e..000000000 --- a/src/main/java/com/hbm/items/machine/ItemZirnoxRodDeprecated.java +++ /dev/null @@ -1,30 +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 ItemZirnoxRodDeprecated extends ItemFuelRod { - - public int heat; - - public ItemZirnoxRodDeprecated(int life, int heat) { - super(life); - this.heat = heat; - } - - @Override - public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) { - - String[] descLocs = I18nUtil.resolveKeyArray("desc.item.zirnoxRod", heat, BobMathUtil.getShortNumber(lifeTime)); - - for(String loc : descLocs) { - list.add(loc); - } - } -} \ No newline at end of file diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityReactorZirnox.java b/src/main/java/com/hbm/tileentity/machine/TileEntityReactorZirnox.java index f4f1afc39..62be6c67e 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityReactorZirnox.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityReactorZirnox.java @@ -20,17 +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.ItemZirnoxRodDeprecated; +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; @@ -38,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 { @@ -96,12 +95,12 @@ public class TileEntityReactorZirnox extends TileEntityMachineBase implements IF @Override public boolean isItemValidForSlot(int i, ItemStack stack) { - return i < 24 && stack.getItem() instanceof ItemZirnoxRodDeprecated; + return i < 24 && stack.getItem() instanceof ItemZirnoxRod; } @Override public boolean canExtractItem(int i, ItemStack stack, int j) { - return i < 24 && !(stack.getItem() instanceof ItemZirnoxRodDeprecated); + return i < 24 && !(stack.getItem() instanceof ItemZirnoxRod); } @Override @@ -202,7 +201,7 @@ public class TileEntityReactorZirnox extends TileEntityMachineBase implements IF for(int i = 0; i < 24; i++) { if(slots[i] != null) { - if(slots[i].getItem() instanceof ItemZirnoxRodDeprecated) + if(slots[i].getItem() instanceof ItemZirnoxRod) decay(i); else if(slots[i].getItem() == ModItems.meteorite_sword_bred) slots[i] = new ItemStack(ModItems.meteorite_sword_irradiated); @@ -263,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 ItemZirnoxRodDeprecated; + if(slots[id].getItem() instanceof ItemZirnoxRod) { + final EnumZirnoxType num = EnumUtil.grabEnumSafely(EnumZirnoxType.class, slots[id].getItemDamage()); + return !num.breeding; } } @@ -291,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++) { - ItemZirnoxRodDeprecated rod = ((ItemZirnoxRodDeprecated) slots[id].getItem()); - this.heat += rod.heat; - ItemZirnoxRodDeprecated.setLifeTime(slots[id], ItemZirnoxRodDeprecated.getLifeTime(slots[id]) + 1); + this.heat += num.heat; + ItemZirnoxRod.incrementLifeTime(slots[id]);; - if(ItemZirnoxRodDeprecated.getLifeTime(slots[id]) > rod.lifeTime) { + if(ItemZirnoxRod.getLifeTime(slots[id]) > num.maxLife) { slots[id] = fuelMap.get(new ComparableStack(getStackInSlot(id))).copy(); break; } From a4b067616a728ac34792c3a81d03c09c0fd09abe Mon Sep 17 00:00:00 2001 From: Vaern Date: Wed, 15 Feb 2023 11:28:43 -0800 Subject: [PATCH 6/6] fixes --- .../hazard/modifier/HazardModifierFuelRadiation.java | 10 ++-------- src/main/java/com/hbm/items/machine/ItemZirnoxRod.java | 5 +++++ .../tileentity/machine/TileEntityReactorZirnox.java | 2 +- 3 files changed, 8 insertions(+), 9 deletions(-) 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/items/machine/ItemZirnoxRod.java b/src/main/java/com/hbm/items/machine/ItemZirnoxRod.java index d98f0c5b5..689593e97 100644 --- a/src/main/java/com/hbm/items/machine/ItemZirnoxRod.java +++ b/src/main/java/com/hbm/items/machine/ItemZirnoxRod.java @@ -65,6 +65,11 @@ public class ItemZirnoxRod extends ItemEnumMulti { 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); } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityReactorZirnox.java b/src/main/java/com/hbm/tileentity/machine/TileEntityReactorZirnox.java index 62be6c67e..3f8eaa2ac 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityReactorZirnox.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityReactorZirnox.java @@ -298,7 +298,7 @@ public class TileEntityReactorZirnox extends TileEntityMachineBase implements IF for(int i = 0; i < decay; i++) { this.heat += num.heat; - ItemZirnoxRod.incrementLifeTime(slots[id]);; + ItemZirnoxRod.incrementLifeTime(slots[id]); if(ItemZirnoxRod.getLifeTime(slots[id]) > num.maxLife) { slots[id] = fuelMap.get(new ComparableStack(getStackInSlot(id))).copy();