@@ -195,14 +195,11 @@ public ItemStack extractItem(int slot, int amount, boolean simulate) {
195195 ItemStack stack = this .getStackInSlot (slot );
196196 if (stack .has (FSAttachments .FLUID_STORAGE_MODIFIER )) {
197197 var replacement = new ItemStack [this .getSlots ()];
198- replacement [slot ] = stack ;
198+ replacement [slot ] = ItemStack . EMPTY ;
199199
200200 var newSize = SizeProvider .calculateAsFactor (this , FSAttachments .FLUID_STORAGE_MODIFIER , baseSize , replacement );
201- for (int i = 0 ; i < getFluidHandler ().getTanks (); i ++) {
202- var stored = getFluidHandler ().getFluidInTank (i );
203- if (stored .getAmount () > Math .min (Integer .MAX_VALUE , getTankCapacity (newSize ))) {
204- return ItemStack .EMPTY ;
205- }
201+ if (!canChangeMultiplier (newSize )) {
202+ return ItemStack .EMPTY ;
206203 }
207204 }
208205 return super .extractItem (slot , amount , simulate );
@@ -223,6 +220,15 @@ public ItemStack extractItem(int slot, int amount, boolean simulate) {
223220 .setSlotLimit (1 );
224221 }
225222
223+ protected boolean canChangeMultiplier (double newSizeMultiplier ) {
224+ for (int i = 0 ; i < getFluidHandler ().getTanks (); i ++) {
225+ var stored = getFluidHandler ().getFluidInTank (i );
226+ if (!stored .isEmpty () && stored .getAmount () > Math .min (Integer .MAX_VALUE , getTankCapacity (newSizeMultiplier ))) {
227+ return false ;
228+ }
229+ }
230+ return true ;
231+ }
226232
227233 @ Override
228234 public IFluidHandler getFluidHandler (@ Nullable Direction direction ) {
0 commit comments