Module:ItemData

From Dune: Awakening Community Wiki
Jump to navigation Jump to search

Documentation for this module may be created at Module:ItemData/doc

-- Module:ItemData
-- =============================================================================
-- Loads all category submodules and stitches them into one lookup table.
-- Contains zero actual item data — go to the submodules for that.
-- If you're here to add an item, you're in the wrong place. Shoo.
-- =============================================================================

local data = {}

-- Add new categories here AND add a matching renderer in Module:Item.
-- Both. Not just one. Both.
local submodules = {
    "Weapons",
    "Garments",
    "Miscellaneous",
    "Utility",
    "VehicleModules",
    "Augmentations",
}

for _, categoryName in ipairs(submodules) do

    local success, submodule = pcall(require, "Module:ItemData/" .. categoryName)

    if not success then
        mw.log("Module:ItemData failed to load submodule: " ..
               categoryName .. ". Error: " .. tostring(submodule))
    else
        for itemName, itemData in pairs(submodule) do

            if data[itemName] then
                mw.log("Module:ItemData WARNING: duplicate item name \"" ..
                       itemName .. "\" found in category \"" .. categoryName ..
                       "\". The earlier entry has been overwritten.")
            end

            itemData.category = categoryName
            data[itemName] = itemData
        end
    end
end

return data