aboutsummaryrefslogtreecommitdiff
path: root/src/main
diff options
context:
space:
mode:
authorVladislav Laetansky <87545780+vlaetansky@users.noreply.github.com>2022-09-10 16:24:16 +0300
committerGitHub <noreply@github.com>2022-09-10 15:24:16 +0200
commit7559057336c2b4ff84deca2c35e59f39c95a7552 (patch)
tree5c9ca10a66c48abe0cf988df27b76175159d0d2a /src/main
parent946667518350327d399f5d35c1ab49ae88142a8d (diff)
downloadGT5-Unofficial-7559057336c2b4ff84deca2c35e59f39c95a7552.tar.gz
GT5-Unofficial-7559057336c2b4ff84deca2c35e59f39c95a7552.tar.bz2
GT5-Unofficial-7559057336c2b4ff84deca2c35e59f39c95a7552.zip
Waila improvements for basic machines (#1368)
* Fix waila facings for basic machines * Address review * Show process time only when machine is active * Show tick time for recipes with a duration less than a second * Address review
Diffstat (limited to 'src/main')
-rw-r--r--src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicMachine.java32
-rw-r--r--src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_MultiBlockBase.java18
-rw-r--r--src/main/java/gregtech/api/util/GT_Waila.java20
3 files changed, 57 insertions, 13 deletions
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 25c7c2991e..15ce40cebf 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
@@ -1190,10 +1190,24 @@ public abstract class GT_MetaTileEntity_BasicMachine extends GT_MetaTileEntity_B
ItemStack itemStack, List<String> currenttip, IWailaDataAccessor accessor, IWailaConfigHandler config) {
final NBTTagCompound tag = accessor.getNBTData();
+ if (tag.getBoolean("stutteringSingleBlock")) {
+ currenttip.add("Status: insufficient energy");
+ } else {
+ currenttip.add(GT_Waila.getMachineProgressString(
+ tag.getBoolean("isActiveSingleBlock"),
+ tag.getInteger("maxProgressSingleBlock"),
+ tag.getInteger("progressSingleBlock")));
+ }
+
+ currenttip.add(String.format(
+ "Machine Facing: %s",
+ ForgeDirection.getOrientation(tag.getInteger("mainFacingSingleBlock"))
+ .name()));
+
currenttip.add(String.format(
- "Progress: %d s / %d s",
- tag.getInteger("progressSingleBlock"), tag.getInteger("maxProgressSingleBlock")));
- super.getWailaBody(itemStack, currenttip, accessor, config);
+ "Output Facing: %s",
+ ForgeDirection.getOrientation(tag.getInteger("outputFacingSingleBlock"))
+ .name()));
}
@Override
@@ -1201,8 +1215,16 @@ public abstract class GT_MetaTileEntity_BasicMachine extends GT_MetaTileEntity_B
EntityPlayerMP player, TileEntity tile, NBTTagCompound tag, World world, int x, int y, int z) {
super.getWailaNBTData(player, tile, tag, world, x, y, z);
- tag.setInteger("progressSingleBlock", mProgresstime / 20);
- tag.setInteger("maxProgressSingleBlock", mMaxProgresstime / 20);
+ tag.setInteger("progressSingleBlock", mProgresstime);
+ tag.setInteger("maxProgressSingleBlock", mMaxProgresstime);
+ tag.setInteger("mainFacingSingleBlock", mMainFacing);
+ tag.setBoolean("stutteringSingleBlock", mStuttering);
+
+ IGregTechTileEntity tileEntity = getBaseMetaTileEntity();
+ if (tileEntity != null) {
+ tag.setBoolean("isActiveSingleBlock", tileEntity.isActive());
+ tag.setInteger("outputFacingSingleBlock", tileEntity.getFrontFacing());
+ }
}
public Power getPower() {
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 2bba7855a5..c541492ee1 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
@@ -15,11 +15,8 @@ import gregtech.api.interfaces.tileentity.IGregTechTileEntity;
import gregtech.api.items.GT_MetaGenerated_Tool;
import gregtech.api.metatileentity.MetaTileEntity;
import gregtech.api.objects.GT_ItemStack;
-import gregtech.api.util.GT_ExoticEnergyInputHelper;
-import gregtech.api.util.GT_Log;
+import gregtech.api.util.*;
import gregtech.api.util.GT_Recipe.GT_Recipe_Map;
-import gregtech.api.util.GT_Single_Recipe_Check;
-import gregtech.api.util.GT_Utility;
import gregtech.common.GT_Pollution;
import gregtech.common.items.GT_MetaGenerated_Tool_01;
import java.util.ArrayList;
@@ -1248,8 +1245,8 @@ 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(
- String.format("Progress: %d s / %d s", tag.getInteger("progress"), tag.getInteger("maxProgress")));
+ currentTip.add(GT_Waila.getMachineProgressString(
+ tag.getBoolean("isActive"), tag.getInteger("maxProgress"), tag.getInteger("progress")));
super.getWailaBody(itemStack, currentTip, accessor, config);
}
@@ -1261,9 +1258,14 @@ public abstract class GT_MetaTileEntity_MultiBlockBase extends MetaTileEntity {
tag.setBoolean("hasProblems", (getIdealStatus() - getRepairStatus()) > 0);
tag.setFloat("efficiency", mEfficiency / 100.0F);
- tag.setInteger("progress", mProgresstime / 20);
- tag.setInteger("maxProgress", mMaxProgresstime / 20);
+ tag.setInteger("progress", mProgresstime);
+ tag.setInteger("maxProgress", mMaxProgresstime);
tag.setBoolean("incompleteStructure", (getBaseMetaTileEntity().getErrorDisplayID() & 64) != 0);
+
+ IGregTechTileEntity tileEntity = getBaseMetaTileEntity();
+ if (tileEntity != null) {
+ tag.setBoolean("isActive", tileEntity.isActive());
+ }
}
public List<GT_MetaTileEntity_Hatch> getExoticEnergyHatches() {
diff --git a/src/main/java/gregtech/api/util/GT_Waila.java b/src/main/java/gregtech/api/util/GT_Waila.java
new file mode 100644
index 0000000000..9ea42a1028
--- /dev/null
+++ b/src/main/java/gregtech/api/util/GT_Waila.java
@@ -0,0 +1,20 @@
+package gregtech.api.util;
+
+public abstract class GT_Waila {
+
+ public static String getMachineProgressString(boolean isActive, int maxProgress, int progress) {
+ final String result;
+
+ if (isActive) {
+ if (maxProgress < 20) {
+ result = String.format("Progress: %d ticks remaining", maxProgress);
+ } else {
+ result = String.format("Progress: %d s / %d s", progress / 20, maxProgress / 20);
+ }
+ } else {
+ result = "Idle";
+ }
+
+ return result;
+ }
+}