58 lines
1.5 KiB
C#
58 lines
1.5 KiB
C#
using UnityEngine;
|
|
using Vanguard.App;
|
|
using Vanguard.Auth;
|
|
using Vanguard.State;
|
|
|
|
namespace Vanguard.UI
|
|
{
|
|
/// <summary>Владелец Canvas и переключения экранов.</summary>
|
|
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("Сессия завершена. Войдите снова.");
|
|
}
|
|
}
|
|
}
|