+ def get_view_and_seen_maps(self, maps_size, get_map, radius, view_offset):
+ m = Map(size=YX(radius*2+1, radius*2+1),
+ start_indented=(view_offset.y % 2 == 0))
+ seen_maps = []
+ for pos in m:
+ seen_pos = self.correct_double_coordinate(maps_size, (0,0),
+ pos + view_offset)
+ if seen_pos[0] not in seen_maps:
+ seen_maps += [seen_pos[0]]
+ seen_map = get_map(seen_pos[0])
+ if seen_map is None:
+ seen_map = Map(size=maps_size)
+ m[pos] = seen_map[seen_pos[1]]
+ return m, seen_maps
+