- Удалено: MVP1, Prefab/Buildings, BuildManager/BuildGrid/BuildGhost/BuildSlot, BuildingData (ScriptableObject), HeroWalker, BuildingUI, ResourceProducer, 2D-камеры, UINavigation, редакторские инструменты 2D, _Recovery - SettlementModule: ISettlement и старая секция settlement как есть -- для переноса в 3D (MoveFrom2D) - BuildModeController: только кнопка «СТРОЙКА» / «Перенести» для 3D; загрузчики зданий -- только имена - Build Settings: City3D, WorldMap Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
52 lines
1.8 KiB
C#
52 lines
1.8 KiB
C#
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("Это здание перенести нельзя");
|
|
}
|
|
}
|