More actions
(testing) |
(some reformatting) |
||
Line 10: | Line 10: | ||
function p.getData(frame) | function p.getData(frame) | ||
local args = getArgs(frame) | local args = getArgs(frame) | ||
local dataJson = mw.loadJsonData("Data:"..args[1]) | |||
local dataValue = "" | |||
for i = 2, #args do | |||
dataJson = dataJson[args[i]] | |||
end | |||
local dataValue = | local dataValue = dataJson | ||
--return dataParam | |||
--local dataValue = p._getData(args) | --local dataValue = p._getData(args) | ||
return | return dataValue | ||
end | end | ||
Line 29: | Line 38: | ||
return dataParam | return dataParam | ||
end | end | ||
return p | return p |
Revision as of 04:39, 10 October 2024
The Data module exists to translate information from Data: pages to templates/articles.
Arguments
<1>
(Entity): This argument is taken as the title of the intended Data: page to search through.
E.g.: "Kerbol", "LW-Sw "SWERV""
<2+>
(Parameter chain): Arguments 2 and beyond define the parameter chain to search on the data page.
E.g.: "mass", "max_temp", "modules|engine|isp_vac", "modules|generator|outputs|units"
Functions
getData
: The primary function of the module. Accepts the full argument set to determine the parameter to return from the subject.
getFuelLabels
: Used for engine infobox construction. Accepts a part name (only works for engines) for <1>
and optionally "alt" for <2>
. Returns a line-break separated list of the propellant names used by an engine mode. Should probably be moved to a different Module.
getFuelValues
: Used for engine infobox construction. Accepts a part name (only works for engines) for <1>
and optionally "alt" for <2>
. Returns a line-break separated list of the propellant use rates of an engine mode. Should probably be moved to a different Module.
Examples
A list of example JSON sets can be found at Data:Example.
{{#invoke:Data|getData|LV-SW "SWERV"|mass}}
- Returns the mass of the "SWERV" in tons, table
.
{{#invoke:Data|getData|LV-3000 "Tuba"|modules|engine|thrust|vac}}
- Returns the vacuum thrust of the "Tuba" in kilonewtons, 510.0
.
local p = {}
local getArgs = require('Module:Arguments').getArgs
-- args:
-- subject: The subject entity to get data from.
--- E.g., "Kerbol", "LW-Sw "SWERV""
-- param: The parameter / parameter chain to access from the data page.
--- E.g., "mass", "max_temp", "modules|engine|isp_vac", "modules|generator|outputs|units"
function p.getData(frame)
local args = getArgs(frame)
local dataJson = mw.loadJsonData("Data:"..args[1])
local dataValue = ""
for i = 2, #args do
dataJson = dataJson[args[i]]
end
local dataValue = dataJson
--return dataParam
--local dataValue = p._getData(args)
return dataValue
end
function p._getData(args)
local dataJson = mw.loadJsonData("Data:"..args[1])
-- Run through each additional paramter which should point to a specific element in a part data JSON
for i = 2, #args do
dataJson = dataJson[args[i]]
end
local dataParam = dataJson
return dataParam
end
return p