/// <summary> /// Removes the custom settings factory. /// </summary> /// <param name="name">The name.</param> public void RemoveCustomSettings(string name) { if (!_customSettings.ContainsKey(name)) { throw new ArgumentException(string.Format("Custom settings \'{0}\' has not been added.", name), nameof(name)); } Editor.Log(string.Format("Remove custom editor settings \'{0}\'", name)); _customSettings.Remove(name); CustomSettingsChanged?.Invoke(); }
/// <summary> /// Adds the custom settings factory. /// </summary> /// <param name="name">The name.</param> /// <param name="factory">The factory function.</param> public void AddCustomSettings(string name, CreateCustomSettingsDelegate factory) { if (_customSettings.ContainsKey(name)) { throw new ArgumentException(string.Format("Custom settings \'{0}\' already added.", name), nameof(name)); } Editor.Log(string.Format("Add custom editor settings \'{0}\'", name)); _customSettings.Add(name, factory); if (!Options.CustomSettings.ContainsKey(name)) { Options.CustomSettings.Add(name, JsonSerializer.Serialize(factory(), typeof(object))); } CustomSettingsChanged?.Invoke(); }