summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWuzzy <wuzzy2@mail.ru>2021-01-21 00:51:24 +0100
committerGitHub <noreply@github.com>2021-01-21 00:51:24 +0100
commit7f25823bd4f1a822449eb783ee555651a89ce9de (patch)
treea0fae739e61cc60ff14531df409638fc8b4d5f5a
parenteb8af614a5ee876a2bc9312506bfcfda20501232 (diff)
downloadminetest-7f25823bd4f1a822449eb783ee555651a89ce9de.tar.gz
minetest-7f25823bd4f1a822449eb783ee555651a89ce9de.tar.bz2
minetest-7f25823bd4f1a822449eb783ee555651a89ce9de.zip
Allow "liquid" and "flowingliquid" drawtypes even if liquidtype=none (#10737)
-rw-r--r--games/devtest/mods/testnodes/drawtypes.lua107
-rw-r--r--games/devtest/mods/testnodes/liquids.lua8
-rw-r--r--games/devtest/mods/testnodes/properties.lua2
-rw-r--r--src/client/content_mapblock.cpp4
-rw-r--r--src/nodedef.cpp4
5 files changed, 57 insertions, 68 deletions
diff --git a/games/devtest/mods/testnodes/drawtypes.lua b/games/devtest/mods/testnodes/drawtypes.lua
index b3ab2b322..d71c3a121 100644
--- a/games/devtest/mods/testnodes/drawtypes.lua
+++ b/games/devtest/mods/testnodes/drawtypes.lua
@@ -350,68 +350,72 @@ minetest.register_node("testnodes:plantlike_rooted_degrotate", {
})
-- Demonstrative liquid nodes, source and flowing form.
-minetest.register_node("testnodes:liquid", {
- description = S("Source Liquid Drawtype Test Node"),
- drawtype = "liquid",
- paramtype = "light",
- tiles = {
- "testnodes_liquidsource.png",
- },
- special_tiles = {
- {name="testnodes_liquidsource.png", backface_culling=false},
- {name="testnodes_liquidsource.png", backface_culling=true},
- },
- use_texture_alpha = true,
-
-
- walkable = false,
- liquidtype = "source",
- liquid_range = 1,
- liquid_viscosity = 0,
- liquid_alternative_flowing = "testnodes:liquid_flowing",
- liquid_alternative_source = "testnodes:liquid",
- groups = { dig_immediate = 3 },
-})
-minetest.register_node("testnodes:liquid_flowing", {
- description = S("Flowing Liquid Drawtype Test Node"),
- drawtype = "flowingliquid",
- paramtype = "light",
- paramtype2 = "flowingliquid",
- tiles = {
- "testnodes_liquidflowing.png",
- },
- special_tiles = {
- {name="testnodes_liquidflowing.png", backface_culling=false},
- {name="testnodes_liquidflowing.png", backface_culling=false},
- },
- use_texture_alpha = true,
+-- DRAWTYPE ONLY, NO LIQUID PHYSICS!
+-- Liquid ranges 0 to 8
+for r = 0, 8 do
+ minetest.register_node("testnodes:liquid_"..r, {
+ description = S("Source Liquid Drawtype Test Node, Range @1", r),
+ drawtype = "liquid",
+ paramtype = "light",
+ tiles = {
+ "testnodes_liquidsource_r"..r..".png^[colorize:#FFFFFF:100",
+ },
+ special_tiles = {
+ {name="testnodes_liquidsource_r"..r..".png^[colorize:#FFFFFF:100", backface_culling=false},
+ {name="testnodes_liquidsource_r"..r..".png^[colorize:#FFFFFF:100", backface_culling=true},
+ },
+ use_texture_alpha = true,
+
+
+ walkable = false,
+ liquid_range = r,
+ liquid_viscosity = 0,
+ liquid_alternative_flowing = "testnodes:liquid_flowing_"..r,
+ liquid_alternative_source = "testnodes:liquid_"..r,
+ groups = { dig_immediate = 3 },
+ })
+ minetest.register_node("testnodes:liquid_flowing_"..r, {
+ description = S("Flowing Liquid Drawtype Test Node, Range @1", r),
+ drawtype = "flowingliquid",
+ paramtype = "light",
+ paramtype2 = "flowingliquid",
+ tiles = {
+ "testnodes_liquidflowing_r"..r..".png^[colorize:#FFFFFF:100",
+ },
+ special_tiles = {
+ {name="testnodes_liquidflowing_r"..r..".png^[colorize:#FFFFFF:100", backface_culling=false},
+ {name="testnodes_liquidflowing_r"..r..".png^[colorize:#FFFFFF:100", backface_culling=false},
+ },
+ use_texture_alpha = true,
+
+
+ walkable = false,
+ liquid_range = r,
+ liquid_viscosity = 0,
+ liquid_alternative_flowing = "testnodes:liquid_flowing_"..r,
+ liquid_alternative_source = "testnodes:liquid_"..r,
+ groups = { dig_immediate = 3 },
+ })
+end
- walkable = false,
- liquidtype = "flowing",
- liquid_range = 1,
- liquid_viscosity = 0,
- liquid_alternative_flowing = "testnodes:liquid_flowing",
- liquid_alternative_source = "testnodes:liquid",
- groups = { dig_immediate = 3 },
-})
+-- Waving liquid test (drawtype only)
minetest.register_node("testnodes:liquid_waving", {
description = S("Waving Source Liquid Drawtype Test Node"),
drawtype = "liquid",
paramtype = "light",
tiles = {
- "testnodes_liquidsource.png^[brighten",
+ "testnodes_liquidsource.png^[colorize:#0000FF:127",
},
special_tiles = {
- {name="testnodes_liquidsource.png^[brighten", backface_culling=false},
- {name="testnodes_liquidsource.png^[brighten", backface_culling=true},
+ {name="testnodes_liquidsource.png^[colorize:#0000FF:127", backface_culling=false},
+ {name="testnodes_liquidsource.png^[colorize:#0000FF:127", backface_culling=true},
},
use_texture_alpha = true,
waving = 3,
walkable = false,
- liquidtype = "source",
liquid_range = 1,
liquid_viscosity = 0,
liquid_alternative_flowing = "testnodes:liquid_flowing_waving",
@@ -424,18 +428,17 @@ minetest.register_node("testnodes:liquid_flowing_waving", {
paramtype = "light",
paramtype2 = "flowingliquid",
tiles = {
- "testnodes_liquidflowing.png^[brighten",
+ "testnodes_liquidflowing.png^[colorize:#0000FF:127",
},
special_tiles = {
- {name="testnodes_liquidflowing.png^[brighten", backface_culling=false},
- {name="testnodes_liquidflowing.png^[brighten", backface_culling=false},
+ {name="testnodes_liquidflowing.png^[colorize:#0000FF:127", backface_culling=false},
+ {name="testnodes_liquidflowing.png^[colorize:#0000FF:127", backface_culling=false},
},
use_texture_alpha = true,
waving = 3,
walkable = false,
- liquidtype = "flowing",
liquid_range = 1,
liquid_viscosity = 0,
liquid_alternative_flowing = "testnodes:liquid_flowing_waving",
@@ -443,8 +446,6 @@ minetest.register_node("testnodes:liquid_flowing_waving", {
groups = { dig_immediate = 3 },
})
-
-
-- Invisible node
minetest.register_node("testnodes:airlike", {
description = S("Airlike Drawtype Test Node"),
diff --git a/games/devtest/mods/testnodes/liquids.lua b/games/devtest/mods/testnodes/liquids.lua
index e316782ad..abef9e0b7 100644
--- a/games/devtest/mods/testnodes/liquids.lua
+++ b/games/devtest/mods/testnodes/liquids.lua
@@ -12,8 +12,6 @@ for d=0, 8 do
alpha = 192,
paramtype = "light",
walkable = false,
- pointable = false,
- diggable = false,
buildable_to = true,
is_ground_content = false,
liquidtype = "source",
@@ -34,8 +32,6 @@ for d=0, 8 do
paramtype = "light",
paramtype2 = "flowingliquid",
walkable = false,
- pointable = false,
- diggable = false,
buildable_to = true,
is_ground_content = false,
liquidtype = "flowing",
@@ -56,8 +52,6 @@ for d=0, 8 do
alpha = 192,
paramtype = "light",
walkable = false,
- pointable = false,
- diggable = false,
buildable_to = true,
is_ground_content = false,
liquidtype = "source",
@@ -78,8 +72,6 @@ for d=0, 8 do
paramtype = "light",
paramtype2 = "flowingliquid",
walkable = false,
- pointable = false,
- diggable = false,
buildable_to = true,
is_ground_content = false,
liquidtype = "flowing",
diff --git a/games/devtest/mods/testnodes/properties.lua b/games/devtest/mods/testnodes/properties.lua
index 01846a5f0..c6331a6ed 100644
--- a/games/devtest/mods/testnodes/properties.lua
+++ b/games/devtest/mods/testnodes/properties.lua
@@ -118,7 +118,6 @@ minetest.register_node("testnodes:liquid_nojump", {
paramtype = "light",
pointable = false,
liquids_pointable = true,
- diggable = false,
buildable_to = true,
is_ground_content = false,
post_effect_color = {a = 70, r = 255, g = 0, b = 200},
@@ -148,7 +147,6 @@ minetest.register_node("testnodes:liquidflowing_nojump", {
paramtype2 = "flowingliquid",
pointable = false,
liquids_pointable = true,
- diggable = false,
buildable_to = true,
is_ground_content = false,
post_effect_color = {a = 70, r = 255, g = 0, b = 200},
diff --git a/src/client/content_mapblock.cpp b/src/client/content_mapblock.cpp
index df2748212..90284ecce 100644
--- a/src/client/content_mapblock.cpp
+++ b/src/client/content_mapblock.cpp
@@ -513,10 +513,10 @@ f32 MapblockMeshGenerator::getCornerLevel(int i, int k)
count++;
} else if (content == CONTENT_AIR) {
air_count++;
- if (air_count >= 2)
- return -0.5 * BS + 0.2;
}
}
+ if (air_count >= 2)
+ return -0.5 * BS + 0.2;
if (count > 0)
return sum / count;
return 0;
diff --git a/src/nodedef.cpp b/src/nodedef.cpp
index f9d15a9f6..1740b010a 100644
--- a/src/nodedef.cpp
+++ b/src/nodedef.cpp
@@ -788,14 +788,12 @@ void ContentFeatures::updateTextures(ITextureSource *tsrc, IShaderSource *shdsrc
solidness = 0;
break;
case NDT_LIQUID:
- assert(liquid_type == LIQUID_SOURCE);
if (tsettings.opaque_water)
alpha = 255;
solidness = 1;
is_liquid = true;
break;
case NDT_FLOWINGLIQUID:
- assert(liquid_type == LIQUID_FLOWING);
solidness = 0;
if (tsettings.opaque_water)
alpha = 255;
@@ -1596,7 +1594,7 @@ static void removeDupes(std::vector<content_t> &list)
void NodeDefManager::resolveCrossrefs()
{
for (ContentFeatures &f : m_content_features) {
- if (f.liquid_type != LIQUID_NONE) {
+ if (f.liquid_type != LIQUID_NONE || f.drawtype == NDT_LIQUID || f.drawtype == NDT_FLOWINGLIQUID) {
f.liquid_alternative_flowing_id = getId(f.liquid_alternative_flowing);
f.liquid_alternative_source_id = getId(f.liquid_alternative_source);
continue;