Module:Illustration
From Terra Invicta Official Wiki
Documentation for this module may be created at Module:Illustration/doc
-- This is meant to be a way to reference and use the illustrations in the game easily on the wiki and inside other templates.
-- No idea what I'm doing really, and need a break, so just leaving whatever this is here for now.
local p = {}
-- Almost 1500 lines, probably want to split into categories for more specific functions to use efficiently?
local illusData = mw.loadData('Module:Illustration/data')
-- Syntax borrowed from modules this one is emulating.
-- Commenting out for use later ##local ssub = string.sub
local tinsert = table.insert
local tconcat = table.concat
local slower = string.lower
-- Currently just trying to get this to output all entries for a key into a readable string, to test the basics work.
function p.Illusnametest (frame)
local illusdataName = frame.args[1]
-- Check input makes sense
if not illusdataName then
return 'No illustration data name specified.'
end
if not illusData[illusdataName] then
illusdataName = slower(illusdataName)
end
if not illusData[illusdataName] then
illusdataName = mw.text.trim(illusdataName)
end
if not illusData[illusdataName] then
return 'Data name not recognized.'
end
local returnString = 'Illustrations: '
if illusData[illusdataName] then
local Illustrations = {}
for j, file in ipairs(illusData[illusdataName]) do
if file ~= '' then
tinsert(Illustrations, file)
end
end
returnString = returnString .. tconcat( Illustrations, ' , ')
returnString = returnString .. '\nDid this work?'
end
return returnString
end
-- This will simply output the filename based on the dataName.
-- Simplest implementation, intended for use inside other modules/templates.
-- Todo: isolate multiple entry outputs for per-image manipulation elsewhere.
function p.Illus (frame)
local illusdataName = frame.args[1]
-- Check input makes sense
if not illusdataName then
return 'No illustration data name specified.'
end
if not illusData[illusdataName] then
illusdataName = slower(illusdataName)
end
if not illusData[illusdataName] then
illusdataName = mw.text.trim(illusdataName)
end
if not illusData[illusdataName] then
return 'Data name not recognized.'
end
local returnString = ' '
if illusData[illusdataName] then
local Illustrations = {}
for j, file in ipairs(illusData[illusdataName]) do
if file ~= '' then
tinsert(Illustrations, file)
end
end
returnString = returnString .. tconcat( Illustrations, ' ')
end
return returnString
end
-- This will return just the illustration file name(s) as strings with a new line between multiple entries
-- Mainly intended for quickly adding images to galleries (until better functionality added, anyway)
function p.IllusList (frame)
local illusdataName = frame.args[1]
if not illusdataName then
return 'No illustration data name specified.'
end
if not illusData[illusdataName] then
illusdataName = slower(illusdataName)
end
if not illusData[illusdataName] then
illusdataName = mw.text.trim(illusdataName)
end
if not illusData[illusdataName] then
return 'Data name not recognized.'
end
local returnString
if illusData[illusdataName] then
local Illustrations = {}
for j, file in ipairs(illusData[illusdataName]) do
if file ~= '' then
tinsert(Illustrations, file)
end
end
returnString = returnString .. tconcat( Illustrations, '/n')
end
return returnString
end
return p


