diff --git a/src/main/java/com/hbm/blocks/ModBlocks.java b/src/main/java/com/hbm/blocks/ModBlocks.java index 9f6aa727a..b8ed67088 100644 --- a/src/main/java/com/hbm/blocks/ModBlocks.java +++ b/src/main/java/com/hbm/blocks/ModBlocks.java @@ -1230,8 +1230,8 @@ public class ModBlocks { test_ct = new TestCT(Material.iron).setBlockName("test_ct").setCreativeTab(null).setHardness(2.5F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":test_ct"); test_rail = new TestRail(Material.iron).setBlockName("test_rail").setCreativeTab(null).setHardness(2.5F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":test_rail"); - ore_uranium = new BlockOutgas(Material.rock, true, 5, false).setBlockName("ore_uranium").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":ore_uranium"); - ore_uranium_scorched = new BlockOutgas(Material.rock, true, 5, false).setBlockName("ore_uranium_scorched").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":ore_uranium_scorched"); + ore_uranium = new BlockOutgas(Material.rock, true, 5, true).setBlockName("ore_uranium").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":ore_uranium"); + ore_uranium_scorched = new BlockOutgas(Material.rock, true, 5, true).setBlockName("ore_uranium_scorched").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":ore_uranium_scorched"); ore_titanium = new BlockGeneric(Material.rock).setBlockName("ore_titanium").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":ore_titanium"); ore_sulfur = new BlockOre(Material.rock).setBlockName("ore_sulfur").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":ore_sulfur"); ore_thorium = new BlockGeneric(Material.rock).setBlockName("ore_thorium").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":ore_thorium"); @@ -1256,8 +1256,8 @@ public class ModBlocks { ore_nether_coal = new BlockNetherCoal(Material.rock, false, 5, true).setBlockName("ore_nether_coal").setCreativeTab(MainRegistry.blockTab).setLightLevel(10F/15F).setHardness(0.4F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":ore_nether_coal"); ore_nether_smoldering = new BlockSmolder(Material.rock).setBlockName("ore_nether_smoldering").setCreativeTab(MainRegistry.blockTab).setLightLevel(1F).setHardness(0.4F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":ore_nether_smoldering"); - ore_nether_uranium = new BlockOutgas(Material.rock, true, 5, false).setBlockName("ore_nether_uranium").setCreativeTab(MainRegistry.blockTab).setHardness(0.4F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":ore_nether_uranium"); - ore_nether_uranium_scorched = new BlockOutgas(Material.rock, true, 5, false).setBlockName("ore_nether_uranium_scorched").setCreativeTab(MainRegistry.blockTab).setHardness(0.4F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":ore_nether_uranium_scorched"); + ore_nether_uranium = new BlockOutgas(Material.rock, true, 5, true).setBlockName("ore_nether_uranium").setCreativeTab(MainRegistry.blockTab).setHardness(0.4F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":ore_nether_uranium"); + ore_nether_uranium_scorched = new BlockOutgas(Material.rock, true, 5, true).setBlockName("ore_nether_uranium_scorched").setCreativeTab(MainRegistry.blockTab).setHardness(0.4F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":ore_nether_uranium_scorched"); ore_nether_plutonium = new BlockGeneric(Material.rock).setBlockName("ore_nether_plutonium").setCreativeTab(MainRegistry.blockTab).setHardness(0.4F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":ore_nether_plutonium"); ore_nether_tungsten = new BlockGeneric(Material.rock).setBlockName("ore_nether_tungsten").setCreativeTab(MainRegistry.blockTab).setHardness(0.4F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":ore_nether_tungsten"); ore_nether_sulfur = new BlockOre(Material.rock).setBlockName("ore_nether_sulfur").setCreativeTab(MainRegistry.blockTab).setHardness(0.4F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":ore_nether_sulfur"); @@ -1279,8 +1279,8 @@ public class ModBlocks { stone_gneiss = new BlockGeneric(Material.rock).setBlockName("stone_gneiss").setCreativeTab(MainRegistry.blockTab).setHardness(1.5F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":stone_gneiss_var"); ore_gneiss_iron = new BlockOre(Material.rock).setBlockName("ore_gneiss_iron").setCreativeTab(MainRegistry.blockTab).setHardness(1.5F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":ore_gneiss_iron"); ore_gneiss_gold = new BlockOre(Material.rock).setBlockName("ore_gneiss_gold").setCreativeTab(MainRegistry.blockTab).setHardness(1.5F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":ore_gneiss_gold"); - ore_gneiss_uranium = new BlockOutgas(Material.rock, true, 5, false).setBlockName("ore_gneiss_uranium").setCreativeTab(MainRegistry.blockTab).setHardness(1.5F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":ore_gneiss_uranium"); - ore_gneiss_uranium_scorched = new BlockOutgas(Material.rock, true, 5, false).setBlockName("ore_gneiss_uranium_scorched").setCreativeTab(MainRegistry.blockTab).setHardness(1.5F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":ore_gneiss_uranium_scorched"); + ore_gneiss_uranium = new BlockOutgas(Material.rock, true, 5, true).setBlockName("ore_gneiss_uranium").setCreativeTab(MainRegistry.blockTab).setHardness(1.5F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":ore_gneiss_uranium"); + ore_gneiss_uranium_scorched = new BlockOutgas(Material.rock, true, 5, true).setBlockName("ore_gneiss_uranium_scorched").setCreativeTab(MainRegistry.blockTab).setHardness(1.5F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":ore_gneiss_uranium_scorched"); ore_gneiss_copper = new BlockOre(Material.rock).setBlockName("ore_gneiss_copper").setCreativeTab(MainRegistry.blockTab).setHardness(1.5F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":ore_gneiss_copper"); ore_gneiss_asbestos = new BlockOutgas(Material.rock, true, 5, true).setBlockName("ore_gneiss_asbestos").setCreativeTab(MainRegistry.blockTab).setHardness(1.5F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":ore_gneiss_asbestos"); ore_gneiss_lithium = new BlockOre(Material.rock).setBlockName("ore_gneiss_lithium").setCreativeTab(MainRegistry.blockTab).setHardness(1.5F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":ore_gneiss_lithium"); diff --git a/src/main/java/com/hbm/blocks/generic/BlockCoalBurning.java b/src/main/java/com/hbm/blocks/generic/BlockCoalBurning.java index 312c9c310..7a8167446 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockCoalBurning.java +++ b/src/main/java/com/hbm/blocks/generic/BlockCoalBurning.java @@ -2,6 +2,8 @@ package com.hbm.blocks.generic; import java.util.Random; +import com.hbm.blocks.ModBlocks; + import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.block.Block; diff --git a/src/main/java/com/hbm/blocks/generic/BlockNetherCoal.java b/src/main/java/com/hbm/blocks/generic/BlockNetherCoal.java index 0e33d9f9a..a92ad77f9 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockNetherCoal.java +++ b/src/main/java/com/hbm/blocks/generic/BlockNetherCoal.java @@ -2,6 +2,7 @@ package com.hbm.blocks.generic; import java.util.Random; +import com.hbm.blocks.ModBlocks; import com.hbm.items.ModItems; import cpw.mods.fml.relauncher.Side; diff --git a/src/main/java/com/hbm/blocks/generic/BlockOutgas.java b/src/main/java/com/hbm/blocks/generic/BlockOutgas.java index b560957a8..61b42f7b3 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockOutgas.java +++ b/src/main/java/com/hbm/blocks/generic/BlockOutgas.java @@ -3,6 +3,7 @@ package com.hbm.blocks.generic; import java.util.Random; import com.hbm.blocks.ModBlocks; +import com.hbm.blocks.gas.BlockGasBase; import net.minecraft.block.Block; import net.minecraft.block.material.Material; @@ -33,12 +34,11 @@ public class BlockOutgas extends BlockOre { this.onNeighbour = onNeighbour; } - public int tickRate(World p_149738_1_) { + public int tickRate(World world) { return rate; } protected Block getGas() { - if(this == ModBlocks.ore_uranium || this == ModBlocks.ore_uranium_scorched || this == ModBlocks.ore_gneiss_uranium || this == ModBlocks.ore_gneiss_uranium_scorched || this == ModBlocks.ore_nether_uranium || this == ModBlocks.ore_nether_uranium_scorched) { @@ -96,7 +96,7 @@ public class BlockOutgas extends BlockOre { public void dropBlockAsItemWithChance(World world, int x, int y, int z, int meta, float chance, int fortune) { if(onBreak) { - world.setBlock(x, y, z, getGas()); + world.setBlock(x, y, z, this.getGas()); } super.dropBlockAsItemWithChance(world, x, y, z, meta, chance, fortune); diff --git a/src/main/java/com/hbm/config/MachineConfig.java b/src/main/java/com/hbm/config/MachineConfig.java index 1913db635..2ce702d73 100644 --- a/src/main/java/com/hbm/config/MachineConfig.java +++ b/src/main/java/com/hbm/config/MachineConfig.java @@ -5,14 +5,19 @@ import net.minecraftforge.common.config.Configuration; public class MachineConfig { public static boolean scaleRTGPower = false; - public static boolean doRTGsDecay = false; + public static boolean doRTGsDecay = true; public static void loadFromConfig(Configuration config) { final String CATEGORY_MACHINE = "09_machines"; scaleRTGPower = CommonConfig.createConfigBool(config, CATEGORY_MACHINE, "9.00_scaleRTGPower", "Should RTG/Betavoltaic fuel power scale down as it decays?", false); - doRTGsDecay = CommonConfig.createConfigBool(config, CATEGORY_MACHINE, "9.01_doRTGsDecay", "Should RTG/Betavoltaic fuel decay at all?", false); + doRTGsDecay = CommonConfig.createConfigBool(config, CATEGORY_MACHINE, "9.01_doRTGsDecay", "Should RTG/Betavoltaic fuel decay at all?", true); + + if(VersatileConfig.rtgDecay()) { + scaleRTGPower = true; + doRTGsDecay = true; + } } } diff --git a/src/main/java/com/hbm/config/VersatileConfig.java b/src/main/java/com/hbm/config/VersatileConfig.java index c46bc73bd..27c4b03bc 100644 --- a/src/main/java/com/hbm/config/VersatileConfig.java +++ b/src/main/java/com/hbm/config/VersatileConfig.java @@ -39,6 +39,10 @@ public class VersatileConfig { public static boolean hasPotionSickness(EntityLivingBase entity) { return entity.isPotionActive(HbmPotion.potionsickness); } + + public static boolean rtgDecay() { + return GeneralConfig.enable528; + } static int minute = 60 * 20; static int hour = 60 * minute; diff --git a/src/main/java/com/hbm/crafting/MineralRecipes.java b/src/main/java/com/hbm/crafting/MineralRecipes.java index fe321ebed..d50969699 100644 --- a/src/main/java/com/hbm/crafting/MineralRecipes.java +++ b/src/main/java/com/hbm/crafting/MineralRecipes.java @@ -58,7 +58,7 @@ public class MineralRecipes { add1To9Pair(ModItems.ingot_co60, ModItems.nugget_co60); add1To9Pair(ModItems.ingot_sr90, ModItems.nugget_sr90); add1To9Pair(ModItems.ingot_au198, ModItems.nugget_au198); - add1To9Pair(ModItems.ingot_pb200, ModItems.nugget_pb200); + add1To9Pair(ModItems.ingot_pb209, ModItems.nugget_pb209); add1To9Pair(ModItems.ingot_ra226, ModItems.nugget_ra226); add1To9Pair(ModItems.ingot_pu241, ModItems.nugget_pu241); @@ -104,7 +104,7 @@ public class MineralRecipes { addBillet(ModItems.billet_polonium, ModItems.ingot_polonium, ModItems.nugget_polonium, "nuggetPolonium"); addBillet(ModItems.billet_technetium, ModItems.ingot_technetium, ModItems.nugget_technetium, "nuggetTechnetium"); addBillet(ModItems.billet_au198, ModItems.ingot_au198, ModItems.nugget_au198, "nuggetGold198"); - addBillet(ModItems.billet_pb200, ModItems.ingot_pb200, ModItems.nugget_pb200, "nuggetLead200"); + addBillet(ModItems.billet_pb209, ModItems.ingot_pb209, ModItems.nugget_pb209, "nuggetLead200"); addBillet(ModItems.billet_ra226, ModItems.ingot_ra226, ModItems.nugget_ra226, "nuggetRa226"); addBillet(ModItems.billet_schrabidium, ModItems.ingot_schrabidium, ModItems.nugget_schrabidium, "nuggetSchrabidium"); addBillet(ModItems.billet_solinium, ModItems.ingot_solinium, ModItems.nugget_solinium, "nuggetSolinium"); @@ -205,7 +205,7 @@ public class MineralRecipes { GameRegistry.addRecipe(new ShapelessOreRecipe(new ItemStack(ModItems.pellet_rtg_weak), new Object[] { ModItems.billet_u238, ModItems.billet_u238, ModItems.billet_pu238, "plateIron" })); GameRegistry.addRecipe(new ShapelessOreRecipe(new ItemStack(ModItems.pellet_rtg_strontium), new Object[] { ModItems.billet_sr90, ModItems.billet_sr90, ModItems.billet_sr90, "plateIron" })); GameRegistry.addRecipe(new ShapelessOreRecipe(new ItemStack(ModItems.pellet_rtg_polonium), new Object[] { ModItems.billet_polonium, ModItems.billet_polonium, ModItems.billet_polonium, "plateIron" })); - GameRegistry.addRecipe(new ShapelessOreRecipe(new ItemStack(ModItems.pellet_rtg_lead), new Object[] { ModItems.billet_pb200, ModItems.billet_pb200, ModItems.billet_pb200, "plateIron" })); + GameRegistry.addRecipe(new ShapelessOreRecipe(new ItemStack(ModItems.pellet_rtg_lead), new Object[] { ModItems.billet_pb209, ModItems.billet_pb209, ModItems.billet_pb209, "plateIron" })); GameRegistry.addRecipe(new ShapelessOreRecipe(new ItemStack(ModItems.pellet_rtg_gold), new Object[] { ModItems.billet_au198, ModItems.billet_au198, ModItems.billet_au198, "plateIron" })); GameRegistry.addRecipe(new ShapelessOreRecipe(new ItemStack(ModItems.pellet_rtg_americium), new Object[] { ModItems.billet_am241, ModItems.billet_am241, ModItems.billet_am241, "plateIron" })); diff --git a/src/main/java/com/hbm/hazard/HazardRegistry.java b/src/main/java/com/hbm/hazard/HazardRegistry.java index 909caa30e..b8b71b314 100644 --- a/src/main/java/com/hbm/hazard/HazardRegistry.java +++ b/src/main/java/com/hbm/hazard/HazardRegistry.java @@ -9,6 +9,7 @@ import com.hbm.hazard.transformer.HazardTransformerRadiationNBT; import com.hbm.hazard.type.*; import com.hbm.items.ModItems; import com.hbm.items.machine.ItemBreedingRod.BreedingRodType; +import com.hbm.items.machine.ItemRTGPelletDepleted.DepletedRTGMaterial; import com.hbm.util.Compat; import com.hbm.util.Compat.ReikaIsotope; @@ -25,6 +26,7 @@ public class HazardRegistry { //XE135 9h β− aaaaaaaaaaaaaaaa //CS137 30a β− 020.00Rad/s Spicy //AU198 64h β− 500.00Rad/s 2 much spice :( + //PB209 3h β− 10,000.00Rad/s mama mia my face is melting off //AT209 5h β+ like 2k or sth idk bruv //PO210 138d α 075.00Rad/s Spicy //RA226 1,600a α 007.50Rad/s @@ -64,7 +66,7 @@ public class HazardRegistry { public static final float xe135 = 1250.0F; public static final float cs137 = 20.0F; public static final float au198 = 500.0F; - public static final float pb200 = 1500.0F; + public static final float pb209 = 10000.0F; public static final float at209 = 2000.0F; public static final float po210 = 75.0F; public static final float ra226 = 7.5F; @@ -246,6 +248,7 @@ public class HazardRegistry { registerOtherFuel(plate_fuel_pu239, pu239 * ingot, pu239 * ingot * 100, false); registerOtherFuel(plate_fuel_sa326, sa326 * ingot, sa326 * ingot * 100, true); registerOtherFuel(plate_fuel_ra226be, rabe * ingot, po210 * nugget * 3, false); + registerOtherFuel(plate_fuel_pu238be, pube * ingot, pu238 * nugget, false); registerOtherWaste(waste_plate_u233, u233 * ingot * 100); registerOtherWaste(waste_plate_u235, u235 * ingot * 100); @@ -308,14 +311,15 @@ public class HazardRegistry { HazardSystem.register(billet_ra226be, makeData(RADIATION, rabe * billet)); HazardSystem.register(billet_pu238be, makeData(RADIATION, pube * billet)); - HazardSystem.register(pellet_rtg, new HazardData().addEntry(RADIATION, pu238 * rtg).addEntry(HOT, 4F)); - HazardSystem.register(pellet_rtg_radium, makeData(RADIATION, ra226 * rtg)); - HazardSystem.register(pellet_rtg_weak, makeData(RADIATION, (pu238 + (u238 * 2)) * billet)); - HazardSystem.register(pellet_rtg_strontium, makeData(RADIATION, sr90 * rtg)); - HazardSystem.register(pellet_rtg_polonium, new HazardData().addEntry(RADIATION, po210 * rtg).addEntry(HOT, 3F)); - HazardSystem.register(pellet_rtg_lead, new HazardData().addEntry(RADIATION, pb200 * rtg).addEntry(HOT, 7F)); - HazardSystem.register(pellet_rtg_gold, new HazardData().addEntry(RADIATION, au198 * rtg).addEntry(HOT, 5F)); - HazardSystem.register(pellet_rtg_americium, makeData(RADIATION, am241 * rtg)); + registerRTGPellet(pellet_rtg, pu238 * rtg, 0, 4F); + registerRTGPellet(pellet_rtg_radium, ra226 * rtg, 0); + registerRTGPellet(pellet_rtg_weak, (pu238 + (u238 * 2)) * billet, 0); + registerRTGPellet(pellet_rtg_strontium, sr90 * rtg, 0); + registerRTGPellet(pellet_rtg_polonium, po210 * rtg, 0, 3F); + registerRTGPellet(pellet_rtg_lead, pb209 * rtg, 0, 7F, 5F); + registerRTGPellet(pellet_rtg_gold, au198 * rtg, 0, 5F); + registerRTGPellet(pellet_rtg_americium, am241 * rtg, 0); + HazardSystem.register(new ItemStack(pellet_rtg_depleted, 1, DepletedRTGMaterial.NEPTUNIUM.ordinal()), makeData(RADIATION, np237 * rtg)); registerBreedingRodRadiation(BreedingRodType.TRITIUM, 0.001F); registerBreedingRodRadiation(BreedingRodType.CO60, co60); @@ -462,6 +466,17 @@ public class HazardRegistry { HazardSystem.register(fuel, 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); } + + private static void registerRTGPellet(Item pellet, float base, float target, float hot, float blinding) { + HazardData data = new HazardData(); + data.addEntry(new HazardEntry(RADIATION, base).addMod(new HazardModifierRTGRadiation(target))); + if(hot > 0) data.addEntry(new HazardEntry(HOT, hot)); + if(blinding > 0) data.addEntry(new HazardEntry(BLINDING, hot)); + HazardSystem.register(pellet, data); + } + private static void registerOtherWaste(Item waste, float base) { HazardSystem.register(new ItemStack(waste, 1, 0), makeData(RADIATION, base * 0.75F)); diff --git a/src/main/java/com/hbm/hazard/modifier/HazardModifierRTGRadiation.java b/src/main/java/com/hbm/hazard/modifier/HazardModifierRTGRadiation.java new file mode 100644 index 000000000..3770848f3 --- /dev/null +++ b/src/main/java/com/hbm/hazard/modifier/HazardModifierRTGRadiation.java @@ -0,0 +1,30 @@ +package com.hbm.hazard.modifier; + +import com.hbm.items.machine.ItemRTGPellet; + +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.item.ItemStack; + +public class HazardModifierRTGRadiation extends HazardModifier { + + float target; + + public HazardModifierRTGRadiation(float target) { + this.target = target; + } + + @Override + public float modify(ItemStack stack, EntityLivingBase holder, float level) { + + if(stack.getItem() instanceof ItemRTGPellet) { + ItemRTGPellet fuel = (ItemRTGPellet) stack.getItem(); + double depletion = fuel.getDurabilityForDisplay(stack); + + level = (float) (level + (this.target - level) * depletion); + + } + + return level; + } + +} diff --git a/src/main/java/com/hbm/inventory/OreDictManager.java b/src/main/java/com/hbm/inventory/OreDictManager.java index e69742a4a..c9ac16a93 100644 --- a/src/main/java/com/hbm/inventory/OreDictManager.java +++ b/src/main/java/com/hbm/inventory/OreDictManager.java @@ -114,7 +114,7 @@ public class OreDictManager { public static final DictFrame RA226 = new DictFrame("Radium226", "Ra226"); public static final DictFrame CO60 = new DictFrame("Cobalt60", "Co60"); public static final DictFrame AU198 = new DictFrame("Gold198", "Au198"); - public static final DictFrame PB200 = new DictFrame("Lead200", "Pb200"); + public static final DictFrame PB209 = new DictFrame("Lead200", "Pb200"); public static final DictFrame SA326 = new DictFrame("Schrabidium"); public static final DictFrame SA327 = new DictFrame("Solinium"); public static final DictFrame SBD = new DictFrame("Schrabidate"); @@ -249,7 +249,7 @@ public class OreDictManager { RA226 .rad(HazardRegistry.ra226) .nugget(nugget_ra226) .billet(billet_ra226) .ingot(ingot_ra226) .dust(powder_ra226) .block(block_ra226); CO60 .rad(HazardRegistry.co60) .hot(1) .nugget(nugget_co60) .billet(billet_co60) .ingot(ingot_co60) .dust(powder_co60); AU198 .rad(HazardRegistry.au198) .hot(5) .nugget(nugget_au198) .billet(billet_au198) .ingot(ingot_au198) .dust(powder_au198); - PB200 .rad(HazardRegistry.pb200) .hot(7) .nugget(nugget_pb200) .billet(billet_pb200) .ingot(ingot_pb200); + PB209 .rad(HazardRegistry.pb209) .blinding(3F) .hot(7) .nugget(nugget_pb209) .billet(billet_pb209) .ingot(ingot_pb209); SA326 .rad(HazardRegistry.sa326) .blinding(3F) .nugget(nugget_schrabidium) .billet(billet_schrabidium) .ingot(ingot_schrabidium) .dust(powder_schrabidium) .plate(plate_schrabidium) .block(block_schrabidium) .ore(ore_schrabidium, ore_gneiss_schrabidium, ore_nether_schrabidium); SA327 .rad(HazardRegistry.sa327) .blinding(3F) .nugget(nugget_solinium) .billet(billet_solinium) .ingot(ingot_solinium) .block(block_solinium); SBD .rad(HazardRegistry.sb) .blinding(1F) .ingot(ingot_schrabidate) .dust(powder_schrabidate) .block(block_schrabidate); diff --git a/src/main/java/com/hbm/inventory/recipes/CentrifugeRecipes.java b/src/main/java/com/hbm/inventory/recipes/CentrifugeRecipes.java index 3a35e56f8..924aac9c4 100644 --- a/src/main/java/com/hbm/inventory/recipes/CentrifugeRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/CentrifugeRecipes.java @@ -77,6 +77,12 @@ public class CentrifugeRecipes { new ItemStack(ModItems.powder_cs137_tiny, 1), new ItemStack(ModItems.nuclear_waste_tiny, 4) }); + recipes.put(new ComparableStack(ModItems.waste_plate_pu238be), new ItemStack[] { + new ItemStack(ModItems.nugget_beryllium, 1), + new ItemStack(ModItems.nugget_pu238, 1), + new ItemStack(ModItems.powder_coal_tiny, 2), + new ItemStack(ModItems.nugget_lead, 2) }); + recipes.put(new ComparableStack(ModItems.waste_plate_pu239), new ItemStack[] { new ItemStack(ModItems.nugget_pu240, 2), new ItemStack(ModItems.nugget_technetium, 1), diff --git a/src/main/java/com/hbm/inventory/recipes/FuelPoolRecipes.java b/src/main/java/com/hbm/inventory/recipes/FuelPoolRecipes.java index ef3d35914..aeb2926d1 100644 --- a/src/main/java/com/hbm/inventory/recipes/FuelPoolRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/FuelPoolRecipes.java @@ -26,5 +26,6 @@ public class FuelPoolRecipes { recipes.put(new ComparableStack(new ItemStack(ModItems.waste_plate_pu239, 1, 1)), new ItemStack(ModItems.waste_plate_pu239)); recipes.put(new ComparableStack(new ItemStack(ModItems.waste_plate_sa326, 1, 1)), new ItemStack(ModItems.waste_plate_sa326)); recipes.put(new ComparableStack(new ItemStack(ModItems.waste_plate_ra226be, 1, 1)), new ItemStack(ModItems.waste_plate_ra226be)); + recipes.put(new ComparableStack(new ItemStack(ModItems.waste_plate_pu238be, 1, 1)), new ItemStack(ModItems.waste_plate_pu238be)); } } diff --git a/src/main/java/com/hbm/inventory/recipes/SILEXRecipes.java b/src/main/java/com/hbm/inventory/recipes/SILEXRecipes.java index 0c00dc84e..4e8aeaab6 100644 --- a/src/main/java/com/hbm/inventory/recipes/SILEXRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/SILEXRecipes.java @@ -217,19 +217,21 @@ public class SILEXRecipes { // LEAUS // recipes.put(new ComparableStack(ModItems.rbmk_pellet_leaus, 1, i), new SILEXRecipe(600, 100) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_australium_lesser), 90 - i * 20)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_pb200), 10 + 20 * i)) ); + .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_lead), 6 + 12 * i)) + .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_pb209), 4 + 8 * i)) ); recipes.put(new ComparableStack(ModItems.rbmk_pellet_leaus, 1, i + 5), new SILEXRecipe(600, 100) .addOut(new WeightedRandomObject(new ItemStack(ModItems.powder_xe135_tiny), 1)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_australium_lesser), 89 - i * 20)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_pb200), 10 + 20 * i)) ); + .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_lead), 6 + 12 * i)) + .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_pb209), 4 + 8 * i)) ); // HEAUS // recipes.put(new ComparableStack(ModItems.rbmk_pellet_heaus, 1, i), new SILEXRecipe(600, 100) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_australium_lesser), 90 - i * 20)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_au198), 5 + 10 * i)) .addOut(new WeightedRandomObject(new ItemStack(Items.gold_nugget), 3 + 6 * i)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_pb200), 2 + 4 * i)) ); + .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_pb209), 2 + 4 * i)) ); recipes.put(new ComparableStack(ModItems.rbmk_pellet_heaus, 1, i + 5), new SILEXRecipe(600, 100) @@ -237,7 +239,7 @@ public class SILEXRecipes { .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_australium_lesser), 89 - i * 20)) .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_au198), 5 + 10 * i)) .addOut(new WeightedRandomObject(new ItemStack(Items.gold_nugget), 3 + 6 * i)) - .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_pb200), 2 + 4 * i)) ); + .addOut(new WeightedRandomObject(new ItemStack(ModItems.nugget_pb209), 2 + 4 * i)) ); // BALEFIRE // recipes.put(new ComparableStack(ModItems.rbmk_pellet_balefire, 1, i), new SILEXRecipe(400, 100) diff --git a/src/main/java/com/hbm/inventory/recipes/anvil/AnvilRecipes.java b/src/main/java/com/hbm/inventory/recipes/anvil/AnvilRecipes.java index f56fbef3e..cc04c4988 100644 --- a/src/main/java/com/hbm/inventory/recipes/anvil/AnvilRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/anvil/AnvilRecipes.java @@ -13,6 +13,7 @@ import com.hbm.inventory.RecipesCommon.ComparableStack; import com.hbm.inventory.RecipesCommon.OreDictStack; import com.hbm.inventory.recipes.AssemblerRecipes; import com.hbm.items.ModItems; +import com.hbm.items.machine.ItemRTGPelletDepleted.DepletedRTGMaterial; import net.minecraft.block.Block; import net.minecraft.init.Blocks; @@ -280,6 +281,7 @@ public class AnvilRecipes { constructionRecipes.add(new AnvilConstructionRecipe(new ComparableStack(ModItems.ingot_pu239, 1), new AnvilOutput(new ItemStack(ModItems.plate_fuel_pu239))).setTier(4)); constructionRecipes.add(new AnvilConstructionRecipe(new ComparableStack(ModItems.ingot_schrabidium, 1), new AnvilOutput(new ItemStack(ModItems.plate_fuel_sa326))).setTier(4)); constructionRecipes.add(new AnvilConstructionRecipe(new ComparableStack(ModItems.billet_ra226be, 1), new AnvilOutput(new ItemStack(ModItems.plate_fuel_ra226be))).setTier(4)); + constructionRecipes.add(new AnvilConstructionRecipe(new ComparableStack(ModItems.billet_pu238be, 1), new AnvilOutput(new ItemStack(ModItems.plate_fuel_pu238be))).setTier(4)); } public static void registerConstructionAmmo() { @@ -593,8 +595,19 @@ public class AnvilRecipes { new AnvilOutput(new ItemStack(ModBlocks.rbmk_blank, 1)), new AnvilOutput(new ItemStack(ModBlocks.crate_steel, 2)) }).setTier(4)); - - + + //RTG + constructionRecipes.add(new AnvilConstructionRecipe(new ComparableStack(new ItemStack(ModItems.pellet_rtg_depleted, 1, DepletedRTGMaterial.BISMUTH.ordinal())), new AnvilOutput[] { + new AnvilOutput(new ItemStack(ModItems.billet_bismuth, 3)), new AnvilOutput(new ItemStack(ModItems.plate_iron, 1)) }).setTier(3)); + constructionRecipes.add(new AnvilConstructionRecipe(new ComparableStack(new ItemStack(ModItems.pellet_rtg_depleted, 1, DepletedRTGMaterial.LEAD.ordinal())), new AnvilOutput[] { + new AnvilOutput(new ItemStack(ModItems.nugget_lead, 18)), new AnvilOutput(new ItemStack(ModItems.plate_iron, 1)) }).setTier(3)); + constructionRecipes.add(new AnvilConstructionRecipe(new ComparableStack(new ItemStack(ModItems.pellet_rtg_depleted, 1, DepletedRTGMaterial.MERCURY.ordinal())), new AnvilOutput[] { + new AnvilOutput(new ItemStack(ModItems.nugget_mercury, 2)), new AnvilOutput(new ItemStack(ModItems.plate_iron, 1)) }).setTier(3)); + constructionRecipes.add(new AnvilConstructionRecipe(new ComparableStack(new ItemStack(ModItems.pellet_rtg_depleted, 1, DepletedRTGMaterial.NEPTUNIUM.ordinal())), new AnvilOutput[] { + new AnvilOutput(new ItemStack(ModItems.billet_neptunium, 3)), new AnvilOutput(new ItemStack(ModItems.plate_iron, 1)) }).setTier(3)); + constructionRecipes.add(new AnvilConstructionRecipe(new ComparableStack(new ItemStack(ModItems.pellet_rtg_depleted, 1, DepletedRTGMaterial.ZIRCONIUM.ordinal())), new AnvilOutput[] { + new AnvilOutput(new ItemStack(ModItems.billet_zirconium, 3)), new AnvilOutput(new ItemStack(ModItems.plate_iron, 1)) }).setTier(3)); + if(!GeneralConfig.enable528) { constructionRecipes.add(new AnvilConstructionRecipe( diff --git a/src/main/java/com/hbm/items/ModItems.java b/src/main/java/com/hbm/items/ModItems.java index e88b17512..bbda3f971 100644 --- a/src/main/java/com/hbm/items/ModItems.java +++ b/src/main/java/com/hbm/items/ModItems.java @@ -6,6 +6,7 @@ import com.hbm.handler.ToolAbility; import com.hbm.handler.ToolAbility.LuckAbility; import com.hbm.handler.WeaponAbility; import com.hbm.handler.guncfg.*; +import com.hbm.interfaces.ICustomWarhead.SaltedFuel.HalfLifeType; import com.hbm.inventory.fluid.Fluids; import com.hbm.items.armor.*; import com.hbm.items.bomb.*; @@ -14,6 +15,7 @@ import com.hbm.items.machine.*; import com.hbm.items.machine.ItemMachineUpgrade.UpgradeType; import com.hbm.items.machine.ItemPlateFuel.FunctionEnum; import com.hbm.items.machine.ItemRBMKRod.EnumBurnFunc; +import com.hbm.items.machine.ItemRTGPelletDepleted.DepletedRTGMaterial; import com.hbm.items.machine.ItemStamp.StampType; import com.hbm.items.special.*; import com.hbm.items.special.ItemPlasticScrap.ScrapType; @@ -26,6 +28,7 @@ import com.hbm.main.MainRegistry; import com.hbm.potion.HbmPotion; import com.hbm.tileentity.machine.rbmk.IRBMKFluxReceiver.NType; import com.hbm.util.EnchantmentUtil; +import com.hbm.util.RTGUtil; import api.hbm.block.IToolable.ToolType; import cpw.mods.fml.common.registry.GameRegistry; @@ -84,7 +87,7 @@ public class ModItems { public static Item ingot_co60; public static Item ingot_sr90; public static Item ingot_au198; - public static Item ingot_pb200; + public static Item ingot_pb209; public static Item ingot_ra226; public static Item ingot_titanium; public static Item ingot_cobalt; @@ -191,7 +194,7 @@ public class ModItems { public static Item billet_co60; public static Item billet_sr90; public static Item billet_au198; - public static Item billet_pb200; + public static Item billet_pb209; public static Item billet_ra226; public static Item billet_schrabidium; public static Item billet_solinium; @@ -241,7 +244,7 @@ public class ModItems { public static Item nugget_co60; public static Item nugget_sr90; public static Item nugget_au198; - public static Item nugget_pb200; + public static Item nugget_pb209; public static Item nugget_ra226; public static Item plate_titanium; public static Item plate_aluminium; @@ -709,6 +712,8 @@ public class ModItems { public static Item thermo_element; public static Item limiter; + public static Item pellet_rtg_depleted; + public static Item pellet_rtg; public static Item pellet_rtg_radium; public static Item pellet_rtg_weak; @@ -719,7 +724,7 @@ public class ModItems { public static Item pellet_rtg_gold; public static Item pellet_rtg_americium; public static Item pellet_rtg_berkelium; - + public static Item tritium_deuterium_cake; public static Item pellet_schrabidium; @@ -1007,8 +1012,9 @@ public class ModItems { public static Item waste_plate_u235; public static Item waste_plate_mox; public static Item waste_plate_pu239; - public static Item waste_plate_ra226be; public static Item waste_plate_sa326; + public static Item waste_plate_ra226be; + public static Item waste_plate_pu238be; public static Item pile_rod_uranium; public static Item pile_rod_plutonium; @@ -1019,8 +1025,9 @@ public class ModItems { public static Item plate_fuel_u235; public static Item plate_fuel_mox; public static Item plate_fuel_pu239; - public static Item plate_fuel_ra226be; public static Item plate_fuel_sa326; + public static Item plate_fuel_ra226be; + public static Item plate_fuel_pu238be; public static Item rbmk_lid; public static Item rbmk_lid_glass; @@ -1809,6 +1816,7 @@ public class ModItems { public static Item battery_sc_plutonium; public static Item battery_sc_polonium; public static Item battery_sc_gold; + public static Item battery_sc_lead; public static Item battery_sc_americium; public static Item battery_su; @@ -2500,7 +2508,7 @@ public class ModItems { ingot_co60 = new Item().setUnlocalizedName("ingot_co60").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_co60"); ingot_sr90 = new Item().setUnlocalizedName("ingot_sr90").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_sr90"); ingot_au198 = new Item().setUnlocalizedName("ingot_au198").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_au198"); - ingot_pb200 = new Item().setUnlocalizedName("ingot_pb200").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_pb200"); + ingot_pb209 = new Item().setUnlocalizedName("ingot_pb209").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_pb209"); ingot_ra226 = new Item().setUnlocalizedName("ingot_ra226").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_ra226"); ingot_titanium = new Item().setUnlocalizedName("ingot_titanium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_titanium"); ingot_cobalt = new Item().setUnlocalizedName("ingot_cobalt").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_cobalt"); @@ -2597,7 +2605,7 @@ public class ModItems { billet_co60 = new Item().setUnlocalizedName("billet_co60").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":billet_co60"); billet_sr90 = new Item().setUnlocalizedName("billet_sr90").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":billet_sr90"); billet_au198 = new Item().setUnlocalizedName("billet_au198").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":billet_au198"); - billet_pb200 = new Item().setUnlocalizedName("billet_pb200").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":billet_pb200"); + billet_pb209 = new Item().setUnlocalizedName("billet_pb209").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":billet_pb209"); billet_ra226 = new Item().setUnlocalizedName("billet_ra226").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":billet_ra226"); billet_schrabidium = new Item().setUnlocalizedName("billet_schrabidium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":billet_schrabidium"); billet_solinium = new Item().setUnlocalizedName("billet_solinium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":billet_solinium"); @@ -2709,7 +2717,7 @@ public class ModItems { nugget_co60 = new Item().setUnlocalizedName("nugget_co60").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":nugget_co60"); nugget_sr90 = new Item().setUnlocalizedName("nugget_sr90").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":nugget_sr90"); nugget_au198 = new Item().setUnlocalizedName("nugget_au198").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":nugget_au198"); - nugget_pb200 = new Item().setUnlocalizedName("nugget_pb200").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":nugget_pb200"); + nugget_pb209 = new Item().setUnlocalizedName("nugget_pb209").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":nugget_pb209"); nugget_ra226 = new Item().setUnlocalizedName("nugget_ra226").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":nugget_ra226"); plate_titanium = new Item().setUnlocalizedName("plate_titanium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":plate_titanium"); plate_aluminium = new Item().setUnlocalizedName("plate_aluminium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":plate_aluminium"); @@ -3053,16 +3061,19 @@ public class ModItems { wiring_red_copper = new ItemWiring().setUnlocalizedName("wiring_red_copper").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":wiring_red_copper"); - pellet_rtg = new ItemRTGPellet(10).setUnlocalizedName("pellet_rtg").setCreativeTab(MainRegistry.controlTab).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":pellet_rtg"); - pellet_rtg_radium = new ItemRTGPellet(3).setUnlocalizedName("pellet_rtg_radium").setCreativeTab(MainRegistry.controlTab).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":pellet_rtg_radium"); - pellet_rtg_weak = new ItemRTGPellet(5).setUnlocalizedName("pellet_rtg_weak").setCreativeTab(MainRegistry.controlTab).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":pellet_rtg_weak"); - pellet_rtg_polonium = new ItemRTGPellet(25).setUnlocalizedName("pellet_rtg_polonium").setCreativeTab(MainRegistry.controlTab).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":pellet_rtg_polonium"); + pellet_rtg_depleted = new ItemRTGPelletDepleted().setUnlocalizedName("pellet_rtg_depleted").setCreativeTab(MainRegistry.controlTab); //TODO: add localization; uncrafting recipes; make radiation scale with depletion for rtgs + + pellet_rtg = new ItemRTGPellet(10).setDecays(DepletedRTGMaterial.LEAD, (long) (RTGUtil.getLifespan(87.7F, HalfLifeType.MEDIUM, false) * 1.5)).setUnlocalizedName("pellet_rtg").setCreativeTab(MainRegistry.controlTab).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":pellet_rtg"); + pellet_rtg_radium = new ItemRTGPellet(3).setDecays(DepletedRTGMaterial.LEAD, (long) (RTGUtil.getLifespan(16.0F, HalfLifeType.LONG, false) * 1.5)).setUnlocalizedName("pellet_rtg_radium").setCreativeTab(MainRegistry.controlTab).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":pellet_rtg_radium"); + pellet_rtg_weak = new ItemRTGPellet(5).setDecays(DepletedRTGMaterial.LEAD, (long) (RTGUtil.getLifespan(1.0F, HalfLifeType.LONG, false) * 1.5)).setUnlocalizedName("pellet_rtg_weak").setCreativeTab(MainRegistry.controlTab).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":pellet_rtg_weak"); + pellet_rtg_polonium = new ItemRTGPellet(25).setDecays(DepletedRTGMaterial.LEAD, (long) (RTGUtil.getLifespan(138.0F, HalfLifeType.SHORT, false) * 1.5)).setUnlocalizedName("pellet_rtg_polonium").setCreativeTab(MainRegistry.controlTab).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":pellet_rtg_polonium"); pellet_rtg_actinium = new ItemRTGPellet(20).setUnlocalizedName("pellet_rtg_actinium").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":pellet_rtg_actinium"); - pellet_rtg_strontium = new ItemRTGPellet(15).setUnlocalizedName("pellet_rtg_strontium").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":pellet_rtg_strontium"); - pellet_rtg_lead = new ItemRTGPellet(200).setUnlocalizedName("pellet_rtg_lead").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":pellet_rtg_lead"); - pellet_rtg_gold = new ItemRTGPellet(150).setUnlocalizedName("pellet_rtg_gold").setCreativeTab(MainRegistry.controlTab).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":pellet_rtg_gold"); - pellet_rtg_americium = new ItemRTGPellet(15).setUnlocalizedName("pellet_rtg_americium").setCreativeTab(MainRegistry.controlTab).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":pellet_rtg_americium"); + pellet_rtg_strontium = new ItemRTGPellet(15).setDecays(DepletedRTGMaterial.ZIRCONIUM, (long) (RTGUtil.getLifespan(29.0F, HalfLifeType.MEDIUM, false) * 1.5)).setUnlocalizedName("pellet_rtg_strontium").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":pellet_rtg_strontium"); + pellet_rtg_lead = new ItemRTGPellet(300).setDecays(DepletedRTGMaterial.BISMUTH, (long) (RTGUtil.getLifespan(0.3F, HalfLifeType.SHORT, false) * 1.5)).setUnlocalizedName("pellet_rtg_lead").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":pellet_rtg_lead"); + pellet_rtg_gold = new ItemRTGPellet(150).setDecays(DepletedRTGMaterial.MERCURY, (long) (RTGUtil.getLifespan(2.7F, HalfLifeType.SHORT, false) * 1.5)).setUnlocalizedName("pellet_rtg_gold").setCreativeTab(MainRegistry.controlTab).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":pellet_rtg_gold"); + pellet_rtg_americium = new ItemRTGPellet(15).setDecays(DepletedRTGMaterial.NEPTUNIUM, (long) (RTGUtil.getLifespan(4.7F, HalfLifeType.LONG, false) * 1.5)).setUnlocalizedName("pellet_rtg_americium").setCreativeTab(MainRegistry.controlTab).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":pellet_rtg_americium"); pellet_rtg_berkelium = new ItemRTGPellet(20).setUnlocalizedName("pellet_rtg_berkelium").setCreativeTab(MainRegistry.controlTab).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":pellet_rtg_berkelium"); + tritium_deuterium_cake = new ItemCustomLore().setUnlocalizedName("tritium_deuterium_cake").setCreativeTab(MainRegistry.controlTab).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":tritium_deuterium_cake"); piston_selenium = new Item().setUnlocalizedName("piston_selenium").setCreativeTab(MainRegistry.controlTab).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":piston_selenium"); @@ -3464,8 +3475,9 @@ public class ModItems { waste_plate_u235 = new ItemDepletedFuel().setUnlocalizedName("waste_plate_u235").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":waste_plate_uranium"); waste_plate_mox = new ItemDepletedFuel().setUnlocalizedName("waste_plate_mox").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":waste_plate_mox"); waste_plate_pu239 = new ItemDepletedFuel().setUnlocalizedName("waste_plate_pu239").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":waste_plate_mox"); - waste_plate_ra226be = new ItemDepletedFuel().setUnlocalizedName("waste_plate_ra226be").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":waste_plate_ra226be"); waste_plate_sa326 = new ItemDepletedFuel().setUnlocalizedName("waste_plate_sa326").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":waste_plate_sa326"); + waste_plate_ra226be = new ItemDepletedFuel().setUnlocalizedName("waste_plate_ra226be").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":waste_plate_ra226be"); + waste_plate_pu238be = new ItemDepletedFuel().setUnlocalizedName("waste_plate_pu238be").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":waste_plate_pu238be"); pile_rod_uranium = new ItemPileRod().setUnlocalizedName("pile_rod_uranium").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":pile_rod_uranium"); pile_rod_plutonium = new ItemPileRod().setUnlocalizedName("pile_rod_plutonium").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":pile_rod_plutonium"); @@ -3476,8 +3488,9 @@ public class ModItems { plate_fuel_u235 = new ItemPlateFuel(2200000).setFunction(FunctionEnum.SQUARE_ROOT, 40).setUnlocalizedName("plate_fuel_u235").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":plate_fuel_u235"); plate_fuel_mox = new ItemPlateFuel(2400000).setFunction(FunctionEnum.LOGARITHM, 50).setUnlocalizedName("plate_fuel_mox").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":plate_fuel_mox"); plate_fuel_pu239 = new ItemPlateFuel(2000000).setFunction(FunctionEnum.NEGATIVE_QUADRATIC, 25).setUnlocalizedName("plate_fuel_pu239").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":plate_fuel_pu239"); + plate_fuel_sa326 = new ItemPlateFuel(2000000).setFunction(FunctionEnum.LINEAR, 80).setUnlocalizedName("plate_fuel_sa326").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":plate_fuel_sa326"); plate_fuel_ra226be = new ItemPlateFuel(1300000).setFunction(FunctionEnum.PASSIVE, 30).setUnlocalizedName("plate_fuel_ra226be").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":plate_fuel_ra226be"); - plate_fuel_sa326 = new ItemPlateFuel(2000000).setFunction(FunctionEnum.LINEAR, 60).setUnlocalizedName("plate_fuel_sa326").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":plate_fuel_sa326"); + plate_fuel_pu238be = new ItemPlateFuel(1000000).setFunction(FunctionEnum.PASSIVE, 50).setUnlocalizedName("plate_fuel_pu238be").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":plate_fuel_pu238be"); rbmk_lid = new ItemRBMKLid().setUnlocalizedName("rbmk_lid").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":rbmk_lid"); rbmk_lid_glass = new ItemRBMKLid().setUnlocalizedName("rbmk_lid_glass").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":rbmk_lid_glass"); @@ -4405,8 +4418,9 @@ public class ModItems { battery_sc_plutonium = new ItemSelfcharger(100).setUnlocalizedName("battery_sc_plutonium").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":battery_sc_plutonium"); battery_sc_polonium = new ItemSelfcharger(500).setUnlocalizedName("battery_sc_polonium").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":battery_sc_polonium"); battery_sc_gold = new ItemSelfcharger(2500).setUnlocalizedName("battery_sc_gold").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":battery_sc_gold"); + battery_sc_lead = new ItemSelfcharger(5000).setUnlocalizedName("battery_sc_lead").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":battery_sc_lead"); battery_sc_americium = new ItemSelfcharger(10000).setUnlocalizedName("battery_sc_americium").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":battery_sc_americium"); - + battery_potato = new ItemBattery(1000, 0, 100).setUnlocalizedName("battery_potato").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":battery_potato"); battery_potatos = new ItemPotatos(500000, 0, 100).setUnlocalizedName("battery_potatos").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":battery_potatos"); battery_su = new ItemBattery(50000, 0, 1000).setUnlocalizedName("battery_su").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":battery_su"); @@ -5470,7 +5484,7 @@ public class ModItems { GameRegistry.registerItem(ingot_co60, ingot_co60.getUnlocalizedName()); GameRegistry.registerItem(ingot_sr90, ingot_sr90.getUnlocalizedName()); GameRegistry.registerItem(ingot_au198, ingot_au198.getUnlocalizedName()); - GameRegistry.registerItem(ingot_pb200, ingot_pb200.getUnlocalizedName()); + GameRegistry.registerItem(ingot_pb209, ingot_pb209.getUnlocalizedName()); GameRegistry.registerItem(ingot_ra226, ingot_ra226.getUnlocalizedName()); GameRegistry.registerItem(ingot_titanium, ingot_titanium.getUnlocalizedName()); GameRegistry.registerItem(ingot_copper, ingot_copper.getUnlocalizedName()); @@ -5565,7 +5579,7 @@ public class ModItems { GameRegistry.registerItem(billet_co60, billet_co60.getUnlocalizedName()); GameRegistry.registerItem(billet_sr90, billet_sr90.getUnlocalizedName()); GameRegistry.registerItem(billet_au198, billet_au198.getUnlocalizedName()); - GameRegistry.registerItem(billet_pb200, billet_pb200.getUnlocalizedName()); + GameRegistry.registerItem(billet_pb209, billet_pb209.getUnlocalizedName()); GameRegistry.registerItem(billet_ra226, billet_ra226.getUnlocalizedName()); GameRegistry.registerItem(billet_schrabidium, billet_schrabidium.getUnlocalizedName()); GameRegistry.registerItem(billet_solinium, billet_solinium.getUnlocalizedName()); @@ -5785,7 +5799,7 @@ public class ModItems { GameRegistry.registerItem(nugget_sr90, nugget_sr90.getUnlocalizedName()); GameRegistry.registerItem(nugget_technetium, nugget_technetium.getUnlocalizedName()); GameRegistry.registerItem(nugget_au198, nugget_au198.getUnlocalizedName()); - GameRegistry.registerItem(nugget_pb200, nugget_pb200.getUnlocalizedName()); + GameRegistry.registerItem(nugget_pb209, nugget_pb209.getUnlocalizedName()); GameRegistry.registerItem(nugget_ra226, nugget_ra226.getUnlocalizedName()); GameRegistry.registerItem(nugget_lead, nugget_lead.getUnlocalizedName()); GameRegistry.registerItem(nugget_bismuth, nugget_bismuth.getUnlocalizedName()); @@ -6079,6 +6093,7 @@ public class ModItems { GameRegistry.registerItem(pellet_rtg_gold, pellet_rtg_gold.getUnlocalizedName()); GameRegistry.registerItem(pellet_rtg_americium, pellet_rtg_americium.getUnlocalizedName()); GameRegistry.registerItem(pellet_rtg_berkelium, pellet_rtg_berkelium.getUnlocalizedName()); + GameRegistry.registerItem(pellet_rtg_depleted, pellet_rtg_depleted.getUnlocalizedName()); GameRegistry.registerItem(tritium_deuterium_cake, tritium_deuterium_cake.getUnlocalizedName()); GameRegistry.registerItem(pellet_cluster, pellet_cluster.getUnlocalizedName()); GameRegistry.registerItem(pellet_buckshot, pellet_buckshot.getUnlocalizedName()); @@ -6234,6 +6249,7 @@ public class ModItems { GameRegistry.registerItem(battery_sc_plutonium, battery_sc_plutonium.getUnlocalizedName()); GameRegistry.registerItem(battery_sc_polonium, battery_sc_polonium.getUnlocalizedName()); GameRegistry.registerItem(battery_sc_gold, battery_sc_gold.getUnlocalizedName()); + GameRegistry.registerItem(battery_sc_lead, battery_sc_lead.getUnlocalizedName()); GameRegistry.registerItem(battery_sc_americium, battery_sc_americium.getUnlocalizedName()); GameRegistry.registerItem(hev_battery, hev_battery.getUnlocalizedName()); GameRegistry.registerItem(fusion_core, fusion_core.getUnlocalizedName()); @@ -6476,6 +6492,7 @@ public class ModItems { GameRegistry.registerItem(waste_plate_pu239, waste_plate_pu239.getUnlocalizedName()); GameRegistry.registerItem(waste_plate_ra226be, waste_plate_ra226be.getUnlocalizedName()); GameRegistry.registerItem(waste_plate_sa326, waste_plate_sa326.getUnlocalizedName()); + GameRegistry.registerItem(waste_plate_pu238be, waste_plate_pu238be.getUnlocalizedName()); //Pile parts GameRegistry.registerItem(pile_rod_uranium, pile_rod_uranium.getUnlocalizedName()); @@ -6488,8 +6505,9 @@ public class ModItems { GameRegistry.registerItem(plate_fuel_u235, plate_fuel_u235.getUnlocalizedName()); GameRegistry.registerItem(plate_fuel_mox, plate_fuel_mox.getUnlocalizedName()); GameRegistry.registerItem(plate_fuel_pu239, plate_fuel_pu239.getUnlocalizedName()); - GameRegistry.registerItem(plate_fuel_ra226be, plate_fuel_ra226be.getUnlocalizedName()); GameRegistry.registerItem(plate_fuel_sa326, plate_fuel_sa326.getUnlocalizedName()); + GameRegistry.registerItem(plate_fuel_ra226be, plate_fuel_ra226be.getUnlocalizedName()); + GameRegistry.registerItem(plate_fuel_pu238be, plate_fuel_pu238be.getUnlocalizedName()); //RBMK parts GameRegistry.registerItem(rbmk_lid, rbmk_lid.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/items/machine/ItemRTGPellet.java b/src/main/java/com/hbm/items/machine/ItemRTGPellet.java index 895fa3267..03dc0d041 100644 --- a/src/main/java/com/hbm/items/machine/ItemRTGPellet.java +++ b/src/main/java/com/hbm/items/machine/ItemRTGPellet.java @@ -7,19 +7,23 @@ import javax.annotation.CheckForNull; import javax.annotation.Nonnull; import com.google.common.collect.ImmutableSet; +import com.hbm.config.MachineConfig; import com.hbm.items.ModItems; +import com.hbm.items.machine.ItemRTGPelletDepleted.DepletedRTGMaterial; import com.hbm.tileentity.IRadioisotopeFuel; +import com.hbm.util.BobMathUtil; import com.hbm.util.I18nUtil; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.ChatComponentText; import net.minecraft.util.ChatStyle; import net.minecraft.util.EnumChatFormatting; import net.minecraft.world.World; -public class ItemRTGPellet extends Item implements IRadioisotopeFuel { +public class ItemRTGPellet extends Item { private short heat = 0; private boolean doesDecay = false; @@ -52,34 +56,73 @@ public class ItemRTGPellet extends Item implements IRadioisotopeFuel { "In the 1920s, uranium was considered a useless byproduct of the production of radium.", "The Manhattan Project referred to refined natural uranium as tuballoy, enriched uranium as oralloy, and depleted uranium as depletalloy." }; - - @Override - public ItemRTGPellet setDecays(@Nonnull ItemStack itemIn, long life) { + + public ItemRTGPellet setDecays(DepletedRTGMaterial mat, long life) { doesDecay = true; - decayItem = itemIn; + decayItem = new ItemStack(ModItems.pellet_rtg_depleted, 1, mat.ordinal()); lifespan = life; return this; } - @Override public long getMaxLifespan() { return lifespan; } - @Override public short getHeat() { return heat; } @CheckForNull - @Override public ItemStack getDecayItem() { return decayItem == null ? null : decayItem.copy(); } - @Override public boolean getDoesDecay() { - return doesDecay; + return this.doesDecay; + } + + public static ItemStack handleDecay(ItemStack stack, ItemRTGPellet instance) { + if (instance.getDoesDecay() && MachineConfig.doRTGsDecay) { + if (instance.getLifespan(stack) <= 0) + return instance.getDecayItem(); + else + instance.decay(stack); + } + + return stack; + } + + public void decay(ItemStack stack) { + if (stack != null && stack.getItem() instanceof ItemRTGPellet) { + if (!((ItemRTGPellet) stack.getItem()).getDoesDecay()) + return; + if (stack.hasTagCompound()) + stack.stackTagCompound.setLong("PELLET_DEPLETION", getLifespan(stack) - 1); + else { + stack.stackTagCompound = new NBTTagCompound(); + stack.stackTagCompound.setLong("PELLET_DEPLETION", getMaxLifespan()); + } + } + } + + public long getLifespan(ItemStack stack) + { + if (stack != null && stack.getItem() instanceof ItemRTGPellet) + { + if (stack.hasTagCompound()) + return stack.stackTagCompound.getLong("PELLET_DEPLETION"); + else + { + stack.stackTagCompound = new NBTTagCompound(); + stack.stackTagCompound.setLong("PELLET_DEPLETION", getMaxLifespan()); + return getMaxLifespan(); + } + } + return 0; + } + + public static short getScaledPower(ItemRTGPellet fuel, ItemStack stack) { + return (short) Math.ceil(fuel.getHeat() * ((double)fuel.getLifespan(stack) / (double)fuel.getMaxLifespan())); } @Override @@ -93,21 +136,35 @@ public class ItemRTGPellet extends Item implements IRadioisotopeFuel { return stack; } - @Override - public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean bool) { - super.addInformation(stack, player, list, bool); - list.add(I18nUtil.resolveKey(this.getUnlocalizedName() + ".desc")); - IRadioisotopeFuel.addTooltip(list, stack, bool); - } - @Override public boolean showDurabilityBar(ItemStack stack) { return getDoesDecay() && getLifespan(stack) != getMaxLifespan(); } - + @Override public double getDurabilityForDisplay(ItemStack stack) { - return IRadioisotopeFuel.getDuraBar(stack); + final ItemRTGPellet instance = (ItemRTGPellet) stack.getItem(); + return 1D - (double)instance.getLifespan(stack) / (double)instance.getMaxLifespan(); + } + + @Override + public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean bool) { + super.addInformation(stack, player, list, bool); + list.add(I18nUtil.resolveKey(this.getUnlocalizedName().concat(".desc"))); + final ItemRTGPellet instance = (ItemRTGPellet) stack.getItem(); + list.add(I18nUtil.resolveKey("desc.item.rtgHeat", instance.getDoesDecay() && MachineConfig.scaleRTGPower ? getScaledPower(instance, stack) : instance.getHeat())); + if (instance.getDoesDecay()) { + list.add(I18nUtil.resolveKey("desc.item.rtgDecay", I18nUtil.resolveKey(instance.getDecayItem().getUnlocalizedName() + ".name"), instance.getDecayItem().stackSize)); + list.add(BobMathUtil.toPercentage(instance.getLifespan(stack), instance.getMaxLifespan())); + if (bool) { + list.add("EXTENDED INFO:"); + list.add(String.format("%s / %s ticks", instance.getLifespan(stack), instance.getMaxLifespan())); + final String[] timeLeft = BobMathUtil.ticksToDate(instance.getLifespan(stack)); + final String[] maxLife = BobMathUtil.ticksToDate(instance.getMaxLifespan()); + list.add(String.format("Time remaining: %s y, %s d, %s h", (Object[]) timeLeft)); + list.add(String.format("Maximum life: %s y, %s d, %s h", (Object[]) maxLife)); + } + } } public String getData() { diff --git a/src/main/java/com/hbm/items/machine/ItemRTGPelletDepleted.java b/src/main/java/com/hbm/items/machine/ItemRTGPelletDepleted.java new file mode 100644 index 000000000..f6d932e70 --- /dev/null +++ b/src/main/java/com/hbm/items/machine/ItemRTGPelletDepleted.java @@ -0,0 +1,18 @@ +package com.hbm.items.machine; + +import com.hbm.items.ItemEnumMulti; + +public class ItemRTGPelletDepleted extends ItemEnumMulti { + + public ItemRTGPelletDepleted() { + super(DepletedRTGMaterial.class, true, true); + } + + public enum DepletedRTGMaterial { + BISMUTH, + MERCURY, + NEPTUNIUM, + LEAD, + ZIRCONIUM; + } +} diff --git a/src/main/java/com/hbm/main/CraftingManager.java b/src/main/java/com/hbm/main/CraftingManager.java index 247a239cf..3e58b9d5b 100644 --- a/src/main/java/com/hbm/main/CraftingManager.java +++ b/src/main/java/com/hbm/main/CraftingManager.java @@ -513,7 +513,8 @@ public class CraftingManager { addRecipeAuto(new ItemStack(ModItems.battery_sc_plutonium), new Object[] { "NBN", "PCP", "NBN", 'N', TC99.nugget(), 'B', PU238.billet(), 'P', PB.plate(), 'C', ModItems.battery_sc_technetium }); addRecipeAuto(new ItemStack(ModItems.battery_sc_polonium), new Object[] { "NBN", "PCP", "NBN", 'N', TC99.nugget(), 'B', PO210.billet(), 'P', POLYMER.ingot(), 'C', ModItems.battery_sc_plutonium }); addRecipeAuto(new ItemStack(ModItems.battery_sc_gold), new Object[] { "NBN", "PCP", "NBN", 'N', TA.nugget(), 'B', AU198.billet(), 'P', POLYMER.ingot(), 'C', ModItems.battery_sc_polonium }); - addRecipeAuto(new ItemStack(ModItems.battery_sc_americium), new Object[] { "NBN", "PCP", "NBN", 'N', TA.nugget(), 'B', AM241.billet(), 'P', POLYMER.ingot(), 'C', ModItems.battery_sc_gold }); + addRecipeAuto(new ItemStack(ModItems.battery_sc_lead), new Object[] { "NBN", "PCP", "NBN", 'N', TA.nugget(), 'B', PB209.billet(), 'P', POLYMER.ingot(), 'C', ModItems.battery_sc_gold }); + addRecipeAuto(new ItemStack(ModItems.battery_sc_americium), new Object[] { "NBN", "PCP", "NBN", 'N', TA.nugget(), 'B', AM241.billet(), 'P', POLYMER.ingot(), 'C', ModItems.battery_sc_lead }); addRecipeAuto(new ItemStack(ModItems.wiring_red_copper, 1), new Object[] { "PPP", "PIP", "PPP", 'P', STEEL.plate(), 'I', STEEL.ingot() }); addRecipeAuto(new ItemStack(ModItems.tank_waste, 1), new Object[] { "PTP", "PTP", "PTP", 'T', ModItems.tank_steel, 'P', STEEL.plate() }); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityDiFurnace.java b/src/main/java/com/hbm/tileentity/machine/TileEntityDiFurnace.java index a535fdb73..279812b36 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityDiFurnace.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityDiFurnace.java @@ -3,6 +3,8 @@ package com.hbm.tileentity.machine; import com.hbm.blocks.machine.MachineDiFurnace; import com.hbm.inventory.recipes.MachineRecipes; import com.hbm.items.ModItems; +import com.hbm.items.machine.ItemRTGPellet; +import com.hbm.util.RTGUtil; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.init.Blocks; @@ -331,9 +333,10 @@ public class TileEntityDiFurnace extends TileEntity implements ISidedInventory { trigger = false; } - if (this.slots[2] != null && this.slots[2].getItem() == ModItems.pellet_rtg) { - - this.dualPower = maxPower; + if (this.slots[2] != null && (this.slots[2].getItem() instanceof ItemRTGPellet)) { + this.dualPower += RTGUtil.updateRTGs(slots, new int[] { 2 }); + if(this.dualPower > maxPower) + this.dualPower = maxPower; } if(trigger) diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityDiFurnaceRTG.java b/src/main/java/com/hbm/tileentity/machine/TileEntityDiFurnaceRTG.java index 24972417a..9129571bc 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityDiFurnaceRTG.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityDiFurnaceRTG.java @@ -3,14 +3,13 @@ package com.hbm.tileentity.machine; import com.hbm.blocks.machine.MachineDiFurnaceRTG; import com.hbm.inventory.recipes.MachineRecipes; import com.hbm.items.machine.ItemRTGPellet; -import com.hbm.tileentity.IRTGUser; -import com.hbm.tileentity.IRadioisotopeFuel; +import com.hbm.util.RTGUtil; import com.hbm.tileentity.TileEntityMachineBase; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; -public class TileEntityDiFurnaceRTG extends TileEntityMachineBase implements IRTGUser +public class TileEntityDiFurnaceRTG extends TileEntityMachineBase { public short progress; private short processSpeed = 0; @@ -125,7 +124,7 @@ public class TileEntityDiFurnaceRTG extends TileEntityMachineBase implements IRT } public boolean hasPower() { - processSpeed = (short) updateRTGs(slots, rtgIn); + processSpeed = (short) RTGUtil.updateRTGs(slots, rtgIn); return processSpeed >= 15; } @@ -170,14 +169,4 @@ public class TileEntityDiFurnaceRTG extends TileEntityMachineBase implements IRT return "container.diFurnaceRTG"; } - @Override - public int getHeat() { - return processSpeed; - } - - @Override - public Class getDesiredClass() { - return ItemRTGPellet.class; - } - } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineIGenerator.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineIGenerator.java index f98b025c8..4bac885db 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineIGenerator.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineIGenerator.java @@ -13,6 +13,7 @@ import com.hbm.items.ModItems; import com.hbm.items.machine.ItemRTGPellet; import com.hbm.lib.Library; import com.hbm.tileentity.TileEntityMachineBase; +import com.hbm.util.RTGUtil; import api.hbm.energy.IEnergyGenerator; import cpw.mods.fml.relauncher.Side; @@ -32,6 +33,7 @@ public class TileEntityMachineIGenerator extends TileEntityMachineBase implement public int spin; public int[] burn = new int[4]; public boolean hasRTG = false; + public int[] RTGSlots = new int[]{ 11, 12, 13, 14, 15, 16, 17, 18, 19, 20 }; @SideOnly(Side.CLIENT) public float rotation; @@ -124,19 +126,8 @@ public class TileEntityMachineIGenerator extends TileEntityMachineBase implement } // RTG /// - this.hasRTG = false; - for(int i = 11; i < 21; i++) { - if(slots[i] != null && slots[i].getItem() instanceof ItemRTGPellet) { - ItemRTGPellet pellet = (ItemRTGPellet) slots[i].getItem(); - this.spin += pellet.getHeat() * 10; - this.hasRTG = true; - - if(slots[i].getItem() == ModItems.pellet_rtg_gold || slots[i].getItem() == ModItems.pellet_rtg_lead) { - if(worldObj.rand.nextInt(60*60*20) == 0) - slots[i] = null; - } - } - } + this.hasRTG = RTGUtil.hasHeat(slots, RTGSlots); + this.spin += RTGUtil.updateRTGs(slots, RTGSlots) * 10; if(this.spin > 0) { diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRTG.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRTG.java index 11879d478..db46d6d85 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRTG.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRTG.java @@ -7,6 +7,7 @@ import com.hbm.items.machine.ItemRTGPellet; import com.hbm.lib.Library; import com.hbm.packet.AuxElectricityPacket; import com.hbm.packet.PacketDispatcher; +import com.hbm.util.RTGUtil; import api.hbm.energy.IEnergyGenerator; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; @@ -27,9 +28,7 @@ public class TileEntityMachineRTG extends TileEntity implements ISidedInventory, public long power; public final long powerMax = 100000; - private static final int[] slots_top = new int[] { 0 }; - private static final int[] slots_bottom = new int[] { 0 }; - private static final int[] slots_side = new int[] { 0 }; + public static final int[] slot_io = new int[] { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14 }; private String customName; @@ -105,10 +104,7 @@ public class TileEntityMachineRTG extends TileEntity implements ISidedInventory, @Override public boolean isItemValidForSlot(int i, ItemStack itemStack) { - - if(itemStack.getItem() != null && (itemStack.getItem() == ModItems.pellet_rtg || itemStack.getItem() == ModItems.pellet_rtg_weak)) - return true; - return false; + return itemStack.getItem() instanceof ItemRTGPellet; } @Override @@ -174,9 +170,8 @@ public class TileEntityMachineRTG extends TileEntity implements ISidedInventory, } @Override - public int[] getAccessibleSlotsFromSide(int p_94128_1_) - { - return p_94128_1_ == 0 ? slots_bottom : (p_94128_1_ == 1 ? slots_top : slots_side); + public int[] getAccessibleSlotsFromSide(int p_94128_1_){ + return slot_io; } @Override @@ -202,7 +197,7 @@ public class TileEntityMachineRTG extends TileEntity implements ISidedInventory, } public boolean hasHeat() { - return heat > 0; + return RTGUtil.hasHeat(slots, slot_io); } @Override @@ -213,20 +208,7 @@ public class TileEntityMachineRTG extends TileEntity implements ISidedInventory, for(ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS) this.sendPower(worldObj, xCoord + dir.offsetX, yCoord + dir.offsetY, zCoord + dir.offsetZ, dir.getOpposite()); - heat = 0; - - for(int i = 0; i < slots.length; i++) { - - if(slots[i] != null && slots[i].getItem() instanceof ItemRTGPellet) { - - heat += ((ItemRTGPellet)slots[i].getItem()).getHeat(); - - if(slots[i].getItem() == ModItems.pellet_rtg_gold || slots[i].getItem() == ModItems.pellet_rtg_lead) { - if(worldObj.rand.nextInt(60*60*20) == 0) - slots[i] = null; - } - } - } + heat = RTGUtil.updateRTGs(slots, slot_io); if(heat > heatMax) heat = heatMax; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityReactorControl.java b/src/main/java/com/hbm/tileentity/machine/TileEntityReactorControl.java index 543152963..3fc148613 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityReactorControl.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityReactorControl.java @@ -4,8 +4,6 @@ import com.hbm.blocks.ModBlocks; import com.hbm.blocks.machine.ReactorResearch; import com.hbm.interfaces.IControlReceiver; import com.hbm.items.ModItems; -import com.hbm.packet.NBTControlPacket; -import com.hbm.packet.PacketDispatcher; import com.hbm.tileentity.TileEntityMachineBase; import com.hbm.tileentity.machine.rbmk.TileEntityRBMKControlAuto.RBMKFunction; import com.hbm.tileentity.machine.rbmk.TileEntityRBMKControlManual.RBMKColor; @@ -127,9 +125,7 @@ public class TileEntityReactorControl extends TileEntityMachineBase implements I double level = MathHelper.clamp_double((fauxLevel * 0.01D), 0D, 1D); if(level != this.level) { - NBTTagCompound control = new NBTTagCompound(); - control.setDouble("level", level); - PacketDispatcher.wrapper.sendToServer(new NBTControlPacket(control, reactor.xCoord, reactor.yCoord, reactor.zCoord)); + reactor.setTarget(level); } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityReactorResearch.java b/src/main/java/com/hbm/tileentity/machine/TileEntityReactorResearch.java index 324fc2005..5950b7a9c 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityReactorResearch.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityReactorResearch.java @@ -67,6 +67,7 @@ public class TileEntityReactorResearch extends TileEntityMachineBase implements fuelMap.put(new ComparableStack(ModItems.plate_fuel_pu239), new ItemStack(ModItems.waste_plate_pu239, 1, 1)); fuelMap.put(new ComparableStack(ModItems.plate_fuel_sa326), new ItemStack(ModItems.waste_plate_sa326, 1, 1)); fuelMap.put(new ComparableStack(ModItems.plate_fuel_ra226be), new ItemStack(ModItems.waste_plate_ra226be, 1, 1)); + fuelMap.put(new ComparableStack(ModItems.plate_fuel_pu238be), new ItemStack(ModItems.waste_plate_pu238be, 1, 1)); } public String getName() { diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityRtgFurnace.java b/src/main/java/com/hbm/tileentity/machine/TileEntityRtgFurnace.java index 08162fc08..1062d3a9d 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityRtgFurnace.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityRtgFurnace.java @@ -11,13 +11,15 @@ import net.minecraft.tileentity.TileEntity; import com.hbm.blocks.machine.MachineRtgFurnace; import com.hbm.items.ModItems; +import com.hbm.items.machine.ItemRTGPellet; +import com.hbm.util.RTGUtil; public class TileEntityRtgFurnace extends TileEntity implements ISidedInventory { private ItemStack slots[]; public int dualCookTime; - public static final int processingSpeed = 100; + public static final int processingSpeed = 1000; private static final int[] slots_top = new int[] {0}; private static final int[] slots_bottom = new int[] {4}; @@ -101,14 +103,7 @@ public class TileEntityRtgFurnace extends TileEntity implements ISidedInventory } public boolean isLoaded() { - - for(int i = 1; i <= 3; i++) { - - if(!(slots[i] != null && (slots[i].getItem() == ModItems.pellet_rtg || slots[i].getItem() == ModItems.pellet_rtg_polonium))) - return false; - } - - return true; + return RTGUtil.hasHeat(slots, slots_side); } @Override @@ -262,9 +257,9 @@ public class TileEntityRtgFurnace extends TileEntity implements ISidedInventory { if(hasPower() && canProcess()) { - dualCookTime++; + dualCookTime += RTGUtil.updateRTGs(slots, slots_side); - if(this.dualCookTime == TileEntityRtgFurnace.processingSpeed) + if(this.dualCookTime >= TileEntityRtgFurnace.processingSpeed) { this.dualCookTime = 0; this.processItem(); @@ -272,6 +267,7 @@ public class TileEntityRtgFurnace extends TileEntity implements ISidedInventory } }else{ dualCookTime = 0; + RTGUtil.updateRTGs(slots, slots_side); } boolean trigger = true; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityStorageDrum.java b/src/main/java/com/hbm/tileentity/machine/TileEntityStorageDrum.java index 9a10128ed..4407131ae 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityStorageDrum.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityStorageDrum.java @@ -99,9 +99,13 @@ public class TileEntityStorageDrum extends TileEntityMachineBase implements IFlu slots[i] = new ItemStack(ModItems.nuclear_waste_short_depleted_tiny, 1, meta); } - if((item == ModItems.ingot_au198 || item == ModItems.ingot_pb200) && worldObj.rand.nextInt(VersatileConfig.getShortDecayChance() / 100) == 0) { + if(item == ModItems.ingot_au198 && worldObj.rand.nextInt(VersatileConfig.getShortDecayChance() / 100) == 0) { slots[i] = new ItemStack(ModItems.nugget_mercury, 1, meta); } + + if(item == ModItems.nugget_pb209 && worldObj.rand.nextInt(VersatileConfig.getShortDecayChance() / 50) == 0) { + slots[i] = new ItemStack(ModItems.nugget_bismuth, 1, meta); + } } } diff --git a/src/main/java/com/hbm/util/RTGUtil.java b/src/main/java/com/hbm/util/RTGUtil.java new file mode 100644 index 000000000..904ea9f46 --- /dev/null +++ b/src/main/java/com/hbm/util/RTGUtil.java @@ -0,0 +1,72 @@ +package com.hbm.util; + +import com.hbm.config.MachineConfig; +import com.hbm.interfaces.ICustomWarhead.SaltedFuel.HalfLifeType; +import com.hbm.items.machine.ItemRTGPellet; + +import net.minecraft.item.ItemStack; + +public class RTGUtil { + + public static short getPower(ItemRTGPellet fuel, ItemStack stack) + { + return MachineConfig.scaleRTGPower ? ItemRTGPellet.getScaledPower(fuel, stack) : fuel.getHeat(); + } + + public static boolean hasHeat(ItemStack[] inventory, int[] rtgSlots) { + for(int slot : rtgSlots) { + + if(inventory[slot] == null) + continue; + + if(inventory[slot].getItem() instanceof ItemRTGPellet) + return true; + } + + return false; + } + + public static int updateRTGs(ItemStack[] inventory, int[] rtgSlots) { + int newHeat = 0; + for(int slot : rtgSlots) { + + if(inventory[slot] == null) + continue; + + if(!(inventory[slot].getItem() instanceof ItemRTGPellet)) + continue; + + final ItemRTGPellet pellet = (ItemRTGPellet) inventory[slot].getItem(); + newHeat += getPower(pellet, inventory[slot]); + inventory[slot] = ItemRTGPellet.handleDecay(inventory[slot], pellet); + } + + return newHeat; + + } + + /** + * Gets the lifespan of an RTG based on half-life + * @author UFFR + * @param halfLife The half-life + * @param type Half-life units: {@link#HalfLifeType} + * @param realYears Whether or not to use 365 days per year instead of 100 to calculate time + * @return The half-life calculated into Minecraft ticks + */ + public static long getLifespan(float halfLife, HalfLifeType type, boolean realYears) { + float life = 0; + switch (type) + { + case LONG: + life = (48000 * (realYears ? 365 : 100) * 100) * halfLife; + break; + case MEDIUM: + life = (48000 * (realYears ? 365 : 100)) * halfLife; + break; + case SHORT: + life = 48000 * halfLife; + break; + } + return (long) life; + } +} diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index d643fc06b..028e5b89a 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -473,6 +473,7 @@ death.attack.tau=%1$s was riddeled by %2$s using negatively charged tauons. death.attack.tauBlast=%1$s charged the XVL1456 for too long and was blown into pieces. death.attack.teleporter=%1$s was teleported into nothingness. +desc.item.rtgDecay=Decays to: %s desc.item.rtgHeat=Power Level: %s desc.item.wasteCooling=Cool in a Spent Fuel Pool Drum desc.gui.rtgBFurnace.desc=Requires at least 15 heat to process$The more heat on top of that, the faster it runs$Heat going over maximum speed will have no effect$Gold-198 may decay into Mercury @@ -873,6 +874,7 @@ item.battery_red_cell_24.name=24-Fold Redstone Power Cell item.battery_red_cell_6.name=Sixfold Redstone Power Cell item.battery_sc_americium.name=Self-Charging Americium-241 Battery item.battery_sc_gold.name=Self-Charging Gold-198 Battery +item.battery_sc_lead.name=Self-Charging Lead-209 Battery item.battery_sc_plutonium.name=Self-Charging Plutonium-238 Battery item.battery_sc_polonium.name=Self-Charging Polonium-210 Battery item.battery_sc_technetium.name=Self-Charging Technetium-99 Battery @@ -915,7 +917,7 @@ item.billet_mox_fuel.name=MOX Fuel Billet item.billet_neptunium.name=Neptunium Billet item.billet_neptunium_fuel.name=Neptunium Fuel Billet item.billet_nuclear_waste.name=Nuclear Waste Billet -item.billet_pb200.name=Lead-200 Billet +item.billet_pb209.name=Lead-209 Billet item.billet_po210be.name=Po210Be Billet item.billet_polonium.name=Polonium-210 Billet item.billet_pu_mix.name=Reactor Grade Plutonium Billet @@ -1697,7 +1699,7 @@ item.ingot_neptunium.name=Neptunium Ingot item.ingot_neptunium_fuel.name=Neptunium Fuel Ingot item.ingot_niobium.name=Niobium Ingot item.ingot_osmiridium.name=Osmiridium Ingot -item.ingot_pb200.name=Lead-200 Ingot +item.ingot_pb209.name=Lead-209 Ingot item.ingot_phosphorus.name=Bar of White Phosphorus item.ingot_plutonium.name=Plutonium Ingot item.ingot_plutonium_fuel.name=Ingot of Plutonium Fuel @@ -2061,7 +2063,7 @@ item.nugget_mox_fuel.name=Nugget of MOX Fuel item.nugget_neptunium.name=Neptunium Nugget item.nugget_neptunium_fuel.name=Neptunium Fuel Nugget item.nugget_osmiridium.name=Osmiridium Nugget -item.nugget_pb200.name=Lead-200 Nugget +item.nugget_pb209.name=Lead-209 Nugget item.nugget_plutonium.name=Plutonium Nugget item.nugget_plutonium_fuel.name=Nugget of Plutonium Fuel item.nugget_polonium.name=Polonium-210 Nugget @@ -2165,8 +2167,13 @@ item.pellet_rtg_americium.name=Americium-241 RTG Pellet item.pellet_rtg_americium.desc=Rare and reliable, good old Americium! item.pellet_rtg_berkelium.name=Berkelium RTG Pellet item.pellet_rtg_berkelium.desc= -item.pellet_rtg_lead.name=Lead-200 RTG Pellet -item.pellet_rtg_lead.desc=EXTREMELY DEADLY - LIMIT EXPOSURE +item.pellet_rtg_depleted.bismuth.name=Depleted Bismuth RTG Pellet +item.pellet_rtg_depleted.lead.name=Depleted Lead RTG Pellet +item.pellet_rtg_depleted.neptunium.name=Depleted Neptunium RTG Pellet +item.pellet_rtg_depleted.mercury.name=Depleted Mercury RTG Pellet +item.pellet_rtg_depleted.zirconium.name=Depleted Zirconium RTG Pellet +item.pellet_rtg_lead.name=Lead-209 RTG Pellet +item.pellet_rtg_lead.desc=Exposure will result in imminient death. item.pellet_rtg_gold.name=Gold-198 RTG Pellet item.pellet_rtg_gold.desc=Made from a rare, highly unstable gold isotope. item.pellet_rtg_polonium.name=Polonium-210 RTG Pellet @@ -2204,7 +2211,8 @@ item.plate_dalekanium.name=Angry Metal item.plate_desh.name=Desh Compound Plate item.plate_dineutronium.name=Dineutronium Compound Plate item.plate_euphemium.name=Euphemium Compound Plate -item.plate_fuel_mox.name=HEMOX Plate Fuel +item.plate_fuel_mox.name=MOX Plate Fuel +item.plate_fuel_pu238be.name=Pu238Be Plate Fuel item.plate_fuel_pu239.name=HEP-239 Plate Fuel item.plate_fuel_ra226be.name=Ra226Be Plate Fuel item.plate_fuel_sa326.name=HES-326 Plate Fuel @@ -2858,7 +2866,8 @@ item.warhead_thermo_exo.name=Exothermic Warhead item.warhead_volcano.name=Tectonic Warhead item.waste_mox.name=Depleted MOX Fuel item.waste_natural_uranium.name=Depleted Natural Uranium Fuel -item.waste_plate_mox.name=Depleted HEMOX Plate Fuel +item.waste_plate_mox.name=Depleted MOX Plate Fuel +item.waste_plate_pu238be.name=Depleted Pu238Be Plate Fuel item.waste_plate_pu239.name=Depleted HEP-239 Plate Fuel item.waste_plate_ra226be.name=Depleted Ra226Be Plate Fuel item.waste_plate_sa326.name=Depleted HES-326 Plate Fuel diff --git a/src/main/resources/assets/hbm/textures/items/battery_sc_lead.png b/src/main/resources/assets/hbm/textures/items/battery_sc_lead.png new file mode 100644 index 000000000..1e1d8032c Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/battery_sc_lead.png differ diff --git a/src/main/resources/assets/hbm/textures/items/billet_pb200.png b/src/main/resources/assets/hbm/textures/items/billet_pb200.png deleted file mode 100644 index a5c0e92b8..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/billet_pb200.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/billet_pb209.png b/src/main/resources/assets/hbm/textures/items/billet_pb209.png new file mode 100644 index 000000000..bafc80a5f Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/billet_pb209.png differ diff --git a/src/main/resources/assets/hbm/textures/items/ingot_pb200.png b/src/main/resources/assets/hbm/textures/items/ingot_pb200.png deleted file mode 100644 index 9852d1996..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/ingot_pb200.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/ingot_pb209.png b/src/main/resources/assets/hbm/textures/items/ingot_pb209.png new file mode 100644 index 000000000..da3866c49 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/ingot_pb209.png differ diff --git a/src/main/resources/assets/hbm/textures/items/nugget_pb200.png b/src/main/resources/assets/hbm/textures/items/nugget_pb200.png deleted file mode 100644 index a8e996dc7..000000000 Binary files a/src/main/resources/assets/hbm/textures/items/nugget_pb200.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/items/nugget_pb209.png b/src/main/resources/assets/hbm/textures/items/nugget_pb209.png new file mode 100644 index 000000000..10d702001 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/nugget_pb209.png differ diff --git a/src/main/resources/assets/hbm/textures/items/pellet_rtg_depleted.bismuth.png b/src/main/resources/assets/hbm/textures/items/pellet_rtg_depleted.bismuth.png new file mode 100644 index 000000000..eb4a43efd Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/pellet_rtg_depleted.bismuth.png differ diff --git a/src/main/resources/assets/hbm/textures/items/pellet_rtg_depleted.lead.png b/src/main/resources/assets/hbm/textures/items/pellet_rtg_depleted.lead.png new file mode 100644 index 000000000..a2b4f94da Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/pellet_rtg_depleted.lead.png differ diff --git a/src/main/resources/assets/hbm/textures/items/pellet_rtg_depleted.mercury.png b/src/main/resources/assets/hbm/textures/items/pellet_rtg_depleted.mercury.png new file mode 100644 index 000000000..b036133c8 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/pellet_rtg_depleted.mercury.png differ diff --git a/src/main/resources/assets/hbm/textures/items/pellet_rtg_depleted.neptunium.png b/src/main/resources/assets/hbm/textures/items/pellet_rtg_depleted.neptunium.png new file mode 100644 index 000000000..2ef8832a6 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/pellet_rtg_depleted.neptunium.png differ diff --git a/src/main/resources/assets/hbm/textures/items/pellet_rtg_depleted.zirconium.png b/src/main/resources/assets/hbm/textures/items/pellet_rtg_depleted.zirconium.png new file mode 100644 index 000000000..aee0e8fbf Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/pellet_rtg_depleted.zirconium.png differ diff --git a/src/main/resources/assets/hbm/textures/items/pellet_rtg_lead.png b/src/main/resources/assets/hbm/textures/items/pellet_rtg_lead.png index ccf1a118a..af923ffba 100644 Binary files a/src/main/resources/assets/hbm/textures/items/pellet_rtg_lead.png and b/src/main/resources/assets/hbm/textures/items/pellet_rtg_lead.png differ diff --git a/src/main/resources/assets/hbm/textures/items/plate_fuel_pu238be.png b/src/main/resources/assets/hbm/textures/items/plate_fuel_pu238be.png new file mode 100644 index 000000000..939726e38 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/plate_fuel_pu238be.png differ diff --git a/src/main/resources/assets/hbm/textures/items/waste_plate_pu238be.png b/src/main/resources/assets/hbm/textures/items/waste_plate_pu238be.png new file mode 100644 index 000000000..388adb906 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/waste_plate_pu238be.png differ