Files
MVP1/Assets/Scripts/Meta/Build/BuildModeController.cs
T
AlexanderandClaude Opus 5.5 56a5a82a8c 2D-город удалён (решение 05.11, перенос проверен): сцена MVP1, 2D-стройка, 2D-здания и камеры; перенос старых сохранений остаётся
- Удалено: 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>
2026-11-06 17:08:16 +01:00

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("Это здание перенести нельзя");
}
}