Esempio n. 1
0
        public float this[int level]
        {
            get
            {
                if (IsVariable)
                {
                    return(0);            //We can't index a variable.
                }
                string[] levels = KV.GetString().Split(' ');
                if (level >= levels.Length)
                {
                    return(0);                        //We don't have enough levels.
                }
                return(float.Parse(levels[level]));
            }
            set
            {
                if (IsVariable)
                {
                    return;             //Can't set a variable
                }
                string[] levels = KV.GetString().Split(' ');
                if (level >= levels.Length) //We don't have enough levels, expand to that point
                {
                    List <string> newLevels = new List <string>();
                    newLevels.AddRange(levels);
                    //Fill the array with the last value
                    for (int i = levels.Length; i < level - 1; i++)
                    {
                        newLevels.Add(levels[levels.Length - 1]);
                    }
                    newLevels.Add(value.ToString());
                    levels = newLevels.ToArray();
                }
                else
                {
                    levels[level] = value.ToString();
                }

                KV.Set(String.Join(" ", levels));
            }
        }