コード例 #1
0
 override public void Annihilate()
 {
     // #block annihilate
     if (destroyed)
     {
         return;
     }
     else
     {
         destroyed = true;
     }
     if (worksite != null)
     {
         worksite.StopWork();
     }
     if (mainStructure != null)
     {
         mainStructure.Annihilate(true);
     }
     // end
     if (excavatingStatus == 0 & faces[4] != null)
     {
         PoolMaster.ReturnQuadToPool(faces[4].gameObject);
     }
     if (faces[0] != null)
     {
         PoolMaster.ReturnQuadToPool(faces[0].gameObject);
     }
     if (faces[1] != null)
     {
         PoolMaster.ReturnQuadToPool(faces[1].gameObject);
     }
     if (faces[2] != null)
     {
         PoolMaster.ReturnQuadToPool(faces[2].gameObject);
     }
     if (faces[3] != null)
     {
         PoolMaster.ReturnQuadToPool(faces[3].gameObject);
     }
     if (faces[5] != null)
     {
         PoolMaster.ReturnQuadToPool(faces[5].gameObject);
     }
     Destroy(gameObject);
 }
コード例 #2
0
 override public void Annihilate()
 {
     if (destroyed)
     {
         return;
     }
     else
     {
         destroyed = true;
     }
     if (cellsStatus != 0)
     {
         ClearSurface(false);
     }
     if (grassland != null)
     {
         grassland.Annihilation(true);
     }
     if (surfaceRenderer != null)
     {
         PoolMaster.ReturnQuadToPool(surfaceRenderer.gameObject);
     }
     Destroy(gameObject);
 }
コード例 #3
0
    override public void SetVisibilityMask(byte x)
    {
        byte prevMask = visibilityMask;

        // блоки, отключающиеся полностью, возвращают модели обратно в пул
        if (prevMask == 0 & x != 0) // включение
        {
            visibilityMask = x;
            for (int i = 0; i < 6; i++)
            {
                if (faces[i] == null)
                {
                    CreateFace(i);
                }
                else
                {
                    faces[i].gameObject.SetActive(true);
                }
            }
            ChangeFacesStatus(); // т.к в случае полного отключение вырубаем не рендереры, а сами объекты
        }
        else
        {
            if (prevMask != 0 & x == 0) // полное выключение
            {
                visibilityMask = 0;
                if (faces[4] != null)
                {
                    if (excavatingStatus == 0)
                    {
                        PoolMaster.ReturnQuadToPool(faces[4].gameObject); faces[4] = null;
                    }
                    else
                    {
                        faces[4].gameObject.SetActive(false);
                    }
                }
                if (faces[0] != null)
                {
                    PoolMaster.ReturnQuadToPool(faces[0].gameObject); faces[0] = null;
                }
                if (faces[1] != null)
                {
                    PoolMaster.ReturnQuadToPool(faces[1].gameObject); faces[1] = null;
                }
                if (faces[2] != null)
                {
                    PoolMaster.ReturnQuadToPool(faces[2].gameObject); faces[2] = null;
                }
                if (faces[3] != null)
                {
                    PoolMaster.ReturnQuadToPool(faces[3].gameObject); faces[3] = null;
                }
                if (faces[5] != null)
                {
                    PoolMaster.ReturnQuadToPool(faces[5].gameObject); faces[5] = null;
                }
            }
            else
            {
                visibilityMask = x;
                ChangeFacesStatus();
            }
        }
    }