diff --git a/overviewer_core/src/iterate.c b/overviewer_core/src/iterate.c index 8a2e324..8915064 100644 --- a/overviewer_core/src/iterate.c +++ b/overviewer_core/src/iterate.c @@ -263,6 +263,7 @@ is_stairs(int block) { case 163: /* acacia wood stairs */ case 164: /* dark wood stairs */ case 180: /* red sandstone stairs */ + case 203: /* purpur stairs */ return 1; } return 0; diff --git a/overviewer_core/src/primitives/lighting.c b/overviewer_core/src/primitives/lighting.c index f7c1164..1fd818b 100644 --- a/overviewer_core/src/primitives/lighting.c +++ b/overviewer_core/src/primitives/lighting.c @@ -138,7 +138,7 @@ estimate_blocklevel(RenderPrimitiveLighting *self, RenderState *state, blocklevel = get_data(state, BLOCKLIGHT, x, y, z); /* no longer a guess */ - if (!(block == 44 || block == 53 || block == 67 || block == 108 || block == 109 || block == 180 || block == 182) && authoratative) { + if (!(block == 44 || block == 53 || block == 67 || block == 108 || block == 109 || block == 180 || block == 182 || block == 205) && authoratative) { *authoratative = 1; } @@ -160,7 +160,8 @@ get_lighting_color(RenderPrimitiveLighting *self, RenderState *state, /* special half-step handling, stairs handling */ /* Anvil also needs to be here, blockid 145 */ if (block == 44 || block == 53 || block == 67 || block == 108 || block == 109 || block == 114 || - block == 128 || block == 134 || block == 135 || block == 136 || block == 145 || block == 156 || block == 163 || block == 164 || block == 180 || block == 182) { + block == 128 || block == 134 || block == 135 || block == 136 || block == 145 || block == 156 || + block == 163 || block == 164 || block == 180 || block == 182 || block == 203 || block == 205) { unsigned int upper_block; /* stairs and half-blocks take the skylevel from the upper block if it's transparent */ @@ -171,7 +172,8 @@ get_lighting_color(RenderPrimitiveLighting *self, RenderState *state, upper_block = get_data(state, BLOCKS, x, y + upper_counter, z); } while (upper_block == 44 || upper_block == 53 || upper_block == 67 || upper_block == 108 || upper_block == 109 || upper_block == 114 || upper_block == 128 || upper_block == 134 || - upper_block == 135 || upper_block == 136 || upper_block == 156 || upper_block == 163 || upper_block == 164 || upper_block == 180 || upper_block == 182); + upper_block == 135 || upper_block == 136 || upper_block == 156 || upper_block == 163 || + upper_block == 164 || upper_block == 180 || upper_block == 182 || upper_block == 203 || upper_block == 205); if (is_transparent(upper_block)) { skylevel = get_data(state, SKYLIGHT, x, y + upper_counter, z); } else { diff --git a/overviewer_core/textures.py b/overviewer_core/textures.py index ed8b19a..58c4b78 100644 --- a/overviewer_core/textures.py +++ b/overviewer_core/textures.py @@ -1557,7 +1557,7 @@ block(blockid=42, top_image="assets/minecraft/textures/blocks/iron_block.png") # 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, 181, 182], data=range(16), transparent=(44,182,), solid=True) +@material(blockid=[43, 44, 181, 182, 204, 205], data=range(16), transparent=(44,182,205), solid=True) def slabs(self, blockid, data): if blockid == 44 or blockid == 182: texture = data & 7 @@ -1605,8 +1605,11 @@ def slabs(self, blockid, data): top = side = self.load_image_texture("assets/minecraft/textures/blocks/red_sandstone_top.png"); else: return None + elif blockid == 204 or blockid == 205: # purpur slab (single=205 double=204) + top = side = self.load_image_texture("assets/minecraft/textures/blocks/purpur_block.png"); + - if blockid == 43 or blockid == 181: # double slab + if blockid == 43 or blockid == 181 or blockid == 204: # double slab return self.build_block(top, side) # cut the side texture in half @@ -1740,7 +1743,7 @@ def fire(self, blockid, data): block(blockid=52, top_image="assets/minecraft/textures/blocks/mob_spawner.png", transparent=True) # wooden, cobblestone, red brick, stone brick, netherbrick, sandstone, spruce, birch, jungle, quartz, and red sandstone stairs. -@material(blockid=[53,67,108,109,114,128,134,135,136,156,163,164,180], data=range(128), transparent=True, solid=True, nospawn=True) +@material(blockid=[53,67,108,109,114,128,134,135,136,156,163,164,180,203], data=range(128), transparent=True, solid=True, nospawn=True) def stairs(self, blockid, data): # preserve the upside-down bit upside_down = data & 0x4 @@ -1779,6 +1782,8 @@ def stairs(self, blockid, data): texture = self.load_image_texture("assets/minecraft/textures/blocks/planks_big_oak.png").copy() elif blockid == 180: # red sandstone stairs texture = self.load_image_texture("assets/minecraft/textures/blocks/red_sandstone_normal.png").copy() + elif blockid == 203: # purpur stairs + texture = self.load_image_texture("assets/minecraft/textures/blocks/purpur_block.png").copy() outside_l = texture.copy() outside_r = texture.copy() @@ -4408,3 +4413,12 @@ def flower(self, blockid, data): alpha_over(img, bloom_tex.resize((14, 11), Image.ANTIALIAS), (5,5)) return img + +# purpur block +block(blockid=201, top_image="assets/minecraft/textures/blocks/purpur_block.png") + +# purpur pilar +block(blockid=202, top_image="assets/minecraft/textures/blocks/purpur_pillar_top.png", side_image="assets/minecraft/textures/blocks/purpur_pillar.png") + +# end brick +block(blockid=206, top_image="assets/minecraft/textures/blocks/end_bricks.png")