Skip to content

Commit 5207b1e

Browse files
committed
Fixed being able to extract upgrades from Fluid Drawers, closes #437
1 parent 328e39a commit 5207b1e

File tree

2 files changed

+14
-6
lines changed

2 files changed

+14
-6
lines changed

CHANGELOG.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@
33
* Update zh_cn.json 1.21 - Mooncywin
44
* Create es_es.json and es_mx.json - ArrivedBog593
55
* Support fractional factors and base amounts - Matyrobbrt
6+
* Fixed Controller, Access Point and Armory Cabinet having their model reversed, closes #435
7+
* Fixed being able to extract upgrades from Fluid Drawers, closes #437
68

79
# VERSION 1.5.1
810

src/main/java/com/buuz135/functionalstorage/block/tile/FluidDrawerTile.java

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)