Module:TestModule

From MENACE Official Wiki
Revision as of 03:25, 4 May 2026 by Khitrir (talk | contribs)

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

---
--- Extracts attributes of Weapons from Module:Data/Weapons.json
---

---@module TestModule
local TestModule = {}

--region Dependencies
local JsonUtils = require("Module:JsonUtils")
--endregion

--region Private constants
local DATA_FILE = "Module:Data/Weapons.json"
--endregion

--region Private member variables
local TestModule
--endregion

--region Private methods
local function loadData()
    if not TestModule then
        TestModule = JsonUtils.convertJSONToLuaTable(DATA_FILE)
    end
end


local function getTitleFromArgs(frame)
    if frame.args then
       return frame.args[3] or frame.args.title
    else
       return frame
    end
end


local function getPropertyByTitle(frame, property)
    loadData()

    local weaponTitle = getTitleFromArgs(frame)

    for _, weapon in ipairs(TestModule) do
        if string.lower(weapon.Title) == string.lower(weaponTitle) then
           return weapon[property]
        end
    end
end
--endregion

function TestModule.getIconByTitle(frame)
    return getPropertyByTitle(frame, "Icon")
end

return TestModule