diff --git a/overviewer_core/src/iterate.c b/overviewer_core/src/iterate.c index 9d1d7e0..5c9c51b 100644 --- a/overviewer_core/src/iterate.c +++ b/overviewer_core/src/iterate.c @@ -283,22 +283,12 @@ generate_pseudo_data(RenderState *state, unsigned short ancilData) { if (get_data(state, BLOCKS, x, y+1, z) == 78) return 0x10; return ancilData; - } else if (state->block == 9) { /* water */ + } else if (state->block == 8 || state->block == 9) { /* water */ + data = check_adjacent_blocks(state, x, y, z, state->block) ^ 0x0f; /* an aditional bit for top is added to the 4 bits of check_adjacent_blocks */ - if (ancilData == 0) { /* static water */ - if (get_data(state, BLOCKS, x, y+1, z) == 9) { - data = 0; - } else { - data = 16; - } - return data; /* = 0b10000 */ - } else if ((ancilData > 0) && (ancilData < 8)) { /* flowing water */ - data = (check_adjacent_blocks(state, x, y, z, state->block) ^ 0x0f) | 0x10; - return data; - } else if (ancilData >= 8) { /* falling water */ - data = (check_adjacent_blocks(state, x, y, z, state->block) ^ 0x0f); - return data; - } + if (get_data(state, BLOCKS, x, y+1, z) != state->block) + data |= 0x10; + return data; } else if ((state->block == 20) || (state->block == 79) || (state->block == 95)) { /* glass and ice and stained glass*/ /* an aditional bit for top is added to the 4 bits of check_adjacent_blocks * Note that stained glass encodes 16 colors using 4 bits. this pushes us over the 8-bits of an unsigned char, @@ -708,7 +698,8 @@ chunk_render(PyObject *self, PyObject *args) { * grass, water, glass, chest, restone wire, * ice, fence, portal, iron bars, glass panes, * trapped chests, stairs */ - if ((state.block == 2) || (state.block == 9) || + if ((state.block == 2) || + (state.block == 8) || (state.block == 9) || (state.block == 20) || (state.block == 54) || (state.block == 55) || /* doors */ diff --git a/overviewer_core/src/overviewer.h b/overviewer_core/src/overviewer.h index 4b98a22..83734a2 100644 --- a/overviewer_core/src/overviewer.h +++ b/overviewer_core/src/overviewer.h @@ -33,7 +33,7 @@ // increment this value if you've made a change to the c extesion // and want to force users to rebuild -#define OVERVIEWER_EXTENSION_VERSION 53 +#define OVERVIEWER_EXTENSION_VERSION 54 /* Python PIL, and numpy headers */ #include diff --git a/overviewer_core/textures.py b/overviewer_core/textures.py index a829f40..3df55e7 100644 --- a/overviewer_core/textures.py +++ b/overviewer_core/textures.py @@ -1005,16 +1005,11 @@ def saplings(self, blockid, data): # bedrock block(blockid=7, top_image="assets/minecraft/textures/block/bedrock.png") -@material(blockid=8, data=range(16), fluid=True, transparent=True, nospawn=True) -def water(self, blockid, data): - watertex = self.load_water() - return self.build_block(watertex, watertex) - -# other water, glass, and ice (no inner surfaces) +# water, glass, and ice (no inner surfaces) # uses pseudo-ancildata found in iterate.c -@material(blockid=[9, 20, 79, 95], data=range(512), fluid=(9,), transparent=True, nospawn=True, solid=(79, 20, 95)) +@material(blockid=[8, 9, 20, 79, 95], data=range(512), fluid=(8, 9), transparent=True, nospawn=True, solid=(79, 20, 95)) def no_inner_surfaces(self, blockid, data): - if blockid == 9: + if blockid == 8 or blockid == 9: texture = self.load_water() elif blockid == 20: texture = self.load_image_texture("assets/minecraft/textures/block/glass.png") @@ -1024,7 +1019,7 @@ def no_inner_surfaces(self, blockid, data): texture = self.load_image_texture("assets/minecraft/textures/block/ice.png") # now that we've used the lower 4 bits to get color, shift down to get the 5 bits that encode face hiding - if blockid != 9: # water doesn't have a shifted pseudodata + if not (blockid == 8 or blockid == 9): # water doesn't have a shifted pseudodata data = data >> 4 if (data & 0b10000) == 16: