Add the pre-1.3 wooden slabs.
This commit is contained in:
@@ -41,7 +41,7 @@ edge_lines_draw(void *data, RenderState *state, PyObject *src, PyObject *mask, P
|
|||||||
int x = state->x, y = state->y, z = state->z;
|
int x = state->x, y = state->y, z = state->z;
|
||||||
|
|
||||||
int increment=0;
|
int increment=0;
|
||||||
if (state->block == 44 && ((state->block_data & 0x8) == 0 )) // half-step BUT no upsidown half-step
|
if ((state->block == 44 || state->block == 126) && ((state->block_data & 0x8) == 0 )) // half-steps BUT no upsidown half-steps
|
||||||
increment=6;
|
increment=6;
|
||||||
else if ((state->block == 78) || (state->block == 93) || (state->block == 94)) // snow, redstone repeaters (on and off)
|
else if ((state->block == 78) || (state->block == 93) || (state->block == 94)) // snow, redstone repeaters (on and off)
|
||||||
increment=9;
|
increment=9;
|
||||||
|
|||||||
@@ -1336,6 +1336,8 @@ block(blockid=41, top_index=23)
|
|||||||
block(blockid=42, top_index=22)
|
block(blockid=42, top_index=22)
|
||||||
|
|
||||||
# double slabs and slabs
|
# double slabs and slabs
|
||||||
|
# these wooden slabs are unobtainable without cheating, they are still
|
||||||
|
# here because lots of pre-1.3 worlds use this blocks
|
||||||
@material(blockid=[43, 44], data=range(16), transparent=(44,), solid=True)
|
@material(blockid=[43, 44], data=range(16), transparent=(44,), solid=True)
|
||||||
def slabs(self, blockid, data):
|
def slabs(self, blockid, data):
|
||||||
texture = data & 7
|
texture = data & 7
|
||||||
@@ -3169,3 +3171,52 @@ block(blockid=123, top_index=211)
|
|||||||
|
|
||||||
# active redstone lamp
|
# active redstone lamp
|
||||||
block(blockid=124, top_index=212)
|
block(blockid=124, top_index=212)
|
||||||
|
|
||||||
|
# wooden double and normal slabs
|
||||||
|
# these are the new wooden slabs, blockids 43 44 still have wooden
|
||||||
|
# slabs, but those are unobtainable without cheating
|
||||||
|
@material(blockid=[125, 126], data=range(16), transparent=(44,), solid=True)
|
||||||
|
def slabs(self, blockid, data):
|
||||||
|
texture = data & 7
|
||||||
|
if texture== 0: # oak
|
||||||
|
top = side = self.terrain_images[4]
|
||||||
|
elif texture== 1: # spruce
|
||||||
|
top = side = self.terrain_images[198]
|
||||||
|
elif texture== 2: # birch
|
||||||
|
top = side = self.terrain_images[214]
|
||||||
|
elif texture== 3: # jungle
|
||||||
|
top = side = self.terrain_images[199]
|
||||||
|
else:
|
||||||
|
return None
|
||||||
|
|
||||||
|
if blockid == 125: # double slab
|
||||||
|
return self.build_block(top, side)
|
||||||
|
|
||||||
|
# cut the side texture in half
|
||||||
|
mask = side.crop((0,8,16,16))
|
||||||
|
side = Image.new(side.mode, side.size, self.bgcolor)
|
||||||
|
alpha_over(side, mask,(0,0,16,8), mask)
|
||||||
|
|
||||||
|
# plain slab
|
||||||
|
top = self.transform_image_top(top)
|
||||||
|
side = self.transform_image_side(side)
|
||||||
|
otherside = side.transpose(Image.FLIP_LEFT_RIGHT)
|
||||||
|
|
||||||
|
sidealpha = side.split()[3]
|
||||||
|
side = ImageEnhance.Brightness(side).enhance(0.9)
|
||||||
|
side.putalpha(sidealpha)
|
||||||
|
othersidealpha = otherside.split()[3]
|
||||||
|
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 - delta), side)
|
||||||
|
alpha_over(img, otherside, (12,12 - delta), otherside)
|
||||||
|
alpha_over(img, top, (0,6 - delta), top)
|
||||||
|
|
||||||
|
return img
|
||||||
|
|||||||
Reference in New Issue
Block a user