SaveLoad using managed lifecycle
This commit is contained in:
committed by
Michal Pikulski
parent
3e835ed3b8
commit
b932be2232
@@ -309,18 +309,14 @@ namespace Core
|
||||
LogDebugMessage($"Broadcasting OnSceneUnloading for: {oldSceneName}");
|
||||
LifecycleManager.Instance?.BroadcastSceneUnloading(oldSceneName);
|
||||
|
||||
// PHASE 3: Broadcast save request - components save their level-specific data
|
||||
LogDebugMessage($"Broadcasting OnSaveRequested for: {oldSceneName}");
|
||||
LifecycleManager.Instance?.BroadcastSaveRequested(oldSceneName);
|
||||
|
||||
// PHASE 4: Trigger global save if save system is enabled
|
||||
// PHASE 3: Save scene-specific data via SaveLoadManager
|
||||
if (SaveLoadManager.Instance != null)
|
||||
{
|
||||
var debugSettings = DeveloperSettingsProvider.Instance.GetSettings<DebugSettings>();
|
||||
if (debugSettings.useSaveLoadSystem)
|
||||
{
|
||||
LogDebugMessage("Saving global game state");
|
||||
SaveLoadManager.Instance.Save();
|
||||
LogDebugMessage($"Saving scene data for: {oldSceneName}");
|
||||
SaveLoadManager.Instance.SaveSceneData();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -355,19 +351,30 @@ namespace Core
|
||||
SceneManager.LoadScene(BootstrapSceneName, LoadSceneMode.Additive);
|
||||
}
|
||||
|
||||
// PHASE 8: Load new gameplay scene
|
||||
// PHASE 8: Begin scene loading mode - enables priority-ordered component initialization
|
||||
LogDebugMessage($"Beginning scene load for: {newSceneName}");
|
||||
LifecycleManager.Instance?.BeginSceneLoad(newSceneName);
|
||||
|
||||
// PHASE 9: Load new gameplay scene
|
||||
await LoadSceneAsync(newSceneName, progress);
|
||||
CurrentGameplayScene = newSceneName;
|
||||
|
||||
// PHASE 9: Broadcast scene ready - components can now initialize scene-specific state
|
||||
// PHASE 10: Broadcast scene ready - processes batched components in priority order, then calls OnSceneReady
|
||||
LogDebugMessage($"Broadcasting OnSceneReady for: {newSceneName}");
|
||||
LifecycleManager.Instance?.BroadcastSceneReady(newSceneName);
|
||||
|
||||
// PHASE 10: Broadcast restore request - components restore their level-specific data
|
||||
LogDebugMessage($"Broadcasting OnRestoreRequested for: {newSceneName}");
|
||||
LifecycleManager.Instance?.BroadcastRestoreRequested(newSceneName);
|
||||
// PHASE 11: Restore scene-specific data via SaveLoadManager
|
||||
if (SaveLoadManager.Instance != null)
|
||||
{
|
||||
var debugSettings = DeveloperSettingsProvider.Instance.GetSettings<DebugSettings>();
|
||||
if (debugSettings.useSaveLoadSystem)
|
||||
{
|
||||
LogDebugMessage($"Restoring scene data for: {newSceneName}");
|
||||
SaveLoadManager.Instance.RestoreSceneData();
|
||||
}
|
||||
}
|
||||
|
||||
// PHASE 11: Only hide the loading screen if autoHideLoadingScreen is true
|
||||
// PHASE 12: Only hide the loading screen if autoHideLoadingScreen is true
|
||||
if (autoHideLoadingScreen && _loadingScreen != null)
|
||||
{
|
||||
_loadingScreen.HideLoadingScreen();
|
||||
|
||||
Reference in New Issue
Block a user