Module:Waarden

Uit Minecraft Wiki
Ga naar: navigatie, zoeken

Deze module heeft als doel om alle aan waarden gerelateerde functies en submodules uit te voeren. Hieronder volgt de beschrijving per functie. Voeg nieuwe functies onderaan toe of op de plaats waar ze in de module staan.

Functies[bewerken]

Hieronder volgt de beschrijving per functie en welke modules vereist zijn voor het succesvol uitvoeren van de functie.

Functies voor protocol- en dataversies[bewerken]

Functie protocol_version[bewerken]

Zie ook: Sjabloon:Protocolversie

Deze functie toont de protocolversies voor het sjabloon {{Protocolversie}}.

Afhankelijkheden[bewerken]
Code[bewerken]
function p.protocol_version( f )
    local args = f
    if f == mw.getCurrentFrame() then 
        args = require( 'Module:ProcessArgs' ).merge( true )
    end
    local version = mw.text.trim( args[1] or '' )
    local type = args.type
    
    -- laadt de waarden uit de submodule
    local version_data = mw.loadData( 'Module:Waarden/Protocol- en dataversies' ).versions[version]
    local category = ''
    local value
    if version_data then
        value = version_data.protocol
    else
        value = '[[Sjabloon:Protocolversie#Ontbrekende waarde|—]]'
        local title = mw.title.getCurrentTitle()
        if not args.nocat and title.namespace == 0 and not title.isSubpage then
            category = '[[Categorie:Ontbrekende protocolversie]]'
        end
    end
    return value .. category
end


Functie data_version[bewerken]

Zie ook: Sjabloon:Dataversie

Deze functie toont de dataversie voor het sjabloon {{Dataversie}}.

Afhankelijkheden[bewerken]
Code[bewerken]
function p.data_version( f )
    local args = f
    if f == mw.getCurrentFrame() then 
        args = require( 'Module:ProcessArgs' ).merge( true )
    end
    local version = mw.text.trim( args[1] or '' )
    local type = args.type
    
    -- laadt de waarden uit de submodule
    local version_data = mw.loadData( 'Module:Waarden/Protocol- en dataversies' ).versions[version]
    local category = ''
    local value
    if version_data then
        if version_data.data then
            value = version_data.data
        else
            value = "n.v.t."
        end
    else
        value = '[[Sjabloon:Dataversie#Ontbrekende waarde|—]]'
        local title = mw.title.getCurrentTitle()
        if not args.nocat and title.namespace == 0 and not title.isSubpage then
            category = '[[Categorie:Ontbrekende dataversie]]'
        end
    end
    return value .. category
end


Functie table[bewerken]

Zie ook: Sjabloon:Protocolversie § Tabel

Deze functie maakt een geordende tabel met tussenkopjes. In deze tabel staan de Minecraftversie en de bijbehorende protocol- en dataversies naast elkaar. Verder kunnen de tabellen geordend worden.

Afhankelijkheden[bewerken]
Code[bewerken]
function p.table( f )
    local args = f
    if f == mw.getCurrentFrame() then
        args = require( 'Module:ProcessArgs' ).merge( true )
    end
    
    local html = {}
    local groups = mw.loadData( 'Module:Waarden/Protocol- en dataversies' ).groups

    for _, group in ipairs(groups) do
        table.insert( html, "=== [[" .. group.link .. '|' .. group.name .. "]] ===\n" )
        if group.desc ~= nil then
            table.insert( html, group.desc .. '\n')
        end
        table.insert( html, "<table class='wikitable sortable jquery-tablesorter'>\n" )
        table.insert( html, '<tr>\n' )
        table.insert( html, '<th>Versie</th>\n' )
        table.insert( html, '<th>Protocolversie</th>\n' )
        table.insert( html, '<th>Dataversie</th>\n' )
        table.insert( html, '</tr>\n' )

        local num_same_protocol
        local last_protocol = -1
        local protocol_row

        for __, version in ipairs(group.values) do
            table.insert( html, '<tr>' )
            table.insert( html, '<td>[[' .. version.name .. ']]</td>' )
            if version.protocol ~= last_protocol or version.force_split then
                last_protocol = version.protocol
                num_same_protocol = 1
                table.insert( html, '<td>' .. version.protocol .. '</td>' )
                protocol_row = #html
            else
                num_same_protocol = num_same_protocol + 1
                html[protocol_row] = '<td rowspan="' .. num_same_protocol .. '">' .. version.protocol .. '</td>'
            end
            if version.data then
                table.insert( html, '<td>' .. version.data .. '</td>' )
            else
                table.insert( html, '<td>—</td>' )
            end
            table.insert( html, '</tr>' )
        end

        table.insert( html, '</table>\n' )
    end

    return table.concat( html )
