diff --git a/src/main/java/com/hbm/handler/FluidTypeHandler.java b/src/main/java/com/hbm/handler/FluidTypeHandler.java index 00c552b15..cddb79d39 100644 --- a/src/main/java/com/hbm/handler/FluidTypeHandler.java +++ b/src/main/java/com/hbm/handler/FluidTypeHandler.java @@ -13,7 +13,8 @@ public class FluidTypeHandler { AMAT, CORROSIVE, CORROSIVE_2, - NO_CONTAINER; + NO_CONTAINER, + NO_ID; } public static enum FluidType { @@ -77,12 +78,15 @@ public class FluidTypeHandler { MERCURY (0x808080, 7, 1, 2, 2, 0, 0, EnumSymbol.NONE, "hbmfluid.mercury"), PAIN (0x938541, 15, 1, 2, 2, 0, 1, EnumSymbol.ACID, "hbmfluid.pain", 300, FluidTrait.CORROSIVE), + + WASTEFLUID (0x544400, 0, 2, 2, 2, 0, 1, EnumSymbol.RADIATION, "hbmfluid.wastefluid", FluidTrait.NO_CONTAINER), + WASTEGAS (0xB8B8B8, 1, 2, 2, 2, 0, 1, EnumSymbol.RADIATION, "hbmfluid.wastegas", FluidTrait.NO_CONTAINER), - PLASMA_DT (0xF7AFDE, 8, 1, 2, 0, 4, 0, EnumSymbol.RADIATION, "hbmfluid.plasma_dt", 3250, FluidTrait.NO_CONTAINER), - PLASMA_HD (0xF0ADF4, 9, 1, 2, 0, 4, 0, EnumSymbol.RADIATION, "hbmfluid.plasma_hd", 2500, FluidTrait.NO_CONTAINER), - PLASMA_HT (0xD1ABF2, 10, 1, 2, 0, 4, 0, EnumSymbol.RADIATION, "hbmfluid.plasma_ht", 3000, FluidTrait.NO_CONTAINER), - PLASMA_XM (0xC6A5FF, 11, 1, 2, 0, 4, 1, EnumSymbol.RADIATION, "hbmfluid.plasma_xm", 4250, FluidTrait.NO_CONTAINER), - PLASMA_BF (0xA7F1A3, 12, 1, 2, 4, 5, 4, EnumSymbol.ANTIMATTER, "hbmfluid.plasma_bf", 8500, FluidTrait.NO_CONTAINER); + PLASMA_DT (0xF7AFDE, 8, 1, 2, 0, 4, 0, EnumSymbol.RADIATION, "hbmfluid.plasma_dt", 3250, FluidTrait.NO_CONTAINER, FluidTrait.NO_ID), + PLASMA_HD (0xF0ADF4, 9, 1, 2, 0, 4, 0, EnumSymbol.RADIATION, "hbmfluid.plasma_hd", 2500, FluidTrait.NO_CONTAINER, FluidTrait.NO_ID), + PLASMA_HT (0xD1ABF2, 10, 1, 2, 0, 4, 0, EnumSymbol.RADIATION, "hbmfluid.plasma_ht", 3000, FluidTrait.NO_CONTAINER, FluidTrait.NO_ID), + PLASMA_XM (0xC6A5FF, 11, 1, 2, 0, 4, 1, EnumSymbol.RADIATION, "hbmfluid.plasma_xm", 4250, FluidTrait.NO_CONTAINER, FluidTrait.NO_ID), + PLASMA_BF (0xA7F1A3, 12, 1, 2, 4, 5, 4, EnumSymbol.ANTIMATTER, "hbmfluid.plasma_bf", 8500, FluidTrait.NO_CONTAINER, FluidTrait.NO_ID); //Approximate HEX Color of the fluid, used for pipe rendering @@ -193,5 +197,9 @@ public class FluidTypeHandler { public boolean hasNoContainer() { return this.traits.contains(FluidTrait.NO_CONTAINER); } + + public boolean hasNoID() { + return this.traits.contains(FluidTrait.NO_ID); + } }; } diff --git a/src/main/java/com/hbm/inventory/AnvilSmithingCyanideRecipe.java b/src/main/java/com/hbm/inventory/AnvilSmithingCyanideRecipe.java index 86ff41918..e4429d25e 100644 --- a/src/main/java/com/hbm/inventory/AnvilSmithingCyanideRecipe.java +++ b/src/main/java/com/hbm/inventory/AnvilSmithingCyanideRecipe.java @@ -1,8 +1,5 @@ package com.hbm.inventory; -import java.util.List; - -import com.hbm.inventory.RecipesCommon.AStack; import com.hbm.inventory.RecipesCommon.ComparableStack; import com.hbm.items.ModItems; @@ -37,6 +34,7 @@ public class AnvilSmithingCyanideRecipe extends AnvilSmithingRecipe { public ItemStack getOutput(ItemStack left, ItemStack right) { ItemStack out = left.copy(); + out.stackSize = 1; if(!out.hasTagCompound()) out.stackTagCompound = new NBTTagCompound(); diff --git a/src/main/java/com/hbm/items/machine/ItemFluidIdentifier.java b/src/main/java/com/hbm/items/machine/ItemFluidIdentifier.java index 59ad5aceb..82dd736bc 100644 --- a/src/main/java/com/hbm/items/machine/ItemFluidIdentifier.java +++ b/src/main/java/com/hbm/items/machine/ItemFluidIdentifier.java @@ -51,7 +51,7 @@ public class ItemFluidIdentifier extends Item { public void getSubItems(Item item, CreativeTabs tabs, List list) { for(int i = 0; i < FluidType.values().length; ++i) { - if(!FluidType.values()[i].hasNoContainer()) { + if(!FluidType.values()[i].hasNoID()) { list.add(new ItemStack(item, 1, i)); } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityStorageDrum.java b/src/main/java/com/hbm/tileentity/machine/TileEntityStorageDrum.java index df63d1493..353489141 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityStorageDrum.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityStorageDrum.java @@ -1,10 +1,16 @@ package com.hbm.tileentity.machine; +import java.util.ArrayList; import java.util.List; import com.hbm.config.VersatileConfig; +import com.hbm.handler.FluidTypeHandler.FluidType; +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.lib.Library; import com.hbm.tileentity.TileEntityMachineBase; import com.hbm.util.ContaminationUtil; import com.hbm.util.ContaminationUtil.ContaminationType; @@ -17,12 +23,18 @@ import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.Vec3; import net.minecraft.world.World; -public class TileEntityStorageDrum extends TileEntityMachineBase { - +public class TileEntityStorageDrum extends TileEntityMachineBase implements IFluidSource { + + 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 int age = 0; public TileEntityStorageDrum() { super(24); + tanks = new FluidTank[2]; + tanks[0] = new FluidTank(FluidType.WASTEFLUID, 16000, 0); + tanks[1] = new FluidTank(FluidType.WASTEGAS, 16000, 1); } @Override @@ -69,6 +81,19 @@ public class TileEntityStorageDrum extends TileEntityMachineBase { } } + age++; + + if(age >= 20) + age -= 20; + + if(age == 9 || age == 19) { + fillFluidInit(tanks[0].getTankType()); + fillFluidInit(tanks[1].getTankType()); + } + + tanks[0].updateTank(xCoord, yCoord, zCoord, worldObj.provider.dimensionId); + tanks[1].updateTank(xCoord, yCoord, zCoord, worldObj.provider.dimensionId); + if(rad > 0) { radiate(worldObj, xCoord, yCoord, zCoord, rad); } @@ -153,4 +178,73 @@ public class TileEntityStorageDrum extends TileEntityMachineBase { public int[] getAccessibleSlotsFromSide(int side) { return slots_arr; } + + @Override + public boolean getTact() { + return age < 10; + } + + @Override + public void fillFluidInit(FluidType type) { + fillFluid(this.xCoord - 1, this.yCoord, this.zCoord, getTact(), type); + fillFluid(this.xCoord + 1, this.yCoord, this.zCoord, getTact(), type); + fillFluid(this.xCoord, this.yCoord - 1, this.zCoord, getTact(), type); + fillFluid(this.xCoord, this.yCoord + 1, this.zCoord, getTact(), type); + fillFluid(this.xCoord, this.yCoord, this.zCoord - 1, getTact(), type); + fillFluid(this.xCoord, this.yCoord, this.zCoord + 1, getTact(), type); + } + + @Override + public void fillFluid(int x, int y, int z, boolean newTact, FluidType type) { + Library.transmitFluid(x, y, z, newTact, this, worldObj, type); + } + + @Override + public int getFluidFill(FluidType type) { + if(type == tanks[0].getTankType()) + return tanks[0].getFill(); + else if(type == tanks[1].getTankType()) + return tanks[1].getFill(); + + return 0; + } + + @Override + public void setFluidFill(int i, FluidType type) { + if(type == tanks[0].getTankType()) + tanks[0].setFill(i); + else if(type == tanks[1].getTankType()) + tanks[1].setFill(i); + } + + @Override + public List getFluidList(FluidType type) { + return this.list; + } + + @Override + public void clearFluidList(FluidType type) { + this.list.clear(); + } + + @Override + public void setFillstate(int fill, int index) { + if(index < 2 && tanks[index] != null) + tanks[index].setFill(fill); + } + + @Override + public void setType(FluidType type, int index) { + if(index < 2 && tanks[index] != null) + tanks[index].setTankType(type); + } + + @Override + public List getTanks() { + List list = new ArrayList(); + list.add(tanks[0]); + list.add(tanks[1]); + + return list; + } } diff --git a/src/main/resources/assets/hbm/lang/de_DE.lang b/src/main/resources/assets/hbm/lang/de_DE.lang index e909a8faa..ca8415ac4 100644 --- a/src/main/resources/assets/hbm/lang/de_DE.lang +++ b/src/main/resources/assets/hbm/lang/de_DE.lang @@ -433,6 +433,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.water=Wasser hbmfluid.watz=Giftiger Schlamm hbmfluid.xenon=Xenongas diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index a0227286c..632c758ef 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -501,6 +501,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.water=Water hbmfluid.watz=Poisonous Mud hbmfluid.xenon=Xenon Gas diff --git a/src/main/resources/assets/hbm/textures/blocks/watz_casing.png b/src/main/resources/assets/hbm/textures/blocks/watz_casing.png new file mode 100644 index 000000000..9b1afeea7 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/watz_casing.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/watz_element_side.png b/src/main/resources/assets/hbm/textures/blocks/watz_element_side.png index afc33af44..f300d3428 100644 Binary files a/src/main/resources/assets/hbm/textures/blocks/watz_element_side.png and b/src/main/resources/assets/hbm/textures/blocks/watz_element_side.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/watz_element_top.png b/src/main/resources/assets/hbm/textures/blocks/watz_element_top.png index 6377530c3..6fb62ea1e 100644 Binary files a/src/main/resources/assets/hbm/textures/blocks/watz_element_top.png and b/src/main/resources/assets/hbm/textures/blocks/watz_element_top.png differ diff --git a/src/main/resources/assets/hbm/textures/gui/fluids2.png b/src/main/resources/assets/hbm/textures/gui/fluids2.png index e49e71265..b99b98385 100755 Binary files a/src/main/resources/assets/hbm/textures/gui/fluids2.png and b/src/main/resources/assets/hbm/textures/gui/fluids2.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 303794e68..47855e142 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/models/machines/watz.png b/src/main/resources/assets/hbm/textures/models/machines/watz.png new file mode 100644 index 000000000..cd6e2137b Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/machines/watz.png differ