Beispiel #1
0
        public static void Generate(IMapGrid map, Params param)
        {
            m_params = param;
            map.Init();

            // round block
            for (int x = 0; x < map.Width; x++)
                for (int y = 0; y < map.Height; y++)
                    if (x == 0 || y == 0 || x == (map.Width - 1) || y == (map.Height - 1))
                        map.SetID (x, y, MapGridTypes.ID.Blocked);
                    else
                        map.SetID (x, y, MapGridTypes.ID.Empty);

            // create rooms
            PlaceRooms(map);

            // create corridors
            PlaceCorridors(map);

            // place stairs
            PlaceStairs(map);

            // remove dead ends
            if (m_params.RemoveDeadEnd)
                RemoveDeadEnds(map);

            // final cleanup
            Cleanup(map);
        }