end

Functies voor blokwaarden[bewerken]

Functie explosieweerstand[bewerken]

Zie ook: Sjabloon:Explosieweerstand

Deze functie laadt explosieweerstanden uit de submodule explosieweerstand en toont ze door middel van het het sjabloon {{explosieweerstand}}.

Afhankelijkheden[bewerken]
Code[bewerken]
function p.explosieweerstand( f )
	local args = f
	if f == mw.getCurrentFrame() then
		args = require( 'Module:ProcessArgs' ).merge( true )
	end
	
	local weerstand = mw.text.trim( args[1] or '' ):lower()
	
	-- Laad waarden uit submodule Explosieweerstand
	weerstand = weerstand
	local waarde = mw.loadData( 'Module:Waarden/Explosieweerstand' )[weerstand]
	local categorie = ''
	
	if not waarde then
		waarde = '[[Sjabloon:Explosieweerstand#Ontbrekende waarde|?]]'
		local titel = mw.title.getCurrentTitle()
		if not args.nocat and titel.namespace == 0 and not titel.isSubpage then
			categorie = '[[Categorie:Ontbrekende explosieweerstand]]'
		end
	end
    return waarde .. categorie
end


Functie hardheidSjabloon[bewerken]

Zie ook: Sjabloon:Hardheid

Deze functie laadt hardheid van blokken uit de submodule hardheid en toont ze door middel van het het sjabloon {{hardheid}}.

Afhankelijkheden[bewerken]
Code[bewerken]
function p.hardheidSjabloon( f )
    local args = f
    if f == mw.getCurrentFrame() then
        args = require( 'Module:ProcessArgs' ).merge( true )
    end

    local hardheid = mw.text.trim( args[1] or '' ):lower()

    -- Laad waarden uit submodule Hardheid
    hardheid = hardheid
    local waarde = mw.loadData( 'Module:Waarden/Hardheid' )[hardheid]
    local categorie = ''

    if not waarde then
        waarde = '[[Sjabloon:Hardheid#Ontbrekende waarde|?]]'
        local titel = mw.title.getCurrentTitle()
        if not args.nocat and titel.namespace == 0 and not titel.isSubpage then
            categorie = '[[Categorie:Ontbrekende hardheid]]'
        end
    end
	local waardeKomma = tostring( waarde )
	
    return waardeKomma:gsub('%.', ',') .. categorie
end

Merk op dat :gsub('%.', ',') als return-waarde wordt opgegeven.



Functie hardheidModule[bewerken]

Zie ook: Sjabloon:Hardheid

Deze functie laadt hardheid van blokken uit de submodule hardheid. De waarden worden vervolgens gebruikt om de breektijd te berekenen van blokken door middel van het sjabloon {{breektabel}}.

Afhankelijkheden[bewerken]
Code[bewerken]
function p.hardheidModule( f )
    local args = f
    if f == mw.getCurrentFrame() then
        args = require( 'Module:ProcessArgs' ).merge( true )
    end

    local hardheid = mw.text.trim( args[1] or '' ):lower()

    -- Laad waarden uit submodule Hardheid
    hardheid = hardheid
    local waarde = mw.loadData( 'Module:Waarden/Hardheid' )[hardheid]
    local categorie = ''

    if not waarde then
        waarde = '[[Sjabloon:Hardheid#Ontbrekende waarde|?]]'
        local titel = mw.title.getCurrentTitle()
        if not args.nocat and titel.namespace == 0 and not titel.isSubpage then
            categorie = '[[Categorie:Ontbrekende hardheid]]'
        end
    end
    return waarde .. categorie
end

Merk op dat :gsub('%.', ',') ontbreekt bij de return-waarden.



