Module:PerksData: Difference between revisions
From MENACE Official Wiki
mNo edit summary |
mNo edit summary |
||
| Line 11: | Line 11: | ||
--region Private constants | --region Private constants | ||
local DATA_FILE = "Module:Data/Perks.json" | local DATA_FILE = "Module:Data/Perks-v0.6.7.json" | ||
--endregion | --endregion | ||
| Line 41: | Line 41: | ||
for _, perk in ipairs(perksData) do | for _, perk in ipairs(perksData) do | ||
if perk.Title == perkTitle then | if string.lower(perk.Title) == string.lower(perkTitle) then | ||
return perk[property] | return perk[property] | ||
end | end | ||
Revision as of 19:02, 24 February 2026
Documentation for this module may be created at Module:PerksData/doc
---
--- Extracts attributes of perks from Module:Data/Perks.json
---
---@module PerksData
local PerksData = {}
--region Dependencies
local JsonUtils = require("Module:JsonUtils")
--endregion
--region Private constants
local DATA_FILE = "Module:Data/Perks-v0.6.7.json"
--endregion
--region Private member variables
local perksData
--endregion
--region Private methods
local function loadData()
if not perksData then
perksData = JsonUtils.convertJSONToLuaTable(DATA_FILE)
end
end
local function getTitleFromArgs(frame)
if frame.args then
return frame.args[1] or frame.args.title
else
return frame
end
end
local function getPropertyByTitle(frame, property)
loadData()
local perkTitle = getTitleFromArgs(frame)
for _, perk in ipairs(perksData) do
if string.lower(perk.Title) == string.lower(perkTitle) then
return perk[property]
end
end
end
--endregion
function PerksData.getIconByTitle(frame)
return getPropertyByTitle(frame, "Icon")
end
function PerksData.getShortDescriptionByTitle(frame)
return getPropertyByTitle(frame, "ShortDescription")
end
function PerksData.getLongDescriptionByTitle(frame)
return getPropertyByTitle(frame, "LongDescription")
end
function PerksData.getLoreByTitle(frame)
return getPropertyByTitle(frame, "Lore")
end
return PerksData


