Project Rebearth
Menu
Navigation
Main page
Recent changes
Random page
Help about MediaWiki
Special pages
Search
What links here
Related changes
Page information
Recent changes
Help
Not logged in
Talk
Contributions
Create account
Log in
Actions
Module
Discussion
Edit
View history
Module
Editing
DataFetch
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
-- Written with ❤️ mostly by fshark local NOT_APPLICABLE = "N/A" local title = mw.title.new("Module:DataFetch/data.json") local data = title and title.exists and mw.text.jsonDecode(title:getContent()) assert(data, "Data failed to load. Please check \"Module:DataFetch/data.json\" exists.") local abbreviations = { wood = "w", stone = "s", earth = "e", arctic = "a", empty = "e", potato = "p", grain = "g", maize = "m", sheep = "s", goat = "b", cow = "c", } local function getAbbreviation(biomeName) return abbreviations[string.lower(biomeName)] or biomeName end local function getValidArg(...) for i = 1, select("#", ...) do local arg = select(i, ...) if arg and arg ~= "" then return string.lower(arg) end end return "" end local function valueFind(t, ...) for i = 1, select("#", ...) do local k = select(i, ...) local v = t[k] if type(v) == "table" then return valueFind(v, ...) end if v ~= nil then return v end end return NOT_APPLICABLE end local function colorize(value, mode) local num = tonumber(value) if not num then return value end local isBuff, isNerf if mode == "mult" then isBuff = num > 1 isNerf = num < 1 elseif mode == "imult" then isBuff = num < 1 isNerf = num > 1 else isBuff = num > 0 isNerf = num < 0 end if isBuff then local display = (mode == nil or mode == "" or mode == "rate") and ("+" .. value) or value return '<span class="rb-buff">' .. display .. '</span>' elseif isNerf then return '<span class="rb-nerf">' .. value .. '</span>' else return value end end return { GetBuildingData = function(f) local args = f.args local section = getValidArg(args.section) local name = getValidArg(args.name) local source if section ~= "" then source = data[section] else source = data["buildings"] or data end if not source then return NOT_APPLICABLE end local buildingData = source[name] if not buildingData then return NOT_APPLICABLE end local targetData = getValidArg(args.data) local biome = getAbbreviation(getValidArg(args.biome)) local resource = getValidArg(args.resource, args.res) local crop = getAbbreviation(getValidArg(args.crop)) local result = valueFind(buildingData, targetData, resource, biome, crop) local color = getValidArg(args.color) if color == "yes" then local mode = getValidArg(args.mode) if mode == "" then mode = "rate" end result = colorize(result, mode) end return result end }
Summary:
Please note that all contributions to Project Rebearth may be edited, altered, or removed by other contributors. If you do not want your writing to be edited mercilessly, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource (see
Project Rebearth:Copyrights
for details).
Do not submit copyrighted work without permission!
Cancel
Editing help
(opens in new window)
Page included on this page:
Module:DataFetch/doc
(
edit
)