From a9518d16d2df89d435f1dfc30e88cedb0e211e51 Mon Sep 17 00:00:00 2001 From: Alejandro Aguilera Date: Thu, 1 Mar 2012 19:48:15 +0100 Subject: [PATCH] Add the upside down slab. --- overviewer_core/src/primitives/edge-lines.c | 2 +- overviewer_core/textures.py | 28 +++++++++++++-------- 2 files changed, 19 insertions(+), 11 deletions(-) diff --git a/overviewer_core/src/primitives/edge-lines.c b/overviewer_core/src/primitives/edge-lines.c index f708369..dc3d1c1 100644 --- a/overviewer_core/src/primitives/edge-lines.c +++ b/overviewer_core/src/primitives/edge-lines.c @@ -40,7 +40,7 @@ edge_lines_draw(void *data, RenderState *state, PyObject *src, PyObject *mask, P unsigned short side_block; int increment=0; - if (state->block == 44) // half-step + if (state->block == 44 && ((state->block_data & 0x8) == 0 )) // half-step BUT no upsidown half-step increment=6; else if ((state->block == 78) || (state->block == 93) || (state->block == 94)) // snow, redstone repeaters (on and off) increment=9; diff --git a/overviewer_core/textures.py b/overviewer_core/textures.py index 317d3dd..2d75adf 100644 --- a/overviewer_core/textures.py +++ b/overviewer_core/textures.py @@ -1312,22 +1312,25 @@ block(blockid=41, top_index=23) block(blockid=42, top_index=22) # double slabs and slabs -@material(blockid=[43, 44], data=range(6), transparent=(44,), solid=True) +@material(blockid=[43, 44], data=range(16), transparent=(44,), solid=True) def slabs(self, blockid, data): - if data == 0: # stone slab + texture = data & 7 + if texture== 0: # stone slab top = self.terrain_images[6] side = self.terrain_images[5] - elif data == 1: # stone slab + elif texture== 1: # stone slab top = self.terrain_images[176] side = self.terrain_images[192] - elif data == 2: # wooden slab + elif texture== 2: # wooden slab top = side = self.terrain_images[4] - elif data == 3: # cobblestone slab + elif texture== 3: # cobblestone slab top = side = self.terrain_images[16] - elif data == 4: # brick? + elif texture== 4: # brick top = side = self.terrain_images[7] - elif data == 5: # stone brick? + elif texture== 5: # stone brick top = side = self.terrain_images[54] + else: + return None if blockid == 43: # double slab return self.build_block(top, side) @@ -1349,10 +1352,15 @@ def slabs(self, blockid, data): otherside = ImageEnhance.Brightness(otherside).enhance(0.8) otherside.putalpha(othersidealpha) + # upside down slab + delta = 0 + if data & 8 == 8: + delta = 6 + img = Image.new("RGBA", (24,24), self.bgcolor) - alpha_over(img, side, (0,12), side) - alpha_over(img, otherside, (12,12), otherside) - alpha_over(img, top, (0,6), top) + alpha_over(img, side, (0,12 - delta), side) + alpha_over(img, otherside, (12,12 - delta), otherside) + alpha_over(img, top, (0,6 - delta), top) return img