aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorx2048 <codeforsmile@gmail.com>2023-03-24 12:34:21 +0100
committerGitHub <noreply@github.com>2023-03-24 12:34:21 +0100
commitf3b198e49008ea3aba568974c8f423fdc801d4a2 (patch)
tree8eca17900d17554aa8d43a62a9448a50fd3e3c19 /src
parent9af587c54ebacd6708cc57902278c30556b6aaa0 (diff)
downloadminetest-f3b198e49008ea3aba568974c8f423fdc801d4a2.tar.xz
Return shadow_sky_body_orbit_tilt setting
Used as a default value when the game does not change the value via API (e.g. legacy server)
Diffstat (limited to 'src')
-rw-r--r--src/client/sky.cpp1
-rw-r--r--src/client/sky.h3
-rw-r--r--src/defaultsettings.cpp1
-rw-r--r--src/script/lua_api/l_object.cpp6
-rw-r--r--src/skyparams.h6
5 files changed, 12 insertions, 5 deletions
diff --git a/src/client/sky.cpp b/src/client/sky.cpp
index eb7db36d4..0cdec0ac9 100644
--- a/src/client/sky.cpp
+++ b/src/client/sky.cpp
@@ -97,6 +97,7 @@ Sky::Sky(s32 id, RenderingEngine *rendering_engine, ITextureSource *tsrc, IShade
}
m_directional_colored_fog = g_settings->getBool("directional_colored_fog");
+ m_sky_params.body_orbit_tilt = g_settings->getFloat("shadow_sky_body_orbit_tilt", -60., 60.);
setStarCount(1000);
}
diff --git a/src/client/sky.h b/src/client/sky.h
index 602876797..9102db4d4 100644
--- a/src/client/sky.h
+++ b/src/client/sky.h
@@ -98,7 +98,8 @@ public:
}
void setBodyOrbitTilt(float body_orbit_tilt)
{
- m_sky_params.body_orbit_tilt = body_orbit_tilt;
+ if (body_orbit_tilt != SkyboxParams::INVALID_SKYBOX_TILT)
+ m_sky_params.body_orbit_tilt = rangelim(body_orbit_tilt, -90.f, 90.f);
}
void overrideColors(video::SColor bgcolor, video::SColor skycolor)
{
diff --git a/src/defaultsettings.cpp b/src/defaultsettings.cpp
index 9b84c8977..e2457ce78 100644
--- a/src/defaultsettings.cpp
+++ b/src/defaultsettings.cpp
@@ -288,6 +288,7 @@ void set_default_settings()
settings->setDefault("shadow_poisson_filter", "true");
settings->setDefault("shadow_update_frames", "8");
settings->setDefault("shadow_soft_radius", "5.0");
+ settings->setDefault("shadow_sky_body_orbit_tilt", "0.0");
// Input
settings->setDefault("invert_mouse", "false");
diff --git a/src/script/lua_api/l_object.cpp b/src/script/lua_api/l_object.cpp
index c75478590..11819c0e7 100644
--- a/src/script/lua_api/l_object.cpp
+++ b/src/script/lua_api/l_object.cpp
@@ -1919,8 +1919,10 @@ int ObjectRef::l_get_sky(lua_State *L)
lua_pushlstring(L, skybox_params.type.c_str(), skybox_params.type.size());
lua_setfield(L, -2, "type");
- lua_pushnumber(L, skybox_params.body_orbit_tilt);
- lua_setfield(L, -2, "body_orbit_tilt");
+ if (skybox_params.body_orbit_tilt != SkyboxParams::INVALID_SKYBOX_TILT) {
+ lua_pushnumber(L, skybox_params.body_orbit_tilt);
+ lua_setfield(L, -2, "body_orbit_tilt");
+ }
lua_newtable(L);
s16 i = 1;
diff --git a/src/skyparams.h b/src/skyparams.h
index 6c904d2a1..0adb3f038 100644
--- a/src/skyparams.h
+++ b/src/skyparams.h
@@ -19,6 +19,7 @@ with this program; if not, write to the Free Software Foundation, Inc.,
#pragma once
+
struct SkyColor
{
video::SColor day_sky;
@@ -32,6 +33,8 @@ struct SkyColor
struct SkyboxParams
{
+ static constexpr float INVALID_SKYBOX_TILT = -1024.f;
+
video::SColor bgcolor;
std::string type;
std::vector<std::string> textures;
@@ -40,7 +43,7 @@ struct SkyboxParams
video::SColor fog_sun_tint;
video::SColor fog_moon_tint;
std::string fog_tint_type;
- float body_orbit_tilt;
+ float body_orbit_tilt { INVALID_SKYBOX_TILT };
};
struct SunParams
@@ -96,7 +99,6 @@ public:
sky.fog_sun_tint = video::SColor(255, 244, 125, 29);
sky.fog_moon_tint = video::SColorf(0.5, 0.6, 0.8, 1).toSColor();
sky.fog_tint_type = "default";
- sky.body_orbit_tilt = 0.0f;
return sky;
}