using UnityEngine; using Vanguard.App; using Vanguard.Auth; using Vanguard.State; namespace Vanguard.UI { /// Владелец Canvas и переключения экранов. public sealed class AppRootView { private readonly AppConfig _config; private readonly AuthService _auth; private readonly PlayerState _player; private LoginView _login; private MetaView _meta; public AppRootView(AppConfig config, AuthService auth, PlayerState player) { _config = config; _auth = auth; _player = player; } public void Initialize() { var canvas = UiKit.CreateCanvas("Vanguard Canvas"); _login = new LoginView(canvas.transform, _config, _auth, OnAuthenticated); _meta = new MetaView(canvas.transform, _auth, _player, OnLoggedOut); ShowLogin("Проверяем сессию…"); } public void ShowLogin(string status = null) { if (_meta != null) _meta.Hide(); _login.Show(status); } public void ShowMeta() { _login.Hide(); _meta.Show(); } private void OnAuthenticated() { ShowMeta(); } private void OnLoggedOut() { ShowLogin("Сессия завершена. Войдите снова."); } } }