Save bird states
This commit is contained in:
@@ -1,13 +1,23 @@
|
||||
using System;
|
||||
using Core.Lifecycle;
|
||||
using UnityEngine;
|
||||
|
||||
public class BirdGameStats : MonoBehaviour
|
||||
namespace PuzzleS
|
||||
{
|
||||
/// <summary>
|
||||
/// Tracks bird discovery progress in the bird finding minigame.
|
||||
/// Saves scene-specific progress using the ManagedBehaviour lifecycle system.
|
||||
/// </summary>
|
||||
public class BirdGameStats : ManagedBehaviour
|
||||
{
|
||||
public int birdsFoundInLevel;
|
||||
|
||||
// Start is called once before the first execution of Update after the MonoBehaviour is created
|
||||
void Start()
|
||||
{
|
||||
// Save system configuration
|
||||
public override bool AutoRegisterForSave => true;
|
||||
|
||||
protected override void OnManagedAwake()
|
||||
{
|
||||
// Initialize after all managers are ready
|
||||
}
|
||||
|
||||
public void BirdFound()
|
||||
@@ -15,5 +25,49 @@ public class BirdGameStats : MonoBehaviour
|
||||
birdsFoundInLevel += 1;
|
||||
}
|
||||
|
||||
#region Save/Load Lifecycle Hooks
|
||||
|
||||
protected override string OnSceneSaveRequested()
|
||||
{
|
||||
// Save scene-specific progress
|
||||
var state = new BirdGameState
|
||||
{
|
||||
birdsFoundInLevel = this.birdsFoundInLevel
|
||||
};
|
||||
return JsonUtility.ToJson(state);
|
||||
}
|
||||
|
||||
protected override void OnSceneRestoreRequested(string serializedData)
|
||||
{
|
||||
if (string.IsNullOrEmpty(serializedData))
|
||||
{
|
||||
// No saved data, keep default values
|
||||
return;
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
var state = JsonUtility.FromJson<BirdGameState>(serializedData);
|
||||
if (state != null)
|
||||
{
|
||||
birdsFoundInLevel = state.birdsFoundInLevel;
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Debug.LogWarning($"[BirdGameStats] Failed to restore state: {ex.Message}");
|
||||
}
|
||||
}
|
||||
|
||||
#endregion
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Serializable state for bird game progress
|
||||
/// </summary>
|
||||
[Serializable]
|
||||
public class BirdGameState
|
||||
{
|
||||
public int birdsFoundInLevel;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -6,6 +6,7 @@ using UnityEngine;
|
||||
using UnityEngine.Audio;
|
||||
using Core;
|
||||
using Core.Lifecycle;
|
||||
using PuzzleS;
|
||||
|
||||
public class BushAudioController : ManagedBehaviour
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user