void Awake() { // Create the board model var boardModelFactory = new BoardModelFactory(); var boardModel = boardModelFactory.Model; // Create the board view var boardViewFactory = new BoardViewFactory(); var boardView = boardViewFactory.View; // Create the board controller var boardControllerFactory = new BoardControllerFactory(boardModel, boardView); var boardController = boardControllerFactory.Controller; // Create the block models, views and controllers var blockModelFactory = new BlockModelFactory(); var blockViewFactory = new BlockViewFactory(); var blockControllerFactory = new BlockControllerFactory(); for (int x = 0; x < BoardModel.Columns; x++) { for (int y = 0; y < BoardModel.Rows; y++) { var blockModel = blockModelFactory.CreateBlock(); blockModel.Position = new Vector2(x, y); boardModel.Blocks[x, y] = blockModel; var blockView = blockViewFactory.CreateView((boardView as BoardView).gameObject); var blockController = blockControllerFactory.CreateController(blockModel, blockView); } } }
//public List<BlockModel> generateThisRow = new List<BlockModel>(); #endregion #region Private Fields #endregion #region Getters/Setters/Constructors #endregion #region My Methods public void GenerateBlockZone(BlockZone blockZone, int offset) { // Adding +1 to the offset so that the next blockzone doesn't overlap with the last row of the last blockzone. for (int yPosition = offset + 1; yPosition <= offset + blockZone.LowYPosition; yPosition++) { for (int xPosition = blockZone.LowXPosition; xPosition <= blockZone.HighXPosition; xPosition++) { BlockModel model = BlockModelFactory .Start() .WithBlockType(WeightedRandomizer.From(blockZone.BlockProbability).TakeOne()) .WithPosition(xPosition, yPosition) .WithBlockLevelFromBlockType() .WithBlockExperienceFromBlockType() .WithBlockHPFromBlockType() .WithBlockDefenseFromBlockType() .Finish(); //Debug.Log($"{model.BlockType.BlockName}"); if (model.BlockType.BlockName != "BLANK") { blockModels.Add(model); } } } }