diff options
author | Wuzzy <wuzzy2@mail.ru> | 2021-10-01 14:21:24 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-10-01 16:21:24 +0200 |
commit | 21113ad4105dd3fb181b3d0638b907af94a352ab (patch) | |
tree | 9cd1346f6aff8968c23e2447e50d4469b888b01b /src/script/common | |
parent | f5040707fe7cf9f24274379598527d6298c5818c (diff) | |
download | minetest-21113ad4105dd3fb181b3d0638b907af94a352ab.tar.gz minetest-21113ad4105dd3fb181b3d0638b907af94a352ab.tar.bz2 minetest-21113ad4105dd3fb181b3d0638b907af94a352ab.zip |
Split liquid_viscosity to liquid_viscosity and move_resistance (#10810)
Diffstat (limited to 'src/script/common')
-rw-r--r-- | src/script/common/c_content.cpp | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/src/script/common/c_content.cpp b/src/script/common/c_content.cpp index 5a095fd8f..8a5a3fe71 100644 --- a/src/script/common/c_content.cpp +++ b/src/script/common/c_content.cpp @@ -719,6 +719,9 @@ void read_content_features(lua_State *L, ContentFeatures &f, int index) // the slowest possible f.liquid_viscosity = getintfield_default(L, index, "liquid_viscosity", f.liquid_viscosity); + // If move_resistance is not set explicitly, + // move_resistance is equal to liquid_viscosity + f.move_resistance = f.liquid_viscosity; f.liquid_range = getintfield_default(L, index, "liquid_range", f.liquid_range); f.leveled = getintfield_default(L, index, "leveled", f.leveled); @@ -822,6 +825,21 @@ void read_content_features(lua_State *L, ContentFeatures &f, int index) getstringfield(L, index, "node_dig_prediction", f.node_dig_prediction); + // How much the node slows down players, ranging from 1 to 7, + // the higher, the slower. + f.move_resistance = getintfield_default(L, index, + "move_resistance", f.move_resistance); + + // Whether e.g. players in this node will have liquid movement physics + lua_getfield(L, index, "liquid_move_physics"); + if(lua_isboolean(L, -1)) { + f.liquid_move_physics = lua_toboolean(L, -1); + } else if(lua_isnil(L, -1)) { + f.liquid_move_physics = f.liquid_type != LIQUID_NONE; + } else { + errorstream << "Field \"liquid_move_physics\": Invalid type!" << std::endl; + } + lua_pop(L, 1); } void push_content_features(lua_State *L, const ContentFeatures &c) @@ -949,6 +967,10 @@ void push_content_features(lua_State *L, const ContentFeatures &c) lua_setfield(L, -2, "legacy_wallmounted"); lua_pushstring(L, c.node_dig_prediction.c_str()); lua_setfield(L, -2, "node_dig_prediction"); + lua_pushnumber(L, c.move_resistance); + lua_setfield(L, -2, "move_resistance"); + lua_pushboolean(L, c.liquid_move_physics); + lua_setfield(L, -2, "liquid_move_physics"); } /******************************************************************************/ |