Модуль:EventsTable

Материал из Space Station 14 Вики

Для документации этого модуля может быть создана страница Модуль:EventsTable/doc

local p = {}

local data = { -- Дата
    {
        name = "Аномалия",
        id = "AnomalySpawn",
        image = "AnomalyAll.gif",
        advert = "111",
        description = "Произошел выброс энергии, вызывающий пространственные искажения.",
        weight = 5,
        duration = 120,
        earliestStart = 20,
        minimumPlayers = 40,
    },
}

function p.generateTable(frame) -- Генерация табличек
	local out = '{| id="highlighted-header-CM" class="wikitable sortable mw-collapsible" margin:0;"\n'
	out = out .. '! Событие !! Оповещение !! Описание !! Характеристики\n'

    for _, event in ipairs(data) do
        -- Формируем ячейку с названием, ID и изображением
        local IIevent = '<div style="text-align:center;">'
        IIevent = IIevent .. "'''" .. (event.name or "Неизвестно") .. "'''<br>"
        IIevent = IIevent .. "<span style='color:#adadad'>'''" .. (event.id or "Нет ID") .. "'''</span><br>"

        if event.image and event.image ~= "Нет изображения" then
            IIevent = IIevent .. '[[File:' .. event.image .. '|50px]]'
        end

        IIevent = IIevent .. '</div>'

        -- Формируем список характеристик с вики-разметкой AltTooltip
        local characteristicsList = ""
        local characteristics = {
            {"Вес", "Вес события в системе случайных событий (чем выше, тем чаще случается)", event.weight},
            {"Мин. игроков", "Минимальное количество игроков для начала события", event.minimumPlayers},
            {"Время старта", "Время с которого событие может начаться", event.earliestStart .. " сек."},
            {"Длительность", "Длительность события в секундах", event.duration .. " сек."}
        }

        for _, char in ipairs(characteristics) do
            characteristicsList = characteristicsList .. "- " .. frame:expandTemplate{ title = "AltTooltip", args = { char[1], char[2] }} .. ": " .. char[3] .. "<br>"
        end

        -- Добавляем строки в таблицу
        out = out .. "|-\n"
        out = out .. "| " .. IIevent .. "\n"
        out = out .. "| " .. (event.advert or "Нет оповещения") .. "\n"
        out = out .. "| " .. (event.description or "Нет описания") .. "\n"
        out = out .. "| " .. characteristicsList .. "\n"
    end

    out = out .. "|}" -- Добавляем закрытие таблицы

	return out
end

return p -- ЭТО ДОЛЖНО БЫТЬ В КОНЦЕ