diff options
author | Draknyte1 <Draknyte1@hotmail.com> | 2016-10-21 18:35:20 +1000 |
---|---|---|
committer | Draknyte1 <Draknyte1@hotmail.com> | 2016-10-21 18:35:20 +1000 |
commit | 80907bc4a42cf3b7ca184213b83fae69ac72bdbf (patch) | |
tree | 970fb0bc5abaa53d31c98475cb0b7309f153682f /src/Java/gtPlusPlus/xmod/gregtech | |
parent | 77e7efe4f6ce3f6562c86569bbc831caa16ebf8d (diff) | |
download | GT5-Unofficial-80907bc4a42cf3b7ca184213b83fae69ac72bdbf.tar.gz GT5-Unofficial-80907bc4a42cf3b7ca184213b83fae69ac72bdbf.tar.bz2 GT5-Unofficial-80907bc4a42cf3b7ca184213b83fae69ac72bdbf.zip |
$ Re-wrote a lot of the fluid tank data storage. Fluids should now update in NBT as they are filled/drained.
Diffstat (limited to 'src/Java/gtPlusPlus/xmod/gregtech')
-rw-r--r-- | src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/storage/GT_MetaTileEntity_TieredTank.java | 122 |
1 files changed, 82 insertions, 40 deletions
diff --git a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/storage/GT_MetaTileEntity_TieredTank.java b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/storage/GT_MetaTileEntity_TieredTank.java index 0c9a113070..7508391f93 100644 --- a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/storage/GT_MetaTileEntity_TieredTank.java +++ b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/storage/GT_MetaTileEntity_TieredTank.java @@ -12,11 +12,12 @@ import gtPlusPlus.core.util.fluid.FluidUtils; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.nbt.NBTTagCompound; -public class GT_MetaTileEntity_TieredTank extends GT_MetaTileEntity_BasicTank { +public class GT_MetaTileEntity_TieredTank +extends GT_MetaTileEntity_BasicTank { private NBTTagCompound mRecipeStuff = new NBTTagCompound(); - private String thisName = ""; - private int thisAmount = 0; + private String mFluidName; + private int mFluidAmount; public GT_MetaTileEntity_TieredTank(int aID, String aName, String aNameRegional, int aTier) { super(aID, aName, aNameRegional, aTier, 3, "Stores " + ((int) (Math.pow(2, aTier) * 32000)) + "L of fluid"); @@ -27,25 +28,6 @@ public class GT_MetaTileEntity_TieredTank extends GT_MetaTileEntity_BasicTank { } @Override - public String[] getDescription() { - NBTTagCompound dRecipeStuff = this.mRecipeStuff; - if (dRecipeStuff != null){ - this.thisName = dRecipeStuff.getString("xFluidName"); - this.thisAmount = dRecipeStuff.getInteger("xFluidAmount"); - if (this.thisName.equals("")){ - this.thisName = "Empty"; - } - if (this.thisName == "Empty" && this.thisAmount == 0){ - //Do Nothing - } - else { - return new String[] {mDescription, "Stored Fluid: "+this.thisName, "Stored Amount: "+this.thisAmount+"l", CORE.GT_Tooltip}; - } - } - return new String[] {mDescription, CORE.GT_Tooltip}; - } - - @Override public ITexture[][][] getTextureSet(ITexture[] aTextures) { return new ITexture[0][0][0]; } @@ -55,34 +37,84 @@ public class GT_MetaTileEntity_TieredTank extends GT_MetaTileEntity_BasicTank { return aSide == 1 ? new ITexture[]{Textures.BlockIcons.MACHINE_CASINGS[mTier][aColorIndex + 1], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_SIDE_POTIONBREWER_ACTIVE)} : new ITexture[]{Textures.BlockIcons.MACHINE_CASINGS[mTier][aColorIndex + 1], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_SIDE_POTIONBREWER)}; } - @Override - public void saveNBTData(NBTTagCompound aNBT) { - super.saveNBTData(aNBT); - //Utils.LOG_INFO("Dumping Fluid data. Name: "+mFluid.getFluid().getName()+" Amount: "+mFluid.amount+"L"); - if (mFluid != null){ - aNBT.setTag("mFluid", mFluid.writeToNBT(new NBTTagCompound())); - mRecipeStuff.setString("xFluidName", mFluid.getFluid().getName()); - mRecipeStuff.setInteger("xFluidAmount", mFluid.amount); - aNBT.setTag("GT.CraftingComponents", mRecipeStuff); - this.thisName = mRecipeStuff.getString("xFluidName"); - this.thisAmount = mRecipeStuff.getInteger("xFluidAmount"); + + private boolean setVars(){ + //Utils.LOG_INFO("setting Vars."); + if (mFluidName.equals("") || !mFluidName.equals(null)){ + if (mFluid != null) mFluidName = mFluid.getFluid().getName(); + } + else{ + if (mFluid != null){ + if (!mFluidName.equalsIgnoreCase(mFluid.getFluid().getName())){ + mFluidName = mFluid.getFluid().getName(); + } + } + else { + // Leave Values Blank. + return false; + } } + if (mFluidAmount <= 0){ + if (mFluid != null) mFluidAmount = mFluid.amount; + } + else { + if (mFluid != null){ + if (mFluidAmount != mFluid.amount){ + mFluidAmount = mFluid.amount; + } + } + else { + // Leave Values Blank. + return false; + } + } + return true; + } + + + @Override + public String[] getDescription() { + + setVars(); + + + if ((mFluidName.equals("Empty")||mFluidName.equals("")) || mFluidAmount <= 0){ + return new String[] {mDescription, CORE.GT_Tooltip}; + } + return new String[] {mDescription, "Stored Fluid: "+mFluidName, "Stored Amount: "+mFluidAmount+"l", CORE.GT_Tooltip}; + } + @Override + public void saveNBTData(NBTTagCompound aNBT) { + super.saveNBTData(aNBT); + setVars(); + mRecipeStuff.setString("mFluidName", mFluidName); + mRecipeStuff.setInteger("mFluidAmount", mFluidAmount); + aNBT.setTag("GT.CraftingComponents", mRecipeStuff); } @Override public void loadNBTData(NBTTagCompound aNBT) { super.loadNBTData(aNBT); - mRecipeStuff = aNBT.getCompoundTag("GT.CraftingComponents"); - this.thisName = mRecipeStuff.getString("xFluidName"); - this.thisAmount = mRecipeStuff.getInteger("xFluidAmount"); - //mFluid = FluidStack.loadFluidStackFromNBT(aNBT.getCompoundTag("mFluid")); - mFluid = FluidUtils.getFluidStack(mRecipeStuff.getString("xFluidName"), mRecipeStuff.getInteger("xFluidAmount")); + mRecipeStuff = aNBT.getCompoundTag("GT.CraftingComponents"); + mFluidName = mRecipeStuff.getString("mFluidName"); + mFluidAmount = mRecipeStuff.getInteger("mFluidAmount"); + mFluid = FluidUtils.getFluidStack(mFluidName, mFluidAmount); + setItemNBT(aNBT); } @Override + public void setItemNBT(NBTTagCompound aNBT) { + super.setItemNBT(aNBT); + mRecipeStuff.setString("mFluidName", mFluidName); + mRecipeStuff.setInteger("mFluidAmount", mFluidAmount); + aNBT.setTag("GT.CraftingComponents", mRecipeStuff); + } + + + @Override public boolean onRightclick(IGregTechTileEntity aBaseMetaTileEntity, EntityPlayer aPlayer) { if (aBaseMetaTileEntity.isClientSide()){ return true; @@ -172,8 +204,6 @@ public class GT_MetaTileEntity_TieredTank extends GT_MetaTileEntity_BasicTank { @Override public int getCapacity() { - this.thisName = mRecipeStuff.getString("xFluidName"); - this.thisAmount = mRecipeStuff.getInteger("xFluidAmount"); return (int) (Math.pow(2, mTier) * 32000); } @@ -182,4 +212,16 @@ public class GT_MetaTileEntity_TieredTank extends GT_MetaTileEntity_BasicTank { return 100; } + @Override + public void onMachineBlockUpdate() { + this.getBaseMetaTileEntity().markDirty(); + super.onMachineBlockUpdate(); + } + + @Override + public void onRemoval() { + this.getBaseMetaTileEntity().markDirty(); + super.onRemoval(); + } + }
\ No newline at end of file |