Mercurial > nagslang
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): |