z_mirror/EditorExtensions

git clone https://git.raiguard.me/z_mirror/EditorExtensions

Patrick 'Quezler' MounierMerge branch 'master' into patch-1e65a4b6

Quezler/patch-1
2.4 KiB73 linesraw
1local flib_migration = require("__flib__.migration")
2
3local infinity_accumulator = require("scripts.infinity-accumulator")
4local infinity_loader = require("scripts.infinity-loader")
5local inventory_filters = require("scripts.inventory-filters")
6local inventory_sync = require("scripts.inventory-sync")
7local linked_belt = require("scripts.linked-belt")
8
9local version_migrations = {
10  ["2.0.0"] = function()
11    -- Preserve testing lab state
12    local testing_lab_state = {}
13    for player_index, player_table in pairs(storage.players) do
14      local player = game.get_player(player_index)
15      if player and player_table.lab_state and player_table.normal_state then
16        testing_lab_state[player_index] = {
17          normal = player_table.normal_state,
18          lab = player_table.lab_state,
19          player = player,
20          refresh = false,
21        }
22      end
23    end
24    -- NUKE EVERYTHING
25    storage = { testing_lab_state = testing_lab_state, wagons = storage.wagons }
26    rendering.clear("EditorExtensions")
27    for _, player in pairs(game.players) do
28      for _, gui in pairs({ player.gui.top, player.gui.left, player.gui.center, player.gui.screen, player.gui.relative }) do
29        for _, child in pairs(gui.children) do
30          if child.get_mod() == "EditorExtensions" then
31            child.destroy()
32          end
33        end
34      end
35    end
36    -- Start over
37    infinity_accumulator.on_init()
38    infinity_loader.on_init()
39    inventory_filters.on_init()
40    inventory_sync.on_init()
41    linked_belt.on_init()
42  end,
43  ["2.3.0"] = function()
44    storage.aggregate_filters = nil
45    storage.infinity_pipe_amount_type = nil
46    for _, gui in pairs(storage.infinity_pipe_gui or {}) do
47      local window = gui.elems.ee_infinity_pipe_window
48      if window and window.valid then
49        window.destroy()
50      end
51    end
52    storage.infinity_pipe_gui = nil
53  end,
54  ["2.3.1"] = function()
55    for surface_name, surface in pairs(game.surfaces) do
56      if string.find(surface_name, "EE_TESTSURFACE_") then
57        for force_name, force in pairs(game.forces) do
58          if not string.find(force_name, "EE_TESTFORCE_") then
59            force.set_surface_hidden(surface, true)
60          end
61        end
62      end
63    end
64  end,
65}
66
67local migrations = {}
68
69migrations.on_configuration_changed = function(e)
70  flib_migration.on_config_changed(e, version_migrations)
71end
72
73return migrations