public void InitBoard(int size_x, int size_y) { #if UNITY_EDITOR DestroyImmediate(GameObject.Find(ConstantNames.BoardItems)); DestroyImmediate(GameObject.Find(ConstantNames.FigureItems)); DestroyImmediate(GameObject.Find(ConstantNames.Board)); #else Destroy(GameObject.Find(ConstantNames.BoardItems)); Destroy(GameObject.Find(ConstantNames.FigureItems)); Destroy(GameObject.Find(ConstantNames.Board)); #endif this.board = new GameObject(ConstantNames.Board); boardItemsParent = new GameObject(ConstantNames.BoardItems); figureItemsParent = new GameObject(ConstantNames.FigureItems); trash = new GameObject(ConstantNames.Trash); StartCoroutine(SetParents( boardItemsParent.transform, figureItemsParent.transform, this.board.transform)); #if UNITY_EDITOR DestroyImmediate(GameObject.Find(ConstantNames.GameSessionView)); camera = FindObjectOfType <Camera>(); #else Destroy(GameObject.Find("GameSessionView")); camera = Camera.main; #endif var preload = FindObjectOfType <_preload>(); IBoardFactory boardFactory = new DefaultBoardFactory(); var board = boardFactory.Create(size_x, size_y); IFigureItemsInstancerFactory figureItemsInstancerFactory = new DefaultFigureItemsInstancerFactory(); var figureItemsInstancer = figureItemsInstancerFactory.Create(); IGameSessionFactory gameSessionFactory = new DefaultGameSessionFactory(); gameSession = gameSessionFactory.Create(board, figureItemsInstancer); var gameSessionView_obj = new GameObject(ConstantNames.GameSessionView); gameSessionView = gameSessionView_obj.AddComponent <DefaultGameSessionView>(); gameSessionController = new DefaultGameSessionController(gameSession, gameSessionView); IBoardWorldPosition boardWorldPosition = new DefaultBoardWorldPosition( gameSession.Board.BoardSize_X, gameSession.Board.BoardSize_Y, preload.delta_bottom_coeff, preload.delta_top_coeff, camera); ICommandsConverter commandsConverter = new DefaultCommandsConverter(); gameSessionView.InitView(gameSessionController, boardWorldPosition, commandsConverter); gameSessionView.InitBoard(); }
public DefaultGameSessionController(IGameSession gameSession, IGameSessionView gameSessionView) { GameSession = gameSession; this.gameSessionView = gameSessionView; gameSession.OnBoardChanged += UpdateBoard; }