--- @diagnostic disable local settings = require("scripts.settings") local tape = require("scripts.tape") local versions = { ["3.0.0"] = function() rendering.clear(script.mod_name) for _, surface in pairs(game.surfaces) do for _, box in pairs(surface.find_entities_filtered({ name = "tl-highlight-box" })) do box.destroy() end end storage = {} settings.on_init() tape.on_init() end, ["3.0.3"] = function() --- @param tbl table local function migrate_tapes(tbl) for key, tape_data in pairs(tbl) do if tape_data.player.valid then tape_data.player_index = tape_data.player.index else tbl[key] = nil end end end migrate_tapes(storage.drawing) migrate_tapes(storage.editing) migrate_tapes(storage.tapes) end, ["3.1.1"] = function() for _, player in pairs(game.players) do if tape.get_tool(player) and player.controller_type == defines.controllers.character and player.character_build_distance_bonus >= 1000000 then player.character_build_distance_bonus = player.character_build_distance_bonus - 1000000 end end end, } --- @type event_handler local migrations = {} --- @param e ConfigurationChangedData function migrations.on_configuration_changed(e) local old_version = e.mod_changes[script.mod_name] and e.mod_changes[script.mod_name].old_version if not old_version then return end for version, migration in pairs(versions) do if helpers.compare_versions(version, old_version) > 0 then migration() end end end return migrations