[Fix] Fix Smile Pause
This commit is contained in:
@@ -276,6 +276,7 @@ GameObject:
|
|||||||
- component: {fileID: 7313243575525116621}
|
- component: {fileID: 7313243575525116621}
|
||||||
- component: {fileID: 8390786300108739894}
|
- component: {fileID: 8390786300108739894}
|
||||||
- component: {fileID: 1091584581727823407}
|
- component: {fileID: 1091584581727823407}
|
||||||
|
- component: {fileID: 6241952381746257391}
|
||||||
m_Layer: 5
|
m_Layer: 5
|
||||||
m_Name: ButtonMine
|
m_Name: ButtonMine
|
||||||
m_TagString: Untagged
|
m_TagString: Untagged
|
||||||
@@ -385,3 +386,20 @@ MonoBehaviour:
|
|||||||
m_OnClick:
|
m_OnClick:
|
||||||
m_PersistentCalls:
|
m_PersistentCalls:
|
||||||
m_Calls: []
|
m_Calls: []
|
||||||
|
--- !u!114 &6241952381746257391
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 6406400753494049822}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: 2904d462d22809c499afe1842f6e6239, type: 3}
|
||||||
|
m_Name: ""
|
||||||
|
m_EditorClassIdentifier: Assembly-CSharp::Minesweeper.Presentation.Views.CellView
|
||||||
|
button: {fileID: 1091584581727823407}
|
||||||
|
backgroundImage: {fileID: 8390786300108739894}
|
||||||
|
contentRoot: {fileID: 855905148978497855}
|
||||||
|
contentImage: {fileID: 2245737607582627579}
|
||||||
|
label: {fileID: 8958233407636047794}
|
||||||
|
|||||||
@@ -636,10 +636,6 @@ MonoBehaviour:
|
|||||||
<ResultPanelPrefab>k__BackingField: {fileID: 6869455415096409219, guid: 73d5a09dc8885e64a8c20a68ea82c5dc, type: 3}
|
<ResultPanelPrefab>k__BackingField: {fileID: 6869455415096409219, guid: 73d5a09dc8885e64a8c20a68ea82c5dc, type: 3}
|
||||||
contentRoot: {fileID: 1373940536}
|
contentRoot: {fileID: 1373940536}
|
||||||
topPanelView: {fileID: 1101876296}
|
topPanelView: {fileID: 1101876296}
|
||||||
mainMenuView: {fileID: 5456992800552396061, guid: 66407cd7142d6a945b37ca8dc5e7c6b7, type: 3}
|
|
||||||
boardView: {fileID: -4096144217532421454, guid: 91c5885a4fbe47540abf4bfd814a32d0, type: 3}
|
|
||||||
pauseView: {fileID: 7010459690024596299, guid: ec358f6fec19e3b469f516bd1ade70cd, type: 3}
|
|
||||||
resultView: {fileID: -2277025653673582644, guid: 73d5a09dc8885e64a8c20a68ea82c5dc, type: 3}
|
|
||||||
--- !u!4 &1287266282
|
--- !u!4 &1287266282
|
||||||
Transform:
|
Transform:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
|
|||||||
@@ -197,7 +197,8 @@ namespace Minesweeper.Commands
|
|||||||
|
|
||||||
public void Handle(PauseCommand command)
|
public void Handle(PauseCommand command)
|
||||||
{
|
{
|
||||||
if (gameStateService.Current == GameState.Playing)
|
var state = gameStateService.Current;
|
||||||
|
if (state == GameState.Preparing || state == GameState.Playing)
|
||||||
{
|
{
|
||||||
pauseService.Pause();
|
pauseService.Pause();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -20,10 +20,6 @@ namespace Minesweeper.Infrastructure
|
|||||||
[SerializeField] private MinesweeperScreenCatalog screenCatalog = new MinesweeperScreenCatalog();
|
[SerializeField] private MinesweeperScreenCatalog screenCatalog = new MinesweeperScreenCatalog();
|
||||||
[SerializeField] private Transform contentRoot;
|
[SerializeField] private Transform contentRoot;
|
||||||
[SerializeField] private TopPanelView topPanelView;
|
[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)
|
protected override void Configure(IContainerBuilder builder)
|
||||||
{
|
{
|
||||||
@@ -42,25 +38,6 @@ namespace Minesweeper.Infrastructure
|
|||||||
builder.Register<CellViewFactory>(Lifetime.Singleton).As<ICellViewFactory>();
|
builder.Register<CellViewFactory>(Lifetime.Singleton).As<ICellViewFactory>();
|
||||||
|
|
||||||
var screenRefs = SpawnScreens();
|
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)
|
if (topPanelView != null)
|
||||||
{
|
{
|
||||||
@@ -72,37 +49,37 @@ namespace Minesweeper.Infrastructure
|
|||||||
builder.Register<NullTopPanelView>(Lifetime.Singleton).As<ITopPanelView>();
|
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
|
else
|
||||||
{
|
{
|
||||||
builder.Register<NullMainMenuView>(Lifetime.Singleton).As<IMainMenuView>();
|
builder.Register<NullMainMenuView>(Lifetime.Singleton).As<IMainMenuView>();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (boardView != null)
|
if (screenRefs.BoardView != null)
|
||||||
{
|
{
|
||||||
boardView.BindConfig(resolvedUiConfig);
|
screenRefs.BoardView.BindConfig(resolvedUiConfig);
|
||||||
builder.RegisterComponent(boardView).As<IBoardView>();
|
builder.RegisterComponent(screenRefs.BoardView).As<IBoardView>();
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
builder.Register<NullBoardView>(Lifetime.Singleton).As<IBoardView>();
|
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
|
else
|
||||||
{
|
{
|
||||||
builder.Register<NullPauseView>(Lifetime.Singleton).As<IPauseView>();
|
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
|
else
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -130,7 +130,7 @@ namespace Minesweeper.Presentation.Presenters
|
|||||||
|
|
||||||
private void OnPauseChanged(bool isPaused)
|
private void OnPauseChanged(bool isPaused)
|
||||||
{
|
{
|
||||||
if (isPaused && gameStateService.Current == GameState.Playing)
|
if (isPaused && CanPause(gameStateService.Current))
|
||||||
{
|
{
|
||||||
pauseView.Show();
|
pauseView.Show();
|
||||||
}
|
}
|
||||||
@@ -189,5 +189,10 @@ namespace Minesweeper.Presentation.Presenters
|
|||||||
{
|
{
|
||||||
commandDispatcher.Dispatch(new PauseCommand());
|
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());
|
commandDispatcher.Dispatch(new StartGameCommand());
|
||||||
}
|
}
|
||||||
else if (state == GameState.Playing && !pauseService.IsPaused)
|
else if (CanPause(state) && !pauseService.IsPaused)
|
||||||
{
|
{
|
||||||
commandDispatcher.Dispatch(new PauseCommand());
|
commandDispatcher.Dispatch(new PauseCommand());
|
||||||
}
|
}
|
||||||
else if (state == GameState.Playing && pauseService.IsPaused)
|
else if (CanPause(state) && pauseService.IsPaused)
|
||||||
{
|
{
|
||||||
commandDispatcher.Dispatch(new ResumeCommand());
|
commandDispatcher.Dispatch(new ResumeCommand());
|
||||||
}
|
}
|
||||||
@@ -126,5 +126,10 @@ namespace Minesweeper.Presentation.Presenters
|
|||||||
|
|
||||||
return SmileFaceState.Smile;
|
return SmileFaceState.Smile;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static bool CanPause(GameState state)
|
||||||
|
{
|
||||||
|
return state == GameState.Preparing || state == GameState.Playing;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user