Ejemplo n.º 1
0
        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);
            }
        }
Ejemplo n.º 2
0
        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);
                }
            }
        }