From 5342e8018338e40d8c927e046e1e8906629b8504 Mon Sep 17 00:00:00 2001 From: Will Berry <73126355+wdberry@users.noreply.github.com> Date: Thu, 9 Mar 2023 13:45:43 -0500 Subject: [PATCH] Removed manager window from being recreated every open and close and added remote interface to manually rebuild it for people who have already run the migration that initializes it --- cybersyn/scripts/gui/manager.lua | 2 -- cybersyn/scripts/remote-interface.lua | 16 ++++++++++++++++ 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/cybersyn/scripts/gui/manager.lua b/cybersyn/scripts/gui/manager.lua index d28e180..dafe4e3 100644 --- a/cybersyn/scripts/gui/manager.lua +++ b/cybersyn/scripts/gui/manager.lua @@ -211,8 +211,6 @@ end --- @param refs table function manager.handle.manager_close(player, player_data, refs) util.close_manager_window(player, player_data, refs) - player_data.refs.manager_window.destroy() - player_data.refs = manager.create(player) end --- @param player LuaPlayer diff --git a/cybersyn/scripts/remote-interface.lua b/cybersyn/scripts/remote-interface.lua index 169889f..c24a641 100644 --- a/cybersyn/scripts/remote-interface.lua +++ b/cybersyn/scripts/remote-interface.lua @@ -243,6 +243,22 @@ function interface.update_stop_from_rail(rail, forbidden_entity, force_update) update_stop_from_rail(global, rail, forbidden_entity, force_update) end +function interface.rebuild_manager_windows() + local manager = require("scripts.gui.manager") + local manager_data = global.manager + if manager_data then + + ---@param v PlayerData + for i, v in pairs(manager_data.players) do + v.refs.manager_window.destroy() + player = game.get_player(i) + if player ~= nil then + v.refs = manager.create(player) + end + end + end +end + ------------------------------------------------------------------ --[[unsafe API]] ------------------------------------------------------------------