save tool between scenes and in save file

This commit is contained in:
2026-03-25 18:46:07 -05:00
parent 40af32939e
commit 1e0ea14ae2
9 changed files with 779 additions and 704 deletions
+3
View File
@@ -11,6 +11,7 @@ public class GameManager : MonoBehaviour
public static GameManager Instance { get; private set; }
public DialogueManager DialogueManager { get; private set; }
public TimeManager TimeManager { get; private set; }
public PlayerManager PlayerManager { get; private set; }
public Inventory Inventory { get; private set; }
public Storybools Storybools { get; private set; }
@@ -26,6 +27,7 @@ private void Awake()
if (Instance != null && Instance != this)
{
Destroy(this.gameObject);
return;
}
else
{
@@ -52,6 +54,7 @@ private void ReloadReferences()
Instance.Inventory = GetComponent<Inventory>();
Instance.TimeManager = GetComponent<TimeManager>();
Instance.PlayerManager = GetComponent<PlayerManager>();
}
/// <summary>
@@ -0,0 +1,25 @@
using UnityEngine;
// Handles scene-persistent player data
public class PlayerManager : MonoBehaviour
{
public int CurrentToolIndex;
#region Player Data Save/Load
public void SavePlayerData(ref PlayerSaveData data)
{
data.activeToolIndex = GameManager.Instance.PlayerManager.CurrentToolIndex;
}
public void LoadPlayerData(PlayerSaveData data)
{
GameManager.Instance.PlayerManager.CurrentToolIndex = data.activeToolIndex;
}
#endregion
}
[System.Serializable]
public struct PlayerSaveData
{
public int activeToolIndex;
}
@@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: f9c9dde58f68b5e4d9fc0036b990c481
+3
View File
@@ -13,6 +13,7 @@ public struct SaveData
public StoryboolSaveData StoryboolData;
public InventorySaveData InventorySaveData;
public TimeSaveData TimeSaveData;
public PlayerSaveData PlayerSaveData;
}
public static string SaveFileName()
@@ -45,6 +46,7 @@ private static void HandleSaveData()
GameManager.Instance.SaveStoryBools(ref _saveData.StoryboolData);
GameManager.Instance.Inventory.SaveInventory(ref _saveData.InventorySaveData);
GameManager.Instance.TimeManager.SaveTime(ref _saveData.TimeSaveData);
GameManager.Instance.PlayerManager.SavePlayerData(ref _saveData.PlayerSaveData);
QuestRegistry.Instance.SaveQuestData(ref _saveData.QuestData);
}
@@ -84,6 +86,7 @@ public static void HandleLoadData()
GameManager.Instance.LoadStoryBools(_saveData.StoryboolData);
GameManager.Instance.Inventory.LoadInventory(_saveData.InventorySaveData);
GameManager.Instance.TimeManager.LoadTime(_saveData.TimeSaveData);
GameManager.Instance.PlayerManager.LoadPlayerData(_saveData.PlayerSaveData);
QuestRegistry.Instance.LoadQuestData(_saveData.QuestData);
}
}