Модуль:Prototypes/Механика/Стоимость: различия между версиями
Материал из Space Station 14 Вики
Pok (обсуждение | вклад) мНет описания правки |
Pok (обсуждение | вклад) мНет описания правки |
||
| Строка 22: | Строка 22: | ||
function p.table(frame) | function p.table(frame) | ||
local output = {} | local output = {} | ||
local seen = {} | |||
for _, item in ipairs(priceData) do | 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 name = frame:preprocess('{{#invoke:Entity Lookup|getname|' .. item.id .. '}}') | ||
local | local priceFormatted = frame:preprocess("{{ColorPalette|Other|price|" .. item.StaticPrice.price .. "}}$") | ||
table.insert(output, '|data-sort-value=' .. item.StaticPrice.price .. '|{{Cut-Layout|1=[[File:' .. item.id .. '.png|32px]] ' .. name .. '|2=' .. | |||
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 | ||
end | end | ||
return frame:preprocess(table.concat(output, "\n")) | return frame:preprocess(table.concat(output, "\n")) | ||
end | end | ||
return p | return p | ||
Версия от 20:07, 15 апреля 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 = {}
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