nuclear waste funnies, infinite water tank mk2, anvil stuff

This commit is contained in:
Bob 2021-08-08 20:17:21 +02:00
parent d2c2bd4d3f
commit a2801ebb1c
21 changed files with 234 additions and 37 deletions

View File

@ -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());

View File

@ -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);

View File

@ -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());
}
/*

View File

@ -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;
}
}

View File

@ -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)

View File

@ -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;
}

View File

@ -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);
}
}

View File

@ -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());

View File

@ -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;
}

View File

@ -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;
}
}
}

View File

@ -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;
}
}
}

View File

@ -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" }));

View File

@ -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) {

View File

@ -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<IFluidAcceptor> list = new ArrayList();
public List<IFluidAcceptor> 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<IFluidAcceptor> 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");
}
}

View File

@ -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

View File

@ -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

Binary file not shown.

After

Width:  |  Height:  |  Size: 539 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.7 KiB

After

Width:  |  Height:  |  Size: 5.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 431 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 390 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 250 B