diff --git a/src/main/java/gregtech/common/metatileentities/multi/multiblockpart/appeng/MetaTileEntityMEStockingBus.java b/src/main/java/gregtech/common/metatileentities/multi/multiblockpart/appeng/MetaTileEntityMEStockingBus.java index 5233602bdca..91190f83748 100644 --- a/src/main/java/gregtech/common/metatileentities/multi/multiblockpart/appeng/MetaTileEntityMEStockingBus.java +++ b/src/main/java/gregtech/common/metatileentities/multi/multiblockpart/appeng/MetaTileEntityMEStockingBus.java @@ -28,10 +28,13 @@ import appeng.api.storage.IMEMonitor; import appeng.api.storage.data.IAEItemStack; import appeng.api.storage.data.IItemList; +import appeng.util.ItemSorters; import codechicken.lib.raytracer.CuboidRayTraceResult; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; +import java.util.ArrayList; +import java.util.Comparator; import java.util.List; import java.util.function.Predicate; @@ -216,9 +219,20 @@ private void refreshList() { clearInventory(0); return; } + + Comparator c = ItemSorters.CONFIG_BASED_SORT_BY_SIZE; + + List items = new ArrayList<>(); + + for(IAEItemStack stack : storageList) + { + items.add(stack); + } + items.sort(c); + int index = 0; - for (IAEItemStack stack : storageList) { + for (IAEItemStack stack : items) { if (index >= CONFIG_SIZE) break; if (stack.getStackSize() == 0) continue; stack = monitor.extractItems(stack, Actionable.SIMULATE, getActionSource()); diff --git a/src/main/java/gregtech/common/metatileentities/multi/multiblockpart/appeng/MetaTileEntityMEStockingHatch.java b/src/main/java/gregtech/common/metatileentities/multi/multiblockpart/appeng/MetaTileEntityMEStockingHatch.java index eb67268d326..dd322cbf15a 100644 --- a/src/main/java/gregtech/common/metatileentities/multi/multiblockpart/appeng/MetaTileEntityMEStockingHatch.java +++ b/src/main/java/gregtech/common/metatileentities/multi/multiblockpart/appeng/MetaTileEntityMEStockingHatch.java @@ -28,10 +28,13 @@ import appeng.api.storage.IMEMonitor; import appeng.api.storage.data.IAEFluidStack; import appeng.api.storage.data.IItemList; +import appeng.fluids.util.FluidSorters; import codechicken.lib.raytracer.CuboidRayTraceResult; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; +import java.util.ArrayList; +import java.util.Comparator; import java.util.List; import java.util.function.Predicate; @@ -183,9 +186,20 @@ private void refreshList() { clearInventory(0); return; } + + Comparator c = FluidSorters.CONFIG_BASED_SORT_BY_SIZE; + + List fluids = new ArrayList<>(); + + for(IAEFluidStack stack : storageList) + { + fluids.add(stack); + } + fluids.sort(c); + int index = 0; - for (IAEFluidStack stack : storageList) { + for (IAEFluidStack stack : fluids) { if (index >= CONFIG_SIZE) break; if (stack.getStackSize() == 0) continue; stack = monitor.extractItems(stack, Actionable.SIMULATE, getActionSource());