diff options
author | Vladislav Laetansky <87545780+vlaetansky@users.noreply.github.com> | 2022-09-10 16:24:16 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-09-10 15:24:16 +0200 |
commit | 7559057336c2b4ff84deca2c35e59f39c95a7552 (patch) | |
tree | 5c9ca10a66c48abe0cf988df27b76175159d0d2a /src/main | |
parent | 946667518350327d399f5d35c1ab49ae88142a8d (diff) | |
download | GT5-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')
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; + } +} |