PlayerData

This commit is contained in:
ntr committed 2023-09-04 19:01:35 +10:00
1 parent ca3994de2e
commit 0d3fb5071a
5 files changed
+79 -28

No files matched your search

+1 -24
View File
@@ -12,12 +12,7 @@ using UnityEngine.UIElements;
using SpaceRace.Shared;
public class PlayerData {
public Guid Id;
}
public class LapService {
static string playerDataPath = Path.Combine(Application.persistentDataPath, "playerData.json");
string _mapName;
PlayerData _player;
PbDTO _pb;
@@ -38,7 +33,7 @@ public class LapService {
public LapService(string mapName) {
_mapName = mapName;
LoadPlayerData();
_player = PlayerDataService.Load();
}
public IEnumerator GetLapTimes() {
@@ -107,22 +102,4 @@ public class LapService {
}
}
}
void LoadPlayerData() {
try {
string json = File.ReadAllText(playerDataPath);
_player = JsonConvert.DeserializeObject<PlayerData>(json);
Debug.Log($"Loaded player data {json}");
} catch {
Debug.Log("No existing playerData.json");
CreatePlayerData();
}
}
PlayerData CreatePlayerData() {
_player = new PlayerData { Id = Guid.NewGuid() };
Debug.Log(JsonConvert.SerializeObject(_player));
File.WriteAllText(playerDataPath, JsonConvert.SerializeObject(_player));
return _player;
}
}
+50
View File
@@ -0,0 +1,50 @@
using System;
using System.IO;
using UnityEngine;
using Newtonsoft.Json;
public class PlayerData {
public PlayerSettings Settings = new();
public Guid Id = Guid.NewGuid();
}
public class PlayerSettings {
public float ViewSens = 1.0f;
public bool InvertY = false;
}
public static class PlayerDataService {
static string storagePath = Path.Combine(Application.persistentDataPath, "playerData.json");
static PlayerDataService() {
Load();
}
public static PlayerData Persist(PlayerData data) {
Debug.Log(JsonConvert.SerializeObject(data));
File.WriteAllText(storagePath, JsonConvert.SerializeObject(data));
return data;
}
public static PlayerData Create() {
PlayerData data = new PlayerData { Id = Guid.NewGuid() };
return Persist(data);
}
public static PlayerData Load() {
try {
string json = File.ReadAllText(storagePath);
PlayerData data = JsonConvert.DeserializeObject<PlayerData>(json);
Debug.Log($"Loaded player data {json}");
if (data.Settings == null) data.Settings = new();
return Persist(data);
} catch {
Debug.Log("No existing playerData.json");
return Create();
}
}
}
+11
View File
@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: b4d8c1d0642edd2b18f5c5ff237f80c1
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
+17 -1
View File
@@ -27,6 +27,8 @@ public class MenuControls : MonoBehaviour {
SpaceRaceInput input;
PlayerData _player;
Toggle invertYToggle;
Slider viewSensSlider;
Label viewSensLabel;
@@ -45,6 +47,8 @@ public class MenuControls : MonoBehaviour {
return;
}
_player = PlayerDataService.Load();
SetupActions();
Hide();
}
@@ -118,12 +122,24 @@ public class MenuControls : MonoBehaviour {
viewSensSlider = menuDoc.rootVisualElement.Q<Slider>("viewSens");
viewSensLabel = menuDoc.rootVisualElement.Q<Label>("viewSensLabel");
viewSensSlider.value = _player.Settings.ViewSens;
invertYToggle.value = _player.Settings.InvertY;
viewSensLabel.text = $"{viewSensSlider.value:0.00}";
invertYToggle.RegisterValueChangedCallback(evt => shipControls.InvertY = evt.newValue);
invertYToggle.RegisterValueChangedCallback(evt => {
_player.Settings.InvertY = evt.newValue;
shipControls.InvertY = evt.newValue;
PlayerDataService.Persist(_player);
});
viewSensSlider.RegisterValueChangedCallback(evt => {
shipControls.ViewSens = evt.newValue;
_player.Settings.ViewSens = evt.newValue;
viewSensLabel.text = $"{evt.newValue:0.00}";
PlayerDataService.Persist(_player);
});
}
}
-3
View File
@@ -3,9 +3,6 @@
- post times to server
- backup store to json on disk in case server down
- controls
- store to user data with userid
- git lfs
- models