public static Subregion FromProtoSubregion(Region region, ProtoSubregion ps) { Subregion subregion = new Subregion(); subregion.ID = ps.ID; subregion.Name = ps.Name; subregion.Color = ps.Color; subregion.Region = region; foreach (ProtoRoom pr in ps.ProtoRooms) { subregion.Rooms.Add(Room.FromProtoRoom(region, subregion, pr)); } return subregion; }
public static Room FromProtoRoom(Region region, Subregion subregion, ProtoRoom pr) { Room room = new Room(); room.ID = pr.ID; room._coordinatesXY = pr.CoordinatesXY; room._region = region; room._subregion = subregion; // sort room connections List<KeyValuePair<string, Tuple<int, int, int>>> DirectionalRoomConnectionsList = pr.DirectionalRoomConnections.ToList(); DirectionalRoomConnectionsList.Sort((x, y) => Statics.SortRoomConnections(x.Key, y.Key)); Dictionary<string, Tuple<int, int, int>> DirectionalRoomConnectionsDictionary = DirectionalRoomConnectionsList.ToDictionary((x) => x.Key, (x) => x.Value); room.DirectionalRoomConnections = new ReadOnlyDictionary<string, Tuple<int, int, int>>(DirectionalRoomConnectionsDictionary); room.RoomConnections = new ReadOnlyCollection<RoomConnection>(pr.ProtoRoomConnections); room._elevation = pr.Elevation; room._elevationcolor = pr.ElevationColor; return room; }
public Room GetRoom(Subregion currentMouseSubregion, int x, int y) { foreach (Room room in currentMouseSubregion.Rooms) { if (room.CoordinatesXY.X == x && room.CoordinatesXY.Y == y) { return room; } } return null; }