Add quickloot
This commit is contained in:
@@ -19,6 +19,7 @@ MyModGlobal = {
|
||||
UNLOAD = Keys.E,
|
||||
RELOAD = Keys.R,
|
||||
STACK_TO_CURSOR = Keys.G,
|
||||
LOOT = Keys.L,
|
||||
NESTED_CONTAINERS = true,
|
||||
DEBUG_MODE = true,
|
||||
},
|
||||
@@ -61,6 +62,7 @@ local hotkeyrepair = require("Cyka.hotkeyrepair")
|
||||
local cursormacroer = require("Cyka.cursormacroer")
|
||||
local quickunload = require("Cyka.quickunload")
|
||||
local quickreload= require("Cyka.quickreload")
|
||||
local quickloot = require("Cyka.quickloot")
|
||||
require("Cyka.xpticker")
|
||||
require("Cyka.zoom")
|
||||
|
||||
@@ -137,3 +139,8 @@ Hook.Patch("Barotrauma.Character", "ControlLocalPlayer", function(instance, ptab
|
||||
if not PlayerInput.KeyHit(MyModGlobal.CONFIG.RELOAD) then return end
|
||||
quickreload.tryReloadCursorItem(PlayerInput.IsShiftDown())
|
||||
end, Hook.HookMethodType.After)
|
||||
|
||||
Hook.Patch("Barotrauma.Character", "ControlLocalPlayer", function(instance, ptable)
|
||||
if not PlayerInput.KeyHit(MyModGlobal.CONFIG.LOOT) then return end
|
||||
quickloot.tryLoot()
|
||||
end, Hook.HookMethodType.After)
|
||||
|
||||
41
QuickStackToBag/Lua/Cyka/quickloot.lua
Normal file
41
QuickStackToBag/Lua/Cyka/quickloot.lua
Normal file
@@ -0,0 +1,41 @@
|
||||
-- luacheck: globals Character MyModGlobal
|
||||
local dump = require("Cyka.dump")
|
||||
local utils = require("Cyka.utils")
|
||||
local quickstack = require("Cyka.quickstack")
|
||||
|
||||
local function tryLoot()
|
||||
MyModGlobal.debugPrint("Trying to loot dead creatures")
|
||||
local character = Character.Controlled
|
||||
if not character then
|
||||
MyModGlobal.debugPrint("No character found")
|
||||
return
|
||||
end
|
||||
|
||||
local itemTree, err = quickstack.tryBuildCharacterItemTree(character)
|
||||
if err then
|
||||
MyModGlobal.debugPrint(string.format("Failed to build item tree: %s", err))
|
||||
return
|
||||
end
|
||||
|
||||
local items = {}
|
||||
for _, itcharacter in pairs(Character.CharacterList) do
|
||||
if itcharacter.IsDead and itcharacter.Inventory then
|
||||
MyModGlobal.debugPrint(string.format("Enqueuing inventory for %s", itcharacter.Name))
|
||||
local before = #items
|
||||
utils.enqueueInventory(itcharacter.Inventory, items)
|
||||
MyModGlobal.debugPrint(string.format("Enqueued %d items for %s", #items - before, itcharacter.Name))
|
||||
end
|
||||
end
|
||||
|
||||
local errors = quickstack.tryMoveItems(items, itemTree, true)
|
||||
if #errors > 0 then
|
||||
MyModGlobal.debugPrint(string.format("Failed to move %d items", #errors))
|
||||
for _, err in pairs(errors) do
|
||||
MyModGlobal.debugPrint(err)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
return {
|
||||
tryLoot = tryLoot,
|
||||
}
|
||||
@@ -79,7 +79,7 @@ Hook.HookMethod("Barotrauma.Character", "ControlLocalPlayer", function(_, ptable
|
||||
gzsUpd = true
|
||||
end
|
||||
end
|
||||
if PlayerInput.KeyDown(zKey) then
|
||||
if PlayerInput.KeyDown(zKey) or PlayerInput.Mouse5ButtonClicked() then
|
||||
if isToggle then
|
||||
if not zHeld then
|
||||
zoomOn = not zoomOn
|
||||
|
||||
Reference in New Issue
Block a user