La documentación para este módulo puede ser creada en Módulo:Icono/doc

--WARFRAME Wiki Icon Module
--http://warframe.wikia.com/
--Written by User:ChickenBar

local p = {}

local IconData = mw.loadData( 'Module:Icono/data' )


function p.Item(frame)
	local iconname = frame.args[1]
	local textexist = frame.args[2]
	local imagesize = frame.args.imgsize
 
	return p._Item(iconname, textexist, imagesize)
end

--Extracting out to this function allows other Modules to call item text
--Since any templates output by another module won't be parsed by the wiki
function p._Item(iconname, textexist, imagesize)
	local iconname = string.gsub(" "..string.lower( iconname ), "%W%l", string.upper):sub(2)
	local link = ''
	if IconData["Items"][iconname] == nil then
		return "<span style=\"color:red;\">Invalid</span>[[Categoría:Icon Module error]]"  
	else
		link = IconData["Items"][iconname]["link"]
		title = IconData["Items"][iconname]["title"]
		iconname = IconData["Items"][iconname]["icon"]
		if (imagesize == nil or imagesize == '') then
			imagesize = 'x26'
		end
		
		local imgText = '[[File:'..iconname..'|'..imagesize..'px'
		if(link ~= nil) then
			imgText = imgText..'|link='..link
		elseif(title~=nil) then
			imgText = imgText..'|'..title
		end
		imgText = imgText..']]'
		
		if (textexist == 'texto' or textexist == 'Texto') then
			if (link ~= nil) then
				return imgText..' [['..link..']]'
			elseif (title ~= nil) then
				return imgText..' '..title
			else
				return imgText
			end
		end
		return imgText
	end
end

function p.Pol(frame)
    local iconname = frame.args[1]
    local imagesize = frame.args.imgsize
    return p._Pol(iconname, imagesize)
end

function p._Pol(iconname, imagesize)
    if IconData["Polarities"][iconname] == nil then          
        return "<span style=\"color:red;\">Invalid</span>"  
    else
        iconname = IconData["Polarities"][iconname]
        if (imagesize == nil or imagesize == '') then
            imagesize = 'x20'                                 
        end
	    return '[[File:'..iconname..'|'..imagesize..'px|link=Polaridad]]'
    end
end

function p.Dis( frame )
    local iconname = frame.args[1]
    local textexist = frame.args[2]
    local color = frame.args[3]
    local imagesize = frame.args.imgsize
    return p._Dis(iconname, textexist, color, imagesize)
end

function p._Dis(iconname, textexist, color, imagesize)
    if(color == nil)then
        color = "Black"
    end
    iconname = iconname..""
    local link = ''
    if IconData["Disposition"][iconname] == nil then          
        return "<span style=\"color:red;\">Invalid</span>"  
    else
        local iconFile = ""
        link = IconData["Disposition"][iconname]["link"]
        if (color == 'white') then
            iconFile = IconData["Disposition"][iconname]["icon"][2]   --white icon
        else
	        iconFile = IconData["Disposition"][iconname]["icon"][1]   --black icon
	    end
        if (imagesize == nil or imagesize == '') then
            imagesize = 'x16'                              
        end
        if (textexist == 'texto' or textexist == 'Texto') then
            textcolor = IconData["Disposition"][iconname]["color"]
            if (iconname == '0') then
                return '<span style=\"color:'..color..';\">N/A</span>'
            else
                if (iconFile == 'Disposition1.png' or iconFile == 'Disposition2.png' or iconFile == 'Disposition1_w.png' or iconFile == 'Disposition2_w.png') then
                    return '[[File:'..iconFile..'|'..imagesize..'px|link='..link..']] <span style=\"color:'..color..';\">Débil</span>'
                else
                    if (iconFile == 'Disposition3.png' or iconFile == 'Disposition3_w.png') then
                        return '[[File:'..iconFile..'|'..imagesize..'px|link='..link..']] <span style=\"color:'..color..';\">Neutral</span>'
                    else
                        return '[[File:'..iconFile..'|'..imagesize..'px|link='..link..']] <span style=\"color:'..color..';\">Fuerte</span>'
                    end
                end
            end
        end
        if (iconname == '0') then
            return '<span style=\"color:'..color..';\">N/A</span>'
        else
            return '[[File:'..iconFile..'|'..imagesize..'px|link='..link..']]'
        end
    end
