Adding a map creation plugin #57

Merged
CoCo_Sol merged 39 commits from map-generation into main 2024-02-21 20:10:03 +00:00
Showing only changes of commit 135f1b7347 - Show all commits

View file

@ -51,7 +51,7 @@ fn generate_map(
if let (Some(perlin), Some(spiral)) = (noise.as_ref(), map_iterator.as_mut()) {
CoCo_Sol marked this conversation as resolved Outdated

You can use the let else syntax to remove one level of nesting.

You can use the let else syntax to remove one level of nesting.

if I use the "else let" keyword, the nesting level is the same

if I use the "else let" keyword, the nesting level is the same

No because you do an early return

No because you do an early return

I have to write an unwrap so ?

I have to write an unwrap so ?

No, an let else

No, an let else
if let Some(position) = spiral.next() {
let pixel_position = position.to_pixel_coordinates((0.2, 0.2)); // Réduire la taille de la tuile
let pixel_position = position.to_pixel_coordinates((0.2, 0.2));
commands.spawn((get_type_tile(pixel_position, perlin), position));
} else {
end_map_event.send(EndMapGeneration);
@ -65,8 +65,8 @@ fn generate_map(
fn get_type_tile(position: (f32, f32), noise: &Perlin) -> Tile {
CoCo_Sol marked this conversation as resolved Outdated

Why don't you use HexPosition here?

Why don't you use HexPosition here?

because is not a hex position in a hex grid but a position in orthogonal grid

because is not a hex position in a hex grid but a position in orthogonal grid

You need to change the name of the function or take an HexPosition and convert it in the function, because it can be confusing that you use "tile" to describe the orthogonal position of an HexPosition

You need to change the name of the function or take an HexPosition and convert it in the function, because it can be confusing that you use "tile" to describe the orthogonal position of an HexPosition

you are right

you are right
CoCo_Sol marked this conversation as resolved
Review

This should be in the get_type function and the value shouldn't be hard coded

This should be in the get_type function and the value shouldn't be hard coded
let value = noise.get([position.0 as f64, position.1 as f64]);
match value {
v if v <= -0.5 => Tile::Hill, // Réduire le seuil pour les collines
v if v >= 0.5 => Tile::Forest, // Réduire le seuil pour les forêts
v if v <= -0.5 => Tile::Hill,
v if v >= 0.5 => Tile::Forest,
_ => Tile::Grass,
}
}