From 8b55203d41b73922ffdaaf97d2ff787c627c2b57 Mon Sep 17 00:00:00 2001 From: Aaron Griffith Date: Sun, 4 Dec 2011 10:21:48 -0500 Subject: [PATCH] initial version of 'nether' option for normal render modes based on eminence's gist https://gist.github.com/92b6dac4c2ed3cdcff10 --- overviewer_core/src/rendermode-normal.c | 25 +++++++++++++++++++++++++ overviewer_core/src/rendermodes.h | 1 + 2 files changed, 26 insertions(+) diff --git a/overviewer_core/src/rendermode-normal.c b/overviewer_core/src/rendermode-normal.c index 24bf665..dfa660f 100644 --- a/overviewer_core/src/rendermode-normal.c +++ b/overviewer_core/src/rendermode-normal.c @@ -40,6 +40,10 @@ rendermode_normal_start(void *data, RenderState *state, PyObject *options) { if (!render_mode_parse_option(options, "height_fading", "i", &(self->height_fading))) return 1; + self->nether = 0; + if (!render_mode_parse_option(options, "nether", "i", &(self->nether))) + return 1; + if (self->height_fading) { self->black_color = PyObject_GetAttrString(state->chunk, "black_color"); self->white_color = PyObject_GetAttrString(state->chunk, "white_color"); @@ -138,6 +142,26 @@ rendermode_normal_hidden(void *data, RenderState *state, int x, int y, int z) { if (z > self->max_depth || z < self->min_depth) { return 1; } + + if (self->nether) + { + + /* hide all blocks above all air blocks */ + int below_air = 0; + + while (z < 128) + { + if (getArrayByte3D(state->blocks, x, y, z) == 0) + { + below_air = 1; + break; + } + z++; + } + + if (!below_air) + return 1; + } return 0; } @@ -354,6 +378,7 @@ const RenderModeOption rendermode_normal_options[] = { {"min_depth", "lowest level of blocks to render (default: 0)"}, {"max_depth", "highest level of blocks to render (default: 127)"}, {"height_fading", "darken or lighten blocks based on height (default: False)"}, + {"nether", "if True, remove the roof of the map. Useful on nether maps. (default: False)"}, {NULL, NULL} }; diff --git a/overviewer_core/src/rendermodes.h b/overviewer_core/src/rendermodes.h index e253885..1d94df9 100644 --- a/overviewer_core/src/rendermodes.h +++ b/overviewer_core/src/rendermodes.h @@ -136,6 +136,7 @@ typedef struct { unsigned int min_depth; unsigned int max_depth; int height_fading; + int nether; } RenderModeNormal; extern RenderModeInterface rendermode_normal;