From a2801ebb1cbfac0f72131aba1225905674a86b05 Mon Sep 17 00:00:00 2001 From: Bob Date: Sun, 8 Aug 2021 20:17:21 +0200 Subject: [PATCH] nuclear waste funnies, infinite water tank mk2, anvil stuff --- src/main/java/com/hbm/blocks/ModBlocks.java | 3 + .../java/com/hbm/crafting/MineralRecipes.java | 3 + .../java/com/hbm/inventory/AnvilRecipes.java | 1 + .../inventory/AnvilSmithingRenameRecipe.java | 54 +++++++++++++ .../java/com/hbm/inventory/FluidTank.java | 14 ++++ .../com/hbm/inventory/MachineRecipes.java | 28 +++++-- .../com/hbm/inventory/gui/GUIStorageDrum.java | 13 ++++ src/main/java/com/hbm/items/ModItems.java | 11 ++- .../items/machine/ItemChemistryTemplate.java | 8 +- .../com/hbm/items/special/ItemWasteLong.java | 18 +++-- .../com/hbm/items/special/ItemWasteShort.java | 24 +++--- .../java/com/hbm/main/CraftingManager.java | 1 + .../com/hbm/modules/ItemHazardModule.java | 4 + .../machine/TileEntityStorageDrum.java | 73 ++++++++++++++++-- src/main/resources/assets/hbm/lang/de_DE.lang | 8 +- src/main/resources/assets/hbm/lang/en_US.lang | 8 +- .../textures/blocks/block_waste_vitrified.png | Bin 0 -> 539 bytes .../hbm/textures/gui/processing/gui_drum.png | Bin 5837 -> 5822 bytes .../hbm/textures/items/inf_water_mk2.png | Bin 0 -> 431 bytes .../items/nuclear_waste_vitrified.png | Bin 0 -> 390 bytes .../items/nuclear_waste_vitrified_tiny.png | Bin 0 -> 250 bytes 21 files changed, 234 insertions(+), 37 deletions(-) create mode 100644 src/main/java/com/hbm/inventory/AnvilSmithingRenameRecipe.java create mode 100644 src/main/resources/assets/hbm/textures/blocks/block_waste_vitrified.png create mode 100644 src/main/resources/assets/hbm/textures/items/inf_water_mk2.png create mode 100644 src/main/resources/assets/hbm/textures/items/nuclear_waste_vitrified.png create mode 100644 src/main/resources/assets/hbm/textures/items/nuclear_waste_vitrified_tiny.png 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 0000000000000000000000000000000000000000..8accbe50dcd63da2cb6147aa50cb576fed180cd7 GIT binary patch literal 539 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 literal 5837 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 amtsooJ#Eo?>@Ijd4fgM~HZL=EzxZF9-DWcY 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 0000000000000000000000000000000000000000..9c53f6f1ed7da78ee586a09cd5283e7b9cfe5120 GIT binary patch literal 431 zcmV;g0Z{&lP)Z zMG#*=n=Jx13N}$2ZBt1=kd#Q2j0PkHCgf%DB7xKg2W2laYAP)eb-Mr%#C z+da8^^K($GRs$gf>2w+)1X4<*lx(-#z!*cX*9)CBD3{AYCX*o&i2!_E1}K$ED5WsQ z1g`6bP8tBr=W~P*v5JX=bs4QUztfG7ehy4E+%410gVJ4+%`g;Wb;c2fe?X{&mmNd2jAU8QlnlO$dYZtRXeXe(1+mWdZeb6+v zp)dtP2*%;=YMLhcuHSYLBM2eb@Am+N5D1?E?>$2p=)0aF3=0d77rJ kcYj1&UGa<-WH@kFCe3Wd zO@-)_C36`jP2ezCp}6^2kev6b;G-pTGhCeKJ#R5}IlPF+PFKX0vElo?4Qz9Y1Nl6; x^@ literal 0 HcmV?d00001