end

function p.Affinity( frame )
    local iconname = frame.args[1]
    local textexist = frame.args[2]
    local imagesize = frame.args.imgsize
    return p._Affinity(iconname, textexist, imagesize)
end

function p._Affinity(iconname, textexist, imagesize)
    local link = ''
    if IconData["Affinity"][iconname] == nil then          
		return "<span style=\"color:red;\">Invalid</span>"  
	else
		link = IconData["Affinity"][iconname]["link"]
        local imgname = IconData["Affinity"][iconname]["icon"]
		if (imagesize == nil or imagesize == '') then
			imagesize = 'x26'                                 
		end
		if (textexist == 'texto' or textexist == 'Texto') then                           
			return '[[File:'..imgname..'|'..imagesize..'px|link='..link..']] [['..link..'|'..iconname..']]'
		end
		return '[[File:'..imgname..'|'..imagesize..'px|link='..link..']]'
	end
end

function p.Arcane( frame )
    local iconname = frame.args[1]
    local textexist = frame.args[2]
    local imagesize = frame.args.imgsize
    local hiRes = frame.args.hires
    return p._Arcane(iconname, textexist, imagesize, hiRes)
end

function p._Arcane(iconname, textexist, imagesize, hiRes)
    local link = ''
    local imgname =''

    if IconData["Arcane"][iconname] == nil then
		return "<span style=\"color:red;\">Invalid</span>"
	else
		link = IconData["Arcane"][iconname]["link"]
		if (hiRes ~= nil) and (hiRes ~= '') then
		    imgname = IconData["Arcane"][iconname]["hiresicon"]
        else
            imgname = IconData["Arcane"][iconname]["icon"]
        end
		if (imagesize == nil or imagesize == '') then
		    if (hiRes ~= nil) and (hiRes ~= '') then
		        imagesize = 'x75'
            else
			    imagesize = 'x26'
            end
		end
		if (textexist == 'texto' or textexist == 'Texto') then
			return '[[File:'..imgname..'|'..imagesize..'px|link='..link..']] [['..link..']]'
		end
		return '[[File:'..imgname..'|'..imagesize..'px|link='..link..']]'
	end
end

function p.Faction( frame )
        local iconname = frame.args[1]        
	    local textexist = frame.args[2]          
        local color = frame.args[3]
        local imagesize = frame.args.imgsize
        local link = ''
        if IconData["Factions"][iconname] == nil then          
              return '[['..iconname..']]'  
        else
           link = IconData["Factions"][iconname]["link"]
           if color == 'white' then
              iconname = IconData["Factions"][iconname]["icon"][2]   --white icon
           else
	      iconname = IconData["Factions"][iconname]["icon"][1]   --black icon
	   end
           if (imagesize == nil or imagesize == '') then
              imagesize = 'x20'                                 
           end
	   if (textexist == 'texto' or textexist == 'Texto') then                           
              return '[[File:'..iconname..'|'..imagesize..'px|link='..link..']][['..link..']]'
           end
	   return '[[File:'..iconname..'|'..imagesize..'px|link='..link..']]'
        end
end

function p.Syndicate( frame )
        local iconname = frame.args[1]        
	local textexist = frame.args[2]          
        local color = frame.args[3]
        local imagesize = frame.args.imgsize
        local link = ''
        if IconData["Syndicates"][iconname] == nil then          
              return ""  
        else
           link = IconData["Syndicates"][iconname]["link"]
           if color == 'white' then
              iconname = IconData["Syndicates"][iconname]["icon"][2]   --white icon
           else
	      iconname = IconData["Syndicates"][iconname]["icon"][1]   --black icon
	   end
           if (imagesize == nil or imagesize == '') then
              imagesize = 'x32'                                 
           end
	   if (textexist == 'texto' or textexist == 'Texto') then                           
              return '[[File:'..iconname..'|'..imagesize..'px|link='..link..']][['..link..']]'                         
           end
	   return '[[File:'..iconname..'|'..imagesize..'px|link='..link..']]'
        end
