rimworld-animation-studio/Assets/Scripts/KeybindConfig.cs
AbstractConcept 3d859555ad UI 2.0
2022-10-12 00:22:29 -05:00

55 lines
1.7 KiB
C#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.IO;
using UnityEngine;
namespace RimWorldAnimationStudio
{
public class KeybindConfig : Singleton<KeybindConfig>
{
private static List<Keybind> keybinds = new List<Keybind>();
public void Awake()
{
string path = Path.Combine(Application.streamingAssetsPath, "keybindConfig.xml");
keybinds = XmlUtility.ReadXML<List<Keybind>>(path);
}
public List<Keybind> GetAllKeybinds()
{
return keybinds;
}
public string GetKeybindLabel(string command)
{
string label = "";
Keybind keybind = keybinds.FirstOrDefault(x => x.command == command);
if (keybind == null) return label;
List<KeyCode> keyModifiers = keybind.keyModifiers;
KeyCode keyCode = keybind.keyCode;
foreach (KeyCode modKeyCode in keyModifiers)
{
switch (modKeyCode)
{
case KeyCode.LeftShift: label += "Shift + "; break;
case KeyCode.LeftControl: label += "Ctrl + "; break;
case KeyCode.LeftAlt: label += "Alt + "; break;
case KeyCode.LeftCommand: label += "Cmd + "; break;
case KeyCode.RightShift: label += "Right shift + "; break;
case KeyCode.RightControl: label += "Right ctrl + "; break;
case KeyCode.RightAlt: label += "Right alt + "; break;
case KeyCode.RightCommand: label += "Right cmd + "; break;
}
}
return label += keyCode.ToString();
}
}
}