Module:Infobox item: Difference between revisionsGive feedback
Undo revision 64454 by Gammaton32 (talk) Tabs should be working now I think Tag: Undo |
added ITEM_NAME_OVERRIDES |
||
| Line 28: | Line 28: | ||
local LABEL_KEY_REMAP = { | local LABEL_KEY_REMAP = { | ||
DotDuration = "DOTDuration", | DotDuration = "DOTDuration", | ||
} | |||
-- Item name override mapping (old name -> new name) | |||
local ITEM_NAME_OVERRIDES = { | |||
["Backstabber"] = "Stalker", | |||
} | } | ||
| Line 54: | Line 59: | ||
local conditional_label -- lazily initialised | local conditional_label -- lazily initialised | ||
-------------------------------------------------------------------------------- | |||
-- Item name resolution | |||
-------------------------------------------------------------------------------- | |||
local function resolve_item_name(name) | |||
-- Check if there's an override for this name | |||
return ITEM_NAME_OVERRIDES[name] or name | |||
end | |||
-------------------------------------------------------------------------------- | -------------------------------------------------------------------------------- | ||
| Line 72: | Line 86: | ||
local function get_json_item(name) | local function get_json_item(name) | ||
local direct = data[ | -- Apply name override before lookup | ||
local resolved_name = resolve_item_name(name) | |||
local direct = data[resolved_name] | |||
if direct and not direct.IsDisabled then return direct end | if direct and not direct.IsDisabled then return direct end | ||
local fallback | local fallback | ||
for _, v in pairs(data) do | for _, v in pairs(data) do | ||
if v.Name == | if v.Name == resolved_name then | ||
if not v.IsDisabled then return v end | if not v.IsDisabled then return v end | ||
fallback = fallback or v | fallback = fallback or v | ||
| Line 129: | Line 146: | ||
local function get_component_of_sorted(item_input) | local function get_component_of_sorted(item_input) | ||
-- Apply name override before processing | |||
local resolved_input = resolve_item_name(item_input) | |||
local target_key | local target_key | ||
if data[ | if data[resolved_input] then | ||
target_key = | target_key = resolved_input | ||
else | else | ||
for k, v in pairs(data) do | for k, v in pairs(data) do | ||
if v.Name == | if v.Name == resolved_input and not v.IsDisabled then | ||
target_key = k | target_key = k | ||
break | break | ||
| Line 428: | Line 448: | ||
local item_name = frame.args[1] | local item_name = frame.args[1] | ||
if not item_name then return "Item name missing" end | if not item_name then return "Item name missing" end | ||
-- Resolve the item name (apply override if exists) | |||
local resolved_name = resolve_item_name(item_name) | |||
local item = get_json_item(item_name) | local item = get_json_item(item_name) | ||
| Line 438: | Line 461: | ||
insert(lines, "| enhanced = true") | insert(lines, "| enhanced = true") | ||
end | end | ||
insert(lines, "| item_name = " .. | -- Use resolved name for item_name parameter | ||
insert(lines, "| item_name = " .. resolved_name) | |||
if item.StreetBrawl == true then | if item.StreetBrawl == true then | ||
| Line 457: | Line 481: | ||
if enhanced then | if enhanced then | ||
val = format_value_enhanced( | val = format_value_enhanced( | ||
resolved_name, obj.Key, obj.Value, obj.Type, | |||
obj.LocTokenOverride, nil, false, obj.UsageFlags, | obj.LocTokenOverride, nil, false, obj.UsageFlags, | ||
true -- disable_attr | true -- disable_attr | ||
| Line 479: | Line 503: | ||
if enhanced then | if enhanced then | ||
val = format_value_enhanced( | val = format_value_enhanced( | ||
resolved_name, obj.Key, obj.Value, obj.Type, | |||
obj.LocTokenOverride, nil, false, obj.UsageFlags, | obj.LocTokenOverride, nil, false, obj.UsageFlags, | ||
true -- disable_attr | true -- disable_attr | ||
| Line 500: | Line 524: | ||
------------------------------------------------------------------ | ------------------------------------------------------------------ | ||
-- Build formatters once (closures capture | -- Build formatters once (closures capture resolved_name) | ||
------------------------------------------------------------------ | ------------------------------------------------------------------ | ||
local main_formatter, alt_formatter | local main_formatter, alt_formatter | ||
| Line 510: | Line 534: | ||
end | end | ||
return format_value_enhanced( | return format_value_enhanced( | ||
resolved_name, obj.Key, obj.Value, obj.Type, | |||
obj.LocTokenOverride, false, true, obj.UsageFlags, nil, true | obj.LocTokenOverride, false, true, obj.UsageFlags, nil, true | ||
) | ) | ||
| Line 516: | Line 540: | ||
alt_formatter = function(obj) | alt_formatter = function(obj) | ||
return format_value_enhanced( | return format_value_enhanced( | ||
resolved_name, obj.Key, obj.Value, obj.Type, | |||
obj.LocTokenOverride, nil, false, obj.UsageFlags, | obj.LocTokenOverride, nil, false, obj.UsageFlags, | ||
true -- disable_attr | true -- disable_attr | ||
| Line 559: | Line 583: | ||
insert(lines, format( | insert(lines, format( | ||
"| %s%d_description = {{#invoke:Lang|get_string|%s|item_name=%s}}", | "| %s%d_description = {{#invoke:Lang|get_string|%s|item_name=%s}}", | ||
prefix, counter, loc, | prefix, counter, loc, resolved_name | ||
)) | )) | ||
end | end | ||
| Line 604: | Line 628: | ||
-- Cooldown / ChargeUp | -- Cooldown / ChargeUp | ||
local cd = format_section_cooldown(section, | local cd = format_section_cooldown(section, resolved_name, enhanced) | ||
if cd.cooldown then | if cd.cooldown then | ||
insert(lines, format("| %s%d_cooldown = %s", prefix, counter, cd.cooldown)) | insert(lines, format("| %s%d_cooldown = %s", prefix, counter, cd.cooldown)) | ||
| Line 624: | Line 648: | ||
------------------------------------------------------------------ | ------------------------------------------------------------------ | ||
for i = 1, 2 do | for i = 1, 2 do | ||
local comp = ItemData.get_component_name { args = { | local comp = ItemData.get_component_name { args = { resolved_name, i } } | ||
if comp and comp ~= "" then | if comp and comp ~= "" then | ||
insert(lines, format("| component%d_name = %s", i, comp)) | insert(lines, format("| component%d_name = %s", i, comp)) | ||