Add some debug logs and shit
This commit is contained in:
@@ -102,30 +102,59 @@ end
|
|||||||
---@param force boolean
|
---@param force boolean
|
||||||
---@return string
|
---@return string
|
||||||
local function tryMoveItem(item, itemTree, force)
|
local function tryMoveItem(item, itemTree, force)
|
||||||
|
-- MyModGlobal.debugPrint(string.format("Attempting to move item: %s", item.Prefab.Identifier.Value))
|
||||||
force = force or false
|
force = force or false
|
||||||
local location = itemTree[item.Prefab.Identifier.Value]
|
local location = itemTree[item.Prefab.Identifier.Value]
|
||||||
if not location and not force then return nil, "No locations for item, not stacking (not forced)" end
|
if not location and not force then
|
||||||
|
-- MyModGlobal.debugPrint("No locations for item, not stacking (not forced)")
|
||||||
|
return nil, "No locations for item, not stacking (not forced)"
|
||||||
|
end
|
||||||
|
-- MyModGlobal.debugPrint(string.format("Attempting to move item: %s", item.Prefab.Identifier.Value))
|
||||||
|
-- MyModGlobal.DumpTable(location)
|
||||||
|
|
||||||
|
if item.Condition <= item.MaxCondition then
|
||||||
|
-- MyModGlobal.debugPrint(string.format("Item %s has condition %.2f(<=%.2f), not stacking", item.Prefab.Identifier.Value, item.Condition, item.MaxCondition))
|
||||||
|
-- Don't even TRY to stack them
|
||||||
|
location = nil
|
||||||
|
end
|
||||||
|
|
||||||
local moved = false
|
local moved = false
|
||||||
|
if location then
|
||||||
-- First try to move to existing stacks
|
-- First try to move to existing stacks
|
||||||
for _, itemLocation in ipairs(location) do
|
for _, itemLocation in ipairs(location) do
|
||||||
if itemLocation.maxFits > 0 then
|
if itemLocation.maxFits > 0 then
|
||||||
moved = moved or itemLocation.inventory.TryPutItem(item, itemLocation.slotIndex, false, true, nil)
|
moved = moved or itemLocation.inventory.TryPutItem(item, itemLocation.slotIndex, false, true, nil)
|
||||||
itemLocation.maxFits = itemLocation.inventory.HowManyCanBePut(item.Prefab, itemLocation.slotIndex)
|
itemLocation.maxFits = itemLocation.inventory.HowManyCanBePut(item.Prefab, itemLocation.slotIndex)
|
||||||
|
-- if moved then
|
||||||
|
-- MyModGlobal.debugPrint(string.format("Moved item to existing stack at slot index: %d", itemLocation .slotIndex))
|
||||||
|
-- else
|
||||||
|
-- MyModGlobal.debugPrint(string.format("Failed to move item to existing stack at slot index: %d", itemLocation .slotIndex))
|
||||||
|
-- end
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
-- If we can not find an existing stack
|
-- If we can not find an existing stack
|
||||||
-- Then move to any of the empty slots
|
-- Then move to any of the empty slots
|
||||||
if not moved then
|
if not moved then
|
||||||
|
-- MyModGlobal.debugPrint("No existing stacks found, trying empty slots...")
|
||||||
for _, itemLocation in ipairs(itemTree['empty']) do
|
for _, itemLocation in ipairs(itemTree['empty']) do
|
||||||
moved = moved or itemLocation.inventory.TryPutItem(item, itemLocation.slotIndex, false, true, nil)
|
moved = moved or itemLocation.inventory.TryPutItem(item, itemLocation.slotIndex, true, true, nil)
|
||||||
itemLocation.maxFits = itemLocation.inventory.HowManyCanBePut(item.Prefab, itemLocation.slotIndex)
|
itemLocation.maxFits = itemLocation.inventory.HowManyCanBePut(item.Prefab, itemLocation.slotIndex)
|
||||||
|
-- if moved then
|
||||||
|
-- MyModGlobal.debugPrint(string.format("Moved item to empty slot at index: %d", itemLocation.slotIndex))
|
||||||
|
-- else
|
||||||
|
-- MyModGlobal.debugPrint(string.format("Failed to move item to empty slot at index: %d", itemLocation.slotIndex))
|
||||||
|
-- end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
-- If we still can not move the item give up
|
-- If we still can not move the item give up
|
||||||
if not moved then return "Failed to find valid location for item" end
|
if not moved then
|
||||||
|
-- MyModGlobal.debugPrint("Failed to find valid location for item")
|
||||||
|
return "Failed to find valid location for item"
|
||||||
|
end
|
||||||
|
-- MyModGlobal.debugPrint("Item moved successfully")
|
||||||
return nil
|
return nil
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user