summaryrefslogtreecommitdiff
path: root/tools
diff options
context:
space:
mode:
authorVincent Petithory <vincent.petithory@gmail.com>2013-02-18 23:11:40 +0100
committerVincent Petithory <vincent.petithory@gmail.com>2013-02-18 23:32:23 +0100
commit3f8b83436c3c4d5aa46903572456c7f3252115db (patch)
tree1d8c04a664417a14dc07b712f7bd13ef81b5ea68 /tools
parentd5faa80c7e7424d94ff5178a5581dd411553f8fa (diff)
downloadclientdata-3f8b83436c3c4d5aa46903572456c7f3252115db.tar.gz
clientdata-3f8b83436c3c4d5aa46903572456c7f3252115db.tar.bz2
clientdata-3f8b83436c3c4d5aa46903572456c7f3252115db.tar.xz
clientdata-3f8b83436c3c4d5aa46903572456c7f3252115db.zip
Map tools: use new --tilesize option of tmwrasterizer and update some things
Diffstat (limited to 'tools')
-rwxr-xr-xtools/map-diff.py20
-rwxr-xr-xtools/minimap-render.py23
2 files changed, 27 insertions, 16 deletions
diff --git a/tools/map-diff.py b/tools/map-diff.py
index b872d47f..1da5cdec 100755
--- a/tools/map-diff.py
+++ b/tools/map-diff.py
@@ -75,11 +75,13 @@ class MapDiff(object):
def _rastermap(self, tmx):
tmxf, tmxraster = tempfile.mkstemp(suffix='.png')
- subprocess.check_call([self.platform_programs.get('tmxrasterizer'), tmx, tmxraster])
+ subprocess.check_call([
+ self.platform_programs.get('tmxrasterizer'),
+ '--scale', '1.0',
+ tmx, tmxraster
+ ])
if os.stat(tmxraster).st_size == 0:
- # the image couldnt be rendered. The most probable reason is
- # that the map was too big (e.g 024-4, 500x500 tiles)
- raise Exception('Map too large to be rendered.')
+ raise Exception('A problem was encountered when rendering a map')
return tmxraster
@@ -107,10 +109,12 @@ class MapGitRevDiff(MapDiff):
# We have the 2 revs to compare. Let's extract the related tmx file
p1 = self._mktmx_from_rev(c1)
p2 = self._mktmx_from_rev(c2)
- difftmxpath = '%s_%s-%s.png' % (self.map_number, c1, c2)
- self._diffmaps(p1, p2, difftmxpath)
- os.unlink(p1)
- os.unlink(p2)
+ try:
+ difftmxpath = '%s_%s-%s.png' % (self.map_number, c1, c2)
+ self._diffmaps(p1, p2, difftmxpath)
+ finally:
+ os.unlink(p1)
+ os.unlink(p2)
def _mktmx_from_rev(self, rev):
p = subprocess.Popen([self.platform_programs.get('git'), '--no-pager', 'show', '%s:%s' % (rev, self.tmx_path)], stdout=subprocess.PIPE)
diff --git a/tools/minimap-render.py b/tools/minimap-render.py
index 402630bb..6b6b009f 100755
--- a/tools/minimap-render.py
+++ b/tools/minimap-render.py
@@ -22,9 +22,10 @@ class MinimapRenderer(object):
},
}
- def __init__(self, map_name, scale):
+ def __init__(self, map_name, tilesize, useAntiAliasing):
self.map_name = map_name
- self.scale = scale
+ self.tilesize = tilesize
+ self.useAntiAliasing = useAntiAliasing
def render(self):
"""
@@ -58,11 +59,16 @@ class MinimapRenderer(object):
platform_programs = MinimapRenderer.PROGRAMS.get(sys.platform, MinimapRenderer.PROGRAMS.get('default'))
# tmx rasterize
mrf, map_raster = tempfile.mkstemp(suffix='.png')
- subprocess.check_call([platform_programs.get('tmxrasterizer'), '--scale', str(self.scale), tmx_file, map_raster])
+ tmxrasterizer_cmd = [
+ platform_programs.get('tmxrasterizer'),
+ '--tilesize', str(self.tilesize),
+ ]
+ if self.useAntiAliasing:
+ tmxrasterizer_cmd.append('--anti-aliasing')
+ tmxrasterizer_cmd += [tmx_file, map_raster]
+ subprocess.check_call(tmxrasterizer_cmd)
if os.stat(map_raster).st_size == 0:
- # the image couldnt be rendered. The most probable reason is
- # that the map was too big (e.g 024-4, 500x500 tiles)
- raise Exception('Map too large to be rendered.')
+ raise Exception('A problem was encountered when rendering a map')
# add cell-shading to the minimap to improve readability
ebf, edges_bitmap = tempfile.mkstemp(suffix='.png')
subprocess.check_call([
@@ -140,9 +146,10 @@ def main():
status = 0
for map_name in sys.argv[1:]:
- map_renderer = MinimapRenderer(map_name, 0.03125) # this scale renders 1px for a tile of 32px
+ # Render tiles at 1 pixel size
+ map_renderer = MinimapRenderer(map_name, 1, True)
status += map_renderer.render()
return status
if __name__ == '__main__':
- sys.exit(main()) \ No newline at end of file
+ sys.exit(main())