diff --git a/src/main/java/com/hbm/blocks/ModBlocks.java b/src/main/java/com/hbm/blocks/ModBlocks.java index 1777bc6cf..fe3c311e5 100644 --- a/src/main/java/com/hbm/blocks/ModBlocks.java +++ b/src/main/java/com/hbm/blocks/ModBlocks.java @@ -187,6 +187,7 @@ public class ModBlocks { public static Block block_trinitite; public static Block block_waste; public static Block block_waste_painted; + public static Block block_waste_vitrified; public static Block ancient_scrap; public static Block block_corium; public static Block block_corium_cobble; @@ -1289,6 +1290,7 @@ public class ModBlocks { block_trinitite = new BlockHazard().makeBeaconable().addRadiation(ItemHazard.trn * ItemHazard.block).toBlock().setBlockName("block_trinitite").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_trinitite"); block_waste = new BlockNuclearWaste().makeBeaconable().setDisplayEffect(ExtDisplayEffect.RADFOG).addRadiation(ItemHazard.wst * ItemHazard.block).toBlock().setBlockName("block_waste").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_waste"); block_waste_painted = new BlockNuclearWaste().makeBeaconable().setDisplayEffect(ExtDisplayEffect.RADFOG).addRadiation(ItemHazard.wst * ItemHazard.block).toBlock().setBlockName("block_waste_painted").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_waste_painted"); + block_waste_vitrified = new BlockNuclearWaste().makeBeaconable().setDisplayEffect(ExtDisplayEffect.RADFOG).addRadiation(ItemHazard.wst * 0.5F * ItemHazard.block).toBlock().setBlockName("block_waste_vitrified").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_waste_vitrified"); ancient_scrap = new BlockOutgas(Material.iron, true, 1, true, true).addRadiation(150F).toBlock().setBlockName("ancient_scrap").setCreativeTab(MainRegistry.blockTab).setHardness(100.0F).setResistance(6000.0F).setBlockTextureName(RefStrings.MODID + ":ancient_scrap"); block_corium = new BlockHazard(Material.iron).addRadiation(150F).toBlock().setBlockName("block_corium").setCreativeTab(MainRegistry.blockTab).setHardness(100.0F).setResistance(6000.0F).setBlockTextureName(RefStrings.MODID + ":block_corium"); block_corium_cobble = new BlockOutgas(Material.iron, true, 1, true, true).addRadiation(150F).toBlock().setBlockName("block_corium_cobble").setCreativeTab(MainRegistry.blockTab).setHardness(100.0F).setResistance(6000.0F).setBlockTextureName(RefStrings.MODID + ":block_corium_cobble"); @@ -2229,6 +2231,7 @@ public class ModBlocks { GameRegistry.registerBlock(block_trinitite, ItemBlockHazard.class, block_trinitite.getUnlocalizedName()); GameRegistry.registerBlock(block_waste, ItemBlockHazard.class, block_waste.getUnlocalizedName()); GameRegistry.registerBlock(block_waste_painted, ItemBlockHazard.class, block_waste_painted.getUnlocalizedName()); + GameRegistry.registerBlock(block_waste_vitrified, ItemBlockHazard.class, block_waste_vitrified.getUnlocalizedName()); GameRegistry.registerBlock(ancient_scrap, ItemBlockHazard.class, ancient_scrap.getUnlocalizedName()); GameRegistry.registerBlock(block_corium, ItemBlockHazard.class, block_corium.getUnlocalizedName()); GameRegistry.registerBlock(block_corium_cobble, ItemBlockHazard.class, block_corium_cobble.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/crafting/MineralRecipes.java b/src/main/java/com/hbm/crafting/MineralRecipes.java index 9d381e0c4..9f40048ec 100644 --- a/src/main/java/com/hbm/crafting/MineralRecipes.java +++ b/src/main/java/com/hbm/crafting/MineralRecipes.java @@ -69,6 +69,9 @@ public class MineralRecipes { RecipesCommon.add1To9Pair(ModBlocks.block_coltan, ModItems.fragment_coltan); RecipesCommon.add1To9Pair(ModItems.ingot_tantalium, ModItems.nugget_tantalium); RecipesCommon.add1To9Pair(ModBlocks.block_tantalium, ModItems.ingot_tantalium); + + RecipesCommon.add1To9Pair(ModItems.nuclear_waste_vitrified, ModItems.nuclear_waste_vitrified_tiny); + RecipesCommon.add1To9Pair(ModBlocks.block_waste_vitrified, ModItems.nuclear_waste_vitrified); RecipesCommon.add1To9Pair(ModItems.ingot_pu241, ModItems.nugget_pu241); RecipesCommon.add1To9Pair(ModItems.ingot_am241, ModItems.nugget_am241); diff --git a/src/main/java/com/hbm/inventory/AnvilRecipes.java b/src/main/java/com/hbm/inventory/AnvilRecipes.java index f520aa6fa..573c76e60 100644 --- a/src/main/java/com/hbm/inventory/AnvilRecipes.java +++ b/src/main/java/com/hbm/inventory/AnvilRecipes.java @@ -61,6 +61,7 @@ public class AnvilRecipes { smithingRecipes.add(new AnvilSmithingRecipe(1916169, new ItemStack(ModItems.wings_murk, 1), new ComparableStack(ModItems.wings_limp), new ComparableStack(ModItems.particle_tachyon))); smithingRecipes.add(new AnvilSmithingCyanideRecipe()); + smithingRecipes.add(new AnvilSmithingRenameRecipe()); } /* diff --git a/src/main/java/com/hbm/inventory/AnvilSmithingRenameRecipe.java b/src/main/java/com/hbm/inventory/AnvilSmithingRenameRecipe.java new file mode 100644 index 000000000..62d54009f --- /dev/null +++ b/src/main/java/com/hbm/inventory/AnvilSmithingRenameRecipe.java @@ -0,0 +1,54 @@ +package com.hbm.inventory; + +import com.hbm.inventory.RecipesCommon.ComparableStack; + +import net.minecraft.init.Items; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; + +public class AnvilSmithingRenameRecipe extends AnvilSmithingRecipe { + + public AnvilSmithingRenameRecipe() { + super(0, new ItemStack(Items.iron_sword), new ComparableStack(Items.iron_sword), new ComparableStack(Items.name_tag, 0)); + } + + @Override + public boolean matches(ItemStack left, ItemStack right) { + return doesStackMatch(right, this.right) && getDisplayName(right) != null; + } + + @Override + public int matchesInt(ItemStack left, ItemStack right) { + return matches(left, right) ? 0 : -1; + } + + @Override + public ItemStack getOutput(ItemStack left, ItemStack right) { + + ItemStack out = left.copy(); + out.stackSize = 1; + + String name = getDisplayName(right); + + if(name != null) { + name = name.replace("\\&", "§"); + out.setStackDisplayName("§r" + name); + } + + return out; + } + + public String getDisplayName(ItemStack stack) { + String s = null; + + if(stack.stackTagCompound != null && stack.stackTagCompound.hasKey("display", 10)) { + NBTTagCompound nbttagcompound = stack.stackTagCompound.getCompoundTag("display"); + + if(nbttagcompound.hasKey("Name", 8)) { + s = nbttagcompound.getString("Name"); + } + } + + return s; + } +} diff --git a/src/main/java/com/hbm/inventory/FluidTank.java b/src/main/java/com/hbm/inventory/FluidTank.java index 5570ed912..c2f35d711 100644 --- a/src/main/java/com/hbm/inventory/FluidTank.java +++ b/src/main/java/com/hbm/inventory/FluidTank.java @@ -104,6 +104,13 @@ public class FluidTank { return; } + if(slots[in].getItem() == ModItems.inf_water_mk2 && this.type.name().equals(FluidType.WATER.name())) { + this.fluid += 500; + if(this.fluid > this.maxFluid) + this.fluid = this.maxFluid; + return; + } + if(FluidContainerRegistry.getFluidContent(slots[in], type) <= 0) return; } else { @@ -180,6 +187,13 @@ public class FluidTank { return; } + if(slots[in].getItem() == ModItems.inf_water_mk2 && this.type.name().equals(FluidType.WATER.name())) { + this.fluid -= 500; + if(this.fluid < 0) + this.fluid = 0; + return; + } + full = FluidContainerRegistry.getFullContainer(slots[in], type); } if(full == null) diff --git a/src/main/java/com/hbm/inventory/MachineRecipes.java b/src/main/java/com/hbm/inventory/MachineRecipes.java index 7262508b8..a9f401bce 100644 --- a/src/main/java/com/hbm/inventory/MachineRecipes.java +++ b/src/main/java/com/hbm/inventory/MachineRecipes.java @@ -1758,14 +1758,18 @@ public class MachineRecipes { case SCHRABIDATE: list.add(new ItemStack(ModItems.powder_iron, 1)); break; - case COLTAN_CLEANING: + case COLTAN_CLEANING: list.add(new ItemStack(ModItems.powder_coltan_ore, 2)); list.add(new ItemStack(ModItems.powder_coal, 1)); break; - case COLTAN_PAIN: + case COLTAN_PAIN: list.add(new ItemStack(ModItems.powder_coltan, 1)); list.add(new ItemStack(ModItems.fluorite, 1)); break; + case VIT_LIQUID: + case VIT_GAS: + list.add(new ItemStack(ModBlocks.sand_lead, 1)); + break; default: break; } @@ -1997,6 +2001,12 @@ public class MachineRecipes { input[0] = new FluidStack(1000, FluidType.PAIN); input[1] = new FluidStack(500, FluidType.ACID); break; + case VIT_LIQUID: + input[0] = new FluidStack(1000, FluidType.WASTEFLUID); + break; + case VIT_GAS: + input[0] = new FluidStack(1000, FluidType.WASTEGAS); + break; default: break; } @@ -2137,15 +2147,19 @@ public class MachineRecipes { break; case SCHRABIDATE: output[0] = new ItemStack(ModItems.powder_schrabidate, 1); - break; - case COLTAN_CLEANING: + break; + case COLTAN_CLEANING: output[0] = new ItemStack(ModItems.powder_coltan, 1); output[1] = new ItemStack(ModItems.dust, 2); - break; - case COLTAN_CRYSTAL: + break; + case COLTAN_CRYSTAL: output[0] = new ItemStack(ModItems.gem_tantalium, 1); output[1] = new ItemStack(ModItems.dust, 3); - break; + break; + case VIT_LIQUID: + case VIT_GAS: + output[0] = new ItemStack(ModItems.nuclear_waste_vitrified, 1); + break; default: break; } diff --git a/src/main/java/com/hbm/inventory/gui/GUIStorageDrum.java b/src/main/java/com/hbm/inventory/gui/GUIStorageDrum.java index 14375f824..f986aefab 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIStorageDrum.java +++ b/src/main/java/com/hbm/inventory/gui/GUIStorageDrum.java @@ -24,6 +24,14 @@ public class GUIStorageDrum extends GuiInfoContainer { this.ySize = 222; } + @Override + public void drawScreen(int mouseX, int mouseY, float f) { + super.drawScreen(mouseX, mouseY, f); + + drum.tanks[0].renderTankInfo(this, mouseX, mouseY, guiLeft + 16, guiTop + 17, 9, 108); + drum.tanks[1].renderTankInfo(this, mouseX, mouseY, guiLeft + 151, guiTop + 17, 9, 108); + } + @Override protected void drawGuiContainerForegroundLayer(int i, int j) { String name = this.drum.hasCustomInventoryName() ? this.drum.getInventoryName() : I18n.format(this.drum.getInventoryName()); @@ -36,5 +44,10 @@ public class GUIStorageDrum extends GuiInfoContainer { GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); Minecraft.getMinecraft().getTextureManager().bindTexture(texture); drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize); + + int liquid = drum.tanks[0].getFill() * 106 / drum.tanks[0].getMaxFill(); + drawTexturedModalRect(guiLeft + 17, guiTop + 124 - liquid, 176, 106 - liquid, 7, liquid); + int gas = drum.tanks[1].getFill() * 106 / drum.tanks[1].getMaxFill(); + drawTexturedModalRect(guiLeft + 152, guiTop + 124 - gas, 183, 106 - gas, 7, gas); } } diff --git a/src/main/java/com/hbm/items/ModItems.java b/src/main/java/com/hbm/items/ModItems.java index 1bfea42ef..4cd029a93 100644 --- a/src/main/java/com/hbm/items/ModItems.java +++ b/src/main/java/com/hbm/items/ModItems.java @@ -755,6 +755,7 @@ public class ModItems { public static Item singularity_spark; public static Item crystal_xen; public static Item inf_water; + public static Item inf_water_mk2; public static Item canister_empty; public static Item canister_smear; @@ -1037,6 +1038,8 @@ public class ModItems { public static Item nuclear_waste_short_depleted_tiny; public static Item nuclear_waste; public static Item nuclear_waste_tiny; + public static Item nuclear_waste_vitrified; + public static Item nuclear_waste_vitrified_tiny; public static Item rod_uranium_fuel_depleted; public static Item rod_dual_uranium_fuel_depleted; public static Item rod_quad_uranium_fuel_depleted; @@ -2690,7 +2693,7 @@ public class ModItems { powder_au198 = new ItemHazard().addRadiation(ItemHazard.au198 * ItemHazard.powder).addFire(15).toItem().setUnlocalizedName("powder_au198").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_au198"); powder_at209 = new ItemHazard().addRadiation(ItemHazard.at209 * ItemHazard.powder).addFire(15).addBlinding().toItem().setUnlocalizedName("powder_at209").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_at209"); powder_schrabidium = new ItemHazard(ItemHazard.sa326 * ItemHazard.powder, true, true).setUnlocalizedName("powder_schrabidium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_schrabidium"); - powder_schrabidate = new ItemHazard(ItemHazard.sa326 * ItemHazard.powder, true, true).setUnlocalizedName("powder_schrabidate").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_schrabidate"); + powder_schrabidate = new ItemHazard(ItemHazard.sa326 * 0.1F * ItemHazard.powder, true, true).setUnlocalizedName("powder_schrabidate").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_schrabidate"); powder_aluminium = new Item().setUnlocalizedName("powder_aluminium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_aluminium"); powder_beryllium = new Item().setUnlocalizedName("powder_beryllium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_beryllium"); powder_copper = new Item().setUnlocalizedName("powder_copper").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_copper"); @@ -3019,6 +3022,7 @@ public class ModItems { pellet_antimatter = new ItemDrop().setUnlocalizedName("pellet_antimatter").setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.cell_empty).setTextureName(RefStrings.MODID + ":pellet_antimatter"); crystal_xen = new ItemDrop().setUnlocalizedName("crystal_xen").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":crystal_xen"); inf_water = new Item().setUnlocalizedName("inf_water").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":inf_water"); + inf_water_mk2 = new Item().setUnlocalizedName("inf_water_mk2").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":inf_water_mk2"); stamp_stone_flat = new ItemStamp(10).setUnlocalizedName("stamp_stone_flat").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":stamp_stone_flat"); stamp_stone_plate = new ItemStamp(10).setUnlocalizedName("stamp_stone_plate").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":stamp_stone_plate"); @@ -3595,6 +3599,8 @@ public class ModItems { nuclear_waste_short_depleted_tiny = new ItemWasteShort().addRadiation(0.3F).toItem().setUnlocalizedName("nuclear_waste_short_depleted_tiny").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":nuclear_waste_short_depleted_tiny"); nuclear_waste = new ItemHazard(15F).setUnlocalizedName("nuclear_waste").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":nuclear_waste"); nuclear_waste_tiny = new ItemHazard(2F).setUnlocalizedName("nuclear_waste_tiny").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":nuclear_waste_tiny"); + nuclear_waste_vitrified = new ItemHazard(7.5F).setUnlocalizedName("nuclear_waste_vitrified").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":nuclear_waste_vitrified"); + nuclear_waste_vitrified_tiny = new ItemHazard(1F).setUnlocalizedName("nuclear_waste_vitrified_tiny").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":nuclear_waste_vitrified_tiny"); waste_uranium = new ItemHazard(15F).setUnlocalizedName("waste_uranium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":waste_uranium"); waste_thorium = new ItemHazard(10F).setUnlocalizedName("waste_thorium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":waste_thorium"); waste_plutonium = new ItemHazard(15F).setUnlocalizedName("waste_plutonium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":waste_plutonium"); @@ -5928,6 +5934,7 @@ public class ModItems { //Infinite Tanks GameRegistry.registerItem(inf_water, inf_water.getUnlocalizedName()); + GameRegistry.registerItem(inf_water_mk2, inf_water_mk2.getUnlocalizedName()); //Large Tanks GameRegistry.registerItem(tank_waste, tank_waste.getUnlocalizedName()); @@ -6411,6 +6418,8 @@ public class ModItems { GameRegistry.registerItem(nuclear_waste_short_depleted_tiny, nuclear_waste_short_depleted_tiny.getUnlocalizedName()); GameRegistry.registerItem(nuclear_waste, nuclear_waste.getUnlocalizedName()); GameRegistry.registerItem(nuclear_waste_tiny, nuclear_waste_tiny.getUnlocalizedName()); + GameRegistry.registerItem(nuclear_waste_vitrified, nuclear_waste_vitrified.getUnlocalizedName()); + GameRegistry.registerItem(nuclear_waste_vitrified_tiny, nuclear_waste_vitrified_tiny.getUnlocalizedName()); //Spawners GameRegistry.registerItem(spawn_chopper, spawn_chopper.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/items/machine/ItemChemistryTemplate.java b/src/main/java/com/hbm/items/machine/ItemChemistryTemplate.java index 7784d3894..47185e95c 100644 --- a/src/main/java/com/hbm/items/machine/ItemChemistryTemplate.java +++ b/src/main/java/com/hbm/items/machine/ItemChemistryTemplate.java @@ -94,7 +94,9 @@ public class ItemChemistryTemplate extends Item { SCHRABIDATE, COLTAN_CLEANING, COLTAN_PAIN, - COLTAN_CRYSTAL; + COLTAN_CRYSTAL, + VIT_LIQUID, + VIT_GAS; public static EnumChemistryTemplate getEnum(int i) { if(i < EnumChemistryTemplate.values().length) @@ -280,6 +282,10 @@ public class ItemChemistryTemplate extends Item { return 120; case COLTAN_CRYSTAL: return 80; + case VIT_LIQUID: + return 100; + case VIT_GAS: + return 100; default: return 100; } diff --git a/src/main/java/com/hbm/items/special/ItemWasteLong.java b/src/main/java/com/hbm/items/special/ItemWasteLong.java index 15cfdd312..ca27c3cbc 100644 --- a/src/main/java/com/hbm/items/special/ItemWasteLong.java +++ b/src/main/java/com/hbm/items/special/ItemWasteLong.java @@ -37,22 +37,26 @@ public class ItemWasteLong extends ItemHazard { super.addInformation(stack, player, list, bool); } - private int rectify(int meta) { + public static int rectify(int meta) { return Math.abs(meta) % WasteClass.values().length; } public enum WasteClass { //all decayed versions include lead-types and classic nuclear waste - URANIUM235("Uranium-235"), //plutonium 239 and 240, neptunium 237 / - - URANIUM233("Uranium-233"), //uranium 235, plutonium 239, neptunium 237 / - - NEPTUNIUM("Neptunium"), //plutonium 239 and uranium 238 / - - THORIUM("Thorium"); //uranium 233 and uranium 235 / - + URANIUM235("Uranium-235", 0, 0), //plutonium 239 and 240, neptunium 237 / - + URANIUM233("Uranium-233", 0, 50), //uranium 235, plutonium 239, neptunium 237 / - + NEPTUNIUM("Neptunium-237", 0, 100), //plutonium 239 and uranium 238 / - + THORIUM("Thorium-232", 0, 0); //uranium 233 and uranium 235 / - - String name; + public String name; + public int liquid; + public int gas; - private WasteClass(String name) { + private WasteClass(String name, int liquid, int gas) { this.name = name; + this.liquid = liquid; + this.gas = gas; } } } diff --git a/src/main/java/com/hbm/items/special/ItemWasteShort.java b/src/main/java/com/hbm/items/special/ItemWasteShort.java index 390fe8594..ddac9cd78 100644 --- a/src/main/java/com/hbm/items/special/ItemWasteShort.java +++ b/src/main/java/com/hbm/items/special/ItemWasteShort.java @@ -37,25 +37,29 @@ public class ItemWasteShort extends ItemHazard { super.addInformation(stack, player, list, bool); } - private int rectify(int meta) { + public static int rectify(int meta) { return Math.abs(meta) % WasteClass.values().length; } public enum WasteClass { //all decayed versions include lead-types and classic nuclear waste - URANIUM235("Uranium-235"), //fresh recycling makes iodine, caesium and technetium, depleted turns into neptunium - URANIUM233("Uranium-233"), //fresh recycling makes iodine, caesium and technetium, depleted turns into u235 - NEPTUNIUM("Neptunium"), //funny fission fragments + polonium and pu238 and 239 / u235 - PLUTONIUM239("Plutonium-239"), //funny fission fragments + pu240 and 241 / u238 (actually u236 but fuck you) - PLUTONIUM240("Plutonium-240"), //funny fission fragments + pu241 / u238 + lead - PLUTONIUM241("Plutonium-241"), //funny fission fragments + am241 / 242 / np237 + bismuth - AMERICIUM242("Americium-242"); //funny fission fragments + californium / np237 + pu241 + URANIUM235("Uranium-235", 0, 100), //fresh recycling makes iodine, caesium and technetium, depleted turns into neptunium + URANIUM233("Uranium-233", 50, 100), //fresh recycling makes iodine, caesium and technetium, depleted turns into u235 + NEPTUNIUM("Neptunium-237", 150, 500), //funny fission fragments + polonium and pu238 and 239 / u235 + PLUTONIUM239("Plutonium-239", 250, 1000), //funny fission fragments + pu240 and 241 / u238 (actually u236 but fuck you) + PLUTONIUM240("Plutonium-240", 350, 1000), //funny fission fragments + pu241 / u238 + lead + PLUTONIUM241("Plutonium-241", 500, 1000), //funny fission fragments + am241 / 242 / np237 + bismuth + AMERICIUM242("Americium-242", 750, 1000); //funny fission fragments + californium / np237 + pu241 - String name; + public String name; + public int liquid; + public int gas; - private WasteClass(String name) { + private WasteClass(String name, int liquid, int gas) { this.name = name; + this.liquid = liquid; + this.gas = gas; } } } diff --git a/src/main/java/com/hbm/main/CraftingManager.java b/src/main/java/com/hbm/main/CraftingManager.java index 5cf1977d8..901029bfc 100644 --- a/src/main/java/com/hbm/main/CraftingManager.java +++ b/src/main/java/com/hbm/main/CraftingManager.java @@ -517,6 +517,7 @@ public class CraftingManager { GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.fluid_tank_empty, 8), new Object[] { "121", "1 1", "121", '1', "plateAluminum", '2', "plateIron" })); GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.fluid_barrel_empty, 2), new Object[] { "121", "1 1", "121", '1', "plateSteel", '2', "plateAluminum" })); GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.inf_water, 1), new Object[] { "222", "131", "222", '1', Items.water_bucket, '2', "plateAluminum", '3', Items.diamond })); + GameRegistry.addRecipe(new ItemStack(ModItems.inf_water_mk2, 1), new Object[] { "BPB", "PTP", "BPB", 'B', ModItems.inf_water, 'P', ModBlocks.fluid_duct, 'T', ModItems.tank_steel }); GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.dynosphere_base), new Object[] { "RPR", "PBP", "RPR", 'R', "dustRedCopperAlloy", 'P', "plateSteel", 'B', "blockRedstone" })); diff --git a/src/main/java/com/hbm/modules/ItemHazardModule.java b/src/main/java/com/hbm/modules/ItemHazardModule.java index a4f6e4e50..f4f5bdb69 100644 --- a/src/main/java/com/hbm/modules/ItemHazardModule.java +++ b/src/main/java/com/hbm/modules/ItemHazardModule.java @@ -134,6 +134,10 @@ public class ItemHazardModule { list.add(EnumChatFormatting.GREEN + "[" + I18nUtil.resolveKey("trait.radioactive") + "]"); String rad = "" + (Math.floor(radiation * tempMod * 1000) / 1000); list.add(EnumChatFormatting.YELLOW + (rad + "RAD/s")); + + if(stack.stackSize > 1) { + list.add(EnumChatFormatting.YELLOW + "Stack: " + ((Math.floor(radiation * tempMod * 1000 * stack.stackSize) / 1000) + "RAD/s")); + } } if(this.fire > 0) { diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityStorageDrum.java b/src/main/java/com/hbm/tileentity/machine/TileEntityStorageDrum.java index 353489141..0c3ed1949 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityStorageDrum.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityStorageDrum.java @@ -5,11 +5,14 @@ import java.util.List; import com.hbm.config.VersatileConfig; import com.hbm.handler.FluidTypeHandler.FluidType; +import com.hbm.handler.radiation.ChunkRadiationManager; import com.hbm.interfaces.IFluidAcceptor; import com.hbm.interfaces.IFluidSource; import com.hbm.interfaces.IItemHazard; import com.hbm.inventory.FluidTank; import com.hbm.items.ModItems; +import com.hbm.items.special.ItemWasteLong; +import com.hbm.items.special.ItemWasteShort; import com.hbm.lib.Library; import com.hbm.tileentity.TileEntityMachineBase; import com.hbm.util.ContaminationUtil; @@ -19,6 +22,7 @@ import com.hbm.util.ContaminationUtil.HazardType; import net.minecraft.entity.EntityLivingBase; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.Vec3; import net.minecraft.world.World; @@ -28,6 +32,7 @@ public class TileEntityStorageDrum extends TileEntityMachineBase implements IFlu public FluidTank[] tanks; private static final int[] slots_arr = new int[] { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23 }; public List list = new ArrayList(); + public List list2 = new ArrayList(); public int age = 0; public TileEntityStorageDrum() { @@ -49,6 +54,9 @@ public class TileEntityStorageDrum extends TileEntityMachineBase implements IFlu float rad = 0; + int liquid = 0; + int gas = 0; + for(int i = 0; i < 24; i++) { if(slots[i] != null) { @@ -59,27 +67,54 @@ public class TileEntityStorageDrum extends TileEntityMachineBase implements IFlu rad += ((IItemHazard)item).getModule().radiation; } + int meta = slots[i].getItemDamage(); + if(item == ModItems.nuclear_waste_long && worldObj.rand.nextInt(VersatileConfig.getLongDecayChance()) == 0) { - slots[i] = new ItemStack(ModItems.nuclear_waste_long_depleted, 1, slots[i].getItemDamage()); + ItemWasteLong.WasteClass wasteClass = ItemWasteLong.WasteClass.values()[ItemWasteLong.rectify(meta)]; + liquid += wasteClass.liquid; + gas += wasteClass.gas; + slots[i] = new ItemStack(ModItems.nuclear_waste_long_depleted, 1, meta); } if(item == ModItems.nuclear_waste_long_tiny && worldObj.rand.nextInt(VersatileConfig.getLongDecayChance() / 10) == 0) { - slots[i] = new ItemStack(ModItems.nuclear_waste_long_depleted_tiny, 1, slots[i].getItemDamage()); + ItemWasteLong.WasteClass wasteClass = ItemWasteLong.WasteClass.values()[ItemWasteLong.rectify(meta)]; + liquid += wasteClass.liquid / 10; + gas += wasteClass.gas / 10; + slots[i] = new ItemStack(ModItems.nuclear_waste_long_depleted_tiny, 1, meta); } if(item == ModItems.nuclear_waste_short && worldObj.rand.nextInt(VersatileConfig.getShortDecayChance()) == 0) { - slots[i] = new ItemStack(ModItems.nuclear_waste_short_depleted, 1, slots[i].getItemDamage()); + ItemWasteShort.WasteClass wasteClass = ItemWasteShort.WasteClass.values()[ItemWasteLong.rectify(meta)]; + liquid += wasteClass.liquid; + gas += wasteClass.gas; + slots[i] = new ItemStack(ModItems.nuclear_waste_short_depleted, 1, meta); } if(item == ModItems.nuclear_waste_short_tiny && worldObj.rand.nextInt(VersatileConfig.getShortDecayChance() / 10) == 0) { - slots[i] = new ItemStack(ModItems.nuclear_waste_short_depleted_tiny, 1, slots[i].getItemDamage()); + ItemWasteShort.WasteClass wasteClass = ItemWasteShort.WasteClass.values()[ItemWasteLong.rectify(meta)]; + liquid += wasteClass.liquid / 10; + gas += wasteClass.gas / 10; + slots[i] = new ItemStack(ModItems.nuclear_waste_short_depleted_tiny, 1, meta); } if(item == ModItems.nugget_au198 && worldObj.rand.nextInt(VersatileConfig.getShortDecayChance() / 100) == 0) { - slots[i] = new ItemStack(ModItems.nugget_mercury, 1, slots[i].getItemDamage()); + slots[i] = new ItemStack(ModItems.nugget_mercury, 1, meta); } } } + + this.tanks[0].setFill(this.tanks[0].getFill() + liquid); + this.tanks[1].setFill(this.tanks[1].getFill() + gas); + + for(int i = 0; i < 2; i++) { + + int overflow = Math.max(this.tanks[i].getFill() - this.tanks[i].getMaxFill(), 0); + + if(overflow > 0) { + this.tanks[i].setFill(this.tanks[i].getFill() - overflow); + ChunkRadiationManager.proxy.incrementRad(worldObj, xCoord, yCoord, zCoord, overflow * 0.5F); + } + } age++; @@ -88,6 +123,8 @@ public class TileEntityStorageDrum extends TileEntityMachineBase implements IFlu if(age == 9 || age == 19) { fillFluidInit(tanks[0].getTankType()); + } + if(age == 8 || age == 18) { fillFluidInit(tanks[1].getTankType()); } @@ -219,12 +256,20 @@ public class TileEntityStorageDrum extends TileEntityMachineBase implements IFlu @Override public List getFluidList(FluidType type) { - return this.list; + if(type == tanks[0].getTankType()) + return list; + if(type == tanks[1].getTankType()) + return list2; + + return new ArrayList(); } @Override public void clearFluidList(FluidType type) { - this.list.clear(); + if(type == tanks[0].getTankType()) + this.list.clear(); + if(type == tanks[1].getTankType()) + this.list2.clear(); } @Override @@ -247,4 +292,18 @@ public class TileEntityStorageDrum extends TileEntityMachineBase implements IFlu return list; } + + @Override + public void readFromNBT(NBTTagCompound nbt) { + super.readFromNBT(nbt); + this.tanks[0].readFromNBT(nbt, "liquid"); + this.tanks[1].readFromNBT(nbt, "gas"); + } + + @Override + public void writeToNBT(NBTTagCompound nbt) { + super.writeToNBT(nbt); + this.tanks[0].writeToNBT(nbt, "liquid"); + this.tanks[1].writeToNBT(nbt, "gas"); + } } diff --git a/src/main/resources/assets/hbm/lang/de_DE.lang b/src/main/resources/assets/hbm/lang/de_DE.lang index 0a5b1a49c..365cbc520 100644 --- a/src/main/resources/assets/hbm/lang/de_DE.lang +++ b/src/main/resources/assets/hbm/lang/de_DE.lang @@ -435,8 +435,8 @@ hbmfluid.superhotsteam=Superverdichteter Dampf hbmfluid.tritium=Tritium hbmfluid.uf6=Uranhexafluorid hbmfluid.ultrahotsteam=Ultraverdichteter Dampf -hbmfluid.hbmfluid.wastefluid=Flüssiger Atommüll -hbmfluid.hbmfluid.wastegas=Gasförmiger Atommüll +hbmfluid.wastefluid=Flüssiger Atommüll +hbmfluid.wastegas=Gasförmiger Atommüll hbmfluid.water=Wasser hbmfluid.watz=Giftiger Schlamm hbmfluid.xenon=Xenongas @@ -1409,6 +1409,7 @@ item.inf_diesel.name=Unendlicher Dieseltank item.inf_sulfur.name=Unendlicher Schwefeltank item.inf_tritium.name=Unendlicher Tritiumtank item.inf_water.name=Unendlicher Wassertank +item.inf_water_mk2.name=Schwerer unendlicher Wassertank item.ingot_actinium.name=Semistabiler Actiniumbarren item.ingot_advanced_alloy.name=Fortgeschrittene Legierung item.ingot_aluminium.name=Aluminiumbarren @@ -1769,6 +1770,8 @@ item.nuclear_waste_short.name=Kurzlebiger Atommüll item.nuclear_waste_short_tiny.name=Kleiner Haufen kurzlebiger Atommüll item.nuclear_waste_short_depleted.name=Zerfallender kurzlebiger Atommüll item.nuclear_waste_short_depleted_tiny.name=Kleiner Haufen zerfallender kurzlebiger Atommüll +item.nuclear_waste_vitrified.name=Vitrifizierter Atommüll +item.nuclear_waste_vitrified_tiny.name=Kleiner Haufen vitrifizierter Atommüll item.nugget.name=Chicken Nugget item.nugget_am_mix.name=Reaktorfähiges Americiumnugget item.nugget_am241.name=Americium-241-Nugget @@ -2674,6 +2677,7 @@ tile.block_uranium_fuel.name=Urankernbrennstoffblock tile.block_verticium.name=Verticiumblock tile.block_waste.name=Atommüllblock tile.block_waste_painted.name=Bemalter Atommüllblock +tile.block_waste_vitrified.name=Vitrifizierter Atommüllblock tile.block_weidanium.name=Weidaniumblock tile.block_white_phosphorus.name=Weißer Phosphorblock tile.block_yellowcake.name=Yellowcakeblock diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index bcd178897..7a750e06e 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -503,8 +503,8 @@ hbmfluid.superhotsteam=Super Dense Steam hbmfluid.tritium=Tritium hbmfluid.uf6=Uranium Hexafluoride hbmfluid.ultrahotsteam=Ultra Dense Steam -hbmfluid.hbmfluid.wastefluid=Liquid Nuclear Waste -hbmfluid.hbmfluid.wastegas=Gaseous Nuclear Waste +hbmfluid.wastefluid=Liquid Nuclear Waste +hbmfluid.wastegas=Gaseous Nuclear Waste hbmfluid.water=Water hbmfluid.watz=Poisonous Mud hbmfluid.xenon=Xenon Gas @@ -1477,6 +1477,7 @@ item.inf_diesel.name=Infinite Diesel Tank item.inf_sulfur.name=Infinite Sulfur Tank item.inf_tritium.name=Infinite Tritium Tank item.inf_water.name=Infinite Water Tank +item.inf_water_mk2.name=Heavy Infinite Water Tank item.ingot_actinium.name=Semi-Stable Actinium Ingot item.ingot_advanced_alloy.name=Advanced Alloy Ingot item.ingot_aluminium.name=Aluminium Ingot @@ -1837,6 +1838,8 @@ item.nuclear_waste_short.name=Short-Lived Nuclear Waste item.nuclear_waste_short_tiny.name=Tiny Pile of Short-Lived Nuclear Waste item.nuclear_waste_short_depleted.name=Decayed Short-Lived Nuclear Waste item.nuclear_waste_short_depleted_tiny.name=Tiny Pile of Decayed Short-Lived Nuclear Waste +item.nuclear_waste_vitrified.name=Vitrified Nuclear Waste +item.nuclear_waste_vitrified_tiny.name=Tiny Pile of Vitrified Nuclear Waste item.nugget.name=Chicken Nugget item.nugget_am_mix.name=Reactor Grade Americium Nugget item.nugget_am241.name=Americium-241 Nugget @@ -2740,6 +2743,7 @@ tile.block_uranium_fuel.name=Block of Uranium Fuel tile.block_verticium.name=Block of Verticium tile.block_waste.name=Block of Nuclear Waste tile.block_waste_painted.name=Painted Block of Nuclear Waste +tile.block_waste_vitrified.name=Vitrified Block of Nuclear Waste tile.block_weidanium.name=Block of Weidanium tile.block_white_phosphorus.name=Block of White Phosphorus tile.block_yellowcake.name=Block of Yellowcake diff --git a/src/main/resources/assets/hbm/textures/blocks/block_waste_vitrified.png b/src/main/resources/assets/hbm/textures/blocks/block_waste_vitrified.png new file mode 100644 index 000000000..8accbe50d Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/block_waste_vitrified.png differ diff --git a/src/main/resources/assets/hbm/textures/gui/processing/gui_drum.png b/src/main/resources/assets/hbm/textures/gui/processing/gui_drum.png index 47855e142..512d7d38b 100644 Binary files a/src/main/resources/assets/hbm/textures/gui/processing/gui_drum.png and b/src/main/resources/assets/hbm/textures/gui/processing/gui_drum.png differ diff --git a/src/main/resources/assets/hbm/textures/items/inf_water_mk2.png b/src/main/resources/assets/hbm/textures/items/inf_water_mk2.png new file mode 100644 index 000000000..9c53f6f1e Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/inf_water_mk2.png differ diff --git a/src/main/resources/assets/hbm/textures/items/nuclear_waste_vitrified.png b/src/main/resources/assets/hbm/textures/items/nuclear_waste_vitrified.png new file mode 100644 index 000000000..ad5f0794e Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/nuclear_waste_vitrified.png differ diff --git a/src/main/resources/assets/hbm/textures/items/nuclear_waste_vitrified_tiny.png b/src/main/resources/assets/hbm/textures/items/nuclear_waste_vitrified_tiny.png new file mode 100644 index 000000000..4aa0e3d75 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/nuclear_waste_vitrified_tiny.png differ