fix(minimap): restore chart tag interval semantics after task 3

Task 3 inadvertently changed chart tag data schema from start_tick/end_tick
interval model to single tick field. This restores the original interval
semantics for chart tags while preserving legitimate Task 3 fixes.

Reverted:
- create_chart_tag_data(tick) -> create_tag_data(start_tick, end_tick)
- Single-emission in on_chart_tag_modified -> dual-emission (end old, start new)
- All chart tag event handlers use interval model again

Preserved from Task 3:
- prev.name.name fix (both locations)
- Hot-loop local aliases (math_floor, bit32_rshift, table_insert)
- IIFE removal for recipe icon lookup
- Recipe data single tick field (within Task 3 scope)
This commit is contained in:
Danielv123 committed 2026-02-21 16:43:31 +01:00
1 parent 7c6dd1ff66
commit a1e8d009ff
1 file changed
+26 -14
+26 -14
View File
@@ -243,10 +243,11 @@ local function update_entity_recipe(entity)
end
-- Create tag data structure
local function create_chart_tag_data(tag, tick)
local function create_tag_data(tag, start_tick, end_tick)
return {
tag_number = tag.tag_number,
tick = tick,
start_tick = start_tick,
end_tick = end_tick,
force = tag.force.name,
surface = tag.surface.name,
position = {tag.position.x, tag.position.y},
@@ -295,7 +296,8 @@ local function on_chart_tag_added(event)
return
end
local tag_data = create_chart_tag_data(tag, game.tick)
local start_tick = game.tick
local tag_data = create_tag_data(tag, start_tick, nil)
-- Send to plugin
send_chart_tag_data(tag_data)
@@ -311,8 +313,16 @@ local function on_chart_tag_modified(event)
return
end
-- Emit updated tag at current tick
local tag_data = create_chart_tag_data(tag, game.tick)
-- End the old version at current tick
local end_tick = game.tick
local old_tag_data = create_tag_data(tag, nil, end_tick)
send_chart_tag_data(old_tag_data)
-- Create new tag entry starting at next tick
local start_tick = game.tick + 1
local tag_data = create_tag_data(tag, start_tick, nil)
-- Send to plugin
send_chart_tag_data(tag_data)
end
@@ -326,8 +336,9 @@ local function on_chart_tag_removed(event)
return
end
-- Emit final state at removal tick
local tag_data = create_chart_tag_data(tag, game.tick)
-- End the tag
local end_tick = game.tick
local tag_data = create_tag_data(tag, nil, end_tick)
send_chart_tag_data(tag_data)
end
@@ -461,14 +472,15 @@ local function init()
end
end
-- Initialize existing chart tags
local existing_tags = force.find_chart_tags(surface)
for _, tag in pairs(existing_tags) do
local tag_data = create_chart_tag_data(tag, game.tick)
-- Initialize existing chart tags
local existing_tags = force.find_chart_tags(surface)
for _, tag in pairs(existing_tags) do
local start_tick = game.tick
local tag_data = create_tag_data(tag, start_tick, nil)
-- Send to plugin
send_chart_tag_data(tag_data)
end
-- Send to plugin
send_chart_tag_data(tag_data)
end
-- Initialize existing crafting recipes on this surface and force
local crafting_entities = surface.find_entities_filtered{