Editing Module:Sandbox/Monster DomosedGive feedback
The edit can be undone.
Please check the comparison below to verify that this is what you want to do, and then publish the changes below to finish undoing the edit.
| Latest revision | Your text | ||
| Line 2: | Line 2: | ||
local data = mw.loadJsonData("Data:ItemData.json") | local data = mw.loadJsonData("Data:ItemData.json") | ||
-------------------------------------------------- | -------------------------------------------------- | ||
| Line 25: | Line 24: | ||
end | end | ||
local function get_cost(item) | local function get_cost(item) | ||
return tonumber(item["Cost"]) or math.huge | |||
end | end | ||
| Line 42: | Line 36: | ||
-------------------------------------------------- | -------------------------------------------------- | ||
-- Returns a sorted Lua array of item tables | |||
local function get_sorted_items() | local function get_sorted_items() | ||
local items = {} | local items = {} | ||
for _, item in pairs(data) do | for _, item in pairs(data) do | ||
if is_enabled(item) then | |||
if is_enabled(item) | |||
table.insert(items, item) | table.insert(items, item) | ||
end | end | ||
| Line 55: | Line 47: | ||
table.sort(items, function(a, b) | table.sort(items, function(a, b) | ||
local type_a = get_type_rank(a) | local type_a = get_type_rank(a) | ||
local type_b = get_type_rank(b) | local type_b = get_type_rank(b) | ||
-- 1. Sort by type | |||
if type_a ~= type_b then | if type_a ~= type_b then | ||
return type_a < type_b | return type_a < type_b | ||
| Line 65: | Line 58: | ||
local cost_a = get_cost(a) | local cost_a = get_cost(a) | ||
local cost_b = get_cost(b) | local cost_b = get_cost(b) | ||
if cost_a ~= cost_b then | if cost_a ~= cost_b then | ||
return cost_a < cost_b | return cost_a < cost_b | ||
| Line 80: | Line 74: | ||
-------------------------------------------------- | -------------------------------------------------- | ||
-- For other Lua modules | |||
function p._get_enabled_items_sorted() | function p._get_enabled_items_sorted() | ||
return get_sorted_items() | return get_sorted_items() | ||
| Line 93: | Line 88: | ||
return names | return names | ||
end | end | ||
| Line 141: | Line 94: | ||
-------------------------------------------------- | -------------------------------------------------- | ||
-- {{#invoke: | -- {{#invoke:Monster Domosed|get_list}} | ||
-- Newline-separated, sorted | |||
function p.get_list(frame) | function p.get_list(frame) | ||
return table.concat( | local names = p._get_enabled_item_names_sorted() | ||
return table.concat(names, "\n") | |||
end | end | ||
-- {{#invoke: | -- {{#invoke:Monster Domosed|get_csv}} | ||
-- Comma-separated, sorted (Python-friendly) | |||
function p.get_csv(frame) | function p.get_csv(frame) | ||
return table.concat( | local names = p._get_enabled_item_names_sorted() | ||
return table.concat(names, ",") | |||
end | end | ||
-- {{#invoke: | -- {{#invoke:Monster Domosed|get_count}} | ||
function p.get_count(frame) | function p.get_count(frame) | ||
return tostring(#p._get_enabled_item_names_sorted()) | return tostring(#p._get_enabled_item_names_sorted()) | ||
end | end | ||
return p | return p | ||