VeeGen.Generators.VGGBSPDungeon.Generate C# (CSharp) Method

Generate() public method

public Generate ( VGArea mArea ) : void
mArea VGArea
return void
        public override void Generate(VGArea mArea)
        {
            FinalAreas.Add(mArea.Clone());

            for (int i = 0; i < Splits; i++) FinalAreas = Split(FinalAreas, i%2 == 0, i == Splits - 1);

            List<VGArea> toRemove = FinalAreas.Where(t => VGUtils.GetRandomInt(0, 100) <= RemoveChancePercent).ToList();

            foreach (VGArea area in toRemove) FinalAreas.Remove(area);

            if (IsBorder) foreach (VGArea area in FinalAreas) foreach(VGTile tile in area.GetBorderTiles()) tile.Set(ValueSolid, false);

            if (IsCarved) foreach (VGArea area in FinalAreas)
                for (int iY = 1 + CarveOffset; iY < area.Height - 1 - CarveOffset; iY++)
                    for (int iX = 1 + CarveOffset; iX < area.Width - 1 - CarveOffset; iX++) area[iX, iY].Set(ValueRoom);

            if (IsConnected) for (int index = 0; index < FinalAreas.Count - 1; index++) Connect(FinalAreas[index], FinalAreas[index + 1]);

            mArea.SetBorder(1);
        }

Usage Example

コード例 #1
0
ファイル: Form1.cs プロジェクト: SuperV1234/VeeGen
        private void Button3Click(object sender, EventArgs e)
        {
            VGArea currentArea = new VGArea(World,
                Convert.ToInt32(textBox21.Text), Convert.ToInt32(textBox22.Text),
                Convert.ToInt32(textBox23.Text), Convert.ToInt32(textBox24.Text));

            VGGBSPDungeon bsp = new VGGBSPDungeon(4, 3, 1, Convert.ToInt32(textBox8.Text), Convert.ToInt32(textBox11.Text), Convert.ToInt32(textBox9.Text),
                                                  checkBox1.Checked, checkBox4.Checked, Convert.ToInt32(textBox19.Text), Convert.ToInt32(textBox20.Text), checkBox5.Checked);
            bsp.Generate(currentArea);

            richTextBox1.Text = World.WorldArea.ToString();
        }
All Usage Examples Of VeeGen.Generators.VGGBSPDungeon::Generate