Модуль:Serialization/EntityTableSelector: различия между версиями

Нет описания правки
Нет описания правки
(не показаны 3 промежуточные версии этого же участника)
Строка 138: Строка 138:


local function getSelectorValue(selector)
local function getSelectorValue(selector)
    if type(selector) == "number" or type(selector) == "string" then
        return selector
    end
     selector = normalizeSelector(selector) or selector
     selector = normalizeSelector(selector) or selector
     if type(selector) ~= "table" then
     if type(selector) ~= "table" then
Строка 234: Строка 230:


     return table.concat(result)
     return table.concat(result)
end
local function renderPlainEntry(entry)
    if type(entry) ~= "table" or trim(entry.id) == "" then
        return ""
    end
    return formatContent(entry)
end
end


Строка 246: Строка 250:
         if selector then
         if selector then
             local rendered = renderSelector(selector, visited, true, depth)
             local rendered = renderSelector(selector, visited, true, depth)
            if rendered ~= "" then
                result[#result + 1] = rendered
            end
        else
            local rendered = renderPlainEntry(child)
             if rendered ~= "" then
             if rendered ~= "" then
                 result[#result + 1] = rendered
                 result[#result + 1] = rendered
Строка 297: Строка 306:


     local title = ""
     local title = ""
    local hasWeight = rawget(selector, "weight") ~= nil


     if selector.weight ~= nil and selector.weight ~= "default" then
     if hasWeight and selector.weight ~= "default" then
         title = "Группа предметов " .. normalizePercent(selector.weight, false)
         title = "Группа предметов " .. normalizePercent(selector.weight, false)
     elseif selector.weight == nil then
     elseif not hasWeight then
         title = "Может выпасть лишь один из:"
         title = "Может выпасть лишь один из:"
     end
     end
Строка 387: Строка 397:
     local selector = normalizeSelector(data)
     local selector = normalizeSelector(data)
     if not selector then
     if not selector then
        local plainEntry = renderPlainEntry(data)
        if plainEntry ~= "" then
            return frame:preprocess(plainEntry)
        end
         local plainEntries = renderPlainEntries(data)
         local plainEntries = renderPlainEntries(data)
         if plainEntries ~= "" then
         if plainEntries ~= "" then