diff options
| author | sofar <sofar@foo-projects.org> | 2023-02-25 16:08:33 -0800 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-02-26 01:08:33 +0100 |
| commit | 2083252c05ece1e47c1c476fda2b9eda3bf332a0 (patch) | |
| tree | 3af58a210bad99834110e4aff820ce04ee839b2b /src/client | |
| parent | 6e1c70e02b00df94a584bb4247cfa4f4c616c8d5 (diff) | |
| download | minetest-2083252c05ece1e47c1c476fda2b9eda3bf332a0.tar.xz | |
Sky: transmit body_orbit_tilt to client. (#13193)
This obsoletes the current client-side setting entirely. The server can
transmit the tilt to the client directly and will send 0.0f as default
value.
Co-authored-by: x2048 <codeforsmile@gmail.com>
Co-authored-by: sfan5 <sfan5@live.de>
Diffstat (limited to 'src/client')
| -rw-r--r-- | src/client/game.cpp | 3 | ||||
| -rw-r--r-- | src/client/sky.cpp | 9 | ||||
| -rw-r--r-- | src/client/sky.h | 5 |
3 files changed, 10 insertions, 7 deletions
diff --git a/src/client/game.cpp b/src/client/game.cpp index 833093673..cd0e67b42 100644 --- a/src/client/game.cpp +++ b/src/client/game.cpp @@ -2976,6 +2976,9 @@ void Game::handleClientEvent_SetSky(ClientEvent *event, CameraOrientation *cam) ); } + // Orbit Tilt: + sky->setBodyOrbitTilt(event->set_sky->body_orbit_tilt); + delete event->set_sky; } diff --git a/src/client/sky.cpp b/src/client/sky.cpp index aacc47250..eb7db36d4 100644 --- a/src/client/sky.cpp +++ b/src/client/sky.cpp @@ -98,9 +98,6 @@ Sky::Sky(s32 id, RenderingEngine *rendering_engine, ITextureSource *tsrc, IShade m_directional_colored_fog = g_settings->getBool("directional_colored_fog"); - if (g_settings->getBool("enable_dynamic_shadows")) - m_sky_body_orbit_tilt = g_settings->getFloat("shadow_sky_body_orbit_tilt", -60.0f, 60.0f); - setStarCount(1000); } @@ -556,12 +553,12 @@ static v3f getSkyBodyPosition(float horizon_position, float day_position, float v3f Sky::getSunDirection() { - return getSkyBodyPosition(90, getWickedTimeOfDay(m_time_of_day) * 360 - 90, m_sky_body_orbit_tilt); + return getSkyBodyPosition(90, getWickedTimeOfDay(m_time_of_day) * 360 - 90, m_sky_params.body_orbit_tilt); } v3f Sky::getMoonDirection() { - return getSkyBodyPosition(270, getWickedTimeOfDay(m_time_of_day) * 360 - 90, m_sky_body_orbit_tilt); + return getSkyBodyPosition(270, getWickedTimeOfDay(m_time_of_day) * 360 - 90, m_sky_params.body_orbit_tilt); } void Sky::draw_sun(video::IVideoDriver *driver, const video::SColor &suncolor, @@ -721,7 +718,7 @@ void Sky::place_sky_body( * day_position: turn the body around the Z axis, to place it depending of the time of the day */ { - v3f centrum = getSkyBodyPosition(horizon_position, day_position, m_sky_body_orbit_tilt); + v3f centrum = getSkyBodyPosition(horizon_position, day_position, m_sky_params.body_orbit_tilt); v3f untilted_centrum = getSkyBodyPosition(horizon_position, day_position, 0.f); for (video::S3DVertex &vertex : vertices) { // Body is directed to -Z (south) by default diff --git a/src/client/sky.h b/src/client/sky.h index 79c478f67..602876797 100644 --- a/src/client/sky.h +++ b/src/client/sky.h @@ -96,6 +96,10 @@ public: { m_fallback_bg_color = fallback_bg_color; } + void setBodyOrbitTilt(float body_orbit_tilt) + { + m_sky_params.body_orbit_tilt = body_orbit_tilt; + } void overrideColors(video::SColor bgcolor, video::SColor skycolor) { m_bgcolor = bgcolor; @@ -164,7 +168,6 @@ private: bool m_directional_colored_fog; bool m_in_clouds = true; // Prevent duplicating bools to remember old values bool m_enable_shaders = false; - float m_sky_body_orbit_tilt = 0.0f; video::SColorf m_bgcolor_bright_f = video::SColorf(1.0f, 1.0f, 1.0f, 1.0f); video::SColorf m_skycolor_bright_f = video::SColorf(1.0f, 1.0f, 1.0f, 1.0f); |
