z_mirror/EditorExtensions

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

Caleb HeuerPreserve infinity wagon state5b92302

hidden-items
2.0 KiB55 linesraw
1local flib_migration = require("__flib__/migration")
2
3local aggregate_chest = require("__EditorExtensions__/scripts/aggregate-chest")
4local infinity_accumulator = require("__EditorExtensions__/scripts/infinity-accumulator")
5local infinity_loader = require("__EditorExtensions__/scripts/infinity-loader")
6local infinity_pipe = require("__EditorExtensions__/scripts/infinity-pipe")
7local inventory_filters = require("__EditorExtensions__/scripts/inventory-filters")
8local inventory_sync = require("__EditorExtensions__/scripts/inventory-sync")
9local linked_belt = require("__EditorExtensions__/scripts/linked-belt")
10
11local version_migrations = {
12  ["2.0.0"] = function()
13    -- Preserve testing lab state
14    local testing_lab_state = {}
15    for player_index, player_table in pairs(global.players) do
16      local player = game.get_player(player_index)
17      if player and player_table.lab_state and player_table.normal_state then
18        testing_lab_state[player_index] = {
19          normal = player_table.normal_state,
20          lab = player_table.lab_state,
21          player = player,
22          refresh = false,
23        }
24      end
25    end
26    -- NUKE EVERYTHING
27    global = { testing_lab_state = testing_lab_state, wagons = global.wagons }
28    rendering.clear("EditorExtensions")
29    for _, player in pairs(game.players) do
30      for _, gui in pairs({ player.gui.top, player.gui.left, player.gui.center, player.gui.screen, player.gui.relative }) do
31        for _, child in pairs(gui.children) do
32          if child.get_mod() == "EditorExtensions" then
33            child.destroy()
34          end
35        end
36      end
37    end
38    -- Start over
39    aggregate_chest.on_init()
40    infinity_accumulator.on_init()
41    infinity_loader.on_init()
42    infinity_pipe.on_init()
43    inventory_filters.on_init()
44    inventory_sync.on_init()
45    linked_belt.on_init()
46  end,
47}
48
49local migrations = {}
50
51migrations.on_configuration_changed = function(e)
52  flib_migration.on_config_changed(e, version_migrations)
53end
54
55return migrations