Модуль:Prototypes/Механика/Стоимость: различия между версиями
Материал из Space Station 14 Вики
Pok (обсуждение | вклад) мНет описания правки |
Pok (обсуждение | вклад) мНет описания правки |
||
| Строка 24: | Строка 24: | ||
local output = {} | local output = {} | ||
local seen = {} | local seen = {} | ||
table.insert(output, '! Сортировка (по стоимости)') | |||
table.insert(output, '|-') | |||
for _, item in ipairs(priceData) do | for _, item in ipairs(priceData) do | ||
| Строка 40: | Строка 42: | ||
table.insert( | table.insert( | ||
output, | output, | ||
" | "|data-sort-value=" .. item.StaticPrice.price .. | ||
" | "|{{Cut-Layout|1=[[File:" .. item.id .. ".png|32px|link=]] " .. | ||
name .. "|2=" .. priceFormatted .. "}}" | name .. "|2=" .. priceFormatted .. "}}" | ||
) | ) | ||
table.insert(output, " | table.insert(output, "|-") | ||
end | end | ||
end | end | ||
Версия от 15:47, 16 апреля 2025
Для документации этого модуля может быть создана страница Модуль:Prototypes/Механика/Стоимость/doc
-- Загрузка данных
local priceData = mw.loadData("Модуль:IanComradeBot/prototypes/StaticPrice.json/data")
local p = {}
function p.main(frame)
local id = frame.args[1] or frame.args.id
if not id then
return "Ошибка: не передан id"
end
for _, item in ipairs(priceData) do
if item.id == id then
return frame:preprocess(
"${{ColorPalette|Other|price|" .. item.StaticPrice.price .. "}}"
)
end
end
return frame:preprocess("нет")
end
function p.table(frame)
local output = {}
local seen = {}
table.insert(output, '! Сортировка (по стоимости)')
table.insert(output, '|-')
for _, item in ipairs(priceData) do
local numericPrice = tonumber(item.StaticPrice.price)
if numericPrice and numericPrice ~= 0 then
local name = frame:preprocess(
"{{#invoke:Entity Lookup|getname|" .. item.id .. "}}"
)
local priceFormatted = frame:preprocess(
"${{ColorPalette|Other|price|" .. item.StaticPrice.price .. "}}"
)
local key = name .. "-" .. priceFormatted
if not seen[key] then
seen[key] = true
table.insert(
output,
"|data-sort-value=" .. item.StaticPrice.price ..
"|{{Cut-Layout|1=[[File:" .. item.id .. ".png|32px|link=]] " ..
name .. "|2=" .. priceFormatted .. "}}"
)
table.insert(output, "|-")
end
end
end
return frame:preprocess(table.concat(output, "\n"))
end
return p