Module:OCIData: Difference between revisions
From MENACE Official Wiki
No edit summary |
No edit summary |
||
| Line 1: | Line 1: | ||
--- | --- | ||
--- Extracts attributes of | --- Extracts attributes of OCI from Module:Data/OCI-vX.X.X.json | ||
--- | --- | ||
---@module | ---@module OCIData | ||
local | local OCIData = {} | ||
--region Dependencies | --region Dependencies | ||
| Line 15: | Line 15: | ||
--region Private member variables | --region Private member variables | ||
local | local OCIData | ||
--endregion | --endregion | ||
--region Private methods | --region Private methods | ||
local function loadData() | local function loadData() | ||
if not | if not OCIData then | ||
OCIData = JsonUtils.convertJSONToLuaTable(DATA_FILE) | |||
end | end | ||
end | end | ||
| Line 38: | Line 38: | ||
loadData() | loadData() | ||
local | local OCITitle = getTitleFromArgs(frame) | ||
for _, | for _, OCI in ipairs(OCIData) do | ||
if string.lower( | if string.lower(OCI.Title) == string.lower(OCITitle) then | ||
return | return OCI[property] | ||
end | end | ||
end | end | ||
| Line 48: | Line 48: | ||
--endregion | --endregion | ||
function | function OCIData.getShortNameByTitle(frame) | ||
return getPropertyByTitle(frame, "Title") | return getPropertyByTitle(frame, "Title") | ||
end | end | ||
function | function OCIData.getIconByTitle(frame) | ||
return getPropertyByTitle(frame, "Icon") | return getPropertyByTitle(frame, "Icon") | ||
end | end | ||
function | function OCIData.getCategoryByTitle(frame) | ||
return getPropertyByTitle(frame, "Category") | return getPropertyByTitle(frame, "Category") | ||
end | end | ||
function | function OCIData.getFactionyByTitle(frame) | ||
return getPropertyByTitle(frame, "Faction") | return getPropertyByTitle(frame, "Faction") | ||
end | end | ||
function | function OCIData.getDescriptionByTitle(frame) | ||
return getPropertyByTitle(frame, "Description") | return getPropertyByTitle(frame, "Description") | ||
end | end | ||
function | function OCIData.getShortDescriptionByTitle(frame) | ||
return getPropertyByTitle(frame, "ShortDescription") | return getPropertyByTitle(frame, "ShortDescription") | ||
end | end | ||
function | function OCIData.getPointCostByTitle(frame) | ||
return getPropertyByTitle(frame, "PointCost") | return getPropertyByTitle(frame, "PointCost") | ||
end | end | ||
function | function OCIData.getStackableByTitle(frame) | ||
return getPropertyByTitle(frame, "Stackable") | return getPropertyByTitle(frame, "Stackable") | ||
end | end | ||
function | function OCIData.getUpgradeToByTitle(frame) | ||
return getPropertyByTitle(frame, "UpgradeTo") | return getPropertyByTitle(frame, "UpgradeTo") | ||
end | end | ||
return | return OCIData | ||
Revision as of 13:50, 20 July 2026
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


