Toggle menu
Toggle preferences menu
Toggle personal menu
Not logged in
Please sign up or log in to edit the wiki.

Module:Transit: Difference between revisions

From the Star Citizen Wiki, the fidelity™ encyclopedia
Content deleted Content added
Created page with "local Transit = {} local i18n = require( 'Module:i18n' ):new() local mArguments --- Wrapper function for Module:i18n.translate --- --- @param key string The translation key --- @return string|nil local function t( key ) return i18n:translate( key ) end --- Helper function for templates invoking the module --- --- @param frame table --- @return string function Transit.fromTemplate( frame ) mArguments = require( 'Module:Arguments' ) local args = mArguments.g..."
 
Alistar Bot (talk | contribs)
m top: use string instead of mw.ustring, replaced: mw.ustring → string
 
(3 intermediate revisions by one other user not shown)
Line 2: Line 2:


local i18n = require( 'Module:i18n' ):new()
local i18n = require( 'Module:i18n' ):new()
local data = mw.loadJsonData( 'Module:Transit/data.json' )


local mArguments
local mArguments
Line 14: Line 15:
end
end


--- Return a badge in wikitext using data defined in data.json

--- Helper function for templates invoking the module
---
---
--- @param location string
--- @param name string
--- @param frame table
--- @param frame table
--- @return string
--- @return string
function Transit.fromTemplate( frame )
function Transit.main( location, name, frame )
mArguments = require( 'Module:Arguments' )
local args = mArguments.getArgs( frame )
local location = args[1]
local name = args[2]

if not location and not name then
if not location and not name then
return mw.ustring.format( '<span class="error">%s</span>', t( 'message_error_no_text' ) )
return string.format( '<span class="error">%s</span>', t( 'message_error_no_text' ) )
end
end


local bg = '#000'
local color = '#fff'
for locationName, locationData in pairs( data.locations ) do
if locationName == location then
mw.logObject( locationData )
for lineName, lineData in pairs( locationData.lines ) do
if lineName == name then
bg = lineData.bg
color = lineData.color
break
end
end
break
end
end

frame = frame or mw.getCurrentFrame()
return frame:expandTemplate{
return frame:expandTemplate{
title = 'Badge',
title = 'Badge',
args = {
args = {
name,
name,
bg = '#000',
bg = bg,
color = '#fff'
color = color
}
}
}
}
end


--- Helper function for templates invoking the module
---
--- @param frame table
--- @return string
function Transit.fromTemplate( frame )
mArguments = require( 'Module:Arguments' )
local args = mArguments.getArgs( frame )
return Transit.main( args[1], args[2], frame )
end
end



Latest revision as of 22:51, 23 October 2024

Module documentation[view][edit][history][purge]
This documentation is transcluded from Module:Transit/doc. Changes can be proposed in the talk page.
Function list
L 13 — t
L 23 — Transit.main
L 60 — Transit.fromTemplate

Used to show transit line in Star Citizen universe as a badge. The colors are defined in the data.json.


local Transit = {}

local i18n = require( 'Module:i18n' ):new()
local data = mw.loadJsonData( 'Module:Transit/data.json' )

local mArguments


--- Wrapper function for Module:i18n.translate
---
--- @param key string The translation key
--- @return string|nil
local function t( key )
	return i18n:translate( key )
end

--- Return a badge in wikitext using data defined in data.json
---
--- @param location string
--- @param name string
--- @param frame table
--- @return string
function Transit.main( location, name, frame )
    if not location and not name then
        return string.format( '<span class="error">%s</span>', t( 'message_error_no_text' ) )
    end

    local bg = '#000'
    local color = '#fff'
    for locationName, locationData in pairs( data.locations ) do
        if locationName == location then
            mw.logObject( locationData )
            for lineName, lineData in pairs( locationData.lines ) do
            	if lineName == name then
            		bg = lineData.bg
            		color = lineData.color
            		break
            	end
            end
            break
        end
    end

    frame = frame or mw.getCurrentFrame()
    return frame:expandTemplate{
        title = 'Badge',
        args = {
            name,
            bg = bg,
            color = color
        }
    }
end


--- Helper function for templates invoking the module
---
--- @param frame table
--- @return string
function Transit.fromTemplate( frame )
    mArguments = require( 'Module:Arguments' )
    local args = mArguments.getArgs( frame )
    return Transit.main( args[1], args[2], frame )
end


return Transit