79 lines
2.0 KiB
C#
79 lines
2.0 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.IO;
|
|
using System.Windows;
|
|
using Microsoft.Win32;
|
|
using Newtonsoft.Json;
|
|
|
|
namespace tsf_3074.Data
|
|
{
|
|
public static class Config
|
|
{
|
|
public static ConfigData Instance => _instance ?? ReadConfig();
|
|
private static ConfigData _instance;
|
|
|
|
private static ConfigData ReadConfig(string path = "config.json")
|
|
{
|
|
if (File.Exists(path))
|
|
{
|
|
return _instance = JsonConvert.DeserializeObject<ConfigData>(File.ReadAllText(path));
|
|
}
|
|
|
|
FindDestiny2(out var appPath);
|
|
if (appPath == "")
|
|
{
|
|
MessageBox.Show("You'd better to read the README document.");
|
|
Application.Current.Shutdown();
|
|
throw new Exception();
|
|
}
|
|
|
|
_instance = new ConfigData
|
|
{
|
|
Destiny2Path = appPath,
|
|
Hotkeys = new Dictionary<string, HotkeyPair>
|
|
{
|
|
{ "tsf_3074", new HotkeyPair { vk = VirtualKey.VkG, fs = VirtualKey.ModCtrl } },
|
|
{ "tsf_3074_ul", new HotkeyPair { vk = VirtualKey.VkH, fs = VirtualKey.ModCtrl } },
|
|
{ "tsf_7500", new HotkeyPair { vk = VirtualKey.VkT, fs = VirtualKey.ModCtrl } },
|
|
{ "tsf_fg", new HotkeyPair { vk = VirtualKey.VkJ, fs = VirtualKey.ModCtrl } },
|
|
{ "tsf_27k", new HotkeyPair { vk = VirtualKey.VkN, fs = VirtualKey.ModAlt } },
|
|
{ "tsf_30k", new HotkeyPair { vk = VirtualKey.VkB, fs = VirtualKey.ModAlt } },
|
|
}
|
|
};
|
|
|
|
File.WriteAllText(path, JsonConvert.SerializeObject(_instance));
|
|
|
|
return _instance;
|
|
}
|
|
|
|
public static void SaveConfig(string path = "config.json")
|
|
{
|
|
File.WriteAllText(path, JsonConvert.SerializeObject(_instance));
|
|
}
|
|
|
|
private static void FindDestiny2(out string appPath)
|
|
{
|
|
var dialog = new OpenFileDialog
|
|
{
|
|
Multiselect = false,
|
|
Title = "Select Destiny 2 Application",
|
|
Filter = "Destiny 2|destiny2.exe"
|
|
};
|
|
dialog.ShowDialog();
|
|
Console.WriteLine(dialog.FileName);
|
|
appPath = dialog.FileName;
|
|
}
|
|
}
|
|
|
|
public class ConfigData
|
|
{
|
|
public string Destiny2Path;
|
|
public Dictionary<string, HotkeyPair> Hotkeys;
|
|
}
|
|
|
|
public class HotkeyPair
|
|
{
|
|
public uint vk;
|
|
public uint fs;
|
|
}
|
|
} |