Пример #1
0
        /*********
        ** Public methods
        *********/
        /// <summary>Construct an instance.</summary>
        /// <param name="type">The condition type.</param>
        /// <param name="values">Get the current values.</param>
        /// <param name="saveReader">Handles reading info from the current save.</param>
        /// <param name="mayReturnMultipleValues">Whether the root may contain multiple values.</param>
        /// <param name="allowedValues">The allowed values (or <c>null</c> if any value is allowed).</param>
        public PerPlayerValueProvider(ConditionType type, Func <Farmer, IEnumerable <string> > values, TokenSaveReader saveReader, bool mayReturnMultipleValues = false, IEnumerable <string>?allowedValues = null)
            : base(type, mayReturnMultipleValues)
        {
            this.SaveReader        = saveReader;
            this.AllowedRootValues = allowedValues != null?InvariantSets.From(allowedValues) : null;

            this.FetchValues = player => InvariantSets.From(values(player));
            this.EnableInputArguments(required: false, mayReturnMultipleValues: mayReturnMultipleValues, maxPositionalArgs: null);
        }
Пример #2
0
 /*********
 ** Public methods
 *********/
 /// <summary>Construct an instance.</summary>
 /// <param name="saveReader">Handles reading info from the current save.</param>
 public WeatherValueProvider(TokenSaveReader saveReader)
     : base(ConditionType.Weather, mayReturnMultipleValuesForRoot: false)
 {
     this.SaveReader = saveReader;
     this.EnableInputArguments(required: false, mayReturnMultipleValues: true, maxPositionalArgs: null);
 }
Пример #3
0
 /*********
 ** Public methods
 *********/
 /// <summary>Construct an instance.</summary>
 /// <param name="saveReader">Handles reading info from the current save.</param>
 public TimeValueProvider(TokenSaveReader saveReader)
     : base(ConditionType.Time, mayReturnMultipleValuesForRoot: false)
 {
     this.SaveReader     = saveReader;
     this.NormalizeValue = this.NormalizeValueImpl;
 }
Пример #4
0
 /// <summary>Construct an instance.</summary>
 /// <param name="type">The condition type.</param>
 /// <param name="value">Get the current value.</param>
 /// <param name="saveReader">Handles reading info from the current save.</param>
 /// <param name="mayReturnMultipleValues">Whether the root may contain multiple values.</param>
 /// <param name="allowedValues">The allowed values (or <c>null</c> if any value is allowed).</param>
 public PerPlayerValueProvider(ConditionType type, Func <Farmer, string?> value, TokenSaveReader saveReader, bool mayReturnMultipleValues = false, IEnumerable <string>?allowedValues = null)
     : this(type, player => BaseValueProvider.WrapOptionalValue(value(player)), saveReader, mayReturnMultipleValues, allowedValues)
 {
 }