[Fix] Fix Smile Pause
This commit is contained in:
@@ -197,7 +197,8 @@ namespace Minesweeper.Commands
|
||||
|
||||
public void Handle(PauseCommand command)
|
||||
{
|
||||
if (gameStateService.Current == GameState.Playing)
|
||||
var state = gameStateService.Current;
|
||||
if (state == GameState.Preparing || state == GameState.Playing)
|
||||
{
|
||||
pauseService.Pause();
|
||||
}
|
||||
|
||||
@@ -20,10 +20,6 @@ namespace Minesweeper.Infrastructure
|
||||
[SerializeField] private MinesweeperScreenCatalog screenCatalog = new MinesweeperScreenCatalog();
|
||||
[SerializeField] private Transform contentRoot;
|
||||
[SerializeField] private TopPanelView topPanelView;
|
||||
[SerializeField] private MainMenuView mainMenuView;
|
||||
[SerializeField] private BoardView boardView;
|
||||
[SerializeField] private PauseView pauseView;
|
||||
[SerializeField] private ResultView resultView;
|
||||
|
||||
protected override void Configure(IContainerBuilder builder)
|
||||
{
|
||||
@@ -42,25 +38,6 @@ namespace Minesweeper.Infrastructure
|
||||
builder.Register<CellViewFactory>(Lifetime.Singleton).As<ICellViewFactory>();
|
||||
|
||||
var screenRefs = SpawnScreens();
|
||||
if (screenRefs.MainMenuView != null)
|
||||
{
|
||||
mainMenuView = screenRefs.MainMenuView;
|
||||
}
|
||||
|
||||
if (screenRefs.BoardView != null)
|
||||
{
|
||||
boardView = screenRefs.BoardView;
|
||||
}
|
||||
|
||||
if (screenRefs.PauseView != null)
|
||||
{
|
||||
pauseView = screenRefs.PauseView;
|
||||
}
|
||||
|
||||
if (screenRefs.ResultView != null)
|
||||
{
|
||||
resultView = screenRefs.ResultView;
|
||||
}
|
||||
|
||||
if (topPanelView != null)
|
||||
{
|
||||
@@ -72,37 +49,37 @@ namespace Minesweeper.Infrastructure
|
||||
builder.Register<NullTopPanelView>(Lifetime.Singleton).As<ITopPanelView>();
|
||||
}
|
||||
|
||||
if (mainMenuView != null)
|
||||
if (screenRefs.MainMenuView != null)
|
||||
{
|
||||
builder.RegisterComponent(mainMenuView).As<IMainMenuView>();
|
||||
builder.RegisterComponent(screenRefs.MainMenuView).As<IMainMenuView>();
|
||||
}
|
||||
else
|
||||
{
|
||||
builder.Register<NullMainMenuView>(Lifetime.Singleton).As<IMainMenuView>();
|
||||
}
|
||||
|
||||
if (boardView != null)
|
||||
if (screenRefs.BoardView != null)
|
||||
{
|
||||
boardView.BindConfig(resolvedUiConfig);
|
||||
builder.RegisterComponent(boardView).As<IBoardView>();
|
||||
screenRefs.BoardView.BindConfig(resolvedUiConfig);
|
||||
builder.RegisterComponent(screenRefs.BoardView).As<IBoardView>();
|
||||
}
|
||||
else
|
||||
{
|
||||
builder.Register<NullBoardView>(Lifetime.Singleton).As<IBoardView>();
|
||||
}
|
||||
|
||||
if (pauseView != null)
|
||||
if (screenRefs.PauseView != null)
|
||||
{
|
||||
builder.RegisterComponent(pauseView).As<IPauseView>();
|
||||
builder.RegisterComponent(screenRefs.PauseView).As<IPauseView>();
|
||||
}
|
||||
else
|
||||
{
|
||||
builder.Register<NullPauseView>(Lifetime.Singleton).As<IPauseView>();
|
||||
}
|
||||
|
||||
if (resultView != null)
|
||||
if (screenRefs.ResultView != null)
|
||||
{
|
||||
builder.RegisterComponent(resultView).As<IResultView>();
|
||||
builder.RegisterComponent(screenRefs.ResultView).As<IResultView>();
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
@@ -130,7 +130,7 @@ namespace Minesweeper.Presentation.Presenters
|
||||
|
||||
private void OnPauseChanged(bool isPaused)
|
||||
{
|
||||
if (isPaused && gameStateService.Current == GameState.Playing)
|
||||
if (isPaused && CanPause(gameStateService.Current))
|
||||
{
|
||||
pauseView.Show();
|
||||
}
|
||||
@@ -189,5 +189,10 @@ namespace Minesweeper.Presentation.Presenters
|
||||
{
|
||||
commandDispatcher.Dispatch(new PauseCommand());
|
||||
}
|
||||
|
||||
private static bool CanPause(GameState state)
|
||||
{
|
||||
return state == GameState.Preparing || state == GameState.Playing;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -75,11 +75,11 @@ namespace Minesweeper.Presentation.Presenters
|
||||
{
|
||||
commandDispatcher.Dispatch(new StartGameCommand());
|
||||
}
|
||||
else if (state == GameState.Playing && !pauseService.IsPaused)
|
||||
else if (CanPause(state) && !pauseService.IsPaused)
|
||||
{
|
||||
commandDispatcher.Dispatch(new PauseCommand());
|
||||
}
|
||||
else if (state == GameState.Playing && pauseService.IsPaused)
|
||||
else if (CanPause(state) && pauseService.IsPaused)
|
||||
{
|
||||
commandDispatcher.Dispatch(new ResumeCommand());
|
||||
}
|
||||
@@ -126,5 +126,10 @@ namespace Minesweeper.Presentation.Presenters
|
||||
|
||||
return SmileFaceState.Smile;
|
||||
}
|
||||
|
||||
private static bool CanPause(GameState state)
|
||||
{
|
||||
return state == GameState.Preparing || state == GameState.Playing;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user