public void InitiateGeneration(LevelGenInput input) { _generating = true; _timeSinceLastStep = 0.0f; _input = input; switch (input.Type) { default: case LevelGenInput.GenerationType.CA: _generator = this.gameObject.AddComponent <CAGenerator>(); ((CAGenerator)_generator).MaxCaves = 1; break; case LevelGenInput.GenerationType.BSP: _generator = this.gameObject.AddComponent <BSPGenerator>(); ((BSPGenerator)_generator).ApplyParams(this.DefaultBSPParams); //((BSPGenerator)_generator). break; case LevelGenInput.GenerationType.Room: _generator = this.gameObject.AddComponent <RoomGenerator>(); ((RoomGenerator)_generator).NumberOfRooms = Random.Range(input.NumRoomsRange.X, input.NumRoomsRange.Y + 1); break; case LevelGenInput.GenerationType.CABSPCombo: _generator = this.gameObject.AddComponent <BSPPlusCAGenerator>(); ((BSPPlusCAGenerator)_generator).CAParams = this.DefaultCAParams; ((BSPPlusCAGenerator)_generator).BSPParams = this.DefaultBSPParams; break; } IntegerVector size = input.MapSizes[Random.Range(0, input.MapSizes.Length)]; this.Map.Reset(); this.Map.Width = size.X; this.Map.Height = size.Y; this.Map.FillCompletely(LevelGenMap.TileType.A); _generator.Bounds = new Rect(this.Border, this.Border, this.Map.Width - this.Border * 2, this.Map.Height - this.Border * 2); _generator.SetupGeneration(); if (_updateDelegates != null) { for (int i = 0; i < _updateDelegates.Count; ++i) { _updateDelegates[i](); } } }
public void InitiateGeneration(LevelGenInput input) { _generating = true; _timeSinceLastStep = 0.0f; _input = input; switch (input.Type) { default: case LevelGenInput.GenerationType.CA: _generator = this.gameObject.AddComponent<CAGenerator>(); ((CAGenerator)_generator).MaxCaves = 1; break; case LevelGenInput.GenerationType.BSP: _generator = this.gameObject.AddComponent<BSPGenerator>(); ((BSPGenerator)_generator).ApplyParams(this.DefaultBSPParams); //((BSPGenerator)_generator). break; case LevelGenInput.GenerationType.Room: _generator = this.gameObject.AddComponent<RoomGenerator>(); ((RoomGenerator)_generator).NumberOfRooms = Random.Range(input.NumRoomsRange.X, input.NumRoomsRange.Y + 1); break; case LevelGenInput.GenerationType.CABSPCombo: _generator = this.gameObject.AddComponent<BSPPlusCAGenerator>(); ((BSPPlusCAGenerator)_generator).CAParams = this.DefaultCAParams; ((BSPPlusCAGenerator)_generator).BSPParams = this.DefaultBSPParams; break; } IntegerVector size = input.MapSizes[Random.Range(0, input.MapSizes.Length)]; this.Map.Reset(); this.Map.Width = size.X; this.Map.Height = size.Y; this.Map.FillCompletely(LevelGenMap.TileType.A); _generator.Bounds = new Rect(this.Border, this.Border, this.Map.Width - this.Border * 2, this.Map.Height - this.Border * 2); _generator.SetupGeneration(); if (_updateDelegates != null) { for (int i = 0; i < _updateDelegates.Count; ++i) _updateDelegates[i](); } }