[bekijken | bewerken | geschiedenis | cache legen]Bovenstaande documentatie is getranscludeerd uit Module:Waarden/doc.

--[[
    Het doel van deze module is om alle aan data gerelateerde sjabloon-
    inhoud op te slaan. Hierdoor is deze module ook zo groot. Boven alle
    functies staat het sjabloon waarvoor ze zijn bedoeld. Verder staat
    er ook boven welke (sub)modules vereist zijn om de functie met succes
    uit te voeren.

    Voor functiebeschrijvingen, zie de documentatie hierboven.

    Nieuwe functies moeten onderaan geplaatst worden. Verder moeten ook de
    (sub)modules erboven gezet worden, als commentaar. Vergeet ook niet de
    documentatie te updaten, met de functies in de volgorde die hier staat.
]]

local p = {}

--[[ 
    Sjabloon {{Protocolversie}}.

    Vereiste modules: ProcessArgs, Waarden, Waarden/Protocol- en dataversies

    Verder de categorie Ontbrekende protocolversie
]]
function p.protocol_version( f )
    local args = f
    if f == mw.getCurrentFrame() then 
        args = require( 'Module:ProcessArgs' ).merge( true )
    end
    local version = mw.text.trim( args[1] or '' )
    local type = args.type
    
    -- laadt de waarden uit de submodule
    local version_data = mw.loadData( 'Module:Waarden/Protocol- en dataversies' ).versions[version]
    local category = ''
    local value
    if version_data then
        value = version_data.protocol
    else
        value = '[[Sjabloon:Protocolversie#Ontbrekende waarde|—]]'
        local title = mw.title.getCurrentTitle()
        if not args.nocat and title.namespace == 0 and not title.isSubpage then
            category = '[[Categorie:Ontbrekende protocolversie]]'
        end
    end
    return value .. category
end
-- Einde functie protocol_version


--[[ 
    Sjabloon {{Dataversie}}.

    Vereiste modules: ProcessArgs, Waarden, Waarden/Protocol- en dataversies

    Verder ook de categorie Ontbrekende dataversie
]]
function p.data_version( f )
    local args = f
    if f == mw.getCurrentFrame() then 
        args = require( 'Module:ProcessArgs' ).merge( true )
    end
    local version = mw.text.trim( args[1] or '' )
    local type = args.type
    
    -- laadt de waarden uit de submodule
    local version_data = mw.loadData( 'Module:Waarden/Protocol- en dataversies' ).versions[version]
    local category = ''
    local value
    if version_data then
        if version_data.data then
            value = version_data.data
        else
            value = "n.v.t."
        end
    else
        value = '[[Sjabloon:Dataversie#Ontbrekende waarde|—]]'
        local title = mw.title.getCurrentTitle()
        if not args.nocat and title.namespace == 0 and not title.isSubpage then
            category = '[[Categorie:Ontbrekende dataversie]]'
        end
    end
    return value .. category
end
-- Einde functie data_version


--[[ 
    Versietabel ({{Protocolversie/tabel}} en {{Dataversie/tabel}}).

    Vereiste modules: ProcessArgs, Waarden, Waarden/Protocol- en dataversies
]]
function p.table( f )
    local args = f
    if f == mw.getCurrentFrame() then
        args = require( 'Module:ProcessArgs' ).merge( true )
    end
    
    local html = {}
    local groups = mw.loadData( 'Module:Waarden/Protocol- en dataversies' ).groups

    for _, group in ipairs(groups) do
        table.insert( html, "=== [[" .. group.link .. '|' .. group.name .. "]] ===\n" )
        if group.desc ~= nil then
            table.insert( html, group.desc .. '\n')
        end
        table.insert( html, "<table class='wikitable sortable jquery-tablesorter'>\n" )
        table.insert( html, '<tr>\n' )
        table.insert( html, '<th>Versie</th>\n' )
        table.insert( html, '<th>Protocolversie</th>\n' )
        table.insert( html, '<th>Dataversie</th>\n' )
        table.insert( html, '</tr>\n' )

        local num_same_protocol
        local last_protocol = -1
        local protocol_row

        for __, version in ipairs(group.values) do
            table.insert( html, '<tr>' )
            table.insert( html, '<td>[[' .. version.name .. ']]</td>' )
            if version.protocol ~= last_protocol or version.force_split then
                last_protocol = version.protocol
                num_same_protocol = 1
                table.insert( html, '<td>' .. version.protocol .. '</td>' )
                protocol_row = #html
            else
                num_same_protocol = num_same_protocol + 1
                html[protocol_row] = '<td rowspan="' .. num_same_protocol .. '">' .. version.protocol .. '</td>'
            end
            if version.data then
                table.insert( html, '<td>' .. version.data .. '</td>' )
            else
                table.insert( html, '<td>—</td>' )
            end
            table.insert( html, '</tr>' )
        end

        table.insert( html, '</table>\n' )
    end

    return table.concat( html )
