TouchyTickets/TouchyTickets/Options.cs

60 lines
1.8 KiB
C#
Raw Normal View History

2020-06-16 23:17:18 +02:00
using System.IO;
using System.Runtime.Serialization;
2020-06-22 14:13:59 +02:00
using Microsoft.Xna.Framework.Audio;
2020-06-16 23:17:18 +02:00
using Newtonsoft.Json;
namespace TouchyTickets {
[DataContract]
public class Options {
public static Options Instance { get; private set; }
[DataMember]
public int RainingTicketLimit = 300;
2020-06-22 14:13:59 +02:00
[DataMember]
public float SoundVolume {
get => this.soundVolume;
set {
this.soundVolume = value;
SoundEffect.MasterVolume = value;
}
}
private float soundVolume = 1;
2020-06-29 13:00:49 +02:00
[DataMember]
public bool WhileYouWereAwayMessage = true;
[DataMember]
public bool KeepScreenOn {
get => this.keepScreenOn;
set {
this.keepScreenOn = value;
GameImpl.Instance.Platform.SetKeepScreenOn(value);
}
}
private bool keepScreenOn;
2020-07-08 16:04:44 +02:00
[DataMember]
public bool AutoBuyEnabled = true;
[DataMember]
public int MinTicketsForAutoBuy = 50000;
2020-06-16 23:17:18 +02:00
public static void Save() {
var file = GetOptionsFile(true);
using (var stream = new JsonTextWriter(file.CreateText()))
SaveHandler.Serializer.Serialize(stream, Instance);
}
public static void Load() {
var file = GetOptionsFile(false);
if (file.Exists) {
using (var stream = new JsonTextReader(file.OpenText()))
Instance = SaveHandler.Serializer.Deserialize<Options>(stream);
} else {
Instance = new Options();
}
}
private static FileInfo GetOptionsFile(bool create) {
return new FileInfo(Path.Combine(SaveHandler.GetGameDirectory(create).FullName, "Options"));
}
}
}