Moduł:Dźwięki

Wersja z dnia 20:45, 3 sty 2026 autorstwa Igorczewski6524 (dyskusja | edycje) (Utworzono nową stronę "local p = {} local data = mw.loadData('Module:Dźwięki/Dane') local function renderTable(editionName, editionData, displayTitle, icon) if not editionData or #editionData == 0 then return "" end local root = mw.html.create('table') :addClass('wikitable sound-table mw-collapsible mw-collapsed') :css('width', '100%') :css('font-size', '0.9em') -- Nagłówek z ikoną i nazwą local iconWiki = icon and ('[[File:' .. icon .. '|…")
(różn.) ← poprzednia wersja | przejdź do aktualnej wersji (różn.) | następna wersja → (różn.)
[ utwórz | historia | odśwież ]Dokumentacja
W tym module nie ma dokumentacji. Jeśli wiesz jak używać tego modułu, proszę, podaj odpowiednie informacje.
local p = {}
local data = mw.loadData('Module:Dźwięki/Dane')

local function renderTable(editionName, editionData, displayTitle, icon)
    if not editionData or #editionData == 0 then return "" end

    local root = mw.html.create('table')
        :addClass('wikitable sound-table mw-collapsible mw-collapsed')
        :css('width', '100%')
        :css('font-size', '0.9em')

    -- Nagłówek z ikoną i nazwą
    local iconWiki = icon and ('[[File:' .. icon .. '|20px|link=]] ') or ""
    root:tag('tr')
        :tag('th')
            :attr('colspan', editionName == 'Java Edition' and '9' or '8')
            :wikitext(iconWiki .. displayTitle .. ' sound type')

    -- Nagłówki kolumn
    local subHeader = root:tag('tr')
    subHeader:tag('th'):wikitext('Sound'):done()
    subHeader:tag('th'):wikitext('Closed captions'):done()
    subHeader:tag('th'):wikitext('Source'):done()
    subHeader:tag('th'):wikitext('Description'):done()
    subHeader:tag('th'):wikitext('Identifier'):done()
    subHeader:tag('th'):wikitext('Translation key'):done()
    subHeader:tag('th'):wikitext('Volume'):done()
    subHeader:tag('th'):wikitext('Pitch'):done()
    if editionName == 'Java Edition' then
        subHeader:tag('th'):wikitext('Distance'):done()
    end

    -- Wiersze danych
    for _, group in ipairs(editionData) do
        local rowCount = #group.zdarzenia
        for i, row in ipairs(group.zdarzenia) do
            local tr = root:tag('tr')
            if i == 1 then
                local soundCell = tr:tag('td'):attr('rowspan', rowCount):css('text-align', 'center'):css('vertical-align', 'middle')
                for _, file in ipairs(group.pliki) do
                    soundCell:wikitext('[[File:Sound-icon.png|16px|link=File:' .. file .. ']] ')
                end
            end
            tr:tag('td'):wikitext(row.captions):done()
            tr:tag('td'):wikitext(row.source):done()
            tr:tag('td'):wikitext(row.desc):done()
            tr:tag('td'):tag('code'):wikitext(row.id):done():done()
            tr:tag('td'):tag('code'):wikitext(row.key):done():done()
            tr:tag('td'):wikitext(row.vol):done()
            tr:tag('td'):wikitext(row.pitch):done()
            if editionName == 'Java Edition' then
                tr:tag('td'):wikitext(row.dist):done()
            end
        end
    end

    local link = '[[' .. editionName .. '|' .. editionName .. ']]:'
    return '<p>\'\'\'' .. link .. '\'\'\'</p>' .. tostring(root)
end

function p.main(frame)
    local args = frame:getParent().args
    local id = args[1]
    local nazwa = args[2] or id
    local wersja = string.lower(args[3] or "") -- java, bedrock lub puste
    
    local blockData = data[id]
    if not blockData then return '<span class="error">Brak danych dla ID: ' .. id .. '</span>' end

    local output = ""
    
    -- Logika wyboru wersji
    if wersja == "java" then
        output = renderTable('Java Edition', blockData.java, nazwa, blockData.ikona)
    elseif wersja == "bedrock" then
        output = renderTable('Bedrock Edition', blockData.bedrock, nazwa, blockData.ikona)
    else
        -- Jeśli parametr pusty, pokaż obie
        output = renderTable('Java Edition', blockData.java, nazwa, blockData.ikona)
        output = output .. renderTable('Bedrock Edition', blockData.bedrock, nazwa, blockData.ikona)
    end

    return output
end

return p