Module:Infobox Skill: Difference between revisions
From Eco - English Wiki
[unchecked revision] | [unchecked revision] |
No edit summary |
No edit summary |
||
Line 31: | Line 31: | ||
local skillTable = skillData.skills[skill] | local skillTable = skillData.skills[skill] | ||
if skillTable == nil then | if skillTable == nil then | ||
return item .. ' could not be found in Module:Skills.' | return item .. ' could not be found in Module:Skills.' | ||
end | end | ||
Line 40: | Line 38: | ||
-- name of the skill | -- name of the skill | ||
infobox = infobox .. '|- style=\"background-color: | infobox = infobox .. '|- style=\"color: white; background-color: #1165AF; text-align: center;\"\n| colspan=\"2\" | \'\'\'<big>' .. skill .. '</big>\'\'\'\n' | ||
-- Prof,Spec,Skill box | -- Prof,Spec,Skill box | ||
infobox = infobox .. '|- style=\"text-align: center; background-color: #af8d33;\"\n| colspan=\"2\"' | infobox = infobox .. '|- style=\"text-align: center; background-color: #af8d33;\"\n| colspan=\"2\"' | ||
if skillTable.root == true then | |||
infobox = infobox .. '| \'\'\'Profession\'\'\'\n' | |||
elseif skillTable.specialty == true then | |||
infobox = infobox .. '| \'\'\'Specialty\'\'\'\n' | |||
else | |||
infobox = infobox .. '| \'\'\'Skill\'\'\'\n' | |||
end | end | ||
-- Skill Icon Image | -- Skill Icon Image | ||
local image = 'NoImage.png|link=https:// | local image = 'NoImage.png|link=https://eco.gamepedia.com/index.php?title=Special:Upload&wpDestFile=' .. skillimagename .. '_Icon.png|[[Category:Pages_with_missing_skill_icon]]' | ||
if mw.title.makeTitle('File', skillimagename .. '_Icon.png') | if mw.title.makeTitle('File', skillimagename .. '_Icon.png').exists then | ||
image = skillimagename .. '_Icon.png' | image = skillimagename .. '_Icon.png' | ||
elseif mw.title.makeTitle('File', skillimagename .. '_Icon.jpg') | elseif mw.title.makeTitle('File', skillimagename .. '_Icon.jpg').exists then | ||
image = skillimagename .. '_Icon.jpg' | image = skillimagename .. '_Icon.jpg' | ||
end | end | ||
Line 65: | Line 61: | ||
-- 'Description' section header | -- 'Description' section header | ||
infobox = infobox .. '|- style=\"background-color: # | infobox = infobox .. '|- style=\"background-color: #4688C0; text-align: center;\"\n| colspan=\"2\" | \'\'\'Description\'\'\'\n' | ||
if skillTable.description == nil then | if skillTable.description == nil then | ||
Line 77: | Line 73: | ||
-- 'Related Skills' section header | -- 'Related Skills' section header | ||
infobox = infobox .. '|- style=\"background-color: # | infobox = infobox .. '|- style=\"background-color: #4688C0; text-align: center;\"\n| colspan=\"2\" | \'\'\'Related Skills\'\'\'\n' | ||
-- Professsion .rootSkill | -- Professsion .rootSkill | ||
if skillTable.rootSkill ~= nil then | if skillTable.rootSkill ~= nil then | ||
infobox = infobox .. '|-\n| Profession:\n| style=\"text-align: right;\" | ' .. skillTable.rootSkill .. '\n' | infobox = infobox .. '|-\n| Profession:\n| style=\"text-align: right; padding: 3px;\" | ' .. skillTable.rootSkill .. '\n' | ||
end | end | ||
-- Specialty .specialitySkill | -- Specialty .specialitySkill | ||
if skillTable.specialitySkill ~= nil then | if skillTable.specialitySkill ~= nil then | ||
infobox = infobox .. '|-\n| Specialty:\n| style=\"text-align: right;\" | ' .. skillTable.specialitySkill .. '\n' | infobox = infobox .. '|-\n| Specialty:\n| style=\"text-align: right; padding: 3px;\" | ' .. skillTable.specialitySkill .. '\n' | ||
end | end | ||
-- Skills Required .prerequisites | -- Skills Required .prerequisites | ||
if skillTable.prerequisites ~= nil then | if skillTable.prerequisites ~= nil then | ||
infobox = infobox .. '|-\n| Skills Required:\n| style=\"text-align: right;\" |[[ ' .. skillTable.prerequisites .. ']]\n' | infobox = infobox .. '|-\n| Skills Required:\n| style=\"text-align: right; padding: 3px;\" |[[ ' .. skillTable.prerequisites .. ']]\n' | ||
end | end | ||
-- Leads to childSkills | -- Leads to childSkills | ||
if skillTable.childSkills ~= nil then | if skillTable.childSkills ~= nil then | ||
infobox = infobox .. '|-\n| Leads to:\n| style=\"text-align: right;\" | ' .. skillTable.childSkills .. '\n' | infobox = infobox .. '|-\n| Leads to:\n| style=\"text-align: right; padding: 3px;\" | ' .. skillTable.childSkills .. '\n' | ||
end | end | ||
-- 'Skill Information' section header | -- 'Skill Information' section header | ||
infobox = infobox .. '|- style=\"background-color: # | infobox = infobox .. '|- style=\"background-color: #4688C0; text-align: center;\"\n| colspan=\"2\" | \'\'\'Skill Information\'\'\'\n' | ||
-- maxlevel .maxLevel | -- maxlevel .maxLevel | ||
if skillTable.maxLevel ~= nil then | if skillTable.maxLevel ~= nil then | ||
infobox = infobox .. '|-\n| Max Level:\n| style=\"text-align: right;\" | Level ' .. skillTable.maxLevel .. '\n' | infobox = infobox .. '|-\n| Max Level:\n| style=\"text-align: right; padding: 3px;\" | Level ' .. skillTable.maxLevel .. '\n' | ||
end | end | ||
-- items given .itemsGiven | -- items given .itemsGiven | ||
if skillTable.itemsGiven ~= nil then | if skillTable.itemsGiven ~= nil then | ||
infobox = infobox .. '|-\n| Items Given:\n| style=\"text-align: right;\" | ' .. skillTable.itemsGiven .. '\n' | infobox = infobox .. '|-\n| Items Given:\n| style=\"text-align: right; padding: 3px;\" | ' .. skillTable.itemsGiven .. '\n' | ||
end | end | ||
-- 'IDs' section header | -- 'IDs' section header | ||
infobox = infobox .. '|- style=\"background-color: # | infobox = infobox .. '|- style=\"background-color: #4688C0; text-align: center;\"\n| colspan=\"2\" | \'\'\'IDs\'\'\'\n' | ||
-- skill id (type) | -- skill id (type) | ||
infobox = infobox .. '|- valign=\"center\"\n| Item ID:\n| style=\"text-align: right;\" | ' .. skillTable.skillID .. '\n' | infobox = infobox .. '|- valign=\"center\"\n| Item ID:\n| style=\"text-align: right; padding: 3px;\" | ' .. skillTable.skillID .. '\n' | ||
-- id number (type id) | -- id number (type id) | ||
infobox = infobox .. '|- valign=\"center\"\n| ID Number:\n| style=\"text-align: right;\" | ' .. skillTable.skillIDNum .. '\n' | infobox = infobox .. '|- valign=\"center\"\n| ID Number:\n| style=\"text-align: right; padding: 3px;\" | ' .. skillTable.skillIDNum .. '\n' | ||
Revision as of 06:59, 15 August 2020
This module provides the back end functionality of the Template:Infobox_Skill.
If the template is passed an Infobox will be made using details from the following Modules:
Credit
Original Infobox (now known as Infobox_Item) created by Pradoxzon was then edited by Nesphit and TreeNuts0. Fyre (FishAus) and Scotty (ZeelNightwolf) further edited the Infobox_Item. They then duplicated and used as a base for Infobox_Skill, Infobox_Plant, and Infobox_Animal.
local p = {}
-- Grabs args from the parent frame
-- Trims and parses the args into a table, then returns the table
function norm()
local origArgs = mw.getCurrentFrame():getParent().args
local args = {}
for k, v in pairs( origArgs ) do
v = mw.text.trim( tostring( v ) )
if v ~= '' then
args[k] = v
end
end
return args
end
-- Build an Infobox_Skill
function skillBox( args, skillData)
-- check that all necessary arguments are passed correctly
if args.name == nil or args.name == '' then
return '\'name\' must be specified.'
end
local skill = args.name
local skillimagename = string.gsub(skill, ' ', '')
local skillTable = skillData.skills[skill]
if skillTable == nil then
return item .. ' could not be found in Module:Skills.'
end
-- string used to build the infobox
local infobox = '{| class=\"infobox\"\n'
-- name of the skill
infobox = infobox .. '|- style=\"color: white; background-color: #1165AF; text-align: center;\"\n| colspan=\"2\" | \'\'\'<big>' .. skill .. '</big>\'\'\'\n'
-- Prof,Spec,Skill box
infobox = infobox .. '|- style=\"text-align: center; background-color: #af8d33;\"\n| colspan=\"2\"'
if skillTable.root == true then
infobox = infobox .. '| \'\'\'Profession\'\'\'\n'
elseif skillTable.specialty == true then
infobox = infobox .. '| \'\'\'Specialty\'\'\'\n'
else
infobox = infobox .. '| \'\'\'Skill\'\'\'\n'
end
-- Skill Icon Image
local image = 'NoImage.png|link=https://eco.gamepedia.com/index.php?title=Special:Upload&wpDestFile=' .. skillimagename .. '_Icon.png|[[Category:Pages_with_missing_skill_icon]]'
if mw.title.makeTitle('File', skillimagename .. '_Icon.png').exists then
image = skillimagename .. '_Icon.png'
elseif mw.title.makeTitle('File', skillimagename .. '_Icon.jpg').exists then
image = skillimagename .. '_Icon.jpg'
end
infobox = infobox .. '|-\n| colspan=\"2\" style=\"padding: 10px;\" | [[File:' .. image .. '|center|frameless|95px]]\n'
-- 'Description' section header
infobox = infobox .. '|- style=\"background-color: #4688C0; text-align: center;\"\n| colspan=\"2\" | \'\'\'Description\'\'\'\n'
if skillTable.description == nil then
infobox = infobox .. '|- style=\"text-align: center;\"\n| colspan=\"2\" | \'\'\'None\'\'\'\n'
elseif skillTable.description == '' then
infobox = infobox .. '|- style=\"text-align: center;\"\n| colspan=\"2\" | \'\'\'None\'\'\'\n'
else
infobox = infobox .. '|- style=\"text-align: center;\"\n| colspan=\"2\" | ' .. skillTable.description .. '\n'
end
-- 'Related Skills' section header
infobox = infobox .. '|- style=\"background-color: #4688C0; text-align: center;\"\n| colspan=\"2\" | \'\'\'Related Skills\'\'\'\n'
-- Professsion .rootSkill
if skillTable.rootSkill ~= nil then
infobox = infobox .. '|-\n| Profession:\n| style=\"text-align: right; padding: 3px;\" | ' .. skillTable.rootSkill .. '\n'
end
-- Specialty .specialitySkill
if skillTable.specialitySkill ~= nil then
infobox = infobox .. '|-\n| Specialty:\n| style=\"text-align: right; padding: 3px;\" | ' .. skillTable.specialitySkill .. '\n'
end
-- Skills Required .prerequisites
if skillTable.prerequisites ~= nil then
infobox = infobox .. '|-\n| Skills Required:\n| style=\"text-align: right; padding: 3px;\" |[[ ' .. skillTable.prerequisites .. ']]\n'
end
-- Leads to childSkills
if skillTable.childSkills ~= nil then
infobox = infobox .. '|-\n| Leads to:\n| style=\"text-align: right; padding: 3px;\" | ' .. skillTable.childSkills .. '\n'
end
-- 'Skill Information' section header
infobox = infobox .. '|- style=\"background-color: #4688C0; text-align: center;\"\n| colspan=\"2\" | \'\'\'Skill Information\'\'\'\n'
-- maxlevel .maxLevel
if skillTable.maxLevel ~= nil then
infobox = infobox .. '|-\n| Max Level:\n| style=\"text-align: right; padding: 3px;\" | Level ' .. skillTable.maxLevel .. '\n'
end
-- items given .itemsGiven
if skillTable.itemsGiven ~= nil then
infobox = infobox .. '|-\n| Items Given:\n| style=\"text-align: right; padding: 3px;\" | ' .. skillTable.itemsGiven .. '\n'
end
-- 'IDs' section header
infobox = infobox .. '|- style=\"background-color: #4688C0; text-align: center;\"\n| colspan=\"2\" | \'\'\'IDs\'\'\'\n'
-- skill id (type)
infobox = infobox .. '|- valign=\"center\"\n| Item ID:\n| style=\"text-align: right; padding: 3px;\" | ' .. skillTable.skillID .. '\n'
-- id number (type id)
infobox = infobox .. '|- valign=\"center\"\n| ID Number:\n| style=\"text-align: right; padding: 3px;\" | ' .. skillTable.skillIDNum .. '\n'
infobox = infobox .. '|}'
return infobox
end
-- Main entry point for the Module
function p.SkillMain()
-- get args from the Template
local args = norm()
-- get skill data
local skillData = require( "Module:Skills" )
return skillBox( args, skillData)
end
return p