diff --git a/engine/Sandbox.Engine/Scene/Networking/SceneNetworkSystem.cs b/engine/Sandbox.Engine/Scene/Networking/SceneNetworkSystem.cs index 395b98d9c..38dd9b79e 100644 --- a/engine/Sandbox.Engine/Scene/Networking/SceneNetworkSystem.cs +++ b/engine/Sandbox.Engine/Scene/Networking/SceneNetworkSystem.cs @@ -418,18 +418,6 @@ public override async Task SetSnapshotAsync( SnapshotMsg msg ) Time.Now = (float)msg.Time; Game.ActiveScene.UpdateTimeFromHost( msg.Time ); - foreach ( var s in msg.GameObjectSystems ) - { - var type = Game.TypeLibrary.GetTypeByIdent( s.Type ); - var system = Game.ActiveScene.GetSystemByType( type ); - - if ( system is null ) - continue; - - system.Id = s.Id; - system.ReadDataTable( s.TableData ); - } - { using var batchGroup = CallbackBatch.Batch(); @@ -457,6 +445,18 @@ public override async Task SetSnapshotAsync( SnapshotMsg msg ) } } + foreach ( var s in msg.GameObjectSystems ) + { + var type = Game.TypeLibrary.GetTypeByIdent( s.Type ); + var system = Game.ActiveScene.GetSystemByType( type ); + + if ( system is null ) + continue; + + system.Id = s.Id; + system.ReadDataTable( s.TableData ); + } + MountedVPKs?.Dispose(); MountedVPKs = null; diff --git a/engine/Sandbox.Engine/Scene/Scene/Scene.Network.cs b/engine/Sandbox.Engine/Scene/Scene/Scene.Network.cs index 842c74afe..af4846f94 100644 --- a/engine/Sandbox.Engine/Scene/Scene/Scene.Network.cs +++ b/engine/Sandbox.Engine/Scene/Scene/Scene.Network.cs @@ -53,16 +53,13 @@ internal void SceneNetworkUpdate() var connections = system.GetFilteredConnections( Connection.ChannelState.Connected ); var connectionsArray = connections as Connection[] ?? connections.ToArray(); - if ( connectionsArray.Length != 0 ) - { - var objects = networkedObjects.OfType(); + var objects = networkedObjects.OfType(); - // If we're the host, include any GameObjectSystems. - if ( Networking.IsHost ) - objects = objects.Concat( systems ); + // If we're the host, include any GameObjectSystems. + if ( Networking.IsHost ) + objects = objects.Concat( systems ); - system.DeltaSnapshots.Send( objects, connectionsArray ); - } + system.DeltaSnapshots.Send( objects, connectionsArray ); system.DeltaSnapshots.Tick(); }