0

Merge remote-tracking branch 'overviewer/rewrite' into rewrite

This commit is contained in:
Andrew Chin
2012-01-02 00:03:31 -05:00
2 changed files with 32 additions and 44 deletions

View File

@@ -125,28 +125,28 @@ else:
doExit()
from optparse import OptionParser
from overviewer_core import optimizeimages, world, quadtree
from overviewer_core import googlemap, rendernode
from overviewer_core import optimizeimages, world
from overviewer_core import googlemap
from overviewer_core import configParser, tileset, assetmanager, dispatcher
# definitions of built-in custom modes
# usually because what used to be a mode became an option
# for example, night mode
builtin_custom_rendermodes = {
'night' : {
'parent' : 'lighting',
'label' : 'Night',
'description' : 'like "lighting", except at night',
'options' : {'night' : True}
},
builtin_custom_rendermodes = {}
# 'night' : {
# 'parent' : 'lighting',
# 'label' : 'Night',
# 'description' : 'like "lighting", except at night',
# 'options' : {'night' : True}
# },
'smooth-night' : {
'parent' : 'smooth-lighting',
'label' : 'Smooth Night',
'description' : 'like "lighting", except smooth and at night',
'options' : {'night' : True}
},
}
# 'smooth-night' : {
# 'parent' : 'smooth-lighting',
# 'label' : 'Smooth Night',
# 'description' : 'like "lighting", except smooth and at night',
# 'options' : {'night' : True}
# },
# }
helptext = """
%prog [OPTIONS] <World # / Name / Path to World> <tiles dest dir>"""
@@ -378,8 +378,8 @@ dir but you forgot to put quotes around the directory, since it contains spaces.
# make sure that the textures can be found
try:
#textures.generate(path=options.textures_path)
# TODO(agrif): your magic goes here
textures.generate(path=None)
tex = textures.Textures()
tex.generate()
except IOError, e:
logging.error(str(e))
doExit(code=1, consoleMsg=False)
@@ -402,7 +402,7 @@ dir but you forgot to put quotes around the directory, since it contains spaces.
# if no dimension has been specified, just use the first one
# TODO support the case where a different dimension is specified
rset = w.get_regionset(2)
rset = w.get_regionset(0)
logging.debug("Using RegionSet %r", rset)
# create our TileSet from this RegionSet
@@ -410,7 +410,7 @@ dir but you forgot to put quotes around the directory, since it contains spaces.
print "tileset_dir: %r" % tileset_dir
if not os.path.exists(tileset_dir):
os.mkdir(tileset_dir)
tset = tileset.TileSet(rset, assetMrg, render, tileset_dir)
tset = tileset.TileSet(rset, assetMrg, tex, render, tileset_dir)
tilesets.append(tset)

View File

@@ -21,6 +21,8 @@ import shutil
import random
import functools
import time
import errno
import stat
from collections import namedtuple
from PIL import Image
@@ -378,15 +380,15 @@ class TileSet(object):
self._render_rendertile(RenderTile.from_path(tilepath))
else:
# A composite-tile
if len(tileset) == 0:
if len(tilepath) == 0:
# The base tile
dest = self.outputdir
name = "base"
else:
# All others
dest = os.path.sep.join(self.outputdir, *(str(x) for x in tilepath[:-1]))
dest = os.path.join(self.outputdir, *(str(x) for x in tilepath[:-1]))
name = str(tilepath[-1])
self._render_compositetile(dest, base)
self._render_compositetile(dest, name)
def get_persistent_data(self):
"""Returns a dictionary representing the persistent data of this
@@ -544,7 +546,7 @@ class TileSet(object):
elif rendercheck == 1:
def compare_times(chunkmtime, tileobj):
# Compare chunk mtime to tile mtime on disk
tile_path = tileobj.get_filepath(self.full_tiledir, self.imgformat)
tile_path = tileobj.get_filepath(self.outputdir, self.imgextension)
try:
tile_mtime = os.stat(tile_path)[stat.ST_MTIME]
except OSError, e:
@@ -750,28 +752,15 @@ class TileSet(object):
"""
imgpath = tile.get_filepath(self.full_tiledir, self.imgformat)
imgpath = tile.get_filepath(self.outputdir, self.imgextension)
# Calculate which chunks are relevant to this tile
# This is a list of (col, row, chunkx, chunkz, chunk_mtime)
chunks = list(self._get_chunks_for_tile(tile))
region = self.regionobj
tile_mtime = None
if check_tile:
# stat the file, we need to know if it exists and its mtime
try:
tile_mtime = os.stat(imgpath)[stat.ST_MTIME]
except OSError, e:
# ignore only if the error was "file not found"
if e.errno != errno.ENOENT:
raise
if not chunks:
# No chunks were found in this tile
if not check_tile:
logging.warning("%s was requested for render, but no chunks found! This may be a bug", tile)
logging.warning("%s was requested for render, but no chunks found! This may be a bug", tile)
try:
os.unlink(imgpath)
except OSError, e:
@@ -797,9 +786,8 @@ class TileSet(object):
#logging.debug("writing out worldtile {0}".format(imgpath))
# Compile this image
tileimg = Image.new("RGBA", (384, 384), self.bgcolor)
tileimg = Image.new("RGBA", (384, 384), self.options['bgcolor'])
rendermode = self.rendermode
colstart = tile.col
rowstart = tile.row
# col colstart will get drawn on the image starting at x coordinates -(384/2)
@@ -817,13 +805,13 @@ class TileSet(object):
xpos, ypos, self.options['rendermode'], self.textures)
# Save them
if self.imgformat == 'jpg':
if self.imgextension == 'jpg':
tileimg.save(imgpath, quality=self.imgquality, subsampling=0)
else: # png
tileimg.save(imgpath)
if self.optimizeimg:
optimize_image(imgpath, self.imgformat, self.optimizeimg)
if self.options['optimizeimg']:
optimize_image(imgpath, self.imgextension, self.options['optimizeimg'])
os.utime(imgpath, (max_chunk_mtime, max_chunk_mtime))