Tried a fix for normal.png being not found on Travis + added logs
This commit is contained in:
@@ -145,21 +145,21 @@ class Textures(object):
|
|||||||
'environment/'.
|
'environment/'.
|
||||||
|
|
||||||
"""
|
"""
|
||||||
if verbose: logging.info("Starting search for {0}".format(filename))
|
logging.info("Starting search for {0}".format(filename))
|
||||||
|
|
||||||
# a list of subdirectories to search for a given file,
|
# a list of subdirectories to search for a given file,
|
||||||
# after the obvious '.'
|
# after the obvious '.'
|
||||||
search_dirs = ['anim', 'misc', 'environment', 'item', 'entity', 'entity/chest']
|
search_dirs = ['anim', 'misc', 'environment', 'item', 'item/chests', 'entity', 'entity/chest']
|
||||||
search_zip_paths = [filename,] + [d + '/' + filename for d in search_dirs]
|
search_zip_paths = [filename,] + [d + '/' + filename for d in search_dirs]
|
||||||
def search_dir(base):
|
def search_dir(base):
|
||||||
"""Search the given base dir for filename, in search_dirs."""
|
"""Search the given base dir for filename, in search_dirs."""
|
||||||
for path in [os.path.join(base, d, filename) for d in ['',] + search_dirs]:
|
for path in [os.path.join(base, d, filename) for d in ['',] + search_dirs]:
|
||||||
if verbose: logging.info('filename: ' + filename + ' ; path: ' + path)
|
logging.info('filename: ' + filename + ' ; path: ' + path)
|
||||||
if os.path.isfile(path):
|
if os.path.isfile(path):
|
||||||
return path
|
return path
|
||||||
|
|
||||||
return None
|
return None
|
||||||
if verbose: logging.info('search_zip_paths: ' + ', '.join(search_zip_paths))
|
logging.info('search_zip_paths: ' + ', '.join(search_zip_paths))
|
||||||
|
|
||||||
# we've sucessfully loaded something from here before, so let's quickly try
|
# we've sucessfully loaded something from here before, so let's quickly try
|
||||||
# this before searching again
|
# this before searching again
|
||||||
@@ -167,7 +167,7 @@ class Textures(object):
|
|||||||
for jarfilename in search_zip_paths:
|
for jarfilename in search_zip_paths:
|
||||||
try:
|
try:
|
||||||
self.jar.getinfo(jarfilename)
|
self.jar.getinfo(jarfilename)
|
||||||
if verbose: logging.info("Found (cached) %s in '%s'", jarfilename, self.jarpath)
|
logging.info("Found (cached) %s in '%s'", jarfilename, self.jarpath)
|
||||||
return self.jar.open(jarfilename)
|
return self.jar.open(jarfilename)
|
||||||
except (KeyError, IOError), e:
|
except (KeyError, IOError), e:
|
||||||
pass
|
pass
|
||||||
@@ -178,7 +178,7 @@ class Textures(object):
|
|||||||
if os.path.isdir(self.find_file_local_path):
|
if os.path.isdir(self.find_file_local_path):
|
||||||
path = search_dir(self.find_file_local_path)
|
path = search_dir(self.find_file_local_path)
|
||||||
if path:
|
if path:
|
||||||
if verbose: logging.info("Found %s in '%s'", filename, path)
|
logging.info("Found %s in '%s'", filename, path)
|
||||||
return open(path, mode)
|
return open(path, mode)
|
||||||
elif os.path.isfile(self.find_file_local_path):
|
elif os.path.isfile(self.find_file_local_path):
|
||||||
# Must be a resource pack. Look for the requested file within
|
# Must be a resource pack. Look for the requested file within
|
||||||
@@ -190,7 +190,7 @@ class Textures(object):
|
|||||||
# pack.getinfo() will raise KeyError if the file is
|
# pack.getinfo() will raise KeyError if the file is
|
||||||
# not found.
|
# not found.
|
||||||
pack.getinfo(packfilename)
|
pack.getinfo(packfilename)
|
||||||
if verbose: logging.info("Found %s in '%s'", packfilename, self.find_file_local_path)
|
logging.info("Found %s in '%s'", packfilename, self.find_file_local_path)
|
||||||
return pack.open(packfilename)
|
return pack.open(packfilename)
|
||||||
except (KeyError, IOError):
|
except (KeyError, IOError):
|
||||||
pass
|
pass
|
||||||
@@ -199,7 +199,7 @@ class Textures(object):
|
|||||||
# 2nd try with completed path.
|
# 2nd try with completed path.
|
||||||
packfilename = 'assets/minecraft/textures/' + packfilename
|
packfilename = 'assets/minecraft/textures/' + packfilename
|
||||||
pack.getinfo(packfilename)
|
pack.getinfo(packfilename)
|
||||||
if verbose: logging.info("Found %s in '%s'", packfilename, self.find_file_local_path)
|
logging.info("Found %s in '%s'", packfilename, self.find_file_local_path)
|
||||||
return pack.open(packfilename)
|
return pack.open(packfilename)
|
||||||
except (KeyError, IOError):
|
except (KeyError, IOError):
|
||||||
pass
|
pass
|
||||||
@@ -208,24 +208,24 @@ class Textures(object):
|
|||||||
|
|
||||||
# If we haven't returned at this point, then the requested file was NOT
|
# If we haven't returned at this point, then the requested file was NOT
|
||||||
# found in the user-specified texture path or resource pack.
|
# found in the user-specified texture path or resource pack.
|
||||||
if verbose: logging.info("Did not find the file in specified texture path")
|
logging.info("Did not find the file in specified texture path")
|
||||||
|
|
||||||
|
|
||||||
# Look in the location of the overviewer executable for the given path
|
# Look in the location of the overviewer executable for the given path
|
||||||
programdir = util.get_program_path()
|
programdir = util.get_program_path()
|
||||||
path = search_dir(programdir)
|
path = search_dir(programdir)
|
||||||
if path:
|
if path:
|
||||||
if verbose: logging.info("Found %s in '%s'", filename, path)
|
logging.info("Found %s in '%s'", filename, path)
|
||||||
return open(path, mode)
|
return open(path, mode)
|
||||||
|
|
||||||
if sys.platform.startswith("darwin"):
|
if sys.platform.startswith("darwin"):
|
||||||
path = search_dir("/Applications/Minecraft")
|
path = search_dir("/Applications/Minecraft")
|
||||||
if path:
|
if path:
|
||||||
if verbose: logging.info("Found %s in '%s'", filename, path)
|
logging.info("Found %s in '%s'", filename, path)
|
||||||
return open(path, mode)
|
return open(path, mode)
|
||||||
|
|
||||||
if verbose: logging.info("Did not find the file in overviewer executable directory")
|
logging.info("Did not find the file in overviewer executable directory")
|
||||||
if verbose: logging.info("Looking for installed minecraft jar files...")
|
logging.info("Looking for installed minecraft jar files...")
|
||||||
|
|
||||||
# Find an installed minecraft client jar and look in it for the texture
|
# Find an installed minecraft client jar and look in it for the texture
|
||||||
# file we need.
|
# file we need.
|
||||||
@@ -242,7 +242,7 @@ class Textures(object):
|
|||||||
|
|
||||||
try:
|
try:
|
||||||
versions = os.listdir(versiondir)
|
versions = os.listdir(versiondir)
|
||||||
if verbose: logging.info("Found these versions: {0}".format(versions))
|
logging.info("Found these versions: {0}".format(versions))
|
||||||
except OSError:
|
except OSError:
|
||||||
# Directory doesn't exist? Ignore it. It will find no versions and
|
# Directory doesn't exist? Ignore it. It will find no versions and
|
||||||
# fall through the checks below to the error at the bottom of the
|
# fall through the checks below to the error at the bottom of the
|
||||||
@@ -271,7 +271,7 @@ class Textures(object):
|
|||||||
most_recent_version = versionparts
|
most_recent_version = versionparts
|
||||||
|
|
||||||
if most_recent_version != [0,0,0]:
|
if most_recent_version != [0,0,0]:
|
||||||
if verbose: logging.info("Most recent version >=1.6.0: {0}. Searching it for the file...".format(most_recent_version))
|
logging.info("Most recent version >=1.6.0: {0}. Searching it for the file...".format(most_recent_version))
|
||||||
|
|
||||||
jarname = ".".join(str(x) for x in most_recent_version)
|
jarname = ".".join(str(x) for x in most_recent_version)
|
||||||
jarpath = os.path.join(versiondir, jarname, jarname + ".jar")
|
jarpath = os.path.join(versiondir, jarname, jarname + ".jar")
|
||||||
@@ -281,15 +281,15 @@ class Textures(object):
|
|||||||
for jarfilename in search_zip_paths:
|
for jarfilename in search_zip_paths:
|
||||||
try:
|
try:
|
||||||
jar.getinfo(jarfilename)
|
jar.getinfo(jarfilename)
|
||||||
if verbose: logging.info("Found %s in '%s'", jarfilename, jarpath)
|
logging.info("Found %s in '%s'", jarfilename, jarpath)
|
||||||
self.jar, self.jarpath = jar, jarpath
|
self.jar, self.jarpath = jar, jarpath
|
||||||
return jar.open(jarfilename)
|
return jar.open(jarfilename)
|
||||||
except (KeyError, IOError), e:
|
except (KeyError, IOError), e:
|
||||||
pass
|
pass
|
||||||
|
|
||||||
if verbose: logging.info("Did not find file {0} in jar {1}".format(filename, jarpath))
|
logging.info("Did not find file {0} in jar {1}".format(filename, jarpath))
|
||||||
else:
|
else:
|
||||||
if verbose: logging.info("Did not find any non-snapshot minecraft jars >=1.6.0")
|
logging.info("Did not find any non-snapshot minecraft jars >=1.6.0")
|
||||||
|
|
||||||
# Last ditch effort: look for the file is stored in with the overviewer
|
# Last ditch effort: look for the file is stored in with the overviewer
|
||||||
# installation. We include a few files that aren't included with Minecraft
|
# installation. We include a few files that aren't included with Minecraft
|
||||||
@@ -297,16 +297,16 @@ class Textures(object):
|
|||||||
# they were generated by the game and not stored as images. Nowdays I
|
# they were generated by the game and not stored as images. Nowdays I
|
||||||
# believe that's not true, but we still have a few files distributed
|
# believe that's not true, but we still have a few files distributed
|
||||||
# with overviewer.
|
# with overviewer.
|
||||||
if verbose: logging.info("Looking for texture in overviewer_core/data/textures")
|
logging.info("Looking for texture in overviewer_core/data/textures")
|
||||||
path = search_dir(os.path.join(programdir, "overviewer_core", "data", "textures"))
|
path = search_dir(os.path.join(programdir, "overviewer_core", "data", "textures"))
|
||||||
if path:
|
if path:
|
||||||
if verbose: logging.info("Found %s in '%s'", filename, path)
|
logging.info("Found %s in '%s'", filename, path)
|
||||||
return open(path, mode)
|
return open(path, mode)
|
||||||
elif hasattr(sys, "frozen") or imp.is_frozen("__main__"):
|
elif hasattr(sys, "frozen") or imp.is_frozen("__main__"):
|
||||||
# windows special case, when the package dir doesn't exist
|
# windows special case, when the package dir doesn't exist
|
||||||
path = search_dir(os.path.join(programdir, "textures"))
|
path = search_dir(os.path.join(programdir, "textures"))
|
||||||
if path:
|
if path:
|
||||||
if verbose: logging.info("Found %s in '%s'", filename, path)
|
logging.info("Found %s in '%s'", filename, path)
|
||||||
return open(path, mode)
|
return open(path, mode)
|
||||||
|
|
||||||
raise TextureException("Could not find the textures while searching for '{0}'. Try specifying the 'texturepath' option in your config file.\nSet it to the path to a Minecraft Resource pack.\nAlternately, install the Minecraft client (which includes textures)\nAlso see <http://docs.overviewer.org/en/latest/running/#installing-the-textures>\n(Remember, this version of Overviewer requires a 1.6-compatible resource pack)\n(Also note that I won't automatically use snapshots; you'll have to use the texturepath option to use a snapshot jar)".format(filename))
|
raise TextureException("Could not find the textures while searching for '{0}'. Try specifying the 'texturepath' option in your config file.\nSet it to the path to a Minecraft Resource pack.\nAlternately, install the Minecraft client (which includes textures)\nAlso see <http://docs.overviewer.org/en/latest/running/#installing-the-textures>\n(Remember, this version of Overviewer requires a 1.6-compatible resource pack)\n(Also note that I won't automatically use snapshots; you'll have to use the texturepath option to use a snapshot jar)".format(filename))
|
||||||
@@ -425,8 +425,11 @@ class Textures(object):
|
|||||||
|
|
||||||
def load_foliage_color(self):
|
def load_foliage_color(self):
|
||||||
"""Helper function to load the foliage color texture."""
|
"""Helper function to load the foliage color texture."""
|
||||||
|
#logging.info("load_foliage_color start")
|
||||||
if not hasattr(self, "foliagecolor"):
|
if not hasattr(self, "foliagecolor"):
|
||||||
self.foliagecolor = list(self.load_image("foliage.png").getdata())
|
self.foliagecolor = list(self.load_image("foliage.png").getdata())
|
||||||
|
logging.debug("load_foliage_color loaded texture %s", self.foliagecolor)
|
||||||
|
#logging.info("load_foliage_color end")
|
||||||
return self.foliagecolor
|
return self.foliagecolor
|
||||||
|
|
||||||
#I guess "watercolor" is wrong. But I can't correct as my texture pack don't define water color.
|
#I guess "watercolor" is wrong. But I can't correct as my texture pack don't define water color.
|
||||||
@@ -1805,7 +1808,11 @@ def chests(self, blockid, data):
|
|||||||
|
|
||||||
if data & 24 == 0:
|
if data & 24 == 0:
|
||||||
if blockid == 130: t = self.load_image("ender.png")
|
if blockid == 130: t = self.load_image("ender.png")
|
||||||
else: t = self.load_image("normal.png")
|
else:
|
||||||
|
try:
|
||||||
|
t = self.load_image("normal.png")
|
||||||
|
except (TextureException, IOError):
|
||||||
|
t = self.load_image("trap_small.png")
|
||||||
|
|
||||||
# the textures is no longer in terrain.png, get it from
|
# the textures is no longer in terrain.png, get it from
|
||||||
# item/chest.png and get by cropping all the needed stuff
|
# item/chest.png and get by cropping all the needed stuff
|
||||||
@@ -3175,7 +3182,7 @@ def comparator(self, blockid, data):
|
|||||||
|
|
||||||
|
|
||||||
# trapdoor
|
# trapdoor
|
||||||
# TODO the trapdoor is looks like a sprite when opened, that's not good
|
# the trapdoor is looks like a sprite when opened, that's not good
|
||||||
@material(blockid=96, data=range(16), transparent=True, nospawn=True)
|
@material(blockid=96, data=range(16), transparent=True, nospawn=True)
|
||||||
def trapdoor(self, blockid, data):
|
def trapdoor(self, blockid, data):
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user