diff --git a/src/client/game.cpp b/src/client/game.cpp index f133c634c6..b8b3c13d85 100644 --- a/src/client/game.cpp +++ b/src/client/game.cpp @@ -2850,7 +2850,7 @@ void Game::handleClientEvent_SetSky(ClientEvent *event, CameraOrientation *cam) ); } else if (event->set_sky->type == "skybox" && event->set_sky->textures.size() == 6) { - // Disable the dyanmic mesh skybox: + // Disable the dynamic mesh skybox: sky->setVisible(false); // Set fog colors: sky->setFallbackBgColor(event->set_sky->bgcolor); @@ -2926,6 +2926,8 @@ void Game::handleClientEvent_SetStars(ClientEvent *event, CameraOrientation *cam sky->setStarColor(event->star_params->starcolor); sky->setStarScale(event->star_params->scale); sky->setStarDayOpacity(event->star_params->day_opacity); + if (event->star_params->star_seed != 0) + sky->setStarSeed(event->star_params->star_seed); delete event->star_params; } diff --git a/src/client/sky.h b/src/client/sky.h index e1eb32be3b..bb0bb1395c 100644 --- a/src/client/sky.h +++ b/src/client/sky.h @@ -85,6 +85,7 @@ public: // Set only from set_sky API void setCloudsEnabled(bool clouds_enabled) { m_clouds_enabled = clouds_enabled; } + void setStarSeed(u64 star_seed) { m_seed = star_seed; } void setFallbackBgColor(video::SColor fallback_bg_color) { m_fallback_bg_color = fallback_bg_color; diff --git a/src/network/clientpackethandler.cpp b/src/network/clientpackethandler.cpp index dee2b4d33b..8ae3ef275f 100644 --- a/src/network/clientpackethandler.cpp +++ b/src/network/clientpackethandler.cpp @@ -1445,6 +1445,7 @@ void Client::handleCommand_HudSetStars(NetworkPacket *pkt) try { *pkt >> stars.day_opacity; } catch (PacketError &e) {}; + *pkt >> stars.star_seed; ClientEvent *event = new ClientEvent(); event->type = CE_SET_STARS; diff --git a/src/script/lua_api/l_object.cpp b/src/script/lua_api/l_object.cpp index eb9ee42bbe..ca1ac0f157 100644 --- a/src/script/lua_api/l_object.cpp +++ b/src/script/lua_api/l_object.cpp @@ -2452,6 +2452,7 @@ int ObjectRef::l_set_stars(lua_State *L) "scale", star_params.scale); star_params.day_opacity = getfloatfield_default(L, 2, "day_opacity", star_params.day_opacity); + star_params.star_seed = getintfield_default(L, 2, "star_seed", star_params.star_seed); } getServer(L)->setStars(player, star_params); diff --git a/src/server.cpp b/src/server.cpp index 3c03e68a63..2b04450e40 100644 --- a/src/server.cpp +++ b/src/server.cpp @@ -1953,7 +1953,7 @@ void Server::SendSetStars(session_t peer_id, const StarParams ¶ms) pkt << params.visible << params.count << params.starcolor << params.scale - << params.day_opacity; + << params.day_opacity << params.star_seed; Send(&pkt); } diff --git a/src/skyparams.h b/src/skyparams.h index 8c74e919c2..8880c02df2 100644 --- a/src/skyparams.h +++ b/src/skyparams.h @@ -64,6 +64,7 @@ struct StarParams video::SColor starcolor; f32 scale; f32 day_opacity; + u64 star_seed; }; struct CloudParams @@ -142,6 +143,7 @@ public: stars.starcolor = video::SColor(105, 235, 235, 255); stars.scale = 1; stars.day_opacity = 0; + stars.star_seed = 0; return stars; }