From cf7b6f2e63ca1f30a567ec4ec07f7a3d2b09013c Mon Sep 17 00:00:00 2001 From: Jakub <53441451+kuba6000@users.noreply.github.com> Date: Thu, 24 Nov 2022 21:44:23 +0100 Subject: Prevent player inventory corruption (#235) * Ugh * Merge same slots * Remove growth progress * Update GT_TileEntity_ExtremeIndustrialGreenhouse.java Co-authored-by: Martin Robertz Former-commit-id: 1878ef170e99a2285c153075e58ba58fcc0235a8 --- .../GT_TileEntity_ExtremeIndustrialGreenhouse.java | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) (limited to 'src/main') diff --git a/src/main/java/com/github/bartimaeusnek/bartworks/common/tileentities/multis/GT_TileEntity_ExtremeIndustrialGreenhouse.java b/src/main/java/com/github/bartimaeusnek/bartworks/common/tileentities/multis/GT_TileEntity_ExtremeIndustrialGreenhouse.java index 71077a3a31..b9123478e5 100644 --- a/src/main/java/com/github/bartimaeusnek/bartworks/common/tileentities/multis/GT_TileEntity_ExtremeIndustrialGreenhouse.java +++ b/src/main/java/com/github/bartimaeusnek/bartworks/common/tileentities/multis/GT_TileEntity_ExtremeIndustrialGreenhouse.java @@ -525,20 +525,18 @@ public class GT_TileEntity_ExtremeIndustrialGreenhouse "Max slots: " + EnumChatFormatting.GREEN + this.mMaxSlots + EnumChatFormatting.RESET, "Used slots: " + ((mStorage.size() > mMaxSlots) ? EnumChatFormatting.RED : EnumChatFormatting.GREEN) + this.mStorage.size() + EnumChatFormatting.RESET)); - for (int i = 0; i < mStorage.size(); i++) { - if (!mStorage.get(i).isValid) continue; - StringBuilder a = new StringBuilder( - "Slot " + i + ": " + EnumChatFormatting.GREEN + "x" + this.mStorage.get(i).input.stackSize + " " - + this.mStorage.get(i).input.getDisplayName()); + HashMap storageList = new HashMap<>(); + for (GreenHouseSlot greenHouseSlot : mStorage) { + if (!greenHouseSlot.isValid) continue; + StringBuilder a = new StringBuilder(EnumChatFormatting.GREEN + "x" + greenHouseSlot.input.stackSize + " " + + greenHouseSlot.input.getDisplayName()); if (this.isIC2Mode) { - a.append(" | Humidity: " + (this.mStorage.get(i).noHumidity ? 0 : 12) + " : "); - for (Map.Entry entry : - mStorage.get(i).dropprogress.entrySet()) - a.append((int) (entry.getValue() * 100d)).append("% "); + a.append(" | Humidity: ").append(greenHouseSlot.noHumidity ? 0 : 12); } a.append(EnumChatFormatting.RESET); - info.add(a.toString()); + storageList.merge(a.toString(), 1, Integer::sum); } + storageList.forEach((k, v) -> info.add("x" + v + " " + k)); if (mStorage.size() > mMaxSlots) info.add(EnumChatFormatting.DARK_RED + "There are too many crops inside to run !" + EnumChatFormatting.RESET); -- cgit