private Dictionary <int, LinkerSpawner> SpawnLinkerSpawners() { Dictionary <int, LinkerSpawner> linkerSpawners = new Dictionary <int, LinkerSpawner>(); for (int spawnerColumn = 0; spawnerColumn < LevelSettings.Instance.BoardWidth; ++spawnerColumn) { GameObject go = ObjectPooler.Instance.SpawnFromPool(ObjectPoolTypes.Spawner); go.transform.position = new Vector3( gameObject.transform.position.x + spawnerColumn * (Layouts._BoardTileSize.x + Layouts._BoardPadding.x), gameObject.transform.position.y + LevelSettings.Instance.BoardHeight * (Layouts._BoardTileSize.y + Layouts._BoardPadding.y), 0 ); go.name = "Spawner_" + spawnerColumn; go.transform.parent = gameObject.transform; LinkerSpawner spawner = go.GetComponent <LinkerSpawner>(); spawner.Initialize( _LinkerLogic, new SGridCoords(spawnerColumn, 0) ); linkerSpawners.Add(spawnerColumn, spawner); } return(linkerSpawners); }
private void RefillCollumns(List <SRefillData> refillDataList) { foreach (SRefillData refillData in refillDataList) { LinkerSpawner spawner = _LinkerSpawners[refillData._Column]; if (spawner) { List <LinkerObject> linkerObjects = spawner.SpawnLinkers(refillData._EmptySpaces); for (int spawnIndex = 0; spawnIndex < linkerObjects.Count; ++spawnIndex) { LinkerObject linker = linkerObjects[spawnIndex]; SGridCoords destCoords = new SGridCoords(refillData._Column, refillData._EmptySpaces - 1 - spawnIndex); linker._GridCoords = destCoords; _LinkerObjects[destCoords._Column, destCoords._Row] = linker; linker.gameObject.transform.parent = _BoardTiles[destCoords._Column, destCoords._Row].gameObject.transform; linker.SetFalling( _FallSpeed, _BoardTiles[destCoords._Column, destCoords._Row].gameObject.transform.position, destCoords ); } } } }