mirror of
https://github.com/Outer-Wilds-New-Horizons/new-horizons.git
synced 2025-12-11 20:15:44 +01:00
Finish fixing save data for signals
This commit is contained in:
parent
11652e8939
commit
d1f9c831b0
23
NewHorizons/External/NewHorizonsData.cs
vendored
23
NewHorizons/External/NewHorizonsData.cs
vendored
@ -11,17 +11,18 @@ namespace NewHorizons.External
|
||||
{
|
||||
private static NewHorizonsSaveFile _saveFile;
|
||||
private static NewHorizonsProfile _activeProfile;
|
||||
private static string _activeProfileName;
|
||||
private static string _fileName = "save.json";
|
||||
|
||||
public static void Load()
|
||||
{
|
||||
var profileName = StandaloneProfileManager.SharedInstance.currentProfile.profileName;
|
||||
_activeProfileName = StandaloneProfileManager.SharedInstance.currentProfile.profileName;
|
||||
try
|
||||
{
|
||||
_saveFile = Main.Instance.ModHelper.Storage.Load<NewHorizonsSaveFile>(_fileName);
|
||||
if (!_saveFile.Profiles.ContainsKey(profileName)) _saveFile.Profiles.Add(profileName, new NewHorizonsProfile());
|
||||
_activeProfile = _saveFile.Profiles[profileName];
|
||||
Logger.Log($"Loaded save data for {profileName}");
|
||||
if (!_saveFile.Profiles.ContainsKey(_activeProfileName)) _saveFile.Profiles.Add(_activeProfileName, new NewHorizonsProfile());
|
||||
_activeProfile = _saveFile.Profiles[_activeProfileName];
|
||||
Logger.Log($"Loaded save data for {_activeProfileName}");
|
||||
}
|
||||
catch(Exception)
|
||||
{
|
||||
@ -29,10 +30,10 @@ namespace NewHorizons.External
|
||||
{
|
||||
Logger.Log($"Couldn't load save data from {_fileName}, creating a new file");
|
||||
_saveFile = new NewHorizonsSaveFile();
|
||||
_saveFile.Profiles.Add(profileName, new NewHorizonsProfile());
|
||||
_activeProfile = _saveFile.Profiles[profileName];
|
||||
_saveFile.Profiles.Add(_activeProfileName, new NewHorizonsProfile());
|
||||
_activeProfile = _saveFile.Profiles[_activeProfileName];
|
||||
Main.Instance.ModHelper.Storage.Save(_saveFile, _fileName);
|
||||
Logger.Log($"Loaded save data for {profileName}");
|
||||
Logger.Log($"Loaded save data for {_activeProfileName}");
|
||||
}
|
||||
catch(Exception e)
|
||||
{
|
||||
@ -49,8 +50,14 @@ namespace NewHorizons.External
|
||||
|
||||
public static void Reset()
|
||||
{
|
||||
if (_saveFile == null || _activeProfile == null) return;
|
||||
if (_saveFile == null || _activeProfile == null)
|
||||
{
|
||||
Load();
|
||||
}
|
||||
Logger.Log($"Reseting save data for {_activeProfileName}");
|
||||
_activeProfile = new NewHorizonsProfile();
|
||||
_saveFile.Profiles[_activeProfileName] = _activeProfile;
|
||||
|
||||
Save();
|
||||
}
|
||||
|
||||
|
||||
@ -40,6 +40,8 @@ namespace NewHorizons.Utility
|
||||
Main.Instance.ModHelper.HarmonyHelper.AddPrefix(playerDataLearnFrequency, typeof(Patches), nameof(Patches.OnPlayerDataLearnFrequency));
|
||||
var playerDataKnowsMultipleFrequencies = typeof(PlayerData).GetMethod("KnowsMultipleFrequencies");
|
||||
Main.Instance.ModHelper.HarmonyHelper.AddPrefix(playerDataKnowsMultipleFrequencies, typeof(Patches), nameof(Patches.OnPlayerDataKnowsMultipleFrequencies));
|
||||
var playerDataResetGame = typeof(PlayerData).GetMethod("ResetGame");
|
||||
Main.Instance.ModHelper.HarmonyHelper.AddPostfix(playerDataResetGame, typeof(Patches), nameof(Patches.OnPlayerDataResetGame));
|
||||
|
||||
// Postfixes
|
||||
Main.Instance.ModHelper.HarmonyHelper.AddPostfix<MapController>("Awake", typeof(Patches), nameof(Patches.OnMapControllerAwake));
|
||||
@ -297,6 +299,11 @@ namespace NewHorizons.Utility
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
public static void OnPlayerDataResetGame()
|
||||
{
|
||||
NewHorizonsData.Reset();
|
||||
}
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user