aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/gregtech
diff options
context:
space:
mode:
authorHoleFish <48403212+HoleFish@users.noreply.github.com>2024-09-11 01:35:43 +0800
committerGitHub <noreply@github.com>2024-09-10 17:35:43 +0000
commite3c23d5c78344887ede429b870b078223f3eb4f4 (patch)
treee44a40e04e649393296fd97a3e2dda25cc6a1f72 /src/main/java/gregtech
parent8322ed01db369cd3fc02aa1c1baf8db861154bfc (diff)
downloadGT5-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.java27
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');
}
}