end

function p.Prime( frame )
    local primename_input = frame.args[1]
    local partname_input = frame.args[2]
    local imagesize_input = frame.args.imgsize
    return p._Prime(primename_input,partname_input,imagesize_input)
end

function p._Prime( primename, partname, imagesize ) 
    local primename = string.gsub(" "..string.lower( primename ), "%W%l", string.upper):sub(2)
    local link = ''
    if IconData["Primes"][primename] == nil then          
        return "Unconfirmed Item"  
    else
           link = IconData["Primes"][primename]["link"]
           iconname = IconData["Primes"][primename]["icon"]
           if (imagesize == nil or imagesize == '') then
              imagesize = 'x32'                                 
           end
	    if partname ~= nil then 
	        partname = string.gsub(" "..string.lower( partname ), "%W%l", string.upper):sub(2) 
            if primename == "Forma" then
                return '[[File:'..iconname..'|'..imagesize..'px|link='..link..']] [['..link..'#Acquisition|'..primename.." "..partname..']]'
            else 
                return '[[File:'..iconname..'|'..imagesize..'px|link='..link..']] [['..link..'#Acquisition|'..primename..' Prime '..partname..']]'                         
            end
        end
        return '[[File:'..iconname..'|'..imagesize..'px|link='..link..']]'
        end
end

function p.Resource( frame )
    local iconname = frame.args[1]        
    local textexist = frame.args[2]
    local imagesize = frame.args.imgsize
 
    return p._Resource(iconname, textexist, imagesize)
end

function p._Resource(iconname, textexist, imagesize)
    local link = ''
    if IconData["Recursos"][iconname] == nil then          
        return ""  
    else
        link = IconData["Recursos"][iconname]["link"]
        iconname = IconData["Recursos"][iconname]["icon"]
        if (imagesize == nil or imagesize == '') then
            imagesize = 'x32'                                 
        end
        if (textexist == 'texto' or textexist == 'Texto') then                           
            return '[[File:'..iconname..'|'..imagesize..'px|link='..link..']] [['..link..']]'                         
        end
        return '[[File:'..iconname..'|'..imagesize..'px|link='..link..']]'
    end
end

function p.Fish( frame )
    local iconname = frame.args[1]        
    local textexist = frame.args[2]
    local imagesize = frame.args.imgsize
 
    return p._Fish(iconname, textexist, imagesize)
end

function p._Fish(iconname, textexist, imagesize)
    local link = ''
    if IconData["Fish"][iconname] == nil then          
        return ""  
    else
        link = IconData["Fish"][iconname]["link"]
        iconname = IconData["Fish"][iconname]["icon"]
        if (imagesize == nil or imagesize == '') then
            imagesize = 'x32'                                 
        end
        if (textexist == 'texto' or textexist == 'Texto') then                           
            return '[[File:'..iconname..'|'..imagesize..'px|link='..link..']] [['..link..'|'..title..']]'                         
        end
        return '[[File:'..iconname..'|'..imagesize..'px|link='..link..']]'
    end
end

function p.Proc( frame )
    local iconname = frame.args[1]        
    local textexist = frame.args[2]          
    local color = frame.args[3]
    local imagesize = frame.args.imgsize
    local ignoreColor = frame.args.ignoreColor
    if(ignoreColor ~= nil and string.upper(ignoreColor) ~= "NO" and string.upper(ignoreColor) ~= "FALSE") then
        ignoreColor = true
    else
        ignoreColor = false
    end
    return p._Proc(iconname, textexist, color, imagesize, ignoreColor)
end

