Module:Infobox Skill: Difference between revisions

From Eco - English Wiki
[unchecked revision][unchecked revision]
No edit summary
No edit summary
Line 1: Line 1:
local p = {}
local p = {}
local Utils = require('Module:Utils')
local Utils = require('Module:Utils')
 
local IconUtils = require('Module:IconUtils')
-- 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


-- Main entry point for the Module
-- Main entry point for the Module
function p.SkillMain()
function p.main(skillname)
     -- get args from the Template
     -- get args from the Template
    local args = norm()
    local args = Utils.normaliseArgs(skillname)
      
      
-- create values outside of if statements to ensure they are available to whole function
-- create values outside of if statements to ensure they are available to whole function
Line 28: Line 13:
        
        
-- check to see if skills was actually passed in
-- check to see if skills was actually passed in
if skills == '' then
if skills == '' then return 'skill must be specified.' end
return 'skill must be specified.'
    end
    
    
local skillData = {}
local skillData = {}
Line 38: Line 21:
     skillTable = skillData.skills[skills]
     skillTable = skillData.skills[skills]
   
   
    -- checks if skills can be found in plant data or tree data based on what was requested
    if skillTable == {} then
            return skills .. ' could not be found in Module:Skills.'
    end


    -- From now on using skillsTable."KeyValue" will return the value from that key. for most things a check for skills type is not necessary


-- Build an Infobox_Plant
 
-- string used to build the infobox
-- string used to build the infobox
     local infobox = '{| class=\"infobox\"\n'
     local infobox = '{| class=\"infobox\"\n'

Revision as of 07:32, 11 December 2024

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 = {}
local Utils = require('Module:Utils')
local IconUtils = require('Module:IconUtils')

-- Main entry point for the Module
function p.main(skillname)
     -- get args from the Template
     local args = Utils.normaliseArgs(skillname)
    
	-- create values outside of if statements to ensure they are available to whole function
	local skills = ''
    skills = args.skill
      
	-- check to see if skills was actually passed in
	if skills == '' then return 'skill must be specified.' end
   
	local skillData = {}
	local skillTable = {}
   
    skillData = require( "Module:SkillData" )
    skillTable = skillData.skills[skills]
 



	-- string used to build the infobox
    local infobox = '{| class=\"infobox\"\n'
   
    -- name of the skill/talent
   infobox = infobox .. '|- style=\"color: white; background-color: #1165AF; text-align: center;\"\n| colspan=\"2\" | \'\'\'<big>' .. skills .. '</big>\'\'\'\n'
 
       infobox = infobox .. '|- style=\"text-align: center;color: white; background-color: goldenrod;\"\n| colspan=\"2\"'
    if skillTable.Root == 'True' then
        infobox = infobox .. '| \'\'\'Profession\'\'\'[[Category:Profession]]\n'
    elseif skillTable.Root == 'False' then
        infobox = infobox .. '| \'\'\'Specialty\'\'\'[[Category:Specialty]]\n'
	else
        infobox = infobox .. '|\n'	
    end
   
	-- Skill
	local SkillIcon = Utils.checkImage(skillTable.SkillID) 
    infobox = infobox .. '|-\n| colspan=\"2\" style=\"padding: 10px;\" | [[File:' .. SkillIcon .. '|center|link=]] \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

	--SKILL

	  -- 'Skill Information' section header
		infobox = infobox .. '|- style=\"background-color: #4688C0; text-align: center;\"\n| colspan=\"2\" | \'\'\'Skill Information\'\'\'\n'
		
		-- Professsion 
		if skillTable.Root == 'False' then
			infobox = infobox .. '|-\n| Profession:\n| style=\"text-align: right; padding: 3px;\" | [[' .. skillTable.RootSkill .. ']]\n'
		end

		-- maxlevel .maxLevel
		if skillTable.MaxLevel ~= nil then
			infobox = infobox .. '|-\n| Max Level:\n| style=\"text-align: right; padding: 3px;\" | Level ' .. skillTable.MaxLevel .. '\n'
		end	
			
		-- skill id (type)
		infobox = infobox .. '|- valign=\"center\"\n| Skill ID:\n| style=\"text-align: right; padding: 3px;\" | ' .. skillTable.SkillID.. '\n'
	
    infobox = infobox .. '|}'
    return infobox
end

return p