More refactoring

This commit is contained in:
2025-03-30 21:36:39 +02:00
parent c5ea3bc2aa
commit 273cbcff82

View File

@@ -10,6 +10,9 @@ local dump = require("Cyka.dump")
-- So we will just hardcode tools and their whitelisted magazines
---@type table<string, table<string, boolean>>
local LOAD_MAP = {
plasmacutter = {
oxygentank = true
}
}
---@param inventory Barotrauma.ItemInventory
@@ -67,12 +70,24 @@ local function getPermissibleItemsPerSlot(movableBySlot)
for inventorySlot, items in pairs(movableBySlot) do
for _, ititem in ipairs(items) do
local thisone = tostring(ititem.Prefab.Identifier.Value)
permissibleItemsPerSlot[inventorySlot] = permissibleItemsPerSlot[inventorySlot] or {}
permissibleItemsPerSlot[inventorySlot][thisone] = true
end
end
return permissibleItemsPerSlot
end
---@param movableBySlot table<InventorySlot, Barotrauma.Item[]>
local function printPermissibleItems(movableBySlot)
local permissibleItemsPerSlot = getPermissibleItemsPerSlot(movableBySlot)
MyModGlobal.debugPrint("Can load:")
for _, loadableItems in pairs(permissibleItemsPerSlot) do
for loadableItem, _ in pairs(loadableItems) do
MyModGlobal.debugPrint(" " .. loadableItem)
end
end
end
---@param slot InventorySlot
---@param preferMinCondition boolean
@@ -112,10 +127,8 @@ local function tryReloadSlot(slot, preferMinCondition)
local permissibleItems = LOAD_MAP[tostring(item.Prefab.Identifier.Value)]
if not permissibleItems then
MyModGlobal.debugPrint("No permissible items for item")
local permissibleItemsPerSlot = getPermissibleItemsPerSlot(movableBySlot)
MyModGlobal.debugPrint("Can load per slot:")
dump(permissibleItemsPerSlot)
MyModGlobal.debugPrint("No permissible items for " .. tostring(item.Prefab.Identifier.Value))
printPermissibleItems(movableBySlot)
return
end