From 75ebf863f50773841a06076444911acd6b1f82e8 Mon Sep 17 00:00:00 2001 From: querns <33518699+querns@users.noreply.github.com> Date: Tue, 3 Oct 2023 03:57:44 -0500 Subject: Adds proper client/server sync for metrics cover, improves oil drill metrics output (#2319) --- .../multi/GT_MetaTileEntity_OilDrillBase.java | 30 +++++++++++++++------- 1 file changed, 21 insertions(+), 9 deletions(-) (limited to 'src/main/java/gregtech/common/tileentities') diff --git a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_OilDrillBase.java b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_OilDrillBase.java index 0a47bdb268..d1d56f0254 100644 --- a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_OilDrillBase.java +++ b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_OilDrillBase.java @@ -388,27 +388,39 @@ public abstract class GT_MetaTileEntity_OilDrillBase extends GT_MetaTileEntity_D @Override public @NotNull List reportMetrics() { - if (getBaseMetaTileEntity().isActive()) { - return switch (workState) { - case STATE_AT_BOTTOM -> ImmutableList.of( - StatCollector.translateToLocalFormatted("GT5U.gui.text.pump_fluid_type", getFluidName()), + final boolean machineIsActive = getBaseMetaTileEntity().isActive(); + final String failureReason = getFailureReason() + .map(reason -> StatCollector.translateToLocalFormatted("GT5U.gui.text.drill_offline_reason", reason)) + .orElseGet(() -> StatCollector.translateToLocalFormatted("GT5U.gui.text.drill_offline_generic")); + + if (workState == STATE_AT_BOTTOM) { + final ImmutableList.Builder builder = ImmutableList.builder(); + builder.add(StatCollector.translateToLocalFormatted("GT5U.gui.text.pump_fluid_type", getFluidName())); + + if (machineIsActive) { + builder.add( StatCollector.translateToLocalFormatted( "GT5U.gui.text.pump_rate.1", EnumChatFormatting.AQUA + getFlowRatePerTick()) + StatCollector.translateToLocal("GT5U.gui.text.pump_rate.2"), getReservoirContents() + StatCollector.translateToLocal("GT5U.gui.text.pump_recovery.2")); + } else { + builder.add(failureReason); + } + + return builder.build(); + } + + if (machineIsActive) { + return switch (workState) { case STATE_DOWNWARD -> ImmutableList.of(StatCollector.translateToLocal("GT5U.gui.text.deploying_pipe")); case STATE_UPWARD, STATE_ABORT -> ImmutableList .of(StatCollector.translateToLocal("GT5U.gui.text.retracting_pipe")); - default -> ImmutableList.of(); }; } - return ImmutableList.of( - getFailureReason() - .map(reason -> StatCollector.translateToLocalFormatted("GT5U.gui.text.drill_offline_reason", reason)) - .orElseGet(() -> StatCollector.translateToLocalFormatted("GT5U.gui.text.drill_offline_generic"))); + return ImmutableList.of(failureReason); } @NotNull -- cgit