function p._Proc(iconname, textexist, color, imagesize, ignoreTextColor)
    local link = ''
    local iconFile = ""
    local textcolor = ''
    local title = ''
    local tooltip = IconData["Procs"][iconname]["title"]
    if (string.upper(iconname) == "UNKNOWN") then
        return ""
    elseif IconData["Procs"][iconname] == nil then          
        return "<span style=\"color:red;\">Invalid</span>"
    else
        link = IconData["Procs"][iconname]["link"]
        if color == 'white' then
            iconFile = IconData["Procs"][iconname]["icon"][2]   --white icon
        else
            iconFile = IconData["Procs"][iconname]["icon"][1]   --black icon
        end
    
        if (imagesize == nil or imagesize == '') then
            imagesize = 'x18'                                 
        end
        if (textexist == 'texto' or textexist == 'Texto') then  
            textcolor = IconData["Procs"][iconname]["color"]
            if(ignoreTextColor == nil or not ignoreTextColor) then
                if(tooltip ~= nil and tooltip ~= '') then
                    return '[[File:'..iconFile..'|'..imagesize..'px|link='..link..'|'..tooltip..']] [['..link..'|<span style=\"color:'..textcolor..';\">'..iconname..'</span>]]'
                else
                    return '[[File:'..iconFile..'|'..imagesize..'px|link='..link..']] [['..link..'|<span style=\"color:'..textcolor..';\">'..iconname..'</span>]]'
                end
            else
                if(tooltip ~= nil and tooltip ~= '') then
                    return '[[File:'..iconFile..'|'..imagesize..'px|link='..link..'|'..tooltip..']] [['..link..'|'..iconname..']]'
                else
                    return '[[File:'..iconFile..'|'..imagesize..'px|link='..link..']] [['..link..'|'..iconname..']]'
                end
            end 
        end
        if(tooltip ~= nil and tooltip ~= '') then
            return '[[File:'..iconFile..'|'..imagesize..'px|link='..link..'|'..tooltip..']]'
        else
            return '[[File:'..iconFile..'|'..imagesize..'px|link='..link..']]'
        end
    end
end

function p.Focus( frame )
    local iconname = frame.args[1]
    local textexist = frame.args[2]
    local color = frame.args[3]
    local icontype = frame.args[4]
    local imagesize = frame.args.imgsize
    if IconData["Enfoque"][iconname] == nil then          
        return "<span style=\"color:red;\">Invalid</span>"  
    else
        if icontype == 'seal' then
            if color == 'white' then
                iconname = IconData["Enfoque"][iconname]["seal"][2]
            else
                iconname = IconData["Enfoque"][iconname]["seal"][1]
            end
        else
            if color == 'white' then
                iconname = IconData["Enfoque"][iconname]["icon"][2]
            else
                iconname = IconData["Enfoque"][iconname]["icon"][1]
            end
        end
            if (imagesize == nil or imagesize == '') then
              imagesize = 'x20'
           end
           if (textexist == 'texto' or textexist == 'Texto') then  
              textcolor = IconData["Enfoque"][frame.args[1]]["color"]                 
              return '[[File:'..iconname..'|'..imagesize..'px|sub|link=Enfoque]][[Enfoque|'..frame.args[1]..']]'
          end
          return '[[File:'..iconname..'|'..imagesize..'px|link=Enfoque]]'
      end
end

function p.Way( frame )
        local iconname = frame.args[1]
        local imagesize = frame.args.imgsize
        local link = ''
        if IconData["Ways"][iconname] == nil then          
              return "<span style=\"color:red;\">Missing<br>Icon</span>"  
        else
	        iconname = IconData["Ways"][iconname]
	    end
        if (imagesize == nil or imagesize == '') then
            imagesize = 'x18'
        end
	    return '[[File:'..iconname..'|'..imagesize..'px|link='..link..']]'
end


function p.HUD( frame )
        local iconname = frame.args[1]        
	    local textexist = frame.args[2]          
        local color = frame.args[3]
        local imagesize = frame.args.imgsize
        local link = ''
        if IconData["HUD"][iconname] == nil then          
              return '[['..iconname..']]'  
        else
           link = IconData["HUD"][iconname]["link"]
           if color == 'white' then
              iconname = IconData["HUD"][iconname]["icono"][2]   --white icon
           else
	      iconname = IconData["HUD"][iconname]["icono"][1]   --black icon
	   end
           if (imagesize == nil or imagesize == '') then
              imagesize = 'x20'                                 
           end
	   if (textexist == 'texto' or textexist == 'Texto') then                           
              return '[[File:'..iconname..'|'..imagesize..'px|link=HUD]][[HUD|'..link..']]'
           end
	   return '[[File:'..iconname..'|'..imagesize..'px|link=HUD]]'
        end
