Determine an appropriate rendercheck mode automatically
This commit is contained in:
@@ -71,7 +71,7 @@ renders = Setting(required=True, default={},
|
|||||||
"optimizeimg": Setting(required=True, validator=validateOptImg, default=0),
|
"optimizeimg": Setting(required=True, validator=validateOptImg, default=0),
|
||||||
"nomarkers": Setting(required=False, validator=validateBool, default=None),
|
"nomarkers": Setting(required=False, validator=validateBool, default=None),
|
||||||
"texturepath": Setting(required=False, validator=validateTexturePath, default=None),
|
"texturepath": Setting(required=False, validator=validateTexturePath, default=None),
|
||||||
"renderchecks": Setting(required=True, validator=validateInt, default=0),
|
"renderchecks": Setting(required=False, validator=validateInt, default=None),
|
||||||
"rerenderprob": Setting(required=True, validator=validateFloat, default=0),
|
"rerenderprob": Setting(required=True, validator=validateFloat, default=0),
|
||||||
|
|
||||||
# Remove this eventually (once people update their configs)
|
# Remove this eventually (once people update their configs)
|
||||||
|
|||||||
@@ -188,7 +188,9 @@ class TileSet(object):
|
|||||||
|
|
||||||
renderchecks
|
renderchecks
|
||||||
An integer indicating how to determine which tiles need updating
|
An integer indicating how to determine which tiles need updating
|
||||||
and which don't. This is one of three levels:
|
and which don't. This key is optional; if not specified, an
|
||||||
|
appropriate mode is determined from the persistent config obtained
|
||||||
|
from the asset manager. This is one of three levels:
|
||||||
|
|
||||||
0
|
0
|
||||||
Only render tiles that have chunks with a greater mtime than
|
Only render tiles that have chunks with a greater mtime than
|
||||||
@@ -257,9 +259,36 @@ class TileSet(object):
|
|||||||
self.am = assetmanagerobj
|
self.am = assetmanagerobj
|
||||||
self.textures = texturesobj
|
self.textures = texturesobj
|
||||||
|
|
||||||
self.last_rendertime = self.am.get_tileset_config(self.options.get("name")).get('last_rendertime', 0)
|
config = self.am.get_tileset_config(self.options.get("name"))
|
||||||
|
|
||||||
|
self.last_rendertime = config.get('last_rendertime', 0)
|
||||||
self.this_rendertime = time.time()
|
self.this_rendertime = time.time()
|
||||||
|
|
||||||
|
if "renderchecks" not in self.options:
|
||||||
|
if not config:
|
||||||
|
# No persistent config? This is a full render then.
|
||||||
|
self.options['renderchecks'] = 2
|
||||||
|
logging.debug("This is the first time rendering %s. Doing" +
|
||||||
|
" a full-render",
|
||||||
|
self.options['name'])
|
||||||
|
elif config.get("render_in_progress", False):
|
||||||
|
# The last render must have been interrupted. The default should be
|
||||||
|
# 1 then, not 0
|
||||||
|
logging.warning(
|
||||||
|
"The last render for %s didn't finish. I'll be " +
|
||||||
|
"scanning all the tiles to make sure everything's up "+
|
||||||
|
"to date.",
|
||||||
|
self.options['name'],
|
||||||
|
)
|
||||||
|
self.options['renderchecks'] = 1
|
||||||
|
else:
|
||||||
|
logging.debug("No rendercheck mode specified for %s. "+
|
||||||
|
"Rendering tile whose chunks have changed since %s",
|
||||||
|
self.options['name'],
|
||||||
|
time.strftime("%x %X", time.localtime(self.last_rendertime)),
|
||||||
|
)
|
||||||
|
self.options['renderchecks'] = 0
|
||||||
|
|
||||||
# Throughout the class, self.outputdir is an absolute path to the
|
# Throughout the class, self.outputdir is an absolute path to the
|
||||||
# directory where we output tiles. It is assumed to exist.
|
# directory where we output tiles. It is assumed to exist.
|
||||||
self.outputdir = os.path.abspath(outputdir)
|
self.outputdir = os.path.abspath(outputdir)
|
||||||
|
|||||||
Reference in New Issue
Block a user