Specifying a dimension in a config file now works
This commit is contained in:
@@ -296,8 +296,10 @@ dir but you forgot to put quotes around the directory, since it contains spaces.
|
|||||||
w = worldcache[render['worldname']]
|
w = worldcache[render['worldname']]
|
||||||
|
|
||||||
|
|
||||||
# TODO get the correct regionset based on render['dimension']
|
rset = w.get_regionset(render['dimension'])
|
||||||
rset = w.get_regionset(0)
|
if rset == None: # indicates no such dimension was found:
|
||||||
|
logging.error("Sorry, you requested dimension '%s' for %s, but I couldn't find it", render['dimension'], render_name)
|
||||||
|
return 1
|
||||||
if (render['northdirection'] > 0):
|
if (render['northdirection'] > 0):
|
||||||
rset = rset.rotate(render['northdirection'])
|
rset = rset.rotate(render['northdirection'])
|
||||||
logging.debug("Using RegionSet %r", rset)
|
logging.debug("Using RegionSet %r", rset)
|
||||||
@@ -309,7 +311,7 @@ dir but you forgot to put quotes around the directory, since it contains spaces.
|
|||||||
os.mkdir(tileset_dir)
|
os.mkdir(tileset_dir)
|
||||||
|
|
||||||
# only pass to the TileSet the options it really cares about
|
# only pass to the TileSet the options it really cares about
|
||||||
tileSetOpts = util.dict_subset(render, ["name", "imgformat", "renderchecks", "rerenderprob", "bgcolor", "imgquality", "optimizeimg", "rendermode", "worldname_orig", "title"])
|
tileSetOpts = util.dict_subset(render, ["name", "imgformat", "renderchecks", "rerenderprob", "bgcolor", "imgquality", "optimizeimg", "rendermode", "worldname_orig", "title", "dimension"])
|
||||||
tset = tileset.TileSet(rset, assetMrg, tex, tileSetOpts, tileset_dir)
|
tset = tileset.TileSet(rset, assetMrg, tex, tileSetOpts, tileset_dir)
|
||||||
tilesets.append(tset)
|
tilesets.append(tset)
|
||||||
|
|
||||||
|
|||||||
@@ -85,8 +85,9 @@ directory.
|
|||||||
# based on the tilesets we have, group them by worlds
|
# based on the tilesets we have, group them by worlds
|
||||||
worlds = []
|
worlds = []
|
||||||
for tileset in tilesets:
|
for tileset in tilesets:
|
||||||
if tileset.options.get('worldname_orig') not in worlds:
|
full_name = tileset.get_persistent_data()['world']
|
||||||
worlds.append(tileset.options.get('worldname_orig'))
|
if full_name not in worlds:
|
||||||
|
worlds.append(full_name)
|
||||||
|
|
||||||
dump['worlds'] = worlds
|
dump['worlds'] = worlds
|
||||||
dump['map'] = dict()
|
dump['map'] = dict()
|
||||||
|
|||||||
@@ -390,7 +390,7 @@ class TileSet(object):
|
|||||||
path = self.options.get('name'),
|
path = self.options.get('name'),
|
||||||
base = '',
|
base = '',
|
||||||
bgcolor = bgcolorformat(self.options.get('bgcolor')),
|
bgcolor = bgcolorformat(self.options.get('bgcolor')),
|
||||||
world = self.options.get('worldname_orig'),
|
world = self.options.get('worldname_orig') + " - " + self.options.get('dimension'),
|
||||||
last_rendertime = self.this_rendertime,
|
last_rendertime = self.this_rendertime,
|
||||||
north_direction = 'upper-left')
|
north_direction = 'upper-left')
|
||||||
print "get_persistent_data: %r" % d
|
print "get_persistent_data: %r" % d
|
||||||
|
|||||||
@@ -164,7 +164,18 @@ class World(object):
|
|||||||
def get_regionsets(self):
|
def get_regionsets(self):
|
||||||
return self.regionsets
|
return self.regionsets
|
||||||
def get_regionset(self, index):
|
def get_regionset(self, index):
|
||||||
|
if type(index) == int:
|
||||||
return self.regionsets[index]
|
return self.regionsets[index]
|
||||||
|
else: # assume a string constant
|
||||||
|
if index == "default":
|
||||||
|
return self.regionsets[0]
|
||||||
|
else:
|
||||||
|
candids = [x for x in self.regionsets if x.get_type() == index]
|
||||||
|
if len(candids) > 0:
|
||||||
|
return candids[0]
|
||||||
|
else:
|
||||||
|
return None
|
||||||
|
|
||||||
|
|
||||||
def get_level_dat_data(self):
|
def get_level_dat_data(self):
|
||||||
# Return a copy
|
# Return a copy
|
||||||
@@ -239,7 +250,7 @@ class RegionSet(object):
|
|||||||
in-memory.
|
in-memory.
|
||||||
|
|
||||||
"""
|
"""
|
||||||
self.regiondir = regiondir
|
self.regiondir = os.path.normpath(regiondir)
|
||||||
|
|
||||||
logging.info("Scanning regions")
|
logging.info("Scanning regions")
|
||||||
|
|
||||||
@@ -265,6 +276,23 @@ class RegionSet(object):
|
|||||||
def __repr__(self):
|
def __repr__(self):
|
||||||
return "<RegionSet regiondir=%r>" % self.regiondir
|
return "<RegionSet regiondir=%r>" % self.regiondir
|
||||||
|
|
||||||
|
def get_type(self):
|
||||||
|
"""Attempts to return a string describing the dimension represented by
|
||||||
|
this regionset. Either "nether", "end" or "overworld"
|
||||||
|
"""
|
||||||
|
# path will be normalized in __init__
|
||||||
|
if self.regiondir.endswith("/DIM-1/region"):
|
||||||
|
return "nether"
|
||||||
|
elif self.regiondir.endswith("/DIM1/region"):
|
||||||
|
return "end"
|
||||||
|
elif self.regiondir.endswith("/region"):
|
||||||
|
return "overworld"
|
||||||
|
else:
|
||||||
|
raise Exception("Woah, what kind of dimension is this! %r" % self.regiondir)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@log_other_exceptions
|
@log_other_exceptions
|
||||||
def get_chunk(self, x, z):
|
def get_chunk(self, x, z):
|
||||||
"""Returns a dictionary object representing the "Level" NBT Compound
|
"""Returns a dictionary object representing the "Level" NBT Compound
|
||||||
|
|||||||
Reference in New Issue
Block a user