aboutsummaryrefslogtreecommitdiff
path: root/src/Java/gtPlusPlus/xmod/gregtech
diff options
context:
space:
mode:
authorDraknyte1 <Draknyte1@hotmail.com>2016-10-21 18:35:20 +1000
committerDraknyte1 <Draknyte1@hotmail.com>2016-10-21 18:35:20 +1000
commit80907bc4a42cf3b7ca184213b83fae69ac72bdbf (patch)
tree970fb0bc5abaa53d31c98475cb0b7309f153682f /src/Java/gtPlusPlus/xmod/gregtech
parent77e7efe4f6ce3f6562c86569bbc831caa16ebf8d (diff)
downloadGT5-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.java122
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