예제 #1
0
    public void GenerateCave()
    {
        cave = new Cave(Width, Height, RandomFillPercentage, BorderThickness);

        cave.Generate(UseRandomSeed ? (int)DateTimeOffset.Now.ToUnixTimeSeconds() : Seed.GetHashCode());

        for (int i = 0; i < SmoothingCount; i++)
        {
            cave.SmoothCave();
        }

        if (RemoveSmallRegions)
        {
            cave.ReplaceRegions(CaveTile.Air, CaveTile.Wall, MinimumRegionSize);
            cave.ReplaceRegions(CaveTile.Wall, CaveTile.Air, MinimumRegionSize);
        }

        if (ConnectAllRooms)
        {
            cave.ConnectAllRegionsOfType(CaveTile.Air, (int)PassageWidth);
        }

        MeshGenerator meshGenerator = GetComponent <MeshGenerator>();

        meshGenerator.GenerateMesh(cave.Tiles, 1);
    }