From c18cf0b43f5673026d765bf55647b4db32f42ca4 Mon Sep 17 00:00:00 2001 From: Mister_Nebula <41904486+misternebula@users.noreply.github.com> Date: Mon, 15 Feb 2021 10:58:21 +0000 Subject: [PATCH] fix some stuff with HasWokenUp --- QSB/Player/QSBPlayerManager.cs | 20 +++++++++++++++++++- QSB/QSBNetworkManager.cs | 2 ++ QSB/QuantumSync/QuantumManager.cs | 6 ++++-- QSB/TransformSync/PlayerTransformSync.cs | 3 ++- QuantumUNET/Logging/QLog.cs | 2 +- QuantumUNET/QNetworkBehaviour.cs | 5 +++++ 6 files changed, 33 insertions(+), 5 deletions(-) diff --git a/QSB/Player/QSBPlayerManager.cs b/QSB/Player/QSBPlayerManager.cs index a8a7d290..234bd2d3 100644 --- a/QSB/Player/QSBPlayerManager.cs +++ b/QSB/Player/QSBPlayerManager.cs @@ -12,7 +12,25 @@ namespace QSB.Player { public static class QSBPlayerManager { - public static uint LocalPlayerId => PlayerTransformSync.LocalInstance?.NetIdentity?.NetId.Value ?? uint.MaxValue; + public static uint LocalPlayerId + { + get + { + var localInstance = PlayerTransformSync.LocalInstance; + if (localInstance == null) + { + DebugLog.DebugWrite($"Error - Trying to get LocalPlayerId when the local PlayerTransformSync instance is null.", MessageType.Error); + return uint.MaxValue; + } + if (localInstance.NetIdentity == null) + { + DebugLog.DebugWrite($"Error - Trying to get LocalPlayerId when the local PlayerTransformSync instance's QNetworkIdentity is null.", MessageType.Error); + return uint.MaxValue; + } + return localInstance.NetIdentity.NetId.Value; + } + } + public static PlayerInfo LocalPlayer => GetPlayer(LocalPlayerId); public static List PlayerList { get; } = new List(); diff --git a/QSB/QSBNetworkManager.cs b/QSB/QSBNetworkManager.cs index e705236d..e01b35ad 100644 --- a/QSB/QSBNetworkManager.cs +++ b/QSB/QSBNetworkManager.cs @@ -220,6 +220,7 @@ namespace QSB QSBPatchManager.DoUnpatchType(QSBPatchTypes.OnClientConnect); _lobby.CanEditName = true; + QSBCore.HasWokenUp = false; IsReady = false; } @@ -255,6 +256,7 @@ namespace QSB QSBPlayerManager.PlayerList.ForEach(player => player.HudMarker?.Remove()); RemoveWorldObjects(); + QSBCore.HasWokenUp = false; base.OnStopServer(); } diff --git a/QSB/QuantumSync/QuantumManager.cs b/QSB/QuantumSync/QuantumManager.cs index 2a85fef1..ebbdf664 100644 --- a/QSB/QuantumSync/QuantumManager.cs +++ b/QSB/QuantumSync/QuantumManager.cs @@ -75,6 +75,8 @@ namespace QSB.QuantumSync public void OnGUI() { + GUI.Label(new Rect(220, 10, 200f, 20f), $"HasWokenUp : {QSBCore.HasWokenUp}"); + if (!QSBCore.HasWokenUp || !QSBCore.DebugMode) { return; @@ -85,8 +87,8 @@ namespace QSB.QuantumSync return; } - GUI.Label(new Rect(220, 10, 200f, 20f), $"QM Visible : {Locator.GetQuantumMoon().IsVisible()}"); - var offset = 40f; + GUI.Label(new Rect(220, 40, 200f, 20f), $"QM Visible : {Locator.GetQuantumMoon().IsVisible()}"); + var offset = 70f; var tracker = Locator.GetQuantumMoon().GetValue("_visibilityTracker"); foreach (var camera in QSBPlayerManager.GetPlayerCameras()) { diff --git a/QSB/TransformSync/PlayerTransformSync.cs b/QSB/TransformSync/PlayerTransformSync.cs index 265318cc..dea2e987 100644 --- a/QSB/TransformSync/PlayerTransformSync.cs +++ b/QSB/TransformSync/PlayerTransformSync.cs @@ -11,7 +11,8 @@ namespace QSB.TransformSync static PlayerTransformSync() => AnimControllerPatch.Init(); - public override void OnStartLocalPlayer() => LocalInstance = this; + public override void OnStartLocalPlayer() + => LocalInstance = this; protected override void OnDestroy() { diff --git a/QuantumUNET/Logging/QLog.cs b/QuantumUNET/Logging/QLog.cs index e712cff5..db105236 100644 --- a/QuantumUNET/Logging/QLog.cs +++ b/QuantumUNET/Logging/QLog.cs @@ -8,7 +8,7 @@ public const int ErrorType = 3; public const int FatalErrorType = 4; - private static int _currentLog; + private static int _currentLog = 2; private static bool _logDebug => _currentLog <= 0; private static bool _logLog => _currentLog <= 1; private static bool _logWarning => _currentLog <= 2; diff --git a/QuantumUNET/QNetworkBehaviour.cs b/QuantumUNET/QNetworkBehaviour.cs index 04c08603..30e8865d 100644 --- a/QuantumUNET/QNetworkBehaviour.cs +++ b/QuantumUNET/QNetworkBehaviour.cs @@ -31,6 +31,11 @@ namespace QuantumUNET get { QNetworkIdentity myView; + if (gameObject == null) + { + QLog.FatalError($"Trying to get QNetworkIdentity of a null gameobject?"); + return null; + } if (m_MyView == null) { m_MyView = GetComponent();