diff options
author | wushin <pasekei@gmail.com> | 2013-07-14 16:39:27 -0500 |
---|---|---|
committer | Ben Longbons <b.r.longbons@gmail.com> | 2013-07-15 12:22:58 -0700 |
commit | 47a8ea2b46d884ee7683c54f813cd804ca822a1b (patch) | |
tree | 8501dacd8d26b254a1412dc8ca71c4d19cc96820 | |
parent | 257f4ab0de3bf552cdb1e9012aa27c1c5ec40814 (diff) | |
download | serverdata-47a8ea2b46d884ee7683c54f813cd804ca822a1b.tar.gz serverdata-47a8ea2b46d884ee7683c54f813cd804ca822a1b.tar.bz2 serverdata-47a8ea2b46d884ee7683c54f813cd804ca822a1b.tar.xz serverdata-47a8ea2b46d884ee7683c54f813cd804ca822a1b.zip |
Allow specifying warps in terms of tiles instead of pixels
This interprets properties dest_tile_[xy] instead of dest_[xy].
Accepts both formats, but errors if there is a combination.
-rwxr-xr-x | tools/tmx_converter.py | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/tools/tmx_converter.py b/tools/tmx_converter.py index 009a1145..379a4f34 100755 --- a/tools/tmx_converter.py +++ b/tools/tmx_converter.py @@ -92,6 +92,8 @@ class Warp(Object): 'dest_map', 'dest_x', 'dest_y', + 'dest_tile_x', + 'dest_tile_y', ) + other_warp_fields class ContentHandler(xml.sax.ContentHandler): @@ -264,12 +266,22 @@ class ContentHandler(xml.sax.ContentHandler): ]) ) elif isinstance(obj, Warp): + nx = hasattr(obj, 'dest_tile_x') + ny = hasattr(obj, 'dest_tile_y') + ox = hasattr(obj, 'dest_x') + oy = hasattr(obj, 'dest_y') + assert nx == ny != ox == oy, 'Error: mixed coordinate properties exist.' + + if ox: + obj.dest_tile_x = obj.dest_x / 32; + obj.dest_tile_y = obj.dest_y / 32; + self.warps.write( SEPARATOR.join([ '%s.gat,%d,%d' % (self.base, obj.x, obj.y), 'warp', obj.name, - '%d,%d,%s.gat,%d,%d\n' % (obj.w, obj.h, obj.dest_map, obj.dest_x / 32, obj.dest_y / 32), + '%d,%d,%s.gat,%d,%d\n' % (obj.w, obj.h, obj.dest_map, obj.dest_tile_x, obj.dest_tile_y), ]) ) |