mirror of
https://gitlab.com/veloren/veloren.git
synced 2024-08-30 18:12:32 +00:00
Merge branch 'synis/fix-cave-rng' into 'master'
Fixes #935 - deterministic sprite placement in caves Closes #935 See merge request veloren/veloren!1721
This commit is contained in:
commit
2a69813cf8
@ -107,7 +107,7 @@ pub fn apply_paths_to(canvas: &mut Canvas) {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn apply_caves_to(canvas: &mut Canvas) {
|
pub fn apply_caves_to(canvas: &mut Canvas, rng: &mut impl Rng) {
|
||||||
let info = canvas.info();
|
let info = canvas.info();
|
||||||
canvas.foreach_col(|canvas, wpos2d, col| {
|
canvas.foreach_col(|canvas, wpos2d, col| {
|
||||||
let surface_z = col.riverless_alt.floor() as i32;
|
let surface_z = col.riverless_alt.floor() as i32;
|
||||||
@ -178,13 +178,11 @@ pub fn apply_caves_to(canvas: &mut Canvas) {
|
|||||||
let difficulty = cave_depth / 100.0;
|
let difficulty = cave_depth / 100.0;
|
||||||
|
|
||||||
// Scatter things in caves
|
// Scatter things in caves
|
||||||
if RandomField::new(info.index().seed)
|
if rng.gen::<f32>() < 0.001 * difficulty.powf(1.5) && cave_base < surface_z as i32 - 25
|
||||||
.chance(wpos2d.into(), 0.001 * difficulty.powf(1.5))
|
|
||||||
&& cave_base < surface_z as i32 - 25
|
|
||||||
{
|
{
|
||||||
let lottery = Lottery::<SpriteKind>::load_expect("common.cave_scatter").read();
|
let kind = *Lottery::<SpriteKind>::load_expect("common.cave_scatter")
|
||||||
let kind = *lottery
|
.read()
|
||||||
.choose_seeded(RandomField::new(info.index().seed + 1).get(wpos2d.into()));
|
.choose();
|
||||||
canvas.map(Vec3::new(wpos2d.x, wpos2d.y, cave_base), |block| {
|
canvas.map(Vec3::new(wpos2d.x, wpos2d.y, cave_base), |block| {
|
||||||
block.with_sprite(kind)
|
block.with_sprite(kind)
|
||||||
});
|
});
|
||||||
|
@ -286,7 +286,7 @@ impl World {
|
|||||||
|
|
||||||
layer::apply_trees_to(&mut canvas);
|
layer::apply_trees_to(&mut canvas);
|
||||||
layer::apply_scatter_to(&mut canvas, &mut dynamic_rng);
|
layer::apply_scatter_to(&mut canvas, &mut dynamic_rng);
|
||||||
layer::apply_caves_to(&mut canvas);
|
layer::apply_caves_to(&mut canvas, &mut dynamic_rng);
|
||||||
layer::apply_paths_to(&mut canvas);
|
layer::apply_paths_to(&mut canvas);
|
||||||
|
|
||||||
// Apply site generation
|
// Apply site generation
|
||||||
|
Loading…
x
Reference in New Issue
Block a user