Search in sources :

Example 1 with DropBehaviorOverride

use of adudecalledleo.dontdropit.config.DropBehaviorOverride in project DontDropIt by ModsByLeo.

the class HandledScreenMixin_InterceptMouse method oobClickDropOverride.

@Redirect(method = "mouseReleased", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/gui/screen/ingame/HandledScreen;onMouseClick(Lnet/minecraft/screen/slot/Slot;IILnet/minecraft/screen/slot/SlotActionType;)V", ordinal = 9))
public void oobClickDropOverride(@SuppressWarnings("rawtypes") HandledScreen handledScreen, Slot slot, int invSlot, int clickData, SlotActionType actionType) {
    if (actionType == SlotActionType.QUICK_MOVE) {
        disableFavoredShiftClick(slot, invSlot, clickData, actionType);
        return;
    }
    DropBehaviorOverride oobDropClickOverride = ModConfig.get().general.oobDropClickOverride;
    if (oobDropClickOverride == DropBehaviorOverride.DISABLED || invSlot != -999 || actionType != SlotActionType.PICKUP) {
        onMouseClick(slot, invSlot, clickData, actionType);
        return;
    }
    ItemStack cursorStack = handler.getCursorStack();
    boolean forceDrop = ModKeyBindings.isDown(ModKeyBindings.keyForceDrop);
    boolean canDrop = true;
    switch(oobDropClickOverride) {
        case FAVORITE_ITEMS:
            if (!FavoredChecker.isStackFavored(cursorStack))
                break;
        case ALL_ITEMS:
            canDrop = false;
            break;
    }
    if (forceDrop || canDrop)
        onMouseClick(null, -999, clickData, SlotActionType.PICKUP);
}
Also used : DropBehaviorOverride(adudecalledleo.dontdropit.config.DropBehaviorOverride) ItemStack(net.minecraft.item.ItemStack) Redirect(org.spongepowered.asm.mixin.injection.Redirect)

Aggregations

DropBehaviorOverride (adudecalledleo.dontdropit.config.DropBehaviorOverride)1 ItemStack (net.minecraft.item.ItemStack)1 Redirect (org.spongepowered.asm.mixin.injection.Redirect)1