void SetValue(SettingsID settingID, string value) { //validate if (IsReadOnly(settingID)) { return; } //get type var dataType = (settingID.GetType().GetMember(settingID.ToString())[0].GetCustomAttributes(typeof(DataTypeAttribute), false)[0] as DataTypeAttribute).Type; //convert var convertedValue = ParamerterConverter.ChangeType(value, dataType); //set value var id = (int)settingID; if (_settings.ContainsKey(id)) { _settings[id] = convertedValue; } else { _settings.Add(id, convertedValue); } }
public object Get(SettingsID settingID) { var id = (int)settingID; object value; if (_settings.TryGetValue(id, out value)) { return(value); } return(null); }
T Get <T>(SettingsID settingID) { var id = (int)settingID; object value; if (_settings.TryGetValue(id, out value)) { return((T)value); } return(default(T)); }
public static ImageInfo GetItemImage(SettingsID itemID) { if (itemID.IsWeapon()) { return(GameSettings.Weapons.Get(itemID).ImageInfo); } if (itemID.IsGadget()) { return(GameSettings.Gadgets.Get(itemID).ImageInfo); } if ((itemID != null) && itemID.Value.FastStartsWith("Fund.")) { return(GameSettings.Funds.Get(itemID).ImageInfo); } return(null); }
void Set <T>(SettingsID settingID, T value) { //validate var oldValue = Get <T>(settingID); bool hasChanged = !EqualityComparer <T> .Default.Equals(value, oldValue); if (!hasChanged) { return; } if (IsReadOnly(settingID)) { return; } //set var id = (int)settingID; if (_settings.ContainsKey(id)) { _settings[id] = value; } else { _settings.Add(id, value); } //send event SettingChanged?.Invoke(this, new SettingChangedEventArgs() { OldValue = oldValue, NewValue = value, WriteCommand = new SettingWriteCommand() { SettingID = (int)settingID, Value = ParamerterConverter.SerializeValue(value, true) } }); }
bool IsReadOnly(SettingsID settingID) { return(ReadOnlySettings.Exists(i => i == settingID)); }