[Add] Screen Init & Base new menu

This commit is contained in:
2026-06-06 23:20:40 +07:00
parent 1a6f403d72
commit 7104089c00
18 changed files with 4728 additions and 3320 deletions
@@ -17,6 +17,8 @@ namespace Minesweeper.Infrastructure
{
[SerializeField] private MinesweeperGameConfig gameConfig;
[SerializeField] private MinesweeperUiConfig uiConfig;
[SerializeField] private MinesweeperScreenCatalog screenCatalog = new MinesweeperScreenCatalog();
[SerializeField] private Transform contentRoot;
[SerializeField] private TopPanelView topPanelView;
[SerializeField] private MainMenuView mainMenuView;
[SerializeField] private GameView gameView;
@@ -35,6 +37,17 @@ namespace Minesweeper.Infrastructure
builder.Register<GameStateViewAdapter>(Lifetime.Singleton).As<IGameStateViewAdapter>();
builder.Register<CellViewFactory>(Lifetime.Singleton).As<ICellViewFactory>();
var screenRefs = SpawnScreens();
if (screenRefs.MainMenuView != null)
{
mainMenuView = screenRefs.MainMenuView;
}
if (gameView != null && screenRefs.BoardPanel != null)
{
gameView.BindScreens(screenRefs);
}
if (topPanelView != null)
{
topPanelView.BindConfig(resolvedUiConfig);
@@ -100,5 +113,15 @@ namespace Minesweeper.Infrastructure
return ScriptableObject.CreateInstance<MinesweeperUiConfig>();
}
private MinesweeperScreenRefs SpawnScreens()
{
if (contentRoot == null || screenCatalog == null || !screenCatalog.IsValid)
{
return default;
}
return new MinesweeperScreenBootstrapper().Spawn(contentRoot, screenCatalog);
}
}
}