Skip to content

Commit 5d98b49

Browse files
committed
fix clicking for phantom fluid slots
simplify getting fluid from buckets simplify drain method
1 parent e17b928 commit 5d98b49

File tree

2 files changed

+10
-15
lines changed

2 files changed

+10
-15
lines changed

src/main/java/gregtech/common/metatileentities/storage/MetaTileEntityCreativeTank.java

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -240,12 +240,8 @@ public FluidStack drain(FluidStack resource, boolean doDrain) {
240240
public FluidStack drain(int maxDrain, boolean doDrain) {
241241
if (!active) return null;
242242

243-
var f = super.drain(maxDrain, false);
244-
if (f != null) {
245-
f = f.copy();
246-
f.amount = Math.min(mBPerCycle, maxDrain);
247-
}
248-
return f;
243+
FluidStack stack = super.drain(maxDrain, false);
244+
return GTUtility.copy(Math.min(mBPerCycle, maxDrain), stack);
249245
}
250246

251247
@Override

src/main/java/gregtech/common/mui/widget/GTFluidSlot.java

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,12 @@
11
package gregtech.common.mui.widget;
22

33
import gregtech.api.mui.sync.GTFluidSyncHandler;
4-
import gregtech.api.util.GTUtility;
54
import gregtech.client.utils.RenderUtil;
65

76
import net.minecraft.item.ItemStack;
87
import net.minecraftforge.fluids.FluidStack;
8+
import net.minecraftforge.fluids.FluidUtil;
99
import net.minecraftforge.fluids.IFluidTank;
10-
import net.minecraftforge.fluids.capability.CapabilityFluidHandler;
1110

1211
import com.cleanroommc.modularui.api.ITheme;
1312
import com.cleanroommc.modularui.api.widget.Interactable;
@@ -119,7 +118,8 @@ public void draw(ModularGuiContext context, WidgetSlotTheme widgetTheme) {
119118
@Override
120119
public @NotNull Result onMousePressed(int mouseButton) {
121120
var data = MouseData.create(mouseButton);
122-
if (this.syncHandler.canFillSlot() || this.syncHandler.canDrainSlot()) {
121+
if (this.syncHandler.isPhantom() ||
122+
this.syncHandler.canFillSlot() || this.syncHandler.canDrainSlot()) {
123123
this.syncHandler.handleClick(data);
124124

125125
if (this.syncHandler.canLockFluid())
@@ -164,13 +164,12 @@ public void setGhostIngredient(@NotNull FluidStack ingredient) {
164164

165165
if (ingredient instanceof FluidStack stack) {
166166
return stack;
167-
} else if (ingredient instanceof ItemStack stack &&
168-
stack.hasCapability(CapabilityFluidHandler.FLUID_HANDLER_ITEM_CAPABILITY, null)) {
169-
if (stack.getCount() > 1) stack = GTUtility.copy(1, stack);
167+
}
168+
169+
if (ingredient instanceof ItemStack stack) {
170+
return FluidUtil.getFluidContained(stack);
171+
}
170172

171-
var handler = stack.getCapability(CapabilityFluidHandler.FLUID_HANDLER_ITEM_CAPABILITY, null);
172-
return handler == null ? null : handler.drain(Integer.MAX_VALUE, true);
173-
}
174173
return null;
175174
}
176175

0 commit comments

Comments
 (0)