Пример #1
0
 public void Add(Color color, ulong timeout)
 {
     Parts.Add(new ColorPathPart {
         Color = last, ColorEnd = color, Length = timeout, Part = 1.0 / timeout
     });
     if (Parts.Count == 1)
     {
         curPart = Parts[0];
     }
     last            = color;
     Length         += timeout;
     colorCalculated = false;
 }
Пример #2
0
        public void Update()
        {
            if (Parts.Count == 0)
            {
                return;
            }
            if (Parts.Count == 1)
            {
                currentT++;
                if (currentT > curPart.Length)
                {
                    currentT = 0;
                }
                colorCalculated = false;
                return;
            }
            ulong nextC = currentT + 1;

            if (current == Parts.Count - 1 && nextC > curPart.Length && !_loop)
            {
                return;
            }
            currentT        = nextC;
            colorCalculated = false;
            if (currentT > curPart.Length)
            {
                currentT = 0;
                if (current == Parts.Count - 1 && _loop)
                {
                    current = 0;
                }
                else if (current < Parts.Count - 1)
                {
                    current++;
                }
                curPart = Parts[current];
            }
        }