Make alt drag quick stack items

This commit is contained in:
2025-03-30 16:18:42 +02:00
parent 24848cfe5f
commit d54787a9a8
2 changed files with 17 additions and 4 deletions

View File

@@ -93,9 +93,15 @@ Hook.Patch("Barotrauma.Character", "ControlLocalPlayer", function(instance, ptab
quickbuy.tryBuy()
end, Hook.HookMethodType.After)
local throttle = 0.1
local throttleTimer = 0
Hook.Patch("Barotrauma.Character", "ControlLocalPlayer", function(instance, ptable)
---@cast PlayerInput Barotrauma.PlayerInput
if not PlayerInput.IsShiftDown() then return end
if not PlayerInput.PrimaryMouseButtonClicked() then return end
if Timer.GetTime() < throttleTimer then return end
throttleTimer = Timer.GetTime() + throttle
-- We can not use shift because holding shift means we're moving half a stack
-- Fuck me sideways
-- if not PlayerInput.IsShiftDown() then return end
if not PlayerInput.IsAltDown() then return end
-- if not PlayerInput.PrimaryMouseButtonClicked() then return end
cursormacroer.tryStackCursorItem()
end, Hook.HookMethodType.After)

View File

@@ -47,6 +47,8 @@ local function getInventorySlotUnderCursor()
return nil, nil, nil
end
-- TODO: Make shift right click mark target inventory
-- So that we can stack items to boxes and shit
local function tryStackCursorItem()
MyModGlobal.debugPrint("Shift + Left Click detected")
@@ -65,6 +67,11 @@ local function tryStackCursorItem()
return
end
if not slot or not slot.items or not slot.items[1] then
MyModGlobal.debugPrint("No items in slot")
return
end
local itemTree, err = quickstack.tryBuildCharacterItemTree(controlledCharacter)
if err then
MyModGlobal.debugPrint(string.format("Error building item tree: %s", err))
@@ -78,7 +85,7 @@ local function tryStackCursorItem()
end
-- MyModGlobal.debugPrint(string.format("Enqueued %d items from the inventory slot", #itemsToMove))
local errors = quickstack.tryMoveItems(itemsToMove, itemTree)
local errors = quickstack.tryMoveItems(itemsToMove, itemTree, true)
for _, error in ipairs(errors) do
MyModGlobal.debugPrint(string.format("Error moving item: %s", error))
end