public KeyCode GetKeyCode(string settingName, KeyCode defaultKeyCode) { KeyCode result = defaultKeyCode; if (settingsDictionary.ContainsKey(settingName)) { try { result = (KeyCode)Enum.Parse(typeof(KeyCode), settingsDictionary[settingName]); } catch { PluginConsole.WriteLine(string.Concat(new string[] { "Error converting '", settingName, "' = '", settingsDictionary[settingName], "' to a UnityEngine.KeyCode" }), this); } } else { SetKeyCode(settingName, defaultKeyCode); } return(result); }
public bool SetKeyCode(string settingName, KeyCode keyCode) { bool result = true; if (settingsDictionary.ContainsValue(keyCode.ToString())) { result = false; PluginConsole.WriteLine("KeyCode '" + keyCode.ToString() + "' is already bound", this); } else { if (settingsDictionary.ContainsKey(settingName)) { settingsDictionary[settingName] = keyCode.ToString(); } else { settingsDictionary.Add(settingName, keyCode.ToString()); } SaveSettings(); } return(result); }
void Awake() { if (instance != null) { Destroy(this); } else { instance = this; registeredConsoleCommands = new Dictionary <string, ConsoleCommand>(); logsLocation = GlobalVars.RootFolder + "\\dcpm-logs\\"; textQueue = new Queue <string>(); consoleInput = ""; drawConsole = false; consoleKeyBind = PluginSettings.Instance.GetKeyCode("TogglePluginConsole", KeyCode.BackQuote); consoleRect = new Rect(10f, 10f, 1000f, 600f); scrollableRect = new Rect(consoleRect.left + 5f, consoleRect.top, consoleRect.width - 5f, consoleRect.height - 30f); textInputRect = new Rect(consoleRect.left + 5f, consoleRect.top + consoleRect.height - 25f, consoleRect.width - 100f, 20f); submitButtonRect = new Rect(consoleRect.left + consoleRect.width - 95f, consoleRect.top + consoleRect.height - 25f, 85f, 20f); RegisterConsoleCommand("clear", Cmd_Clear, "Clear the console history", this); RegisterConsoleCommand("listcommands", Cmd_List, "Display a list of all registered console commands", this); WriteLine("Version " + Version + " Initialized", this); } }
private PluginSettings() { settingsDictionary = new Dictionary <string, string>(); settingsLocation = GlobalVars.RootFolder + "\\dcpm-settings\\"; settingsFile = "settings.txt"; LoadSettings(); PluginConsole.WriteLine("Version " + Version + " Initialized", this); }
void LoadSettings() { if (!Directory.Exists(settingsLocation)) { Directory.CreateDirectory(settingsLocation); } if (File.Exists(settingsLocation + settingsFile)) { PluginConsole.WriteLine("Loading Dictionary from file", this); using (StreamReader streamReader = new StreamReader(new FileStream(settingsLocation + settingsFile, FileMode.OpenOrCreate, FileAccess.Read))) { while (streamReader.Peek() >= 0) { string text = streamReader.ReadLine(); string[] array = text.Split(new string[] { " = " }, StringSplitOptions.None); if (array.Length == 2) { settingsDictionary.Add(array[0], array[1]); PluginConsole.WriteLine(string.Concat(new string[] { "Added setting '", array[0], "' = '", array[1], "' to the settings dictionary" }), this); } } } PluginConsole.WriteLine("Settings Dictionary loaded from file", this); } else { PluginConsole.WriteLine("No settings file found, creating an empty one", this); } }
void SaveSettings() { if (!Directory.Exists(settingsLocation)) { Directory.CreateDirectory(settingsLocation); } try { using (StreamWriter streamWriter = new StreamWriter(new FileStream(settingsLocation + settingsFile, FileMode.Create, FileAccess.Write, FileShare.None))) { foreach (KeyValuePair <string, string> keyValuePair in settingsDictionary) { streamWriter.WriteLine("{0} = {1}", keyValuePair.Key, keyValuePair.Value); } } } catch (Exception ex) { PluginConsole.WriteLine(ex.ToString(), this); } PluginConsole.WriteLine("Settings saved to file", this); }