Files
MVP1/Assets/Scripts/Meta/Build/BuildModeController.cs
T

52 lines
1.8 KiB
C#
Raw Normal View History

using UnityEngine;
using UnityEngine.UI;
// Кнопка «СТРОЙКА» общего HUD (HUD_Canvas, кнопка Nav_Build вызывает ToggleMode) и «Перенести» в окне здания.
// Стройку ведёт 3D-поселение: City3DController задаёт ExternalToggle / ExternalMove, пока сцена City3D открыта.
// 2D-стройка на сетке (BuildManager, BuildGrid, призрак) удалена 06.11 вместе с 2D-городом.
public class BuildModeController : MonoBehaviour
{
public static BuildModeController Instance { get; private set; }
[Tooltip("Кнопка HUD «СТРОЙКА»")]
public Button modeButton;
[Tooltip("Старое меню стройки -- прячется, не используется")]
public GameObject legacyBuildMenu;
// Своего режима стройки больше нет (он в 3D-сцене) -- всегда false
public bool IsActive => false;
public static System.Action ExternalToggle;
public static System.Action<GameObject> ExternalMove;
void Awake() { Instance = this; }
void OnDestroy()
{
if (Instance == this) Instance = null;
}
void Start()
{
if (legacyBuildMenu != null) legacyBuildMenu.SetActive(false);
}
public void ToggleMode()
{
if (ExternalToggle != null) ExternalToggle();
else UIKit.Toast("Стройка -- в городе");
}
// Открыть стройку (например, «Построить Казармы» в окне войск)
public void SetMode(bool active)
{
if (active) ToggleMode();
}
public void StartMove(GameObject building)
{
if (ExternalMove != null) ExternalMove(building);
else UIKit.Toast("Это здание перенести нельзя");
}
}