@@ -106,11 +106,8 @@ public ItemStack extractItem(int slot, int amount, boolean simulate) {
106106 replacement [slot ] = stack ;
107107
108108 var newSize = (long ) SizeProvider .calculate (this , FSAttachments .ITEM_STORAGE_MODIFIER , baseSize , replacement );
109- for (int i = 0 ; i < getStorage ().getSlots (); i ++) {
110- var stored = getStorage ().getStackInSlot (i );
111- if (stored .getCount () > Math .min (Integer .MAX_VALUE , newSize * stored .getMaxStackSize ())) {
112- return ItemStack .EMPTY ;
113- }
109+ if (!canChangeMultiplier (newSize )) {
110+ return ItemStack .EMPTY ;
114111 }
115112 }
116113 return super .extractItem (slot , amount , simulate );
@@ -125,11 +122,8 @@ public ItemStack extractItem(int slot, int amount, boolean simulate) {
125122 replacement [integer ] = stack ;
126123
127124 var newSize = (long ) SizeProvider .calculate (getStorageUpgrades (), FSAttachments .ITEM_STORAGE_MODIFIER , baseSize , replacement );
128- for (int i = 0 ; i < getStorage ().getSlots (); i ++) {
129- var stored = getStorage ().getStackInSlot (i );
130- if (stored .getCount () > Math .min (Integer .MAX_VALUE , newSize * stored .getMaxStackSize ())) {
131- return false ;
132- }
125+ if (!canChangeMultiplier (newSize )) {
126+ return false ;
133127 }
134128
135129 return true ;
@@ -140,6 +134,16 @@ public ItemStack extractItem(int slot, int amount, boolean simulate) {
140134 .setSlotLimit (1 );
141135 }
142136
137+ protected boolean canChangeMultiplier (long newSizeMultiplier ) {
138+ for (int i = 0 ; i < getStorage ().getSlots (); i ++) {
139+ var stored = getStorage ().getStackInSlot (i );
140+ if (!stored .isEmpty () && stored .getCount () > Math .min (Integer .MAX_VALUE , newSizeMultiplier * stored .getMaxStackSize ())) {
141+ return false ;
142+ }
143+ }
144+ return true ;
145+ }
146+
143147 public boolean isEverythingEmpty () {
144148 for (int i = 0 ; i < getStorage ().getSlots (); i ++) {
145149 if (!getStorage ().getStackInSlot (i ).isEmpty ()) {
0 commit comments