0

added stochastic render option for incrementally updating maps

This commit is contained in:
Aaron Griffith
2011-10-30 00:09:57 -04:00
parent bc9d368ae8
commit 03ce98df29
2 changed files with 14 additions and 2 deletions

View File

@@ -28,6 +28,7 @@ import cPickle
import stat
import errno
import time
import random
from time import gmtime, strftime, sleep
from PIL import Image
@@ -49,7 +50,7 @@ def iterate_base4(d):
return itertools.product(xrange(4), repeat=d)
class QuadtreeGen(object):
def __init__(self, worldobj, destdir, bgcolor, depth=None, tiledir=None, forcerender=False, imgformat=None, imgquality=95, optimizeimg=None, rendermode="normal"):
def __init__(self, worldobj, destdir, bgcolor, depth=None, tiledir=None, forcerender=False, rerender_prob=0.0, imgformat=None, imgquality=95, optimizeimg=None, rendermode="normal"):
"""Generates a quadtree from the world given into the
given dest directory
@@ -61,6 +62,7 @@ class QuadtreeGen(object):
"""
assert(imgformat)
self.forcerender = forcerender
self.rerender_probability = rerender_prob
self.imgformat = imgformat
self.imgquality = imgquality
self.optimizeimg = optimizeimg
@@ -427,7 +429,16 @@ class QuadtreeGen(object):
try:
needs_rerender = False
get_region_mtime = world.get_region_mtime
# stochastic render check
if random.uniform(0, 1) < self.rerender_probability:
needs_rerender = True
for col, row, chunkx, chunky, regionfile in chunks:
# skip if we already know
if needs_rerender:
break
region, regionMtime = get_region_mtime(regionfile)
# don't even check if it's not in the regionlist