diff options
author | HoleFish <48403212+HoleFish@users.noreply.github.com> | 2024-09-11 01:35:43 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-09-10 17:35:43 +0000 |
commit | e3c23d5c78344887ede429b870b078223f3eb4f4 (patch) | |
tree | e44a40e04e649393296fd97a3e2dda25cc6a1f72 /src/main/java/gregtech | |
parent | 8322ed01db369cd3fc02aa1c1baf8db861154bfc (diff) | |
download | GT5-Unofficial-e3c23d5c78344887ede429b870b078223f3eb4f4.tar.gz GT5-Unofficial-e3c23d5c78344887ede429b870b078223f3eb4f4.tar.bz2 GT5-Unofficial-e3c23d5c78344887ede429b870b078223f3eb4f4.zip |
Merge displayed output stacks (#3144)
Co-authored-by: Martin Robertz <dream-master@gmx.net>
Diffstat (limited to 'src/main/java/gregtech')
-rw-r--r-- | src/main/java/gregtech/api/metatileentity/implementations/MTEMultiBlockBase.java | 27 |
1 files changed, 17 insertions, 10 deletions
diff --git a/src/main/java/gregtech/api/metatileentity/implementations/MTEMultiBlockBase.java b/src/main/java/gregtech/api/metatileentity/implementations/MTEMultiBlockBase.java index bba64cbd8c..8cdcd6e18f 100644 --- a/src/main/java/gregtech/api/metatileentity/implementations/MTEMultiBlockBase.java +++ b/src/main/java/gregtech/api/metatileentity/implementations/MTEMultiBlockBase.java @@ -17,7 +17,7 @@ import java.util.Iterator; import java.util.List; import java.util.Map; import java.util.Optional; -import java.util.function.IntConsumer; +import java.util.function.LongConsumer; import javax.annotation.Nonnull; import javax.annotation.Nullable; @@ -2494,14 +2494,13 @@ public abstract class MTEMultiBlockBase extends MetaTileEntity numberFormat.setMinimumFractionDigits(0); numberFormat.setMaximumFractionDigits(2); - IntConsumer appendRate = (amount) -> { + LongConsumer appendRate = (amount) -> { double processPerTick = (double) amount / mMaxProgresstime * 20; + ret.append(" ("); if (processPerTick > 1) { - ret.append(" ("); numberFormat.format(Math.round(processPerTick * 10) / 10.0, ret); ret.append("/s)"); } else { - ret.append(" ("); numberFormat.format(Math.round(1 / processPerTick * 10) / 10.0, ret); ret.append("s/ea)"); } @@ -2511,41 +2510,49 @@ public abstract class MTEMultiBlockBase extends MetaTileEntity int MAX_LINES = 5; if (mOutputItems != null) { + HashMap<String, Long> nameToAmount = new HashMap<>(); for (var item : mOutputItems) { if (item == null) continue; + nameToAmount.merge(item.getDisplayName(), (long) item.stackSize, Long::sum); + } + for (Map.Entry<String, Long> entry : nameToAmount.entrySet()) { if (lines >= MAX_LINES) { ret.append("..."); return ret.toString(); } lines++; ret.append(EnumChatFormatting.AQUA) - .append(item.getDisplayName()) + .append(entry.getKey()) .append(EnumChatFormatting.WHITE) .append(" x ") .append(EnumChatFormatting.GOLD); - numberFormat.format(item.stackSize, ret); + numberFormat.format(entry.getValue(), ret); ret.append(EnumChatFormatting.WHITE); - appendRate.accept(item.stackSize); + appendRate.accept(entry.getValue()); ret.append('\n'); } } if (mOutputFluids != null) { + HashMap<String, Long> nameToAmount = new HashMap<>(); for (var fluid : mOutputFluids) { if (fluid == null) continue; + nameToAmount.merge(fluid.getLocalizedName(), (long) fluid.amount, Long::sum); + } + for (Map.Entry<String, Long> entry : nameToAmount.entrySet()) { if (lines >= MAX_LINES) { ret.append("..."); return ret.toString(); } lines++; ret.append(EnumChatFormatting.AQUA) - .append(fluid.getLocalizedName()) + .append(entry.getKey()) .append(EnumChatFormatting.WHITE) .append(" x ") .append(EnumChatFormatting.GOLD); - numberFormat.format(fluid.amount, ret); + numberFormat.format(entry.getValue(), ret); ret.append("L") .append(EnumChatFormatting.WHITE); - appendRate.accept(fluid.amount); + appendRate.accept(entry.getValue()); ret.append('\n'); } } |