# HG changeset patch # User davidsharpe@185.4.16.172.in-addr.arpa # Date 1378064401 -7200 # Node ID a61c2985a155ec2697944b55d58a0848c58ed3e4 # Parent 5db0525315104065f1cbb75bdcb587ee3d1640ab# Parent e118458a4e9c1061b0d7507cc35152699d00570a Automated merge diff -r e118458a4e9c -r a61c2985a155 nagslang/level.py --- a/nagslang/level.py Sun Sep 01 21:39:37 2013 +0200 +++ b/nagslang/level.py Sun Sep 01 21:40:01 2013 +0200 @@ -62,6 +62,33 @@ if index: add_polygon(polygon, index, num_points) + def save(self): + closed = True + for poly in self.polygons.values(): + if len(poly) == 0: + # We ignore empty polygons + continue + elif len(poly) == 1: + closed = False + print "\033[31mError: polygon too small\033[0m" + elif poly[-1] != poly[0]: + closed = False + print "\033[31mError: polygon not closed\033[0m" + if not closed: + print 'Not saving the level' + return + with resources.get_file(self.name, mode='w') as f: + f.write('X-Size: %s\n' % self.x) + f.write('Y-Size: %s\n' % self.y) + f.write('Base tile: %s\n' % self.basetile) + for i, poly in self.polygons.items(): + if len(poly) == 0: + continue + f.write('Polygon %d : %d\n' % (i, len(poly))) + for point in poly: + f.write('Point: %d %d\n' % point) + print 'level %s saved' % self.name + def get_size(self): return self.x, self.y diff -r e118458a4e9c -r a61c2985a155 tools/area_editor.py --- a/tools/area_editor.py Sun Sep 01 21:39:37 2013 +0200 +++ b/tools/area_editor.py Sun Sep 01 21:40:01 2013 +0200 @@ -1,3 +1,5 @@ +#!/usr/bin/env python + # The basic area editor # # To edit an existing level, use @@ -9,15 +11,17 @@ # (size specified in pixels # +import os +import sys + import pygame import pygame.locals as pgl -from nagslang.resources import resources +sys.path.append(os.path.join(os.path.dirname(__file__), '..')) + from nagslang.constants import SCREEN, FPS from nagslang.level import Level, POLY_COLORS -import sys - class EditorLevel(Level): @@ -88,33 +92,6 @@ surface_area = pygame.rect.Rect(topleft, SCREEN) surface.blit(self._surface, (0, 0), surface_area) - def save(self): - closed = True - for poly in self.polygons.values(): - if len(poly) == 0: - # We ignore empty polygons - continue - elif len(poly) == 1: - closed = False - print "\033[31mError: polygon too small\033[0m" - elif poly[-1] != poly[0]: - closed = False - print "\033[31mError: polygon not closed\033[0m" - if not closed: - print 'Not saving the level' - return - with resources.get_file(self.name, mode='w') as f: - f.write('X-Size: %s\n' % self.x) - f.write('Y-Size: %s\n' % self.y) - f.write('Base tile: %s\n' % self.basetile) - for i, poly in self.polygons.items(): - if len(poly) == 0: - continue - f.write('Polygon %d : %d\n' % (i, len(poly))) - for point in poly: - f.write('Point: %d %d\n' % point) - print 'level %s saved' % self.name - class Editor(object):