Esempio n. 1
0
 public void PushOutline(cakeslice.Outline.Colour colour)
 {
     outline.enabled = true;
     outline.colour  = colour;
     outlines.Push(colour);
     if (outlines.Count == 1 && flashRoutine != null)
     {
         flashStart = Time.time - 2 * flashPeriod / 3;
     }
 }
Esempio n. 2
0
 private IEnumerator WaitThenOutlineChain(cakeslice.Outline.Colour colour)
 {
     if (nodes.Count == 0)
     {
         yield break;
     }
     // if calculating then we could potentially try to outline inactive or destroyed nodes
     while (isCalculatingAsync)
     {
         yield return(null);
     }
     foreach (int idx in trophicSolver.MaxChainIndices)
     {
         nodes[idx].PushOutline(colour);
         toUnoutline.Add(() => nodes[idx].PopOutline());
     }
 }
Esempio n. 3
0
        private IEnumerator WaitThenOutlineLoop(cakeslice.Outline.Colour colour)
        {
            if (!FindLoops || loopSolver.MaxLoop == 0)
            {
                yield break;
            }
            // if calculating then we could potentially try to outline inactive or destroyed nodes
            while (isCalculatingAsync)
            {
                yield return(null);
            }
            for (int i = 0; i < loopSolver.MaxLoop; i++)
            {
                int src      = loopSolver.MaxLoopIndices[i];
                int tgt      = loopSolver.MaxLoopIndices[(i + 1) % loopSolver.MaxLoop];
                var loopNode = nodes[src];
                var loopLink = links[src, tgt];

                loopNode.PushOutline(colour);
                loopLink.PushOutline(colour);
                toUnoutline.Add(() => loopNode.PopOutline());
                toUnoutline.Add(() => loopLink.PopOutline());
            }
        }
Esempio n. 4
0
 public void PushOutline(cakeslice.Outline.Colour colour)
 {
     outline.enabled = true;
     outline.colour  = colour;
     outlines.Push(colour);
 }
Esempio n. 5
0
 public void OutlineLoop(cakeslice.Outline.Colour colour)
 {
     Assert.IsTrue(toUnoutline.Count == 0, "previous outline not undone");
     StartCoroutine(WaitThenOutlineLoop(colour));
 }
Esempio n. 6
0
 public void OutlineLink(int src, int tgt, cakeslice.Outline.Colour colour)
 {
     links[src, tgt].PushOutline(colour);
 }
Esempio n. 7
0
        ///////////////
        // outlining

        public void OutlineNode(int idx, cakeslice.Outline.Colour colour)
        {
            nodes[idx].PushOutline(colour);
        }