Exemplo n.º 1
0
 private void StoreValues(ref string jsonRaw)
 {
     try
     {
         List <TValue> result;
         if (_collectionSettings.DeserialzeFunc == null)
         {
             result = JsonConvert.DeserializeObject <List <TValue> >(jsonRaw);
         }
         else
         {
             result = _collectionSettings.DeserialzeFunc(jsonRaw);
         }
         InnerValues.Clear();
         foreach (var item in result)
         {
             InnerValues.TryAdd(_collectionSettings.LocateKey(item), item);
         }
     }
     catch (JsonReaderException ex)
     {
         Trace.WriteLine($"Error Deserializing {_collectionSettings.LoadType} {_collectionSettings.GetCurrentSource}, {ex.ToString()}");
         InnerValues.Clear();
     }
 }
Exemplo n.º 2
0
        public ModifiableValueSystem()
        {
            if (!typeof(E).IsEnum)
            {
                throw new ArgumentException(typeof(E).Name + " is not a Enum type!");
            }

            BasicValue    = new InnerValues();
            ModifiedValue = new InnerValues();
        }
Exemplo n.º 3
0
        public bool Unset(ushort tokenId)
        {
            //return Attributes.Remove(tokenId);
            int index = InnerKeys.IndexOf(tokenId);

            if (index >= 0)
            {
                InnerKeys.RemoveAt(index);
                InnerValues.RemoveAt(index);
                return(true);
            }
            return(false);
        }
Exemplo n.º 4
0
        public virtual void CalculateModifiedValue()
        {
            InnerValues addition   = new InnerValues();
            InnerValues multiplier = new InnerValues();
            InnerValues fixedValue = new InnerValues();

            var eValues = Enum.GetValues(typeof(E));

            for (int i = 0; i < eValues.Length; i++)
            {
                addition[(E)eValues.GetValue(i)]      = 0;
                multiplier[(E)eValues.GetValue(i)]    = 1;
                fixedValue[(E)eValues.GetValue(i)]    = float.NaN;
                ModifiedValue[(E)eValues.GetValue(i)] = BasicValue[(E)eValues.GetValue(i)];
            }

            for (int i = 0; i < modifiers.Count; i++)
            {
                switch (modifiers[i].modificationType)
                {
                case ModificationType.Add:
                    addition[modifiers[i].propertyType] += modifiers[i].value_1;
                    break;

                case ModificationType.Mul_Add:
                    multiplier[modifiers[i].propertyType] += modifiers[i].value_1;
                    break;

                case ModificationType.Set:
                    fixedValue[modifiers[i].propertyType] = modifiers[i].value_1;
                    break;
                }
            }

            for (int i = 0; i < eValues.Length; i++)
            {
                if (!float.IsNaN(fixedValue[(E)eValues.GetValue(i)]))
                {
                    ModifiedValue[(E)eValues.GetValue(i)] = fixedValue[(E)eValues.GetValue(i)];
                    continue;
                }

                ModifiedValue[(E)eValues.GetValue(i)]  = BasicValue[(E)eValues.GetValue(i)] * multiplier[(E)eValues.GetValue(i)];
                ModifiedValue[(E)eValues.GetValue(i)] += addition[(E)eValues.GetValue(i)];
            }
        }
Exemplo n.º 5
0
        public void SetBoolean(ushort tokenId)
        {
            //Attributes[tokenId] = null;

            int index = InnerKeys.IndexOf(tokenId);

            if (index < 0)
            {
                index = InnerKeys.Count;
                InnerKeys.Add(tokenId);
                InnerValues.Add(null);
            }
            else
            {
                InnerValues[index] = null;
            }
        }
Exemplo n.º 6
0
 /// <summary>
 /// Used by DomElement to (finally) set the ID value
 /// </summary>
 /// <param name="tokenId"></param>
 /// <param name="value"></param>
 internal void SetRaw(ushort tokenId, string value)
 {
     if (value == null)
     {
         Unset(tokenId);
     }
     else
     {
         //Attributes[tokenId] = value;
         int index = InnerKeys.IndexOf(tokenId);
         if (index < 0)
         {
             index = InnerKeys.Count;
             InnerKeys.Add(tokenId);
             InnerValues.Add(value);
         }
         else
         {
             InnerValues[index] = value;
         }
     }
 }
Exemplo n.º 7
0
        private byte GetByteValue(string optRef)
        {
            byte ret = 0;

            string[] tokens   = optRef.Split('.');
            int      refLevel = 0;

            if (tokens[0] == ParamDefinition.Name)
            {
                refLevel++;
            }
            ParamValue p = InnerValues.FirstOrDefault(x => x.ParamDefinition.Name == tokens[refLevel]);

            if (p != null)
            {
                if (tokens.Length > refLevel)
                {
                    refLevel++;
                    if (p.ParamDefinition.Mode == ParamModes.Property)
                    {
                        ParamValue s = p.InnerValues.FirstOrDefault(x => x.ParamDefinition.Name == tokens[refLevel]);
                        if (s != null)
                        {
                            ret = s.ByteValueList[0];
                        }
                    }
                    else
                    {
                        ret = p.ByteValueList[0];
                    }
                }
                else
                {
                    ret = p.ByteValueList[0];
                }
            }
            return(ret);
        }
 public override void Refresh()
 {
     if (!_refreshing)
     {
         lock (_refreshLock)
         {
             _refreshing = true;
             try
             {
                 var values = _loadValues(_contextStarter).ToList();
                 InnerValues.Clear();
                 foreach (var value in values)
                 {
                     InnerValues.TryAdd(value.Key, value.Value);
                 }
                 Loaded = true;
             }
             finally
             {
                 _refreshing = false;
             }
         }
     }
 }
Exemplo n.º 9
0
 public void Clear()
 {
     //Attributes.Clear();
     InnerKeys.Clear();
     InnerValues.Clear();
 }