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
            if item ~= nil then
return item .. ' could not be found in Module:Skills.'
return item .. ' could not be found in Module:Skills.'
            end
end     
end     
Line 40: Line 38:
      
      
     -- name of the skill
     -- name of the skill
     infobox = infobox .. '|- style=\"background-color: darkred; text-align: center;\"\n| colspan=\"2\" | \'\'\'<big>' .. skill .. '</big>\'\'\'\n'
     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 ~= nil then
     if skillTable.root == true then
        if skillTable.root == true then
        infobox = infobox .. '| \'\'\'Profession\'\'\'\n'
            infobox = infobox .. '| \'\'\'Profession\'\'\'\n'
    elseif skillTable.specialty == true then
        elseif skillTable.specialty == true then
        infobox = infobox .. '| \'\'\'Specialty\'\'\'\n'
            infobox = infobox .. '| \'\'\'Specialty\'\'\'\n'
    else  
        else  
        infobox = infobox .. '| \'\'\'Skill\'\'\'\n'       
            infobox = infobox .. '| \'\'\'Skill\'\'\'\n'       
        end
     end
     end
         -- Skill Icon Image
         -- Skill Icon Image
     local image = 'NoImage.png|link=https://wiki.play.eco/index.php?title=Special:Upload&wpDestFile=' .. skillimagename .. '_Icon.png|[[Category:Pages_with_missing_skill_icon]]'
     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').file.exists then
     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').file.exists then
     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: #4B9130; text-align: center;\"\n| colspan=\"2\" | \'\'\'Description\'\'\'\n'
     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: #4B9130; text-align: center;\"\n| colspan=\"2\" | \'\'\'Related Skills\'\'\'\n'
     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: #4B9130; text-align: center;\"\n| colspan=\"2\" | \'\'\'Skill Information\'\'\'\n'
     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: #4B9130; text-align: center;\"\n| colspan=\"2\" | \'\'\'IDs\'\'\'\n'
     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 07:59, 15 August 2020

Documentation

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