Пример #1
0
    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]();
            }
        }
    }
Пример #2
0
	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]();
        }
    }