Esempio n. 1
0
 public void OnDiceRendererVisible(DiceRenderer renderer, bool visible)
 {
     renderer.visible = visible; // Don't like this...
     if (visible)
     {
         // Is the renderer displayed?
         int index = FindSlot(renderer);
         if (index == -1)
         {
             // No, can it be?
             index = FindEmptySlot();
             if (index != -1)
             {
                 SetSlot(renderer, index);
             }
             // Else still can't display
         }
         // Else already displayed
     }
     else
     {
         // Is the renderer displayed?
         int index = FindSlot(renderer);
         if (index != -1)
         {
             // Yes, turn it off
             visibleRenderers[index] = null;
             SetSlot(renderer, -1);
             RecycleSlot(index);
         }
         // Else already off
     }
 }
Esempio n. 2
0
 int FindSlot(DiceRenderer diceRenderer)
 {
     for (int rendererIndex = 0; rendererIndex < visibleRenderers.Length; ++rendererIndex)
     {
         if (visibleRenderers[rendererIndex] == diceRenderer)
         {
             return(rendererIndex);
         }
     }
     return(-1);
 }
Esempio n. 3
0
 void SetSlot(DiceRenderer renderer, int index)
 {
     if (index != -1)
     {
         renderer.SetIndex(index);
         visibleRenderers[index] = renderer;
         renderer.gameObject.SetActive(true);
     }
     else
     {
         renderer.gameObject.SetActive(false);
     }
 }
Esempio n. 4
0
    public void DestroyDiceRenderer(DiceRenderer renderer)
    {
        int slot = FindSlot(renderer);

        if (slot != -1)
        {
            visibleRenderers[slot] = null;
        }
        allRenderers.Remove(renderer);
        GameObject.Destroy(renderer.gameObject);

        if (slot != -1)
        {
            RecycleSlot(slot);
        }
    }