diff options
author | Jakub <53441451+kuba6000@users.noreply.github.com> | 2022-11-24 21:44:23 +0100 |
---|---|---|
committer | kuba6000 <kuba.123123.6000@gmail.com> | 2022-11-24 21:44:23 +0100 |
commit | 9b12b5c8495d83adbb99601c86ce6dcd963fe541 (patch) | |
tree | e355514dca7437cd49f884040936fd73044de4e8 | |
parent | ff7c62810df057c38cc85dc43b071972b14e715b (diff) | |
download | GT5-Unofficial-9b12b5c8495d83adbb99601c86ce6dcd963fe541.tar.gz GT5-Unofficial-9b12b5c8495d83adbb99601c86ce6dcd963fe541.tar.bz2 GT5-Unofficial-9b12b5c8495d83adbb99601c86ce6dcd963fe541.zip |
Prevent player inventory corruption (GTNewHorizons/bartworks#235)
* Ugh
* Merge same slots
* Remove growth progress
* Update GT_MetaTileEntity_ExtremeIndustrialGreenhouse.java
Co-authored-by: Martin Robertz <dream-master@gmx.net>
-rw-r--r-- | src/main/java/kubatech/tileentity/gregtech/multiblock/GT_MetaTileEntity_ExtremeIndustrialGreenhouse.java | 18 |
1 files changed, 8 insertions, 10 deletions
diff --git a/src/main/java/kubatech/tileentity/gregtech/multiblock/GT_MetaTileEntity_ExtremeIndustrialGreenhouse.java b/src/main/java/kubatech/tileentity/gregtech/multiblock/GT_MetaTileEntity_ExtremeIndustrialGreenhouse.java index da7a634c0d..e29aa42d8c 100644 --- a/src/main/java/kubatech/tileentity/gregtech/multiblock/GT_MetaTileEntity_ExtremeIndustrialGreenhouse.java +++ b/src/main/java/kubatech/tileentity/gregtech/multiblock/GT_MetaTileEntity_ExtremeIndustrialGreenhouse.java @@ -525,20 +525,18 @@ public class GT_MetaTileEntity_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<String, Integer> 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<String, Double> 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); |