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); }
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); }
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(); } } }