mirror of
https://github.com/minetest/minetest.git
synced 2024-11-27 10:03:45 +01:00
Reuse seed when updating stars
The only currently relevant parameter is scale which can now be changed without resetting stars position
This commit is contained in:
parent
3077afc0a2
commit
560627eef8
@ -830,6 +830,7 @@ void Sky::setStarCount(u16 star_count, bool force_update)
|
|||||||
// Allow force updating star count at game init.
|
// Allow force updating star count at game init.
|
||||||
if (m_star_params.count != star_count || force_update) {
|
if (m_star_params.count != star_count || force_update) {
|
||||||
m_star_params.count = star_count;
|
m_star_params.count = star_count;
|
||||||
|
m_seed = (u64)myrand() << 32 | myrand();
|
||||||
updateStars();
|
updateStars();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -847,12 +848,13 @@ void Sky::updateStars() {
|
|||||||
m_stars->Vertices.reallocate(4 * m_star_params.count);
|
m_stars->Vertices.reallocate(4 * m_star_params.count);
|
||||||
m_stars->Indices.reallocate(6 * m_star_params.count);
|
m_stars->Indices.reallocate(6 * m_star_params.count);
|
||||||
|
|
||||||
|
PcgRandom rgen(m_seed);
|
||||||
float d = (0.006 / 2) * m_star_params.scale;
|
float d = (0.006 / 2) * m_star_params.scale;
|
||||||
for (u16 i = 0; i < m_star_params.count; i++) {
|
for (u16 i = 0; i < m_star_params.count; i++) {
|
||||||
v3f r = v3f(
|
v3f r = v3f(
|
||||||
myrand_range(-10000, 10000),
|
rgen.range(-10000, 10000),
|
||||||
myrand_range(-10000, 10000),
|
rgen.range(-10000, 10000),
|
||||||
myrand_range(-10000, 10000)
|
rgen.range(-10000, 10000)
|
||||||
);
|
);
|
||||||
core::CMatrix4<f32> a;
|
core::CMatrix4<f32> a;
|
||||||
a.buildRotateFromTo(v3f(0, 1, 0), r);
|
a.buildRotateFromTo(v3f(0, 1, 0), r);
|
||||||
|
@ -179,6 +179,7 @@ private:
|
|||||||
|
|
||||||
bool m_default_tint = true;
|
bool m_default_tint = true;
|
||||||
|
|
||||||
|
u64 m_seed = 0;
|
||||||
irr_ptr<scene::SMeshBuffer> m_stars;
|
irr_ptr<scene::SMeshBuffer> m_stars;
|
||||||
|
|
||||||
video::ITexture *m_sun_texture;
|
video::ITexture *m_sun_texture;
|
||||||
|
Loading…
Reference in New Issue
Block a user