Require 'waving = 3' in a nodedef to apply the liquid waving shader (#8418)
[oweals/minetest.git] / src / nodedef.cpp
index 03a163bd3412a6ec28ab68a2ab01c7ec7275811e..83e3968c3d3c784a38fb40c534cbca4d9c5339e0 100644 (file)
@@ -798,6 +798,8 @@ void ContentFeatures::updateTextures(ITextureSource *tsrc, IShaderSource *shdsrc
                        material_type = TILE_MATERIAL_WAVING_PLANTS;
                else if (waving == 2)
                        material_type = TILE_MATERIAL_WAVING_LEAVES;
+               else if (waving == 3)
+                       material_type = TILE_MATERIAL_WAVING_LIQUID_BASIC;
                break;
        case NDT_TORCHLIKE:
        case NDT_SIGNLIKE:
@@ -815,8 +817,14 @@ void ContentFeatures::updateTextures(ITextureSource *tsrc, IShaderSource *shdsrc
                correctAlpha(tdef, 6);
                correctAlpha(tdef_overlay, 6);
                correctAlpha(tdef_spec, CF_SPECIAL_COUNT);
-               material_type = (alpha == 255) ?
-                       TILE_MATERIAL_LIQUID_OPAQUE : TILE_MATERIAL_LIQUID_TRANSPARENT;
+
+               if (waving == 3) {
+                       material_type = (alpha == 255) ? TILE_MATERIAL_WAVING_LIQUID_OPAQUE :
+                               TILE_MATERIAL_WAVING_LIQUID_TRANSPARENT;
+               } else {
+                       material_type = (alpha == 255) ? TILE_MATERIAL_LIQUID_OPAQUE :
+                               TILE_MATERIAL_LIQUID_TRANSPARENT;
+               }
        }
 
        u32 tile_shader = shdsrc->getShader("nodes_shader", material_type, drawtype);