Star Citizen Wiki Modul:Contract
Wir laden dich herzlich auf den Star Citizen Wiki Discord Server ein! Du kannst uns auch auf unserem neuen YouTube-Chanel finden!

Modul:Contract

From Star Citizen Wiki

Modulabhängigkeiten

Modulinfo

Dieses Modul setzt die Vorlage Mission um.


local translation = mw.getCurrentFrame():callParserFunction{name='#translation', args="1"}
local Contract = {}

local metatable = {}
local methodtable = {}

metatable.__index = methodtable

--- Needed Extensions
local infobox = require( 'Module:Infobox' )
local common = require( 'Module:Common' )
local localized = require( 'Module:Localized' )
local TNT = require( 'Module:TNT' )


--- Save properties to the smw store
function methodtable.setSemanticProperties( self )
    self.smwData[ 'Name' ]           = self.args[ 'Name' ]           or self.args[ 'Name' ]         or nil;
    self.smwData[ 'Auftraggeber' ]   = self.args[ 'Auftraggeber' ]   or self.args[ 'Contractor' ]   or nil;
    self.smwData[ 'Auftragstyp' ]    = self.args[ 'Auftragstyp' ]    or self.args[ 'Type' ]         or nil;
    self.smwData[ 'Auftragsklasse' ] = self.args[ 'Auftragsklasse' ] or self.args[ 'Class' ]        or nil;
    self.smwData[ 'Verfügbarkeit' ]  = self.args[ 'Verfügbarkeit' ]  or self.args[ 'Availability' ] or nil;
    self.smwData[ 'Bezahlung' ]      = self.args[ 'Bezahlung' ]      or self.args[ 'Payment' ]      or nil;

    if not mw.title.getCurrentTitle().isSubpage then
        local result = mw.smw.set( self.smwData )

        common.checkSmwResult( result )
    end
end


--- Adds the main category
function methodtable.setMainCategory( self )
    table.insert( self.categories, '[[Category:Auftrag' .. translation .. ']]' )
end


--- Extracts args and sets up the module
function methodtable.init( self, frame )
    self.args = require( 'Module:Arguments' ).getArgs( frame )

    self:setSemanticProperties()

    if self.smwData[ 'Auftragsgeber' ] ~= nil then
        table.insert( self.categories, '[[Category:' .. self.smwData[ 'Auftragsgeber' ] .. translation .. ']]' )
    end

    self:setMainCategory()
end


function Contract.main( frame )
    local instance = Contract:new()
    instance:init( frame )

    local box = infobox.create( {
        bodyClass = 'floatright',
    } )

    box:addImage( common.getImage( {
        instance.args[ 'image' ]
    } ) )

    box:addTitle( instance.smwData[ 'Name' ] or localized.getMainTitle() )

    box:addRow( TNT.format( 'I18n/Module:Contract', 'lbl_from' ),         instance.smwData[ 'Auftraggeber' ]   or '-', nil, 'col2' )
       :addRow( TNT.format( 'I18n/Module:Contract', 'lbl_availability' ), instance.smwData[ 'Verfügbarkeit' ]  or '-', nil, 'col2' )
       :addRow( TNT.format( 'I18n/Module:Contract', 'lbl_type' ),         instance.smwData[ 'Auftragstyp' ]    or '-', nil, 'col2' )
       :addRow( TNT.format( 'I18n/Module:Contract', 'lbl_class' ),        instance.smwData[ 'Auftragsklasse' ] or '-', nil, 'col2' )
       :addRow( TNT.format( 'I18n/Module:Contract', 'lbl_payment' ),      instance.smwData[ 'Bezahlung' ]      or '-', nil, 'col2' )

    return tostring( box ) .. tostring( table.concat( instance.categories, '' ) )
end


--- New Instance
function Contract.new( self )
    local instance = {
        args = {},
        smwData = {
            [ 'Name' ]           = nil,
            [ 'Auftraggeber' ]   = nil,
            [ 'Auftragstyp' ]    = nil,
            [ 'Auftragsklasse' ] = nil,
            [ 'Availability' ]   = nil,
            [ 'Bezahlung' ]      = nil,
        },

        categories = {},
    }

    setmetatable( instance, metatable )

    return instance
end

return Contract
Cookies help us deliver our services. By using our services, you agree to our use of cookies.