public TetrominoManager(BaseConfig _config) : base(_config) { //Set up Spawn system spawnConfig = (TetrominoSpawnConfig)_config; tetrominoPoolParent = new GameObject("TetrominoPool").transform; tetrominoSpritePoolParent = new GameObject("TetrominoSpritePool").transform; tetrominoSpawner = new TetrominoSpawner(spawnConfig, tetrominoPoolParent, tetrominoSpritePoolParent); CreatePool(); }
//Sets the preview factory public void SetSpawnConfig(BaseConfig config) { TetrominoSpawnConfig spawnConfig = (TetrominoSpawnConfig)config; previewTetrominoFactory = new PreviewTetrominoFactory(spawnConfig.PreviewTetrominoPrefabs, spawnConfig.MaxTetrominosInQueue, poolTransform); previewTetrominoFactory.CreatePool(); maxQueue = spawnConfig.MaxTetrominosInQueue; previewTetrominos = new Queue <PreviewTetromino>(); }
//Set Spawn connfigs public TetrominoSpawner(TetrominoSpawnConfig spawnConfig, Transform tetrominoParent, Transform spriteParent) { config = spawnConfig; switch (spawnConfig.TetrominoSpawnType) { case Enums.TetrominoSpawnType.Random: tetrominoFactory = new RandomTetrominoFactory(spawnConfig.TetrominoPrefabs, spawnConfig.TetrominoPoolAmount, tetrominoParent); break; case Enums.TetrominoSpawnType.Queued: tetrominoFactory = new QueuedTetrominoFactory(spawnConfig.TetrominoPrefabs, spawnConfig.TetrominoPoolAmount, tetrominoParent); break; } tetrominoSpritePool = new TetrominoSpritePool(spawnConfig.TetrominoPrefabs, spawnConfig.TetrominoPoolAmount, spriteParent); }