+ map_lines = ''.join(new_terrain_list).split('\n')
+ if len(map_lines) > size[0] and center[0] > size[0] / 2:
+ diff = len(map_lines) - size[0]
+ if center[0] > len(map_lines) - size[0] / 2:
+ map_lines = map_lines[diff:]
+ else:
+ start = center[0] - int(size[0] / 2)
+ map_lines = map_lines[start:start + size[0]]
+ if self.size[1]*2 > size[1] and center[1]*4 > size[1]:
+ if center[1]*2 > self.size[1]*2 - size[1] / 2:
+ cut_start = self.size[1] * 2 - size[1]
+ cut_end = None
+ else:
+ cut_start = center[1]*2 - int(size[1] / 2)
+ cut_end = cut_start + size[1]
+ map_lines = [line[cut_start:cut_end] for line in map_lines]
+ return map_lines