Module:OCIData
From MENACE Official Wiki
Documentation for this module may be created at Module:OCIData/doc
---
--- Extracts attributes of OCI from Module:Data/OCI-vX.X.X.json
---
---@module OCIData
local OCIData = {}
--region Dependencies
local JsonUtils = require("Module:JsonUtils")
--endregion
--region Private constants
local DATA_FILE = "Module:Data/OCI-v0.7.9.json"
--endregion
--region Private member variables
local OCIData
--endregion
--region Private methods
local function loadData()
if not OCIData then
OCIData = 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 OCITitle = getTitleFromArgs(frame)
for _, OCI in ipairs(OCIData) do
if string.lower(OCI.Title) == string.lower(OCITitle) then
return OCI[property]
end
end
end
--endregion
--function OCIData.getShortNameByTitle(frame)
-- return getPropertyByTitle(frame, "Title")
--end
function OCIData.getIconByTitle(frame)
return getPropertyByTitle(frame, "Icon")
end
function OCIData.getCategoryByTitle(frame)
return getPropertyByTitle(frame, "Category")
end
function OCIData.getFactionyByTitle(frame)
return getPropertyByTitle(frame, "Faction")
end
--function OCIData.getDescriptionByTitle(frame)
-- return getPropertyByTitle(frame, "Description")
--end
--function OCIData.getShortDescriptionByTitle(frame)
-- return getPropertyByTitle(frame, "ShortDescription")
--end
function OCIData.getPointCostByTitle(frame)
return getPropertyByTitle(frame, "PointCost")
end
function OCIData.getStackableByTitle(frame)
return getPropertyByTitle(frame, "Stackable")
end
function OCIData.getUpgradeToByTitle(frame)
return getPropertyByTitle(frame, "UpgradeTo")
end
return OCIData


