diff --git a/.gitignore b/.gitignore index 1918894..aff3e7f 100644 --- a/.gitignore +++ b/.gitignore @@ -6,11 +6,14 @@ Minecraft_Overviewer.egg-info terrain.png cachedir* +#MCPatcher HD texture files +custom_*.png + # vim swap files .*.swp -# user-provided settings file -settings.py +# user-provided settings file as well as any variations on that name +settings*.py # header files that may be copied over, if missing ImPlatform.h diff --git a/overviewer_core/textures.py b/overviewer_core/textures.py index cc2780e..6b0bbe5 100644 --- a/overviewer_core/textures.py +++ b/overviewer_core/textures.py @@ -189,6 +189,20 @@ def _load_lava(): lavatexture = _load_image("lava.png") return lavatexture +def _load_fire(): + """Special-case function for loading fire, handles + MCPatcher-compliant custom animated fire.""" + try: + # try the MCPatcher case first + firetextureNS = _load_image("custom_fire_n_s.png") + firetextureNS = firetextureNS.crop((0, 0, firetextureNS.size[0], firetextureNS.size[0])) + firetextureEW = _load_image("custom_fire_e_w.png") + firetextureEW = firetextureEW.crop((0, 0, firetextureEW.size[0], firetextureEW.size[0])) + return (firetextureNS,firetextureEW) + except IOError: + firetexture = _load_image("fire.png") + return (firetexture,firetexture) + def _split_terrain(terrain): """Builds and returns a length 256 array of each 16x16 chunk of texture""" textures = [] @@ -1453,10 +1467,11 @@ def torches(blockid, data, north): # fire @material(blockid=51, data=range(16), transparent=True) def fire(blockid, data): - firetexture = _load_image("fire.png") - side1 = transform_image_side(firetexture) - side2 = transform_image_side(firetexture).transpose(Image.FLIP_LEFT_RIGHT) - + + firetextures = _load_fire() + side1 = transform_image_side(firetextures[0]) + side2 = transform_image_side(firetextures[1]).transpose(Image.FLIP_LEFT_RIGHT) + img = Image.new("RGBA", (24,24), bgcolor) composite.alpha_over(img, side1, (12,0), side1)