private void GenerateInternal(BaseMapBlock _block, params Point[] _objects) { var rnd = new Random(_block.RandomSeed); MapBlockHelper.Clear(_block, rnd, this, DefaultWalls); var rooms = LayerHelper.GenerateRooms(rnd, new Rct(0, 0, Constants.MAP_BLOCK_SIZE - 1, Constants.MAP_BLOCK_SIZE - 1), new List <Point>(_objects), _block.BlockId); foreach (var room in rooms) { MapBlockHelper.Fill(_block, rnd, this, DefaultEmptySpaces, room.RoomRectangle); _block.AddRoom(room); } }
public override void Fill(MapBlock _block, WorldLayer _layer) { var rnd = new Random(_block.RandomSeed); InDoorWorldCoords = Room.RoomRectangle.Inflate(-1, -1).BorderPoints.ToArray(); OutDoorWorldCoords = Room.RoomRectangle.BorderPoints.ToArray(); MapBlockHelper.Fill(_block, rnd, _layer, _layer.DefaultEmptySpaces, Room.AreaRectangle); var graves = EssenceHelper.GetAllThings <Grave>().ToArray(); foreach (var point in Room.RoomRectangle.AllPoints) { if (rnd.Next(4) == 0 && !InDoorWorldCoords.Contains(point)) { _block.AddEssence(graves.RandomItem(rnd), point); } } }