Input Screen Refactoring

Cleaned up the code for the input screen and refactored to prepare for mouse binding
Consolidated wormhole and dock keys into one "Interact" key
This commit is contained in:
Reinier Vens 2021-05-06 02:34:19 +01:00
commit 296a7f2958
47 changed files with 2676 additions and 393 deletions

View file

@ -3,19 +3,19 @@ using System.Collections.Generic;
using System.Globalization;
using MessagePack;
[MessagePackObject, Serializable]
[MessagePackObject]
public class PlayerSettings
{
[Key(0)] public string Name = "Anonymous";
[Key(1)] public SavedGame SavedRun;
[Key(2)] public TemperatureUnit TemperatureUnit = TemperatureUnit.Celsius;
[Key(3)] public int SignificantDigits = 3;
[Key(4)] public bool TutorialPassed;
[Key(5)] public Dictionary<string, string> HashedStoryFiles = new Dictionary<string, string>();
[Key(2)] public bool TutorialPassed;
[Key(3)] public Dictionary<string, string> HashedStoryFiles = new Dictionary<string, string>();
[Key(4)] public PlayerGameplaySettings GameplaySettings;
[Key(5)] public PlayerInputSettings InputSettings;
public string FormatTemperature(float t)
{
return TemperatureUnit switch
return GameplaySettings.TemperatureUnit switch
{
TemperatureUnit.Kelvin => $"{Format(t)}°K",
TemperatureUnit.Celsius => $"{Format(t - 273.15f)}°C",
@ -27,7 +27,7 @@ public class PlayerSettings
public float ParseTemperature(string s)
{
var t = float.Parse(s);
return TemperatureUnit switch
return GameplaySettings.TemperatureUnit switch
{
TemperatureUnit.Kelvin => t,
TemperatureUnit.Celsius => t + 273.15f,
@ -39,7 +39,7 @@ public class PlayerSettings
public string Format(float d)
{
var magnitude = d == 0.0f ? 0 : (int)Math.Floor(Math.Log10(Math.Abs(d))) + 1;
var digits = SignificantDigits;
var digits = GameplaySettings.SignificantDigits;
digits -= magnitude;
if (digits < 0)
digits = 0;
@ -47,4 +47,16 @@ public class PlayerSettings
var dec = Convert.ToChar(CultureInfo.CurrentCulture.NumberFormat.NumberDecimalSeparator);
return strdec.Contains(CultureInfo.CurrentCulture.NumberFormat.NumberDecimalSeparator) ? strdec.TrimEnd('0').TrimEnd(dec) : strdec;
}
}
public class PlayerGameplaySettings
{
[Key(0)] public TemperatureUnit TemperatureUnit = TemperatureUnit.Celsius;
[Key(1)] public int SignificantDigits = 3;
}
public class PlayerInputSettings
{
[Key(0)] public Dictionary<string, string> InputActionMap = new Dictionary<string, string>();
[Key(1)] public bool FiveButtonMouse;
}