public void ChangeMode(SurfacePanelMode newMode)
    {
        switch (newMode)
        {
        case SurfacePanelMode.Build:
        {
            int i = 0;
            hq = colony.hq;
            buildingsLevelToggles[0].transform.parent.gameObject.SetActive(true);
            while (i < buildingsLevelToggles.Length)
            {
                if (i >= hq.level)
                {
                    buildingsLevelToggles[i].gameObject.SetActive(false);
                }
                else
                {
                    buildingsLevelToggles[i].gameObject.SetActive(true);
                    if (i == constructingLevel - 1)
                    {
                        buildingsLevelToggles[i].isOn = true;
                    }
                    else
                    {
                        buildingsLevelToggles[i].isOn = false;
                    }
                }
                i++;
            }
            SetActionPanelStatus(false);
            SetBuildPanelStatus(true);

            returnButton.gameObject.SetActive(true);
            buildingButtonsContainer.gameObject.SetActive(true);         // "surfaceBuildingPanel"
            RewriteBuildingButtons();
            mode = SurfacePanelMode.Build;
            break;
        }

        case SurfacePanelMode.SelectAction:
            if (constructionPlane.activeSelf)
            {
                SwitchConstructionPlane(false);
            }
            buildIntersectionSubmit.SetActive(false);
            switch (mode)
            {
            case SurfacePanelMode.Build: SetBuildPanelStatus(false); break;
            }

            SetActionPanelStatus(true);
            mode = SurfacePanelMode.SelectAction;
            CheckGatherButton();
            changeMaterialButton.gameObject.SetActive(IsChangeSurfaceMaterialAvalable());
            columnCreateButton.gameObject.SetActive(IsColumnAvailable() & observingSurface.pos.y < Chunk.chunkSize);
            blockCreateButton.gameObject.SetActive(colony.hq.level > 5);
            break;
        }
    }
    public void ChangeMode(SurfacePanelMode newMode)
    {
        switch (newMode)
        {
        case SurfacePanelMode.Build:
        {
            int i = 0;
            hq = colony.hq;
            buildingsLevelToggles[0].transform.parent.gameObject.SetActive(true);
            while (i < buildingsLevelToggles.Length)
            {
                if (i >= hq.level)
                {
                    buildingsLevelToggles[i].gameObject.SetActive(false);
                }
                else
                {
                    buildingsLevelToggles[i].gameObject.SetActive(true);
                    if (i == constructingLevel - 1)
                    {
                        buildingsLevelToggles[i].isOn = true;
                    }
                    else
                    {
                        buildingsLevelToggles[i].isOn = false;
                    }
                }
                i++;
            }
            SetActionPanelStatus(false);
            SetBuildPanelStatus(true);

            returnButton.gameObject.SetActive(true);
            buildingButtonsContainer.gameObject.SetActive(true);         // "surfaceBuildingPanel"
            RewriteBuildingButtons();
            mode = SurfacePanelMode.Build;
            break;
        }

        case SurfacePanelMode.SelectAction:
            if (constructionPlane.activeSelf)
            {
                SwitchConstructionPlane(false);
            }
            buildIntersectionSubmit.SetActive(false);
            switch (mode)
            {
            case SurfacePanelMode.Build: SetBuildPanelStatus(false); break;
            }

            SetActionPanelStatus(true);
            mode = SurfacePanelMode.SelectAction;
            break;
        }
    }