comparison tools/area_editor.py @ 72:5db052531510

Move save() to Level
author Stefano Rivera <stefano@rivera.za.net>
date Sun, 01 Sep 2013 21:41:49 +0200
parents c449a3507a6b
children a9b564c38bef
comparison
equal deleted inserted replaced
71:c449a3507a6b 72:5db052531510
17 import pygame 17 import pygame
18 import pygame.locals as pgl 18 import pygame.locals as pgl
19 19
20 sys.path.append(os.path.join(os.path.dirname(__file__), '..')) 20 sys.path.append(os.path.join(os.path.dirname(__file__), '..'))
21 21
22 from nagslang.resources import resources
23 from nagslang.constants import SCREEN, FPS 22 from nagslang.constants import SCREEN, FPS
24 from nagslang.level import Level, POLY_COLORS 23 from nagslang.level import Level, POLY_COLORS
25 24
26 25
27 class EditorLevel(Level): 26 class EditorLevel(Level):
90 pygame.draw.line(self._surface, color, 89 pygame.draw.line(self._surface, color,
91 self.point_to_pygame(polygon[-1]), 90 self.point_to_pygame(polygon[-1]),
92 self.point_to_pygame(endpoint)) 91 self.point_to_pygame(endpoint))
93 surface_area = pygame.rect.Rect(topleft, SCREEN) 92 surface_area = pygame.rect.Rect(topleft, SCREEN)
94 surface.blit(self._surface, (0, 0), surface_area) 93 surface.blit(self._surface, (0, 0), surface_area)
95
96 def save(self):
97 closed = True
98 for poly in self.polygons.values():
99 if len(poly) == 0:
100 # We ignore empty polygons
101 continue
102 elif len(poly) == 1:
103 closed = False
104 print "\033[31mError: polygon too small\033[0m"
105 elif poly[-1] != poly[0]:
106 closed = False
107 print "\033[31mError: polygon not closed\033[0m"
108 if not closed:
109 print 'Not saving the level'
110 return
111 with resources.get_file(self.name, mode='w') as f:
112 f.write('X-Size: %s\n' % self.x)
113 f.write('Y-Size: %s\n' % self.y)
114 f.write('Base tile: %s\n' % self.basetile)
115 for i, poly in self.polygons.items():
116 if len(poly) == 0:
117 continue
118 f.write('Polygon %d : %d\n' % (i, len(poly)))
119 for point in poly:
120 f.write('Point: %d %d\n' % point)
121 print 'level %s saved' % self.name
122 94
123 95
124 class Editor(object): 96 class Editor(object):
125 97
126 def __init__(self, level, surface): 98 def __init__(self, level, surface):