42 lines
1.2 KiB
Lua
42 lines
1.2 KiB
Lua
-- 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,
|
|
}
|