示例#1
0
        /// <summary>
        /// Создает настройку для данного менеджера.
        /// </summary>
        /// <typeparam name="T">Тип значения настройки.</typeparam>
        /// <param name="settingName">Идентификатор настройки.</param>
        /// <param name="settingValue">Значение настройки.</param>
        public Setting CreateSettingForManager(SettingID settingName, Object settingValue)
        {
            Setting result = new Setting(settingName, settingValue);

            this.AddSetting(result);

            return(result);
        }
示例#2
0
 public SettingValueTypeMismatchException(SettingID name, Type settingType, Type valueType) :
     base(string.Format(baseMessage + Environment.NewLine + nameNotice, name.Value) +
          Environment.NewLine +
          string.Format(typesMessage, settingType, valueType))
 {
     this.SettingID   = name;
     this.SettingType = settingType;
     this.ValueType   = valueType;
 }
示例#3
0
 /// <summary>
 /// Получает настройку по ее идентификатору.
 /// </summary>
 /// <param name="name">Идентификатор настройки.</param>
 /// <returns>Объект настройки.</returns>
 public Setting GetSetting(SettingID name)
 {
     if (this.ContainsID(name))
     {
         return(this.GetSettingByID(name));
     }
     else
     {
         throw new SettingNotFoundException(name);
     }
 }
示例#4
0
        private Setting GetSettingByID(SettingID name)
        {
            foreach (var settingID in this.Settings.Keys)
            {
                if (settingID.Value.Equals(name.Value))
                {
                    return((Setting)this.Settings[settingID]);
                }
            }

            throw new SettingNotFoundException(name);
        }
示例#5
0
        private bool ContainsID(SettingID name)
        {
            bool found = false;

            foreach (var settingID in this.Settings.Keys)
            {
                if (settingID.Value.Equals(name.Value))
                {
                    found = true;
                    break;
                }
            }
            return(found);
        }
示例#6
0
 public Setting(SettingID id, object value)
 {
     this.Name         = id;
     this.Value        = value;
     this.DefaultValue = value;
 }
示例#7
0
 public SettingValueTypeMismatchException(SettingID name) :
     base(string.Format(baseMessage + Environment.NewLine + nameNotice, name.Value))
 {
     this.SettingID = name;
 }
示例#8
0
        /// <summary>
        /// Удаляет настройку по ее имени.
        /// </summary>
        /// <param name="name"></param>
        public void DeleteSetting <T>(SettingID name)
        {
            Setting removeableSetting = GetSetting(name);

            this.Settings.Remove(removeableSetting.Name);
        }
示例#9
0
        // NOTE : Нарушение концепции инкапсуляции.
        ///// <summary>
        ///// Получает список всех настроек игры.
        ///// </summary>
        ///// <returns>Список настроек игры.</returns>
        //public IEnumerable<Setting<T>> GetSettings()
        //{
        //    return this.Settings.Values;
        //}

        /// <summary>
        /// Устанавливает настройку с заданным именем в заданное значение.
        /// </summary>
        /// <param name="name">Имя настройки.</param>
        /// <param name="value">Значение настройки.</param>
        /// <exception cref="SettingValueTypeMismatchException">Исключение,
        /// возникающее при попытке записать значение неверного типа в настройку.</exception>
        public void SetSetting(SettingID settingID, Object value)
        {
            Setting setting = GetSetting(settingID);

            setting.SetValue(value);
        }
示例#10
0
 public SettingNotFoundException(SettingID name, string message) :
     base(String.Format(message + Environment.NewLine + nameNotice, name.Value))
 {
 }
示例#11
0
 public SettingNotFoundException(SettingID name) :
     base(String.Format(baseMessage, name.Value))
 {
 }