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,
 | 
						|
}
 |