public bool TryBuildTower()
        {
            if (currentArea == null)
            {
                Log.Error("Current area is null");
                return(false);
            }

            Vector3    position = Vector3.zero;
            Quaternion rotation = currentArea.transform.rotation;

            TowerFitStatus fits = currentArea.Fits(m_GridPosition, entityDataTowerPreview.TowerData.Dimensions);

            if (fits == TowerFitStatus.Fits)
            {
                position = currentArea.GridToWorld(m_GridPosition, entityDataTowerPreview.TowerData.Dimensions);
                currentArea.Occupy(m_GridPosition, entityDataTowerPreview.TowerData.Dimensions);
                GameEntry.Event.Fire(this, BuildTowerEventArgs.Create(entityDataTowerPreview.TowerData, currentArea, m_GridPosition, position, rotation));
                return(true);
            }

            return(false);
        }