46 lines
1.3 KiB
C#
46 lines
1.3 KiB
C#
using System.Threading.Tasks;
|
|
using FlowScope.Flow;
|
|
using FlowScope.UI;
|
|
|
|
namespace FlowScope.Samples.MainMenuP0
|
|
{
|
|
public sealed class MainMenuFeature : FeatureBase
|
|
{
|
|
private readonly IUIScreenNavigator _screenNavigator;
|
|
private readonly PlayerData _playerData;
|
|
private MainMenuViewModel _viewModel;
|
|
|
|
public MainMenuFeature(IUIScreenNavigator screenNavigator, PlayerData playerData)
|
|
{
|
|
_screenNavigator = screenNavigator;
|
|
_playerData = playerData;
|
|
}
|
|
|
|
public override Task LoadAsync(FeatureContext context)
|
|
{
|
|
base.LoadAsync(context);
|
|
_viewModel = new MainMenuViewModel(_playerData);
|
|
return Task.CompletedTask;
|
|
}
|
|
|
|
public override async Task EnterAsync(FeatureContext context)
|
|
{
|
|
await _screenNavigator.PushAsync<MainMenuPanel, MainMenuViewModel>(
|
|
_viewModel,
|
|
context.CancellationToken);
|
|
}
|
|
|
|
public override Task ExitAsync(FeatureContext context)
|
|
{
|
|
_screenNavigator.Clear();
|
|
return base.ExitAsync(context);
|
|
}
|
|
|
|
public override void Dispose()
|
|
{
|
|
_viewModel = null;
|
|
base.Dispose();
|
|
}
|
|
}
|
|
}
|