From 92719aa29f7e2cbfdacd6defa19050ca705856c6 Mon Sep 17 00:00:00 2001 From: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com> Date: Sat, 5 Aug 2023 11:38:16 +1000 Subject: [PATCH] Shutdown grid rendering events (#4234) --- .../GameObjects/EntitySystems/GridRenderingSystem.cs | 5 +++++ Robust.Client/Graphics/Clyde/Clyde.cs | 8 ++++++++ Robust.Client/Graphics/Clyde/ClydeHeadless.cs | 5 +++++ Robust.Client/Graphics/IClydeInternal.cs | 2 ++ 4 files changed, 20 insertions(+) diff --git a/Robust.Client/GameObjects/EntitySystems/GridRenderingSystem.cs b/Robust.Client/GameObjects/EntitySystems/GridRenderingSystem.cs index 631ecf60c..e83cc5346 100644 --- a/Robust.Client/GameObjects/EntitySystems/GridRenderingSystem.cs +++ b/Robust.Client/GameObjects/EntitySystems/GridRenderingSystem.cs @@ -16,4 +16,9 @@ internal sealed class GridRenderingSystem : EntitySystem { _clyde.RegisterGridEcsEvents(); } + + public override void Shutdown() + { + _clyde.ShutdownGridEcsEvents(); + } } diff --git a/Robust.Client/Graphics/Clyde/Clyde.cs b/Robust.Client/Graphics/Clyde/Clyde.cs index 76df2fc6a..9b15ee2ff 100644 --- a/Robust.Client/Graphics/Clyde/Clyde.cs +++ b/Robust.Client/Graphics/Clyde/Clyde.cs @@ -176,6 +176,14 @@ namespace Robust.Client.Graphics.Clyde _entityManager.EventBus.SubscribeEvent(EventSource.Local, this, _updateOnGridModified); } + public void ShutdownGridEcsEvents() + { + _entityManager.EventBus.UnsubscribeEvent(EventSource.Local, this); + _entityManager.EventBus.UnsubscribeEvent(EventSource.Local, this); + _entityManager.EventBus.UnsubscribeEvent(EventSource.Local, this); + _entityManager.EventBus.UnsubscribeEvent(EventSource.Local, this); + } + private void GLInitBindings(bool gles) { _glBindingsContext = _glContext!.BindingsContext; diff --git a/Robust.Client/Graphics/Clyde/ClydeHeadless.cs b/Robust.Client/Graphics/Clyde/ClydeHeadless.cs index 9482ec084..e893bb742 100644 --- a/Robust.Client/Graphics/Clyde/ClydeHeadless.cs +++ b/Robust.Client/Graphics/Clyde/ClydeHeadless.cs @@ -88,6 +88,11 @@ namespace Robust.Client.Graphics.Clyde // Nada. } + public void ShutdownGridEcsEvents() + { + + } + public void SetWindowTitle(string title) { // Nada. diff --git a/Robust.Client/Graphics/IClydeInternal.cs b/Robust.Client/Graphics/IClydeInternal.cs index b34197540..495fee0db 100644 --- a/Robust.Client/Graphics/IClydeInternal.cs +++ b/Robust.Client/Graphics/IClydeInternal.cs @@ -65,6 +65,8 @@ namespace Robust.Client.Graphics void RegisterGridEcsEvents(); + void ShutdownGridEcsEvents(); + void RunOnWindowThread(Action action); } }