aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/gregtech/api/metatileentity
diff options
context:
space:
mode:
authorGlease <4586901+Glease@users.noreply.github.com>2022-12-21 21:24:38 +0800
committerGitHub <noreply@github.com>2022-12-21 14:24:38 +0100
commit39af6c671316b32f9d85e173ccfd14e57649cefc (patch)
treea8bd0a766ed9c4196053d9caeb9fbd719d2cbdc5 /src/main/java/gregtech/api/metatileentity
parent5137bb27871c239853612f92e45084144b8e39ff (diff)
downloadGT5-Unofficial-39af6c671316b32f9d85e173ccfd14e57649cefc.tar.gz
GT5-Unofficial-39af6c671316b32f9d85e173ccfd14e57649cefc.tar.bz2
GT5-Unofficial-39af6c671316b32f9d85e173ccfd14e57649cefc.zip
add some more waila display (#1570)
* add some more waila display Signed-off-by: Glease <4586901+Glease@users.noreply.github.com> * rename some translation keys Signed-off-by: Glease <4586901+Glease@users.noreply.github.com> * rename misleading variable names Signed-off-by: Glease <4586901+Glease@users.noreply.github.com> Signed-off-by: Glease <4586901+Glease@users.noreply.github.com>
Diffstat (limited to 'src/main/java/gregtech/api/metatileentity')
-rw-r--r--src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicBatteryBuffer.java49
-rw-r--r--src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicMachine.java16
-rw-r--r--src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_MultiBlockBase.java16
3 files changed, 70 insertions, 11 deletions
diff --git a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicBatteryBuffer.java b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicBatteryBuffer.java
index 45c07cf4c3..50ef4788e2 100644
--- a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicBatteryBuffer.java
+++ b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicBatteryBuffer.java
@@ -14,10 +14,17 @@ import gregtech.api.items.GT_MetaBase_Item;
import gregtech.api.util.GT_ModHandler;
import gregtech.api.util.GT_Utility;
import ic2.api.item.IElectricItem;
+import java.util.List;
+import mcp.mobius.waila.api.IWailaConfigHandler;
+import mcp.mobius.waila.api.IWailaDataAccessor;
import net.minecraft.entity.player.EntityPlayer;
+import net.minecraft.entity.player.EntityPlayerMP;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
+import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.EnumChatFormatting;
+import net.minecraft.util.StatCollector;
+import net.minecraft.world.World;
/**
* NEVER INCLUDE THIS FILE IN YOUR MOD!!!
@@ -306,12 +313,7 @@ public class GT_MetaTileEntity_BasicBatteryBuffer extends GT_MetaTileEntity_Tier
@Override
public String[] getInfoData() {
- if (mMax == 0 || (count > 20)) {
- long[] tmp = getStoredEnergy();
- mStored = tmp[0];
- mMax = tmp[1];
- count = 0;
- }
+ updateStorageInfo();
return new String[] {
EnumChatFormatting.BLUE + getLocalName() + EnumChatFormatting.RESET,
@@ -325,6 +327,41 @@ public class GT_MetaTileEntity_BasicBatteryBuffer extends GT_MetaTileEntity_Tier
};
}
+ private void updateStorageInfo() {
+ if (mMax == 0 || (count > 20)) {
+ long[] tmp = getStoredEnergy();
+ mStored = tmp[0];
+ mMax = tmp[1];
+ count = 0;
+ }
+ }
+
+ @Override
+ public void getWailaBody(
+ ItemStack itemStack, List<String> currenttip, IWailaDataAccessor accessor, IWailaConfigHandler config) {
+ NBTTagCompound tag = accessor.getNBTData();
+ currenttip.add(StatCollector.translateToLocalFormatted(
+ "GT5U.waila.energy.stored",
+ GT_Utility.formatNumbers(tag.getLong("mStored")),
+ GT_Utility.formatNumbers(tag.getLong("mMax"))));
+ currenttip.add(StatCollector.translateToLocalFormatted(
+ "GT5U.waila.energy.avg_in", GT_Utility.formatNumbers(tag.getLong("AvgIn"))));
+ currenttip.add(StatCollector.translateToLocalFormatted(
+ "GT5U.waila.energy.avg_out", GT_Utility.formatNumbers(tag.getLong("AvgOut"))));
+ super.getWailaBody(itemStack, currenttip, accessor, config);
+ }
+
+ @Override
+ public void getWailaNBTData(
+ EntityPlayerMP player, TileEntity tile, NBTTagCompound tag, World world, int x, int y, int z) {
+ updateStorageInfo();
+ super.getWailaNBTData(player, tile, tag, world, x, y, z);
+ tag.setLong("mStored", mStored);
+ tag.setLong("mMax", mMax);
+ tag.setLong("AvgIn", getBaseMetaTileEntity().getAverageElectricInput());
+ tag.setLong("AvgOut", getBaseMetaTileEntity().getAverageElectricOutput());
+ }
+
@Override
public boolean isGivingInformation() {
return true;
diff --git a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicMachine.java b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicMachine.java
index f26090477c..cb1118a70d 100644
--- a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicMachine.java
+++ b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicMachine.java
@@ -1250,10 +1250,19 @@ public abstract class GT_MetaTileEntity_BasicMachine extends GT_MetaTileEntity_B
if (tag.getBoolean("stutteringSingleBlock")) {
currenttip.add("Status: insufficient energy");
} else {
+ boolean isActive = tag.getBoolean("isActiveSingleBlock");
+ if (isActive) {
+ int mEUt = tag.getInteger("eut");
+ if (mEUt > 0) {
+ currenttip.add(StatCollector.translateToLocalFormatted(
+ "GT5U.waila.energy.use", GT_Utility.formatNumbers(mEUt)));
+ } else if (mEUt < 0) {
+ currenttip.add(StatCollector.translateToLocalFormatted(
+ "GT5U.waila.energy.produce", GT_Utility.formatNumbers(-mEUt)));
+ }
+ }
currenttip.add(GT_Waila.getMachineProgressString(
- tag.getBoolean("isActiveSingleBlock"),
- tag.getInteger("maxProgressSingleBlock"),
- tag.getInteger("progressSingleBlock")));
+ isActive, tag.getInteger("maxProgressSingleBlock"), tag.getInteger("progressSingleBlock")));
}
currenttip.add(String.format(
@@ -1281,6 +1290,7 @@ public abstract class GT_MetaTileEntity_BasicMachine extends GT_MetaTileEntity_B
if (tileEntity != null) {
tag.setBoolean("isActiveSingleBlock", tileEntity.isActive());
tag.setInteger("outputFacingSingleBlock", tileEntity.getFrontFacing());
+ if (tileEntity.isActive()) tag.setInteger("eut", mEUt);
}
}
diff --git a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_MultiBlockBase.java b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_MultiBlockBase.java
index a8a8cde0b0..71adcd3a40 100644
--- a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_MultiBlockBase.java
+++ b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_MultiBlockBase.java
@@ -1242,8 +1242,19 @@ public abstract class GT_MetaTileEntity_MultiBlockBase extends MetaTileEntity
currentTip.add((tag.getBoolean("hasProblems") ? (RED + "** HAS PROBLEMS **") : GREEN + "Running Fine") + RESET
+ " Efficiency: " + tag.getFloat("efficiency") + "%");
- currentTip.add(GT_Waila.getMachineProgressString(
- tag.getBoolean("isActive"), tag.getInteger("maxProgress"), tag.getInteger("progress")));
+ boolean isActive = tag.getBoolean("isActive");
+ if (isActive) {
+ long actualEnergyUsage = tag.getLong("energyUsage");
+ if (actualEnergyUsage > 0) {
+ currentTip.add(StatCollector.translateToLocalFormatted(
+ "GT5U.waila.energy.use", GT_Utility.formatNumbers(actualEnergyUsage)));
+ } else if (actualEnergyUsage < 0) {
+ currentTip.add(StatCollector.translateToLocalFormatted(
+ "GT5U.waila.energy.produce", GT_Utility.formatNumbers(-actualEnergyUsage)));
+ }
+ }
+ currentTip.add(
+ GT_Waila.getMachineProgressString(isActive, tag.getInteger("maxProgress"), tag.getInteger("progress")));
super.getWailaBody(itemStack, currentTip, accessor, config);
}
@@ -1262,6 +1273,7 @@ public abstract class GT_MetaTileEntity_MultiBlockBase extends MetaTileEntity
final IGregTechTileEntity tileEntity = getBaseMetaTileEntity();
if (tileEntity != null) {
tag.setBoolean("isActive", tileEntity.isActive());
+ if (tileEntity.isActive()) tag.setLong("energyUsage", getActualEnergyUsage());
}
}