aboutsummaryrefslogtreecommitdiff
path: root/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/storage
diff options
context:
space:
mode:
Diffstat (limited to 'src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/storage')
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/storage/GT_MetaTileEntity_TieredTank.java375
1 files changed, 205 insertions, 170 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 7946f5f8e5..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
@@ -5,188 +5,223 @@ import gregtech.api.enums.Textures;
import gregtech.api.interfaces.ITexture;
import gregtech.api.interfaces.tileentity.IGregTechTileEntity;
import gregtech.api.metatileentity.MetaTileEntity;
+import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_BasicTank;
import gregtech.api.objects.GT_RenderedTexture;
-import gtPlusPlus.core.util.Utils;
-import gtPlusPlus.xmod.gregtech.api.metatileentity.implementations.base.lossless.GregtechMetaTileEntityLosslessBasicTank;
+import gtPlusPlus.core.lib.CORE;
+import gtPlusPlus.core.util.fluid.FluidUtils;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.nbt.NBTTagCompound;
-import net.minecraftforge.fluids.FluidStack;
public class GT_MetaTileEntity_TieredTank
- extends GregtechMetaTileEntityLosslessBasicTank {
-
- //protected FluidStack internalTank = getInternalStack();
- /*protected String fluidName = getFluidName();
- protected int fluidAmount = getInternalFluidAmount();*/
+extends GT_MetaTileEntity_BasicTank {
+
+ private NBTTagCompound mRecipeStuff = new NBTTagCompound();
+ 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");
+ }
+
+ public GT_MetaTileEntity_TieredTank(String aName, int aTier, String aDescription, ITexture[][][] aTextures) {
+ super(aName, aTier, 3, aDescription, aTextures);
+ }
+
+ @Override
+ public ITexture[][][] getTextureSet(ITexture[] aTextures) {
+ return new ITexture[0][0][0];
+ }
+
+ @Override
+ public ITexture[] getTexture(IGregTechTileEntity aBaseMetaTileEntity, byte aSide, byte aFacing, byte aColorIndex, boolean aActive, boolean aRedstone) {
+ 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)};
+ }
+
- /*private String getFluidName(){
- String x;
- if (internalTank != null){
- x = internalTank.getFluid().getName();
+ 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 {
- x = "null";
+ if (mFluid != null){
+ if (mFluidAmount != mFluid.amount){
+ mFluidAmount = mFluid.amount;
+ }
+ }
+ else {
+ // Leave Values Blank.
+ return false;
+ }
}
- return x;
+ return true;
}
- private int getInternalFluidAmount(){
- int x;
- if (internalTank != null){
- x = internalTank.amount;
+
+ @Override
+ public String[] getDescription() {
+
+ setVars();
+
+
+ if ((mFluidName.equals("Empty")||mFluidName.equals("")) || mFluidAmount <= 0){
+ return new String[] {mDescription, CORE.GT_Tooltip};
}
- else {
- x = 0;
+ 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");
+ 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;
}
- return x;
- }*/
-
- 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");
- }
-
- public GT_MetaTileEntity_TieredTank(String aName, int aTier, String aDescription, ITexture[][][] aTextures) {
- super(aName, aTier, 3, aDescription, aTextures);
- }
-
- @Override
- public ITexture[][][] getTextureSet(ITexture[] aTextures) {
- return new ITexture[0][0][0];
- }
-
- @Override
- public ITexture[] getTexture(IGregTechTileEntity aBaseMetaTileEntity, byte aSide, byte aFacing, byte aColorIndex, boolean aActive, boolean aRedstone) {
- 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);
- }
-
- @Override
- public void loadNBTData(NBTTagCompound aNBT) {
- super.loadNBTData(aNBT);
- }*/
-
- @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()));
- }
-
- @Override
- public void loadNBTData(NBTTagCompound aNBT) {
- super.loadNBTData(aNBT);
- mFluid = FluidStack.loadFluidStackFromNBT(aNBT.getCompoundTag("mFluid"));
- /*if (getInternalStack() != null){
- Utils.LOG_INFO("Dumping Fluid data. Name: "+mFluid.getFluid().getName()+" Amount: "+mFluid.amount+"L");}
- else{
- //Utils.LOG_INFO("Loaded FluidStack was NULL");
- }*/
- }
-
- @Override
- public boolean onRightclick(IGregTechTileEntity aBaseMetaTileEntity, EntityPlayer aPlayer) {
- Utils.LOG_INFO("Right Click on Block");
- if (aBaseMetaTileEntity.isClientSide()){
- Utils.LOG_INFO("MTE is ClientSide");
- return true;
- }
- Utils.LOG_INFO("MTE is not ClientSide");
- aBaseMetaTileEntity.openGUI(aPlayer);
- Utils.LOG_INFO("MTE is now has an open GUI");
- return true;
- }
-
- @Override
- public boolean isSimpleMachine() {
- return true;
- }
-
- @Override
- public boolean isFacingValid(byte aFacing) {
- return true;
- }
-
- @Override
- public boolean isAccessAllowed(EntityPlayer aPlayer) {
- return true;
- }
-
- @Override
- public final byte getUpdateData() {
- return 0x00;
- }
-
- @Override
- public boolean doesFillContainers() {
- return true;
- }
-
- @Override
- public boolean doesEmptyContainers() {
- return true;
- }
-
- @Override
- public boolean canTankBeFilled() {
- return true;
- }
-
- @Override
- public boolean canTankBeEmptied() {
- return true;
- }
-
- @Override
- public boolean displaysItemStack() {
- return true;
- }
-
- @Override
- public boolean displaysStackSize() {
- return false;
- }
-
- @Override
- public String[] getInfoData() {
-
- if (mFluid == null) {
- return new String[]{
- GT_Values.VOLTAGE_NAMES[mTier]+" Fluid Tank",
- "Stored Fluid:",
- "No Fluid",
- Integer.toString(0) + "L",
- Integer.toString(getCapacity()) + "L"};
- }
- return new String[]{
- GT_Values.VOLTAGE_NAMES[mTier]+" Fluid Tank",
- "Stored Fluid:",
- mFluid.getLocalizedName(),
- Integer.toString(mFluid.amount) + "L",
- Integer.toString(getCapacity()) + "L"};
- }
-
- @Override
- public boolean isGivingInformation() {
- return true;
- }
-
- @Override
- public MetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) {
- return new GT_MetaTileEntity_TieredTank(mName, mTier, mDescription, mTextures);
- }
-
- @Override
- public int getCapacity() {
- return (int) (Math.pow(2, mTier) * 32000);
- }
-
- @Override
- public int getTankPressure() {
- return 100;
- }
+ aBaseMetaTileEntity.openGUI(aPlayer);
+ return true;
+ }
+
+ @Override
+ public boolean isSimpleMachine() {
+ return true;
+ }
+
+ @Override
+ public boolean isFacingValid(byte aFacing) {
+ return true;
+ }
+
+ @Override
+ public boolean isAccessAllowed(EntityPlayer aPlayer) {
+ return true;
+ }
+
+ @Override
+ public final byte getUpdateData() {
+ return 0x00;
+ }
+
+ @Override
+ public boolean doesFillContainers() {
+ return true;
+ }
+
+ @Override
+ public boolean doesEmptyContainers() {
+ return true;
+ }
+
+ @Override
+ public boolean canTankBeFilled() {
+ return true;
+ }
+
+ @Override
+ public boolean canTankBeEmptied() {
+ return true;
+ }
+
+ @Override
+ public boolean displaysItemStack() {
+ return true;
+ }
+
+ @Override
+ public boolean displaysStackSize() {
+ return false;
+ }
+
+ @Override
+ public String[] getInfoData() {
+
+ if (mFluid == null) {
+ return new String[]{
+ GT_Values.VOLTAGE_NAMES[mTier]+" Fluid Tank",
+ "Stored Fluid:",
+ "No Fluid",
+ Integer.toString(0) + "L",
+ Integer.toString(getCapacity()) + "L"};
+ }
+ return new String[]{
+ GT_Values.VOLTAGE_NAMES[mTier]+" Fluid Tank",
+ "Stored Fluid:",
+ mFluid.getLocalizedName(),
+ Integer.toString(mFluid.amount) + "L",
+ Integer.toString(getCapacity()) + "L"};
+ }
+
+ @Override
+ public boolean isGivingInformation() {
+ return true;
+ }
+
+ @Override
+ public MetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) {
+ return new GT_MetaTileEntity_TieredTank(mName, mTier, mDescription, mTextures);
+ }
+
+ @Override
+ public int getCapacity() {
+ return (int) (Math.pow(2, mTier) * 32000);
+ }
+
+ @Override
+ public int getTankPressure() {
+ 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