private static void OnCompleteSceneLoad(OWScene oldScene, OWScene newScene) { DebugLog.DebugWrite($"COMPLETE SCENE LOAD ({oldScene} -> {newScene})", MessageType.Info); if (QSBCore.IsInMultiplayer) { WorldObjectManager.Rebuild(newScene); } var universe = InUniverse(newScene); OnSceneLoaded?.SafeInvoke(newScene, universe); if (universe) { OnUniverseSceneLoaded?.SafeInvoke(newScene); } }
private static void OnCompleteSceneLoad(OWScene oldScene, OWScene newScene) { DebugLog.DebugWrite($"COMPLETE SCENE LOAD ({oldScene} -> {newScene})", MessageType.Info); QSBWorldSync.RemoveWorldObjects(); var universe = InUniverse(newScene); if (QSBCore.IsInMultiplayer && universe) { // So objects have time to be deleted, made, whatever Delay.RunNextFrame(() => QSBWorldSync.BuildWorldObjects(newScene).Forget()); } OnSceneLoaded?.SafeInvoke(oldScene, newScene, universe); if (universe) { OnUniverseSceneLoaded?.SafeInvoke(oldScene, newScene); } if (newScene == OWScene.TitleScreen && QSBCore.IsInMultiplayer) { QSBNetworkManager.singleton.StopHost(); } }