public WallSpawner( BuildingList buildingList, BuildingMapMatrixUpdater buildingMapMatrixUpdater, WallData wallData, MapLayerMatrixManager mapLayerMatrixManager, MapLayerMatrix mapLayerMatrixWalls ) : base(buildingList, buildingMapMatrixUpdater) { _wallData = wallData; _mapLayerMatrixManager = mapLayerMatrixManager; _mapLayerMatrixWalls = mapLayerMatrixWalls; }
public TowerSpawner( BuildingList buildingList, BuildingMapMatrixUpdater buildingMapMatrixUpdater ) : base(buildingList, buildingMapMatrixUpdater) { }
protected BuildingSpawner(BuildingList buildingList, BuildingMapMatrixUpdater buildingMapMatrixUpdater) { _buildingList = buildingList; _buildingMapMatrixUpdater = buildingMapMatrixUpdater; }
public void Awake() { //config var terrainData = terrain.terrainData; int mapWidth = terrainData.heightmapResolution; int mapHeight = terrainData.heightmapResolution; //lists var buildingList = new BuildingList(); //matrices var mapLayerMatrixManager = new MapLayerMatrixManager(); var mapLayerMatrixBuildings = new MapLayerMatrix((short)mapWidth, (short)mapHeight); var mapLayerMatrixWalls = new MapLayerMatrix((short)mapWidth, (short)mapHeight); var mapLayerMatrixWallsEditor = new MapLayerMatrix((short)mapWidth, (short)mapHeight); var terrainHitter = new TerrainHitter(); cameraManager.Init(terrainHitter); var terrainPositionsFromCameraBoundariesGetter = new TerrainPositionsFromCameraBoundariesGetter(terrainHitter, cameraComponent); buildingsTypesList.Init(); var buildingAreaGetter = new BuildingAreaGetter(buildingsTypesList); var buildingMapMatrixUpdater = new BuildingMapMatrixUpdater( buildingAreaGetter, mapLayerMatrixManager, mapLayerMatrixBuildings ); var wallSpawner = new WallSpawner( buildingList, buildingMapMatrixUpdater, wallData, mapLayerMatrixManager, mapLayerMatrixWalls ); var towerSpawner = new TowerSpawner(buildingList, buildingMapMatrixUpdater); var buildingFromSpawnerGetter = new BuildingFromSpawnerGetter(wallSpawner, towerSpawner); var wallSidesUpdater = new WallSidesUpdater( mapLayerMatrixManager, mapLayerMatrixWallsEditor, mapLayerMatrixWalls ); //displayers var buildingsDisplayer = new BuildingsDisplayer(objectPoolerManager, buildingList, wallSidesUpdater); objectPoolerDisplayer.Init(terrainPositionsFromCameraBoundariesGetter, buildingsDisplayer); var buildingCollisionDetector = new BuildingCollisionDetector( buildingAreaGetter, mapLayerMatrixManager, mapLayerMatrixBuildings ); var buildingByTypeSpawner = new BuildingByTypeSpawner(wallSpawner, towerSpawner); var buildingPlacer = new BuildingPlacer( buildingFromSpawnerGetter, terrainHitter, cameraComponent, buildingList, buildingsDisplayer, buildingCollisionDetector, buildingByTypeSpawner, mapLayerMatrixManager, mapLayerMatrixWallsEditor ); viewManager.Init(buildingsTypesList, buildingPlacer, canvas); }