public void LoadKeybinds() { Logger.Log("Loading user keybinds", Category.Keybindings); // Get the user's saved keybinds from PlayerPrefs string jsonKeybinds = PlayerPrefs.GetString("userKeybinds"); if (jsonKeybinds != "") { // Check if user has any saved keybinds and deserialize it from JSON // If there are any problems then just reset controls to default try { userKeybinds = JsonConvert.DeserializeObject <KeybindDict>(jsonKeybinds); } catch (Exception e) { Logger.LogWarning("Couldn't deserialize userKeybind JSON: " + e, Category.Keybindings); ResetKeybinds(); ModalPanelManager.Instance.Inform("Unable to read saved keybinds.\nThey were either corrupt or outdated, so they have been reset."); } } else { // Make a new copy of defaultKeybinds and make userKeybinds reference it Logger.Log("No saved keybinds found. Using default.", Category.Keybindings); ResetKeybinds(); } }
public KeybindDict Clone() { KeybindDict newCopy = new KeybindDict(); foreach (KeyValuePair <KeyAction, DualKeyCombo> entry in this) { newCopy.Add(entry.Key, entry.Value.Clone()); } return(newCopy); }
public void SaveKeybinds(KeybindDict newKeybinds) { Logger.Log("Saving user keybinds", Category.Keybindings); // Make userKeybinds reference the new keybinds (since KeybindDict is reference type) userKeybinds = newKeybinds; // Turn the user's keybinds into JSON string jsonKeybinds = JsonConvert.SerializeObject(userKeybinds); // Save the user's keybinds to PlayerPrefs as a JSON string PlayerPrefs.SetString("userKeybinds", jsonKeybinds); PlayerPrefs.Save(); }
public void ResetToDefaultButton() { modalPanelManager.Confirm( "Are you sure?", () => { keybindManager.ResetKeybinds(); tempKeybinds = keybindManager.userKeybinds.Clone(); PopulateKeybindScrollView(); }, "Reset" ); }
public void SaveKeybinds(KeybindDict newKeybinds, bool closeKeyBindWindow = false) { Logger.Log("Saving user keybinds", Category.Keybindings); // Make userKeybinds reference the new keybinds (since KeybinbdDict is reference type) userKeybinds = newKeybinds; // Turn the user's keybinds into JSON string jsonKeybinds = JsonConvert.SerializeObject(userKeybinds); // Save the user's keybinds to PlayerPrefs as a JSON string PlayerPrefs.SetString("userKeybinds", jsonKeybinds); // PlayerPrefs.Save(); if (closeKeyBindWindow) { GUI_IngameMenu.Instance.CloseMenuPanel(FindObjectOfType <ControlSettingsMenu>().gameObject); } }
public void LoadKeybinds() { Logger.Log("Loading user keybinds", Category.Keybindings); // Get the user's saved keybinds from PlayerPrefs string jsonKeybinds = PlayerPrefs.GetString("userKeybinds"); if (jsonKeybinds != "") { // Check if user has any saved keybinds and deserialize it from JSON // If there are any problems then just reset controls to default try { userKeybinds = JsonConvert.DeserializeObject <KeybindDict>(jsonKeybinds); // Set keybind texts when loading keybinds foreach (var keyValuePair in userKeybinds) { UIManager.UpdateKeybindText(keyValuePair.Key, keyValuePair.Value.PrimaryCombo); } } catch (Exception e) { Logger.LogWarning("Couldn't deserialize userKeybind JSON: " + e, Category.Keybindings); ResetKeybinds(); ModalPanelManager.Instance.Inform("Unable to read saved keybinds.\nThey were either corrupt or outdated, so they have been reset."); } // Properly updating user keybinds when we add or remove one var newHotkeys = defaultKeybinds.Keys.Except(userKeybinds.Keys); var deprecatedHotKeys = userKeybinds.Keys.Except(defaultKeybinds.Keys); foreach (KeyAction entry in newHotkeys) { userKeybinds.Add(entry, defaultKeybinds[entry]); } foreach (KeyAction entry in deprecatedHotKeys) { userKeybinds.Remove(entry); } } else { // Make a new copy of defaultKeybinds and make userKeybinds reference it Logger.Log("No saved keybinds found. Using default.", Category.Keybindings); ResetKeybinds(); } }
public void LoadKeybinds() { Logger.Log("Loading user keybinds", Category.Keybindings); // Get the user's saved keybinds from PlayerPrefs string jsonKeybinds = PlayerPrefs.GetString("userKeybinds"); if (jsonKeybinds != "") { // Check if user has any saved keybinds and deserialise it from JSON userKeybinds = JsonConvert.DeserializeObject <KeybindDict>(jsonKeybinds); } else { // Make a new copy of defaultKeybinds and make userKeybinds reference it userKeybinds = defaultKeybinds.Clone(); } }
public KeybindDict(KeybindDict initialDict) : base(initialDict) { // Constructor with a parameter which can use the base class constructor }
void OnEnable() { tempKeybinds = keybindManager.userKeybinds.Clone(); PopulateKeybindScrollView(); }