From 804ce423ff2ac6b21ed14cfa668b2880f27888ba Mon Sep 17 00:00:00 2001 From: Mikael Dallaire Cote <110583667+0mdc@users.noreply.github.com> Date: Wed, 15 May 2024 08:03:51 -0400 Subject: [PATCH] Add loading client state. Block input when loading. --- Assets/Scripts/ClientState.cs | 1 + Assets/Scripts/InputTrackerKeyboard.cs | 6 ++++++ Assets/Scripts/InputTrackerMouse.cs | 6 ++++++ Assets/Scripts/NetworkClient.cs | 2 ++ 4 files changed, 15 insertions(+) diff --git a/Assets/Scripts/ClientState.cs b/Assets/Scripts/ClientState.cs index 3af06f8..a7c7628 100644 --- a/Assets/Scripts/ClientState.cs +++ b/Assets/Scripts/ClientState.cs @@ -11,6 +11,7 @@ public class ClientState public MouseInputData mouse; public Dictionary connection_params_dict; public int? recentServerKeyframeId = null; + public bool isLoading; } [Serializable] diff --git a/Assets/Scripts/InputTrackerKeyboard.cs b/Assets/Scripts/InputTrackerKeyboard.cs index d3553d4..2a6ec6c 100644 --- a/Assets/Scripts/InputTrackerKeyboard.cs +++ b/Assets/Scripts/InputTrackerKeyboard.cs @@ -135,6 +135,12 @@ public InputTrackerKeyboard() public void Update() { + // Don't update if loading. + if (LoadProgressTracker.Instance.IsLoading) + { + return; + } + // Record all keys that were pressed or released since the last OnEndFrame() call. // Note that multiple Unity frames may occur during that time. for (int i = 0; i < KEY_COUNT; i++) diff --git a/Assets/Scripts/InputTrackerMouse.cs b/Assets/Scripts/InputTrackerMouse.cs index 68b190d..1c6a472 100644 --- a/Assets/Scripts/InputTrackerMouse.cs +++ b/Assets/Scripts/InputTrackerMouse.cs @@ -31,6 +31,12 @@ public InputTrackerMouse(Camera camera) public void Update() { + // Don't update if loading. + if (LoadProgressTracker.Instance.IsLoading) + { + return; + } + // Record all mouse actions that occurred OnEndFrame() call. // Note that multiple Unity frames may occur during that time. int mouseIndex = 0; diff --git a/Assets/Scripts/NetworkClient.cs b/Assets/Scripts/NetworkClient.cs index 1542bbb..0c439ab 100644 --- a/Assets/Scripts/NetworkClient.cs +++ b/Assets/Scripts/NetworkClient.cs @@ -351,6 +351,8 @@ void ProcessReceivedKeyframes(string message) void UpdateClientState() { + _clientState.isLoading = LoadProgressTracker.Instance.IsLoading; + if (_clientStateProducers == null) { return;