Skip to content

Commit a2bdb86

Browse files
committed
left clicking mermaids gems in the gui onto something else tries to completely fill that target stack
1 parent b37f9cd commit a2bdb86

1 file changed

Lines changed: 15 additions & 6 deletions

File tree

‎src/main/java/de/dafuqs/spectrum/blocks/conditional/MermaidsGemItem.java‎

Lines changed: 15 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
public class MermaidsGemItem extends ItemNameBlockItem implements RevelationAware {
2525

2626
public static final ResourceLocation UNLOCK_IDENTIFIER = SpectrumCommon.locate("place_pedestal");
27+
public static final int ITEM_INTERACTION_WATER_FILL_MILLIBUCKETS = 1000;
2728

2829
public MermaidsGemItem(Block block, Properties settings) {
2930
super(block, settings);
@@ -63,20 +64,28 @@ public InteractionResult useOn(UseOnContext context) {
6364

6465
@Override
6566
public boolean overrideStackedOnOther(@NotNull ItemStack gemStack, @NotNull Slot slot, @NotNull ClickAction clickType, @NotNull Player player) {
66-
if (clickType != ClickAction.SECONDARY) {
67-
return false;
68-
}
67+
6968

7069
ItemStack slotStack = slot.getItem();
7170
IFluidHandlerItem fluidHandler = slotStack.getCapability(Capabilities.FluidHandler.ITEM);
7271
if (fluidHandler != null) {
73-
if(fluidHandler.fill(new FluidStack(Fluids.WATER, 1000), IFluidHandler.FluidAction.EXECUTE) > 0) {
72+
73+
int maxUsedMermaidsGems = 1; // single item when right-clicking
74+
if (clickType == ClickAction.PRIMARY) {
75+
// whole stack when left-clicking
76+
maxUsedMermaidsGems = gemStack.getCount();
77+
}
78+
79+
int maxFluidAmount = ITEM_INTERACTION_WATER_FILL_MILLIBUCKETS * maxUsedMermaidsGems;
80+
int filledAmount = fluidHandler.fill(new FluidStack(Fluids.WATER, maxFluidAmount), IFluidHandler.FluidAction.EXECUTE);
81+
if(filledAmount > 0) {
7482
slot.set(fluidHandler.getContainer());
75-
gemStack.shrink(1);
83+
gemStack.shrink((int) Math.ceil((float) filledAmount / ITEM_INTERACTION_WATER_FILL_MILLIBUCKETS));
84+
return true;
7685
}
7786
}
7887

79-
return true;
88+
return false;
8089
}
8190

8291
}

0 commit comments

Comments
 (0)