end

function p.Flag( frame )
    local iconname = frame.args[1]
    local tooltip = frame.args[2]
    local dest = frame.args[3]        
	local textexist = frame.args[4]
    if IconData["Flags"][iconname] == nil then          
        return "<span style=\"color:red;\">Invalid</span>"  
    else
        iconname = IconData["Flags"][iconname]
        if tooltip == nil then
            tooltip = ''
        end
        if dest == nil then
            dest = ''
        end
        if (textexist == 'texto' or textexist == 'Texto') then 
            return '[[File:'..iconname..'|'..tooltip..'|16px|link='..dest..']] [['..dest..'|'..tooltip..']]'
        end
        return '[[File:'..iconname..'|'..tooltip..'|16px|link='..dest..']]'
    end
end

function p.Melee(frame)
    local AttackType = frame.args[1]
    local ProcType = frame.args[2]
    local imagesize = frame.args.imgsize
    return p._Melee(AttackType, ProcType, imagesize)
end

function p._Melee(AttackType, ProcType, imagesize)
    if(AttackType == nil or AttackType == '') then 
        AttackType = "DEFAULT" 
    else
        AttackType = string.upper(AttackType)
    end
    if(ProcType == nil or ProcType == '') then
        ProcType = "DEFAULT"
    else
        ProcType = string.upper(ProcType)
    end
    if (imagesize == nil or imagesize == '') then
        imagesize = 'x22'                                 
    end
        
    
    if(IconData["Melee"][ProcType] == nil or IconData["Melee"][ProcType][AttackType] == nil) then
        return "<span style=\"color:red;\">Invalid</span>"  
    end
    
    local icon = IconData["Melee"][ProcType][AttackType].icon
    local link = IconData["Melee"][ProcType][AttackType].link
	local title = IconData["Melee"][ProcType][AttackType].title
    local tooltip = IconData["Melee"][ProcType][AttackType].tooltip
    if(icon == nil or icon == '') then
        return "<span style=\"color:red;\">Invalid</span>"  
    end
        
    local result = '[[File:'..icon
    if(tooltip ~= nil and tooltip ~= '') then result = result..'|'..tooltip end
    result = result..'|'..imagesize..'px'
    if link ~= nil then result = result..'|link='..link end
    if title ~= nil then result = result..'|'..title end
    result = result..']]'
    return result
end

function p.Zaw(frame)
    local zawname_input = frame.args[1]
	local textexist = frame.args[2]          
    local imagesize_input = frame.args.imgsize
    return p._Zaw(zawname_input, textexist, imagesize_input)
end

function p._Zaw(zawname, textexist, imagesize)
	zawname = string.gsub(" "..string.lower( zawname ), "%W%l", string.upper):sub(2)
	local link = ''
	if IconData["Zaws"][zawname] == nil then
		return "<span style=\"color:red;\">Invalid</span>[[Categoría:Icon Module error]]"
	else
		link = IconData["Zaws"][zawname]["link"]
		local title = IconData["Zaws"][zawname]["title"]
		zawname = IconData["Zaws"][zawname]["icon"]
		if (imagesize == nil or imagesize == '') then
			imagesize = 'x26'
		end
		
		local imgText = '[[File:'..zawname..'|'..imagesize..'px'
		if(link ~= nil) then
			imgText = imgText..'|link='..link
		elseif(title ~= nil) then
		    imgText = imgText..'|'..title
		end
		imgText = imgText..']]'
		
		if (textexist == 'texto' or textexist == 'Texto') then
			if (link ~= nil) then
			    if(title ~= nil) then
				    return imgText..' [['..link..'|'..title..']]'
				else
				    return imgText..' [['..link..']]'
				end
			elseif(title ~= nil) then
			    return imgText..' '..title
			else
				return imgText
			end
		end
		return imgText
	end
end


function p.Test(frame)
    return p._Proc(frame.args[1])
end

return p
El contenido de la comunidad está disponible bajo CC-BY-SA a menos que se indique lo contrario.