Jump to content

Module:ShipInfobox: Difference between revisions

From Elite Dangerous Wiki
Content deleted Content added
No edit summary
No edit summary
Line 18: Line 18:
end
end


function ShipInfobox.MainImage ( field )
function Factionreq( field )
⚫
--
end

function ShipInfobox.Factionreq( field )
-- Rather than ParserFunctions, try passing your variables this way.
-- Rather than ParserFunctions, try passing your variables this way.
local text = 'Requires '.. field.Requirement ..' rank of '.. field.Rank ..' or higher'
local text = 'Requires '.. field.Requirement ..' rank of '.. field.Rank ..' or higher'
Line 34: Line 30:


-- replaces {{#if:{{{topspeed|}}}|{{{topspeed|?}}} m/s|---}} logic
-- replaces {{#if:{{{topspeed|}}}|{{{topspeed|?}}} m/s|---}} logic
function ShipInfobox.Quantify( field )
function Quantify( field )
local unit = field.Unit or ''
local unit = field.Unit or ''
local value = field.Value or field.Default or '?'
local value = field.Value or field.Default or '?'
Line 44: Line 40:
end
end


function ShipInfobox.Insurance( field )
function Insurance( field )
-- replaces {{#if:{{{cost|}}}|{{formatnum:{{#expr:trunc({{formatnum:{{{cost|}}}|R}}*0.05)}}}} CR|}}
--
local insurance = field.Cost or ''
if not isempty(insurance) then
return math.floor(tonumber(insurance) * 0.05) .. 'CR'
else return ''
⚫
end
end
end



Revision as of 01:31, 23 May 2015

Documentation for this module may be created at Module:ShipInfobox/doc

local ShipInfobox = {}

-- This avoids using the {{#if:{{{factionreq|}}}||}} ParserFunction.
local function isempty(s)
  local result = false
  if type(s) == "nil" then
    result = true
  elseif type(s) == "string" then
    if s == "" then
      result = true
    end
  elseif type(s) == "table" then
    if next(s) == nil then
      result = true
    end
  end
  return result
end

function Factionreq( field )
    -- Rather than ParserFunctions, try passing your variables this way. 
    local text = 'Requires '.. field.Requirement ..' rank of '.. field.Rank ..' or higher'
    if not isempty(field.Requirement) then
        -- Use mw.html for the best HTML output.
        local output = mw.html.create('span')
        :addClass('factionreq'):wikitext(text)
        return tostring(output)
    end
end  

-- replaces {{#if:{{{topspeed|}}}|{{{topspeed|?}}} m/s|---}} logic
function Quantify( field )
    local unit = field.Unit or ''
    local value = field.Value or field.Default or '?'
    if isempty(value) then 
        return '---'
    else
        return value .. ' ' .. unit
    end
end

function Insurance( field )
    -- replaces {{#if:{{{cost|}}}|{{formatnum:{{#expr:trunc({{formatnum:{{{cost|}}}|R}}*0.05)}}}} CR|}}
    local insurance = field.Cost or ''
    if not isempty(insurance) then
        return math.floor(tonumber(insurance) * 0.05) .. 'CR'
    else return ''
    end
end

function ShipInfobox.Internals( field )
    --
end

function ShipInfobox.Hardpoints( field )
    --
end

return ShipInfobox