diff --git a/docs/config.rst b/docs/config.rst index ef4dbed..9bc38d8 100644 --- a/docs/config.rst +++ b/docs/config.rst @@ -618,6 +618,9 @@ Exposed mode when set to 1, inverts the render mode, only drawing unexposed blocks. Default: 0 + +NoFluids + Don't render fluid blocks (water, lava). EdgeLines Draw edge lines on the back side of blocks, to help distinguish them from diff --git a/overviewer_core/rendermodes.py b/overviewer_core/rendermodes.py index 2f5d3c8..a161656 100644 --- a/overviewer_core/rendermodes.py +++ b/overviewer_core/rendermodes.py @@ -68,6 +68,9 @@ class Exposed(RenderPrimitive): options = { "mode": ("0 = exposed blocks only, 1 = unexposed blocks only", 0), } + +class NoFluids(RenderPrimitive): + name = "no-fluids" class EdgeLines(RenderPrimitive): name = "edge-lines" diff --git a/overviewer_core/src/primitives/no-fluids.c b/overviewer_core/src/primitives/no-fluids.c new file mode 100644 index 0000000..1f6cc16 --- /dev/null +++ b/overviewer_core/src/primitives/no-fluids.c @@ -0,0 +1,44 @@ +/* + * This file is part of the Minecraft Overviewer. + * + * Minecraft Overviewer is free software: you can redistribute it and/or + * modify it under the terms of the GNU General Public License as published + * by the Free Software Foundation, either version 3 of the License, or (at + * your option) any later version. + * + * Minecraft Overviewer is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General + * Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with the Overviewer. If not, see . + */ + +#include "../overviewer.h" + +typedef struct { +} PrimitiveNoFluids; + +static int +no_fluids_start(void *data, RenderState *state, PyObject *support) { + PrimitiveNoFluids *self = (PrimitiveNoFluids *)data; + + return 0; +} + +static int +no_fluids_hidden(void *data, RenderState *state, int x, int y, int z) { + PrimitiveNoFluids *self = (PrimitiveNoFluids *)data; + + return !block_has_property(state->block, FLUID); +} + +RenderPrimitiveInterface primitive_no_fluids = { + "no-fluids", sizeof(PrimitiveNoFluids), + no_fluids_start, + NULL, + NULL, + no_fluids_hidden, + NULL, +};