aboutsummaryrefslogtreecommitdiff
path: root/src/main/java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java')
-rw-r--r--src/main/java/Ic2ExpReactorPlanner/ComponentFactory.java15
-rw-r--r--src/main/java/Ic2ExpReactorPlanner/Reactor.java6
-rw-r--r--src/main/java/gtPlusPlus/xmod/gregtech/api/gui/CONTAINER_PowerSubStation.java112
-rw-r--r--src/main/java/gtPlusPlus/xmod/gregtech/api/gui/GUI_PowerSubStation.java153
-rw-r--r--src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/storage/GregtechMetaTileEntity_PowerSubStationController.java38
5 files changed, 197 insertions, 127 deletions
diff --git a/src/main/java/Ic2ExpReactorPlanner/ComponentFactory.java b/src/main/java/Ic2ExpReactorPlanner/ComponentFactory.java
index dc27a6a730..c613f27a32 100644
--- a/src/main/java/Ic2ExpReactorPlanner/ComponentFactory.java
+++ b/src/main/java/Ic2ExpReactorPlanner/ComponentFactory.java
@@ -22,6 +22,7 @@ import Ic2ExpReactorPlanner.components.Vent;
import gregtech.api.enums.ItemList;
import gregtech.api.objects.GT_ItemStack;
import gregtech.api.util.GT_ModHandler;
+import gtPlusPlus.api.objects.Logger;
import gtPlusPlus.core.lib.LoadedMods;
import gtPlusPlus.xmod.bartworks.BW_Utils;
import gtPlusPlus.xmod.bartworks.BW_Utils.NonMeta_MaterialItem;
@@ -33,6 +34,8 @@ import gtPlusPlus.xmod.goodgenerator.GG_Utils.GG_Fuel_Rod;
* @author Brian McCloud
*/
public class ComponentFactory {
+
+ public static int MAX_COMPONENT_ID = 64;
static ItemList[] aGtItems = new ItemList[]{
ItemList.Neutron_Reflector,
@@ -171,9 +174,11 @@ public class ComponentFactory {
* @return the component with the specified id, or null if the id is out of range.
*/
public static ReactorItem getDefaultComponent(int id) {
- if (id >= 0 && id < ITEM_LIST.size()) {
- return ITEM_LIST.get(id);
+ ReactorItem aItem = ITEM_LIST.get(id);
+ if (aItem != null) {
+ return aItem;
}
+ Logger.INFO("Tried to get default component with ID "+id+". This is invalid.");
return null;
}
@@ -195,9 +200,11 @@ public class ComponentFactory {
* @return a new instance of the specified component, or null if the id is out of range.
*/
public static ReactorItem createComponent(int id) {
- if (id >= 0 && id < ITEM_LIST.size()) {
- return copy(ITEM_LIST.get(id));
+ ReactorItem aItem = ITEM_LIST.get(id);
+ if (aItem != null) {
+ return copy(aItem);
}
+ Logger.INFO("Tried to create component with ID "+id+". This is invalid.");
return null;
}
diff --git a/src/main/java/Ic2ExpReactorPlanner/Reactor.java b/src/main/java/Ic2ExpReactorPlanner/Reactor.java
index e611189317..6febc91b90 100644
--- a/src/main/java/Ic2ExpReactorPlanner/Reactor.java
+++ b/src/main/java/Ic2ExpReactorPlanner/Reactor.java
@@ -524,7 +524,7 @@ public class Reactor {
} else if (codeRevision == 2) {
componentId = storage.extract(44);
} else {
- componentId = storage.extract(58);
+ componentId = storage.extract(ComponentFactory.MAX_COMPONENT_ID);
}
if (componentId != 0) {
ReactorItem component = ComponentFactory.createComponent(componentId);
@@ -590,9 +590,9 @@ public class Reactor {
} else {
storage.store(0, 1);
}
- storage.store(id, 58);
+ storage.store(id, ComponentFactory.MAX_COMPONENT_ID);
} else {
- storage.store(0, 58);
+ storage.store(0, ComponentFactory.MAX_COMPONENT_ID);
}
}
}
diff --git a/src/main/java/gtPlusPlus/xmod/gregtech/api/gui/CONTAINER_PowerSubStation.java b/src/main/java/gtPlusPlus/xmod/gregtech/api/gui/CONTAINER_PowerSubStation.java
index 937513751b..94cfa5236d 100644
--- a/src/main/java/gtPlusPlus/xmod/gregtech/api/gui/CONTAINER_PowerSubStation.java
+++ b/src/main/java/gtPlusPlus/xmod/gregtech/api/gui/CONTAINER_PowerSubStation.java
@@ -1,34 +1,44 @@
package gtPlusPlus.xmod.gregtech.api.gui;
-import net.minecraft.inventory.IInventory;
-import net.minecraft.inventory.Slot;
-
+import cpw.mods.fml.relauncher.Side;
+import cpw.mods.fml.relauncher.SideOnly;
import gregtech.api.gui.GT_Container_MultiMachine;
import gregtech.api.interfaces.tileentity.IGregTechTileEntity;
-
import gtPlusPlus.core.slots.SlotNoInput;
-
+import gtPlusPlus.core.util.math.MathUtils;
+import gtPlusPlus.xmod.gregtech.common.tileentities.machines.multi.storage.GregtechMetaTileEntity_PowerSubStationController;
import net.minecraft.entity.player.InventoryPlayer;
+import net.minecraft.inventory.*;
public class CONTAINER_PowerSubStation extends GT_Container_MultiMachine {
-
+
+ public long mStoredEU;
+ public int mStoredEU1;
+ public int mStoredEU2;
+ public long mMaxStoredEU;
+ public int mMaxStoredEU1;
+ public int mMaxStoredEU2;
+ public long mAverageEuAdded;
+ public int mAverageEuAdded1;
+ public int mAverageEuAdded2;
+ public long mAverageEuConsumed;
+ public int mAverageEuConsumed1;
+ public int mAverageEuConsumed2;
+
public CONTAINER_PowerSubStation(final InventoryPlayer aInventoryPlayer, final IGregTechTileEntity aTileEntity) {
super(aInventoryPlayer, aTileEntity);
}
- public CONTAINER_PowerSubStation(final InventoryPlayer aInventoryPlayer, final IGregTechTileEntity aTileEntity,
- final boolean bindInventory) {
+ public CONTAINER_PowerSubStation(final InventoryPlayer aInventoryPlayer, final IGregTechTileEntity aTileEntity, final boolean bindInventory) {
super(aInventoryPlayer, aTileEntity, bindInventory);
}
public void addSlots(final InventoryPlayer aInventoryPlayer) {
this.addSlotToContainer(new Slot((IInventory) this.mTileEntity, 1, 155, 5));
this.addSlotToContainer(new SlotNoInput((IInventory) this.mTileEntity, 2, 155, 23));
-
- for (int i = 0; i < 9; ++i) {
- this.addSlotToContainer(new Slot((IInventory) aInventoryPlayer, i, 8 + i * 18, 167));
- }
-
+
+ for (int i = 0; i < 9; ++i) { this.addSlotToContainer(new Slot((IInventory) aInventoryPlayer, i, 8 + i * 18, 167)); }
+
}
public int getSlotCount() {
@@ -38,4 +48,78 @@ public class CONTAINER_PowerSubStation extends GT_Container_MultiMachine {
public int getShiftClickSlotCount() {
return 1;
}
-} \ No newline at end of file
+
+ @Override
+ public void detectAndSendChanges() {
+ super.detectAndSendChanges();
+
+ mStoredEU = mTileEntity.getStoredEU();
+ mMaxStoredEU = mTileEntity.getEUCapacity();
+ GregtechMetaTileEntity_PowerSubStationController aPSS = (GregtechMetaTileEntity_PowerSubStationController) mTileEntity.getMetaTileEntity();
+ mAverageEuAdded = aPSS.getAverageEuAdded();
+ mAverageEuConsumed = aPSS.getAverageEuConsumed();
+ int[] aStored = MathUtils.splitLongIntoTwoIntegers(mStoredEU);
+ int[] aMaxStorage = MathUtils.splitLongIntoTwoIntegers(mMaxStoredEU);
+ int[] aAvgIn = MathUtils.splitLongIntoTwoIntegers(mAverageEuAdded);
+ int[] aAvgOut = MathUtils.splitLongIntoTwoIntegers(mAverageEuConsumed);
+ mStoredEU1 = aStored[0];
+ mStoredEU2 = aStored[1];
+ mMaxStoredEU1 = aMaxStorage[0];
+ mMaxStoredEU2 = aMaxStorage[1];
+ mAverageEuAdded1 = aAvgIn[0];
+ mAverageEuAdded2 = aAvgIn[1];
+ mAverageEuConsumed1 = aAvgOut[0];
+ mAverageEuConsumed2 = aAvgOut[1];
+
+ for (Object crafter : this.crafters) {
+ ICrafting var1 = (ICrafting) crafter;
+ if (mTimer % 20 == 0) {
+ var1.sendProgressBarUpdate(this, 21, mStoredEU1);
+ var1.sendProgressBarUpdate(this, 22, mStoredEU2);
+ var1.sendProgressBarUpdate(this, 23, mMaxStoredEU1);
+ var1.sendProgressBarUpdate(this, 24, mMaxStoredEU2);
+ var1.sendProgressBarUpdate(this, 25, mAverageEuAdded1);
+ var1.sendProgressBarUpdate(this, 26, mAverageEuAdded2);
+ var1.sendProgressBarUpdate(this, 27, mAverageEuConsumed1);
+ var1.sendProgressBarUpdate(this, 28, mAverageEuConsumed2);
+ }
+ }
+
+ }
+
+ @SideOnly(Side.CLIENT)
+ @Override
+ public void updateProgressBar(int par1, int par2) {
+ super.updateProgressBar(par1, par2);
+ switch (par1) {
+ case 21 :
+ mStoredEU1 = par2;
+ break;
+ case 22 :
+ mStoredEU2 = par2;
+ mStoredEU = MathUtils.combineTwoIntegersToLong(mStoredEU1, mStoredEU2);
+ break;
+ case 23 :
+ mMaxStoredEU1 = par2;
+ break;
+ case 24 :
+ mMaxStoredEU2 = par2;
+ mMaxStoredEU = MathUtils.combineTwoIntegersToLong(mMaxStoredEU1, mMaxStoredEU2);
+ break;
+ case 25 :
+ mAverageEuAdded1 = par2;
+ break;
+ case 26 :
+ mAverageEuAdded2 = par2;
+ mAverageEuAdded = MathUtils.combineTwoIntegersToLong(mAverageEuAdded1, mAverageEuAdded2);
+ break;
+ case 27 :
+ mAverageEuConsumed1 = par2;
+ break;
+ case 28 :
+ mAverageEuConsumed2 = par2;
+ mAverageEuConsumed = MathUtils.combineTwoIntegersToLong(mAverageEuConsumed1, mAverageEuConsumed2);
+ break;
+ }
+ }
+}
diff --git a/src/main/java/gtPlusPlus/xmod/gregtech/api/gui/GUI_PowerSubStation.java b/src/main/java/gtPlusPlus/xmod/gregtech/api/gui/GUI_PowerSubStation.java
index 65ba8610dd..f8aaa1792d 100644
--- a/src/main/java/gtPlusPlus/xmod/gregtech/api/gui/GUI_PowerSubStation.java
+++ b/src/main/java/gtPlusPlus/xmod/gregtech/api/gui/GUI_PowerSubStation.java
@@ -1,175 +1,126 @@
package gtPlusPlus.xmod.gregtech.api.gui;
+import gregtech.api.gui.GT_GUIContainerMetaTile_Machine;
+import gregtech.api.interfaces.tileentity.IGregTechTileEntity;
import gregtech.api.util.GT_Utility;
-
-import gtPlusPlus.api.objects.Logger;
import gtPlusPlus.core.lib.CORE;
-import gregtech.api.interfaces.tileentity.IGregTechTileEntity;
-import gregtech.api.items.GT_MetaGenerated_Tool;
-
+import gtPlusPlus.core.util.Utils;
+import gtPlusPlus.core.util.math.MathUtils;
import net.minecraft.entity.player.InventoryPlayer;
-import net.minecraft.util.IIcon;
-
-import gregtech.api.enums.Textures;
-import gregtech.api.gui.GT_GUIContainerMetaTile_Machine;
public class GUI_PowerSubStation extends GT_GUIContainerMetaTile_Machine {
public String mNEI;
String mName;
boolean[] mRepairStatus = new boolean[6];
- private static IIcon[] mGregToolIcons = new IIcon[6];
+
+ public final CONTAINER_PowerSubStation mPowerContainer;
public GUI_PowerSubStation(final InventoryPlayer aInventoryPlayer, final IGregTechTileEntity aTileEntity, final String aName, final String aNEI) {
super(new CONTAINER_PowerSubStation(aInventoryPlayer, aTileEntity, false), CORE.RES_PATH_GUI + "PowerSubStation.png");
this.mName = aName;
this.mNEI = aNEI;
+ mPowerContainer = (CONTAINER_PowerSubStation) mContainer;
/** The X size of the inventory window in pixels. */
this.xSize = 196;
/** The Y size of the inventory window in pixels. */
this.ySize = 191;
- for (IIcon g : mGregToolIcons) {
- if (g == null) {
- getToolTextures();
- }
- }
- }
-
- private static final boolean getToolTextures() {
- mGregToolIcons[0] = Textures.ItemIcons.WRENCH.getIcon();
- mGregToolIcons[1] = Textures.ItemIcons.HANDLE_SCREWDRIVER.getIcon();
- mGregToolIcons[2] = Textures.ItemIcons.MORTAR.getIcon();
- mGregToolIcons[3] = Textures.ItemIcons.JACKHAMMER.getIcon();
- mGregToolIcons[4] = Textures.ItemIcons.HANDLE_SOLDERING.getIcon();
- mGregToolIcons[5] = Textures.ItemIcons.CROWBAR.getIcon();
- return true;
}
protected void drawGuiContainerForegroundLayer(final int par1, final int par2) {
this.fontRendererObj.drawString(this.mName, 8, -10, 16448255);
- if (this.mContainer != null) {
+ if (this.mPowerContainer != null) {
+
+ //this.fontRendererObj.drawString("Error Code: " + mPowerContainer.mDisplayErrorCode, 10, 142, 16448255);
- this.fontRendererObj.drawString("Error Code: "+((CONTAINER_PowerSubStation) this.mContainer).mDisplayErrorCode, 10, 142, 16448255);
- this.fontRendererObj.drawString("In", 178, 10, 16448255);
- this.fontRendererObj.drawString("Out", 176, 28, 16448255);
-
if (((this.mContainer).mDisplayErrorCode & 1) != 0) {
- this.fontRendererObj.drawString("Pipe is loose.", 10, 8, 16448255);
mRepairStatus[0] = false;
}
else {
mRepairStatus[0] = true;
- }
- if ((((CONTAINER_PowerSubStation) this.mContainer).mDisplayErrorCode & 2) != 0) {
- this.fontRendererObj.drawString("Screws are missing.", 10, 16, 16448255);
+ }
+ if ((mPowerContainer.mDisplayErrorCode & 2) != 0) {
mRepairStatus[1] = false;
}
else {
mRepairStatus[1] = true;
- }
- if ((((CONTAINER_PowerSubStation) this.mContainer).mDisplayErrorCode & 4) != 0) {
- this.fontRendererObj.drawString("Something is stuck.", 10, 24, 16448255);
+ }
+ if ((mPowerContainer.mDisplayErrorCode & 4) != 0) {
mRepairStatus[2] = false;
}
else {
mRepairStatus[2] = true;
- }
- if ((((CONTAINER_PowerSubStation) this.mContainer).mDisplayErrorCode & 8) != 0) {
- this.fontRendererObj.drawString("Platings are dented.", 10, 32, 16448255);
+ }
+ if ((mPowerContainer.mDisplayErrorCode & 8) != 0) {
mRepairStatus[3] = false;
}
else {
mRepairStatus[3] = true;
- }
- if ((((CONTAINER_PowerSubStation) this.mContainer).mDisplayErrorCode & 16) != 0) {
- this.fontRendererObj.drawString("Circuitry burned out.", 10, 40, 16448255);
+ }
+ if ((mPowerContainer.mDisplayErrorCode & 16) != 0) {
mRepairStatus[4] = false;
}
else {
mRepairStatus[4] = true;
- }
- if ((((CONTAINER_PowerSubStation) this.mContainer).mDisplayErrorCode & 32) != 0) {
- this.fontRendererObj.drawString("That doesn't belong there.", 10, 48, 16448255);
+ }
+ if ((mPowerContainer.mDisplayErrorCode & 32) != 0) {
mRepairStatus[5] = false;
}
else {
mRepairStatus[5] = true;
- }
- if (((CONTAINER_PowerSubStation) this.mContainer).mDisplayErrorCode == 0) {
- if (((CONTAINER_PowerSubStation) this.mContainer).mActive == 0) {
- this.fontRendererObj.drawString(
- "Hit with Soft Hammer to (re-)start the Machine if it doesn't start.", -70, 8, 16448255);
- } else {
- this.fontRendererObj.drawString("Running perfectly.", 10, 8, 16448255);
- }
- }
- if (this.mContainer.mEnergy > 160000000 && this.mContainer.mEnergy < 160010000) {
- this.fontRendererObj.drawString("160,000,000 EU", 50, 155, 16711680);
- } else if (this.mContainer.mEnergy > 320000000 && this.mContainer.mEnergy < 320010000) {
- this.fontRendererObj.drawString("320,000,000 EU", 50, 155, 16711680);
- } else if (this.mContainer.mEnergy > 640000000 && this.mContainer.mEnergy < 640010000) {
- this.fontRendererObj.drawString("640,000,000 EU", 50, 155, 16711680);
- } else {
- this.fontRendererObj.drawString(GT_Utility.formatNumbers((long) this.mContainer.mEnergy) + " EU",
- 50, 155, 16711680);
}
+ if (mPowerContainer.mDisplayErrorCode == 0) {
+ if (mPowerContainer.mActive == 0) {
+ this.fontRendererObj.drawString("Turn on with Mallet", 10, 8, 16448255);
+ }
+ else {
+ this.fontRendererObj.drawString("Running perfectly", 10, 8, 16448255);
+ }
+ }
+
+ this.fontRendererObj.drawString("In", 178, 10, 16448255);
+ this.fontRendererObj.drawString("Out", 176, 28, 16448255);
+ this.fontRendererObj.drawString("Avg In: "+GT_Utility.formatNumbers(this.mPowerContainer.mAverageEuAdded)+" EU", 10, 20, 16448255);
+ this.fontRendererObj.drawString("Avg Out: "+GT_Utility.formatNumbers(this.mPowerContainer.mAverageEuConsumed)+" EU", 10, 30, 16448255);
+
+ final double tScale2 = MathUtils.findPercentage(this.mPowerContainer.mStoredEU, this.mPowerContainer.mMaxStoredEU);
+ final int tScale = (int) (tScale2 * 2.55);
+ this.fontRendererObj.drawString("Stored:", 10, 132, 16448255);
+ this.fontRendererObj.drawString(GT_Utility.formatNumbers(this.mPowerContainer.mStoredEU) + " EU", 10, 142, Utils.rgbtoHexValue((255 - tScale), (0 + tScale), 0));
+ this.fontRendererObj.drawString(GT_Utility.formatNumbers(tScale2)+"%", 70, 155, 16448255);
+
}
}
- protected void drawGuiContainerBackgroundLayer(final float par1, final int par2, final int par3) {
+ protected void drawGuiContainerBackgroundLayer(final float par1, final int par2, final int par3) {
/** The X size of the inventory window in pixels. */
if (this.xSize != 196)
this.xSize = 196;
/** The Y size of the inventory window in pixels. */
if (this.ySize != 191)
- this.ySize = 191;
- super.drawGuiContainerBackgroundLayer(par1, par2, par3);
+ this.ySize = 191;
+ super.drawGuiContainerBackgroundLayer(par1, par2, par3);
final int x = (this.width - this.xSize) / 2;
final int y = (this.height - this.ySize) / 2;
this.drawTexturedModalRect(x, y, 0, 0, this.xSize, this.ySize);
- if (this.mContainer != null) {
- final double tScale = this.mContainer.mEnergy / this.mContainer.mStorage;
+ if (this.mPowerContainer != null) {
+ final double tScale = MathUtils.findPercentage(this.mPowerContainer.mStoredEU, this.mPowerContainer.mMaxStoredEU) / 100;
this.drawTexturedModalRect(x + 5, y + 156, 0, 251, Math.min(147, (int) (tScale * 148.0)), 5);
-
- //A1
+ // A1
this.drawTexturedModalRect(x + 154, y + 76, 238, (!mRepairStatus[0] ? 0 : 18), 18, 18);
- //A2
+ // A2
this.drawTexturedModalRect(x + 154 + 20, y + 76, 238, (!mRepairStatus[1] ? 0 : 18), 18, 18);
- //B1
+ // B1
this.drawTexturedModalRect(x + 154, y + 76 + 18, 238, (!mRepairStatus[2] ? 0 : 18), 18, 18);
- //B2
+ // B2
this.drawTexturedModalRect(x + 154 + 20, y + 76 + 18, 238, (!mRepairStatus[3] ? 0 : 18), 18, 18);
- //C1
+ // C1
this.drawTexturedModalRect(x + 154, y + 76 + 36, 238, (!mRepairStatus[4] ? 0 : 18), 18, 18);
- //C2
+ // C2
this.drawTexturedModalRect(x + 154 + 20, y + 76 + 36, 238, (!mRepairStatus[5] ? 0 : 18), 18, 18);
- if (mGregToolIcons[0] != null) {
- //this.drawTexturedModelRectFromIcon(x + 154, y + 76, mGregToolIcons[0], 18, 18);
- }
- if (mGregToolIcons[1] != null) {
- //this.drawTexturedModelRectFromIcon(x + 154 + 20, y + 76, mGregToolIcons[1], 18, 18);
- }
- if (mGregToolIcons[2] != null) {
- //this.drawTexturedModelRectFromIcon(x + 154, y + 76 + 18, mGregToolIcons[2], 9, 9);
- }
- if (mGregToolIcons[3] != null) {
- //this.drawTexturedModelRectFromIcon(x + 154 + 20, y + 76 + 18, mGregToolIcons[3], 9, 9);
- }
- if (mGregToolIcons[4] != null) {
- //this.drawTexturedModelRectFromIcon(x + 154, y + 76 + 36, mGregToolIcons[4], 9, 9);
- }
- if (mGregToolIcons[5] != null) {
- //this.drawTexturedModelRectFromIcon(x + 154 + 20, y + 76 + 36, mGregToolIcons[5], 9, 9);
- }
-
- /*//Maint Done
- this.drawTexturedModalRect(x + 154, y + 76, 238, 0, 18, 18);
- //Maint Required
- this.drawTexturedModalRect(x + 154 + 20, y + 76, 238, 18, 18, 18);*/
-
}
}
-} \ No newline at end of file
+}
diff --git a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/storage/GregtechMetaTileEntity_PowerSubStationController.java b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/storage/GregtechMetaTileEntity_PowerSubStationController.java
index 78adb094ed..0b0964eea0 100644
--- a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/storage/GregtechMetaTileEntity_PowerSubStationController.java
+++ b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/storage/GregtechMetaTileEntity_PowerSubStationController.java
@@ -14,8 +14,7 @@ import com.gtnewhorizon.structurelib.structure.IStructureDefinition;
import com.gtnewhorizon.structurelib.structure.IStructureElement;
import com.gtnewhorizon.structurelib.structure.StructureDefinition;
-import gregtech.api.enums.TAE;
-import gregtech.api.enums.Textures;
+import gregtech.api.enums.*;
import gregtech.api.interfaces.ITexture;
import gregtech.api.interfaces.metatileentity.IMetaTileEntity;
import gregtech.api.interfaces.tileentity.IGregTechTileEntity;
@@ -57,6 +56,8 @@ public class GregtechMetaTileEntity_PowerSubStationController extends GregtechMe
}
protected long mAverageEuUsage = 0;
+ protected long mAverageEuAdded = 0;
+ protected long mAverageEuConsumed = 0;
protected long mTotalEnergyAdded = 0;
protected long mTotalEnergyConsumed = 0;
protected long mTotalEnergyLost = 0;
@@ -128,7 +129,7 @@ public class GregtechMetaTileEntity_PowerSubStationController extends GregtechMe
@Override
public boolean onRightclick(IGregTechTileEntity aBaseMetaTileEntity, EntityPlayer aPlayer) {
- if (mBatteryCapacity <= 0) return false;
+ //if (mBatteryCapacity <= 0) return false;
if (!aBaseMetaTileEntity.isClientSide()) {
aBaseMetaTileEntity.openGUI(aPlayer);
}
@@ -194,7 +195,7 @@ public class GregtechMetaTileEntity_PowerSubStationController extends GregtechMe
public static int getMaxHatchTier(int aCellTier) {
switch(aCellTier) {
case 9:
- return CORE.GTNH ? 15 : 9;
+ return GT_Values.VOLTAGE_NAMES[9].equals("Ultimate High Voltage") ? 15 : 9;
default:
if (aCellTier < 4) {
return 0;
@@ -476,6 +477,8 @@ public class GregtechMetaTileEntity_PowerSubStationController extends GregtechMe
@Override
public void saveNBTData(NBTTagCompound aNBT) {
aNBT.setLong("mAverageEuUsage", this.mAverageEuUsage);
+ aNBT.setLong("mAverageEuAdded", this.mAverageEuAdded);
+ aNBT.setLong("mAverageEuConsumed", this.mAverageEuConsumed);
//Usage Stats
aNBT.setLong("mTotalEnergyAdded", this.mTotalEnergyAdded);
@@ -493,7 +496,13 @@ public class GregtechMetaTileEntity_PowerSubStationController extends GregtechMe
// Best not to get a long if the Tag Map is holding an int
if (aNBT.hasKey("mAverageEuUsage")) {
this.mAverageEuUsage = aNBT.getLong("mAverageEuUsage");
- }
+ }
+ if (aNBT.hasKey("mAverageEuAdded")) {
+ this.mAverageEuAdded = aNBT.getLong("mAverageEuAdded");
+ }
+ if (aNBT.hasKey("mAverageEuConsumed")) {
+ this.mAverageEuConsumed = aNBT.getLong("mAverageEuConsumed");
+ }
//Usage Stats
this.mTotalEnergyAdded = aNBT.getLong("mTotalEnergyAdded");
@@ -586,24 +595,33 @@ public class GregtechMetaTileEntity_PowerSubStationController extends GregtechMe
this.mTotalEnergyLost += Math.min(mDecrease, this.getEUVar());
this.setEUVar(Math.max(0, this.getEUVar() - mDecrease));
+ long aInputAverage = 0;
+ long aOutputAverage = 0;
// Input Power
for (Object THatch : this.mDischargeHatches) {
GT_MetaTileEntity_Hatch_OutputBattery tHatch = (GT_MetaTileEntity_Hatch_OutputBattery) THatch;
drawEnergyFromHatch(tHatch);
+ aInputAverage += tHatch.maxEUInput() * tHatch.maxAmperesIn();
}
for (GT_MetaTileEntity_Hatch tHatch : this.mAllEnergyHatches) {
drawEnergyFromHatch(tHatch);
+ aInputAverage += tHatch.maxEUInput() * tHatch.maxAmperesIn();
}
// Output Power
for (Object THatch : this.mChargeHatches) {
GT_MetaTileEntity_Hatch_InputBattery tHatch = (GT_MetaTileEntity_Hatch_InputBattery) THatch;
addEnergyToHatch(tHatch);
+ aOutputAverage += tHatch.maxEUOutput() * tHatch.maxAmperesOut();
}
for (GT_MetaTileEntity_Hatch tHatch : this.mAllDynamoHatches) {
addEnergyToHatch(tHatch);
+ aOutputAverage += tHatch.maxEUOutput() * tHatch.maxAmperesOut();
}
+ this.mAverageEuAdded = aInputAverage;
+ this.mAverageEuConsumed = aOutputAverage;
+
return true;
}
@@ -658,6 +676,8 @@ public class GregtechMetaTileEntity_PowerSubStationController extends GregtechMe
"Requires Maintenance: " + (!mMaint ? EnumChatFormatting.GREEN : EnumChatFormatting.RED)+ mMaint + EnumChatFormatting.RESET +" | Code: ["+(!mMaint ? EnumChatFormatting.GREEN : EnumChatFormatting.RED) + errorCode + EnumChatFormatting.RESET +"]",
"----------------------",
"Stats for Nerds",
+ "Average Input: " + EnumChatFormatting.BLUE + GT_Utility.formatNumbers(this.mAverageEuAdded) + EnumChatFormatting.RESET + " EU",
+ "Average Output: " + EnumChatFormatting.GOLD + GT_Utility.formatNumbers(this.mAverageEuConsumed) + EnumChatFormatting.RESET + " EU",
"Total Input: " + EnumChatFormatting.BLUE + GT_Utility.formatNumbers(this.mTotalEnergyAdded) + EnumChatFormatting.RESET + " EU",
"Total Output: " + EnumChatFormatting.GOLD + GT_Utility.formatNumbers(this.mTotalEnergyConsumed) + EnumChatFormatting.RESET + " EU",
"Total Costs: " + EnumChatFormatting.RED + GT_Utility.formatNumbers(this.mTotalEnergyLost) + EnumChatFormatting.RESET + " EU",
@@ -726,6 +746,14 @@ public class GregtechMetaTileEntity_PowerSubStationController extends GregtechMe
return 32768;
}
+ public final long getAverageEuAdded() {
+ return this.mAverageEuAdded;
+ }
+
+ public final long getAverageEuConsumed() {
+ return this.mAverageEuConsumed;
+ }
+
@Override
public void onModeChangeByScrewdriver(byte aSide, EntityPlayer aPlayer, float aX, float aY, float aZ) {
mIsOutputtingPower = Utils.invertBoolean(mIsOutputtingPower);