1
0
Fork 0
mirror of https://github.com/luanti-org/luanti.git synced 2025-06-27 16:36:03 +00:00

Split liquid_viscosity to liquid_viscosity and move_resistance (#10810)

This commit is contained in:
Wuzzy 2021-10-01 14:21:24 +00:00 committed by GitHub
parent f5040707fe
commit 21113ad410
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
15 changed files with 288 additions and 44 deletions

View file

@ -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");
}
/******************************************************************************/