Beispiel #1
0
        public static Map SetRoom(this Map map, int x, int y, IRoom room)
        {
            if (map == null)
            {
                throw new ArgumentNullException(nameof(map));
            }
            if (room == null)
            {
                throw new ArgumentNullException(nameof(room));
            }

            map.RemoveRoomAt(x, y);
            var destinationRoom = map.CreateRoomAt(x, y);

            room.CopyTo(destinationRoom);

            return(map);
        }
Beispiel #2
0
        public Map Clone()
        {
            var clone = new Map(Width, Height, RoomWidth, RoomHeight);

            for (var x = 0; x < Width; x++)
            {
                for (var y = 0; y < Height; y++)
                {
                    if (!HasRoomAt(x, y))
                    {
                        continue;
                    }

                    var sourceRoom      = _rooms[x, y];
                    var destinationRoom = clone.CreateRoomAt(x, y);

                    Copy(sourceRoom, destinationRoom);
                }
            }

            return(clone);
        }