end
--[[
    Einde functie table
    Einde protocol- en dataversies
]]

--[[
    Sjabloon {{explosieweerstand}}

    Vereiste modules: ProcessArgs, Waarden, Waarden/Explosieweerstandwaarden

    Verder ook de categorie Ontbrekende explosieweerstand
]]
function p.explosieweerstand( f )
	local args = f
	if f == mw.getCurrentFrame() then
		args = require( 'Module:ProcessArgs' ).merge( true )
	end
	
	local weerstand = mw.text.trim( args[1] or '' ):lower()
	
	-- Laad waarden uit submodule Explosieweerstand
	weerstand = weerstand:gsub( "[ %-'%(%)]", '' )
	local waarde = mw.loadData( 'Module:Waarden/Explosieweerstand' )[weerstand]
	local categorie = ''
	
	if not waarde then
		waarde = '[[Sjabloon:Explosieweerstand#Ontbrekende waarde|?]]'
		local titel = mw.title.getCurrentTitle()
		if not args.nocat and titel.namespace == 0 and not titel.isSubpage then
			categorie = '[[Categorie:Ontbrekende explosieweerstand]]'
		end
	end
    return waarde .. categorie
end
-- Einde functie explosieweerstand

--[[
    Sjabloon {{hardheid}}

    Vereiste modules: ProcessArgs, Waarden, Waarden/Hardheid

    Verder ook categorie Ontbrekende hardheid
]]
function p.hardheidSjabloon( f )
    local args = f
    if f == mw.getCurrentFrame() then
        args = require( 'Module:ProcessArgs' ).merge( true )
    end

    local hardheid = mw.text.trim( args[1] or '' ):lower()

    -- Laad waarden uit submodule Hardheid
    hardheid = hardheid:gsub( "[ %-'%(%)]", '' )
    local waarde = mw.loadData( 'Module:Waarden/Hardheid' )[hardheid]
    local categorie = ''

    if not waarde then
        waarde = '[[Sjabloon:Hardheid#Ontbrekende waarde|?]]'
        local titel = mw.title.getCurrentTitle()
        if not args.nocat and titel.namespace == 0 and not titel.isSubpage then
            categorie = '[[Categorie:Ontbrekende hardheid]]'
        end
    end
	local waardeKomma = tostring( waarde )
	
    return waardeKomma:gsub('%.', ',') .. categorie
end
-- Einde functie hardheidSjabloon

--[[
    Sjabloon {{breektabel}}

    Vereiste modules: ProcessArgs, Waarden, Waarden/Hardheid

    Wordt gebruikt in module: Breektabel

    Verder ook categorie Ontbrekende hardheid
]]
function p.hardheidModule( f )
    local args = f
    if f == mw.getCurrentFrame() then
        args = require( 'Module:ProcessArgs' ).merge( true )
    end

    local hardheid = mw.text.trim( args[1] or '' ):lower()

    -- Laad waarden uit submodule Hardheid
    hardheid = hardheid:gsub( "[ %-'%(%)]", '' )
    local waarde = mw.loadData( 'Module:Waarden/Hardheid' )[hardheid]
    local categorie = ''

    if not waarde then
        waarde = '[[Sjabloon:Hardheid#Ontbrekende waarde|?]]'
        local titel = mw.title.getCurrentTitle()
        if not args.nocat and titel.namespace == 0 and not titel.isSubpage then
            categorie = '[[Categorie:Ontbrekende hardheid]]'
        end
    end
    return waarde .. categorie
end
-- Einde functie hardheidModule

return p