コード例 #1
0
        protected virtual List <NamedMapDescription> GetMapDescriptions(NamedGraph namedGraph)
        {
            var mapDescriptions = new List <NamedMapDescription>();

            foreach (var corridorOffsets in GetCorridorOffsets())
            {
                mapDescriptions.AddRange(GetMapDescriptions(namedGraph, corridorOffsets));
            }

            return(mapDescriptions);
        }
コード例 #2
0
        protected virtual List <NamedMapDescription> GetMapDescriptions(NamedGraph namedGraph, List <int> corridorOffsets)
        {
            var withCorridors           = corridorOffsets[0] != 0;
            var canTouch                = Options.CanTouch || !withCorridors;
            var basicRoomDescription    = GetBasicRoomDescription();
            var corridorRoomDescription = withCorridors ? GetCorridorRoomDescription(corridorOffsets) : null;
            var mapDescription          = MapDescriptionUtils.GetBasicMapDescription(namedGraph.Graph, basicRoomDescription, corridorRoomDescription, withCorridors);
            var name = MapDescriptionUtils.GetInputName(namedGraph.Name, Options.Scale, withCorridors, corridorOffsets, canTouch);

            return(new List <NamedMapDescription>()
            {
                new NamedMapDescription(mapDescription, name, withCorridors)
            });
        }
コード例 #3
0
        protected override List <NamedMapDescription> GetMapDescriptions(NamedGraph namedGraph, List <int> corridorOffsets)
        {
            var withCorridors           = corridorOffsets[0] != 0;
            var canTouch                = Options.CanTouch || !withCorridors;
            var corridorRoomDescription = withCorridors ? GetCorridorRoomDescription(corridorOffsets, roomTemplatesSet == RoomTemplatesSet.Original ? 1 : 2) : null;

            var mapDescription = new MapDescription <int>();
            var graph          = namedGraph.Graph;

            foreach (var room in graph.Vertices)
            {
                var basicRoomDescription = GetBasicRoomDescription(graph, room);
                mapDescription.AddRoom(room, basicRoomDescription);
            }

            var counter = graph.VerticesCount;

            foreach (var connection in graph.Edges)
            {
                if (withCorridors)
                {
                    mapDescription.AddRoom(counter, corridorRoomDescription);
                    mapDescription.AddConnection(connection.From, counter);
                    mapDescription.AddConnection(connection.To, counter);
                    counter++;
                }
                else
                {
                    mapDescription.AddConnection(connection.From, connection.To);
                }
            }

            var name = MapDescriptionUtils.GetInputName(namedGraph.Name, Options.Scale, withCorridors, corridorOffsets, canTouch);

            return(new List <NamedMapDescription>()
            {
                new NamedMapDescription(mapDescription, name, withCorridors)
            });
        }
コード例 #4
0
 public NamedMapDescription(IMapDescription <int> mapDescription, NamedGraph graph, bool isWithCorridors)
 {
     MapDescription  = mapDescription;
     IsWithCorridors = isWithCorridors;
     Name            = graph.Name;
 }