diff --git a/builtin/settingtypes.txt b/builtin/settingtypes.txt index b43c938ae..8dc37c3e7 100644 --- a/builtin/settingtypes.txt +++ b/builtin/settingtypes.txt @@ -265,8 +265,8 @@ undersampling (Undersampling) int 1 1 8 [**Graphics Effects] -# Makes all liquids opaque -opaque_water (Opaque liquids) bool false +# Allows liquids to be translucent. +translucent_liquids (Translucent liquids) bool true # Leaves style: # - Fancy: all faces visible diff --git a/src/defaultsettings.cpp b/src/defaultsettings.cpp index 6c0d4b4cc..378d09759 100644 --- a/src/defaultsettings.cpp +++ b/src/defaultsettings.cpp @@ -282,7 +282,7 @@ void set_default_settings() settings->setDefault("enable_3d_clouds", "true"); settings->setDefault("cloud_radius", "12"); settings->setDefault("menu_clouds", "true"); - settings->setDefault("opaque_water", "false"); + settings->setDefault("translucent_liquids", "true"); settings->setDefault("console_height", "0.6"); settings->setDefault("console_color", "(0,0,0)"); settings->setDefault("console_alpha", "200"); diff --git a/src/main.cpp b/src/main.cpp index d693a6b5c..7f078d9b2 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -28,6 +28,7 @@ with this program; if not, write to the Free Software Foundation, Inc., #include "filesys.h" #include "version.h" #include "defaultsettings.h" +#include "migratesettings.h" #include "gettext.h" #include "log.h" #include "util/quicktune.h" @@ -687,6 +688,8 @@ static bool init_common(const Settings &cmd_args, int argc, char *argv[]) if (!read_config_file(cmd_args)) return false; + migrate_settings(); + init_log_streams(cmd_args); // Initialize random seed diff --git a/src/migratesettings.h b/src/migratesettings.h new file mode 100644 index 000000000..60435f18a --- /dev/null +++ b/src/migratesettings.h @@ -0,0 +1,14 @@ +// Minetest +// SPDX-License-Identifier: LGPL-2.1-or-later + +#include "settings.h" + +void migrate_settings() +{ + // Converts opaque_water to translucent_liquids + if (g_settings->existsLocal("opaque_water")) { + g_settings->set("translucent_liquids", + g_settings->getBool("opaque_water") ? "false" : "true"); + g_settings->remove("opaque_water"); + } +} diff --git a/src/nodedef.cpp b/src/nodedef.cpp index 1ce0a5c74..2914cc3aa 100644 --- a/src/nodedef.cpp +++ b/src/nodedef.cpp @@ -283,7 +283,7 @@ void TileDef::deSerialize(std::istream &is, NodeDrawType drawtype, u16 protocol_ void TextureSettings::readSettings() { connected_glass = g_settings->getBool("connected_glass"); - opaque_water = g_settings->getBool("opaque_water"); + translucent_liquids = g_settings->getBool("translucent_liquids"); bool smooth_lighting = g_settings->getBool("smooth_lighting"); enable_mesh_cache = g_settings->getBool("enable_mesh_cache"); enable_minimap = g_settings->getBool("enable_minimap"); @@ -683,7 +683,7 @@ void ContentFeatures::deSerialize(std::istream &is, u16 protocol_version) if (is.eof()) throw SerializationError(""); post_effect_color_shaded = tmp; - } catch(SerializationError &e) {}; + } catch (SerializationError &e) {}; } #ifndef SERVER @@ -825,14 +825,14 @@ void ContentFeatures::updateTextures(ITextureSource *tsrc, IShaderSource *shdsrc solidness = 0; break; case NDT_LIQUID: - if (tsettings.opaque_water) + if (!tsettings.translucent_liquids) alpha = ALPHAMODE_OPAQUE; solidness = 1; is_liquid = true; break; case NDT_FLOWINGLIQUID: solidness = 0; - if (tsettings.opaque_water) + if (!tsettings.translucent_liquids) alpha = ALPHAMODE_OPAQUE; is_liquid = true; break; diff --git a/src/nodedef.h b/src/nodedef.h index f493d48c4..de713a1ad 100644 --- a/src/nodedef.h +++ b/src/nodedef.h @@ -184,7 +184,7 @@ public: WorldAlignMode world_aligned_mode; AutoScale autoscale_mode; int node_texture_size; - bool opaque_water; + bool translucent_liquids; bool connected_glass; bool enable_mesh_cache; bool enable_minimap;