Files
barotrauma-localmods/Fast Forward/CSharp/Client/Settings.cs
2025-03-31 13:19:47 +02:00

73 lines
1.9 KiB
C#

using System;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Collections.Generic;
using System.Collections.Immutable;
using System.Linq;
using Barotrauma;
using HarmonyLib;
using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Input;
using System.IO;
using System.Xml.Linq;
namespace FastForward
{
public partial class Mod : IAssemblyPlugin
{
public static string ModSettingsFolder = "ModSettings\\";
public static string SettingsFolder = "ModSettings\\Fast Forward\\";
public static string SettingsFile = "ModSettings\\Fast Forward\\Settings.xml";
public static void createFolders()
{
if (!Directory.Exists(ModSettingsFolder)) Directory.CreateDirectory(ModSettingsFolder);
if (!Directory.Exists(SettingsFolder)) Directory.CreateDirectory(SettingsFolder);
}
public static void loadSettings()
{
try
{
if (!File.Exists(SettingsFile)) return;
XElement ff = XDocument.Load(SettingsFile).Element("FastForward");
if (ff == null) return;
if (ff.Element("Key") != null)
{
if (Enum.TryParse(typeof(Keys), ff.Element("Key").Value, out object k))
{
FFPressKey = (Keys)k;
}
}
if (ff.Element("ToggleKey") != null)
{
if (Enum.TryParse(typeof(Keys), ff.Element("ToggleKey").Value, out object k))
{
FFToggleKey = (Keys)k;
}
}
if (ff.Element("Speed") != null) int.TryParse(ff.Element("Speed").Value, out FFSpeed);
}
catch (Exception e) { log(e.Message, Color.Orange); }
}
public static void saveSettings()
{
XElement root = new XElement("FastForward",
new XElement("Key", FFPressKey),
new XElement("ToggleKey", FFToggleKey),
new XElement("Speed", FFSpeed)
);
XDocument xdoc = new XDocument(root);
xdoc.Save(SettingsFile);
}
}
}