diff --git a/QSB/EyeOfTheUniverse/GalaxyMap/GalaxyMapManager.cs b/QSB/EyeOfTheUniverse/GalaxyMap/GalaxyMapManager.cs index ab50cf3b..9d52f4a9 100644 --- a/QSB/EyeOfTheUniverse/GalaxyMap/GalaxyMapManager.cs +++ b/QSB/EyeOfTheUniverse/GalaxyMap/GalaxyMapManager.cs @@ -1,10 +1,11 @@ -using QSB.WorldSync; +using QSB.Utility; +using QSB.WorldSync; using System.Linq; using UnityEngine; namespace QSB.EyeOfTheUniverse.GalaxyMap { - internal class GalaxyMapManager : MonoBehaviour + internal class GalaxyMapManager : Manager { public static GalaxyMapManager Instance { get; private set; } diff --git a/QSB/EyeOfTheUniverse/MaskSync/MaskManager.cs b/QSB/EyeOfTheUniverse/MaskSync/MaskManager.cs index f169cfc6..700744bb 100644 --- a/QSB/EyeOfTheUniverse/MaskSync/MaskManager.cs +++ b/QSB/EyeOfTheUniverse/MaskSync/MaskManager.cs @@ -9,7 +9,7 @@ using UnityEngine; namespace QSB.EyeOfTheUniverse.MaskSync { - internal class MaskManager : MonoBehaviour + internal class MaskManager : Manager { private static bool _flickering; private static float _flickerOutTime; diff --git a/QSB/Inputs/QSBInputManager.cs b/QSB/Inputs/QSBInputManager.cs index 61d7a498..5a50eac7 100644 --- a/QSB/Inputs/QSBInputManager.cs +++ b/QSB/Inputs/QSBInputManager.cs @@ -1,8 +1,9 @@ -using UnityEngine; +using QSB.Utility; +using UnityEngine; namespace QSB.Inputs { - public class QSBInputManager : MonoBehaviour + public class QSBInputManager : Manager { // TODO : finish instruments - disabled for 0.7.0 release /* diff --git a/QSB/Menus/MenuManager.cs b/QSB/Menus/MenuManager.cs index 72bfb4ad..469377b4 100644 --- a/QSB/Menus/MenuManager.cs +++ b/QSB/Menus/MenuManager.cs @@ -12,7 +12,7 @@ using UnityEngine.UI; namespace QSB.Menus { - internal class MenuManager : MonoBehaviour + internal class MenuManager : Manager { public static MenuManager Instance; diff --git a/QSB/QSBCore.cs b/QSB/QSBCore.cs index 2a69b6ba..23adcd85 100644 --- a/QSB/QSBCore.cs +++ b/QSB/QSBCore.cs @@ -94,23 +94,16 @@ namespace QSB gameObject.AddComponent(); gameObject.AddComponent(); - gameObject.AddComponent(); gameObject.AddComponent(); gameObject.AddComponent(); gameObject.AddComponent(); - gameObject.AddComponent(); - gameObject.AddComponent(); - gameObject.AddComponent(); - gameObject.AddComponent(); - gameObject.AddComponent(); gameObject.AddComponent(); - gameObject.AddComponent(); - // WorldObject managers - QSBWorldSync.Managers = typeof(WorldObjectManager).GetDerivedTypes() - .Select(x => (WorldObjectManager)gameObject.AddComponent(x)) + var managers = typeof(Manager).GetDerivedTypes() + .Select(x => (Manager)gameObject.AddComponent(x)) .ToArray(); + QSBWorldSync.Managers = managers.OfType().ToArray(); QSBPatchManager.OnPatchType += OnPatchType; QSBPatchManager.OnUnpatchType += OnUnpatchType; } diff --git a/QSB/RespawnSync/RespawnManager.cs b/QSB/RespawnSync/RespawnManager.cs index 009eb257..025cdda6 100644 --- a/QSB/RespawnSync/RespawnManager.cs +++ b/QSB/RespawnSync/RespawnManager.cs @@ -11,7 +11,7 @@ using UnityEngine; namespace QSB.RespawnSync { - internal class RespawnManager : MonoBehaviour + internal class RespawnManager : Manager { public static RespawnManager Instance; diff --git a/QSB/SatelliteSync/SatelliteProjectorManager.cs b/QSB/SatelliteSync/SatelliteProjectorManager.cs index e387384a..bed9660e 100644 --- a/QSB/SatelliteSync/SatelliteProjectorManager.cs +++ b/QSB/SatelliteSync/SatelliteProjectorManager.cs @@ -1,10 +1,11 @@ -using QSB.WorldSync; +using QSB.Utility; +using QSB.WorldSync; using System.Linq; using UnityEngine; namespace QSB.SatelliteSync { - internal class SatelliteProjectorManager : MonoBehaviour + internal class SatelliteProjectorManager : Manager { public static SatelliteProjectorManager Instance { get; private set; } diff --git a/QSB/StatueSync/StatueManager.cs b/QSB/StatueSync/StatueManager.cs index 62ed255c..e9bf90f8 100644 --- a/QSB/StatueSync/StatueManager.cs +++ b/QSB/StatueSync/StatueManager.cs @@ -6,7 +6,7 @@ using UnityEngine; namespace QSB.StatueSync { - internal class StatueManager : MonoBehaviour + internal class StatueManager : Manager { public static StatueManager Instance { get; private set; } public bool HasStartedStatueLocally; diff --git a/QSB/Utility/Manager.cs b/QSB/Utility/Manager.cs new file mode 100644 index 00000000..02d0d47d --- /dev/null +++ b/QSB/Utility/Manager.cs @@ -0,0 +1,6 @@ +using UnityEngine; + +namespace QSB.Utility +{ + public abstract class Manager : MonoBehaviour { } +} diff --git a/QSB/WorldSync/WorldObjectManager.cs b/QSB/WorldSync/WorldObjectManager.cs index f6b152c6..fe43c482 100644 --- a/QSB/WorldSync/WorldObjectManager.cs +++ b/QSB/WorldSync/WorldObjectManager.cs @@ -1,6 +1,6 @@ using Cysharp.Threading.Tasks; +using QSB.Utility; using System.Threading; -using UnityEngine; namespace QSB.WorldSync { @@ -11,7 +11,7 @@ namespace QSB.WorldSync Eye } - public abstract class WorldObjectManager : MonoBehaviour + public abstract class WorldObjectManager : Manager { /// /// when the scene does not match the type, this manager will not build its world objects