Skip to content

Commit 8a24e32

Browse files
Fastcheck
1 parent 5d00f8f commit 8a24e32

File tree

4 files changed

+77
-52
lines changed

4 files changed

+77
-52
lines changed

src/client/player/systems/controller.rs

Lines changed: 9 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -5,23 +5,20 @@ const SPAWN_POINT: Vec3 = Vec3::new(128.0, 96.0, -128.0);
55

66
pub fn setup_player_camera(mut commands: Commands) {
77
commands.spawn((
8-
Name::new("Player cam?"),
8+
Name::new("Player cam?"),
99
Camera3d::default(),
1010
// Projection::Perspective(PerspectiveProjection {
1111
// fov: TAU / 5.0,
1212
// ..default()
1313
// }),
14-
Projection::Orthographic(
15-
OrthographicProjection {
16-
scale: 0.125,
17-
near: 0.0001,
18-
far: 1000.0,
19-
viewport_origin: Vec2::new(0.5, 0.5),
20-
scaling_mode: ScalingMode::WindowSize,
21-
area: Rect::new(-1.0, -1.0, 1.0, 1.0),
22-
}
23-
.into(),
24-
),
14+
Projection::Orthographic(OrthographicProjection {
15+
scale: 0.125,
16+
near: 0.0001,
17+
far: 1000.0,
18+
viewport_origin: Vec2::new(0.5, 0.5),
19+
scaling_mode: ScalingMode::WindowSize,
20+
area: Rect::new(-1.0, -1.0, 1.0, 1.0),
21+
}),
2522
RenderPlayer {
2623
logical_entity: Entity::from_raw(0),
2724
},

src/server/terrain/resources.rs

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,3 @@
1-
use std::fmt::Display;
2-
31
use crate::prelude::*;
42

53
use bevy::utils::HashMap;
@@ -99,12 +97,12 @@ impl Default for TerrainGeneratorParams {
9997
pub enum TextureType {
10098
Height,
10199
HeightAdjust,
102-
Density
100+
Density,
103101
}
104102

105103
#[derive(Resource)]
106104
pub struct NoiseTextureList {
107-
pub noise_textures: HashMap<TextureType, NoiseTexture>
105+
pub noise_textures: HashMap<TextureType, NoiseTexture>,
108106
}
109107

110108
impl Default for NoiseTextureList {
@@ -115,9 +113,7 @@ impl Default for NoiseTextureList {
115113
noise_textures.insert(TextureType::HeightAdjust, NoiseTexture::default());
116114
noise_textures.insert(TextureType::Density, NoiseTexture::default());
117115

118-
NoiseTextureList {
119-
noise_textures,
120-
}
116+
NoiseTextureList { noise_textures }
121117
}
122118
}
123119

src/server/terrain/systems.rs

Lines changed: 64 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,10 @@ mod visualizer {
3737
use renet::{DefaultChannel, RenetServer};
3838
use rsmc::{Chunk, ChunkManager, NetworkingMessage, CHUNK_SIZE};
3939

40-
use super::{terrain_events, terrain_resources::{self, NoiseFunctionParams, NoiseTexture, TextureType}};
40+
use super::{
41+
terrain_events,
42+
terrain_resources::{self, NoiseFunctionParams, TextureType},
43+
};
4144

4245
fn map_range(value: f64, min: f64, max: f64, new_min: f64, new_max: f64) -> f64 {
4346
((value - min) / (max - min)) * (new_max - new_min) + new_min
@@ -46,7 +49,6 @@ mod visualizer {
4649
fn generate_terrain_heightmap(
4750
generator: &terrain_resources::Generator,
4851
texture_type: &TextureType,
49-
origin: Vec3,
5052
size: Vec3,
5153
draw_chunk_border: bool,
5254
) -> ImageData {
@@ -59,31 +61,30 @@ mod visualizer {
5961
for z in 0..height {
6062
let index = x + z * width;
6163

62-
if draw_chunk_border {
63-
if x % CHUNK_SIZE == 0 || z % CHUNK_SIZE == 0 {
64-
data[index] = 255;
65-
continue;
66-
}
64+
if draw_chunk_border && (x % CHUNK_SIZE == 0 || z % CHUNK_SIZE == 0) {
65+
data[index] = 255;
66+
continue;
6767
}
6868

6969
match texture_type {
7070
TextureType::Height => {
71-
let sample_position = Vec2::new((origin.x + x as f32) / 1.0, (origin.z + z as f32) / 1.0);
71+
let sample_position = Vec2::new(x as f32, z as f32);
7272
let value = generator.normalized_spline_terrain_sample(sample_position);
73-
let value = ( value * size.y as f64 ) / 2.0 + 0.5;
73+
let value = (value * size.y as f64) / 2.0 + 0.5;
7474

75-
data[index] = value as u8;
75+
data[index] = value as u8;
7676
}
7777
TextureType::HeightAdjust => {
78-
let sample_position = Vec2::new((origin.x + x as f32) / 1.0, (origin.z + z as f32) / 1.0);
79-
let value = generator.sample_2d(sample_position, &generator.params.height_adjust_params);
78+
let sample_position = Vec2::new(x as f32, z as f32);
79+
let value = generator
80+
.sample_2d(sample_position, &generator.params.height_adjust_params);
8081
let value = map_range(value, -1.0, 1.0, 0.0, 255.0);
8182

82-
data[index] = value as u8;
83+
data[index] = value as u8;
8384
}
8485
TextureType::Density => {
8586
// TODO: change to sample3D
86-
let pos = Vec2::new(origin.x + x as f32, origin.z + z as f32);
87+
let pos = Vec2::new(x as f32, z as f32);
8788
let value = generator.sample_2d(pos, &generator.params.density_params);
8889
let value = map_range(value, -1.0, 1.0, 0.0, 255.0);
8990

@@ -124,7 +125,7 @@ mod visualizer {
124125
generator.generate_chunk(&mut chunk);
125126
chunk
126127
})
127-
.collect();
128+
.collect();
128129

129130
new_chunks.into_iter().for_each(|chunk| {
130131
chunk_manager.insert_chunk(chunk);
@@ -161,17 +162,19 @@ mod visualizer {
161162
let image_data = generate_terrain_heightmap(
162163
&generator,
163164
&texture_type,
164-
Vec3::ZERO,
165165
Vec3::new(width as f32, height as f32, depth as f32),
166-
true
166+
true,
167167
);
168168

169-
let entry = noise_texture_list.noise_textures.get_mut(&texture_type).expect("Noise texture not loaded, please initialize the resource properly.");
169+
let entry = noise_texture_list
170+
.noise_textures
171+
.get_mut(&texture_type)
172+
.expect("Noise texture not loaded, please initialize the resource properly.");
170173

171174
entry.texture = Some(contexts.ctx_mut().load_texture(
172-
"terrain-texture",
173-
image_data,
174-
TextureOptions::default(),
175+
"terrain-texture",
176+
image_data,
177+
TextureOptions::default(),
175178
));
176179
entry.size = Vec2::new(width as f32, height as f32);
177180
}
@@ -180,28 +183,57 @@ mod visualizer {
180183
pub fn prepare_visualizer_texture_system(
181184
mut event_writer: EventWriter<terrain_events::RegenerateHeightMapEvent>,
182185
) {
183-
event_writer.send(terrain_events::RegenerateHeightMapEvent(TextureType::Height));
184-
event_writer.send(terrain_events::RegenerateHeightMapEvent(TextureType::HeightAdjust));
185-
event_writer.send(terrain_events::RegenerateHeightMapEvent(TextureType::Density));
186+
event_writer.send(terrain_events::RegenerateHeightMapEvent(
187+
TextureType::Height,
188+
));
189+
event_writer.send(terrain_events::RegenerateHeightMapEvent(
190+
TextureType::HeightAdjust,
191+
));
192+
event_writer.send(terrain_events::RegenerateHeightMapEvent(
193+
TextureType::Density,
194+
));
186195
}
187196

188197
macro_rules! add_slider {
189198
($ui:expr, $changed:expr, $value:expr, $range:expr, $text:expr) => {{
190-
$changed = $changed || $ui
191-
.add(egui::widgets::Slider::new($value, $range).text($text))
192-
.changed();
193-
}};
199+
$changed = $changed
200+
|| $ui
201+
.add(egui::widgets::Slider::new($value, $range).text($text))
202+
.changed();
203+
}};
194204
}
195205

196-
fn add_sliders_for_noise_params(ui: &mut egui::Ui, changed: &mut bool, params: &mut NoiseFunctionParams) {
206+
fn add_sliders_for_noise_params(
207+
ui: &mut egui::Ui,
208+
changed: &mut bool,
209+
params: &mut NoiseFunctionParams,
210+
) {
197211
params.frequency = 1.0 / params.frequency;
198212

199213
let mut loc_changed = false;
200214

201215
add_slider!(ui, loc_changed, &mut params.octaves, 1..=8, "octaves");
202-
add_slider!(ui, loc_changed, &mut params.lacuranity, 0.001..=4.0, "lacuranity");
203-
add_slider!(ui, loc_changed, &mut params.frequency, 10.0..=800.0, "frequency");
204-
add_slider!(ui, loc_changed, &mut params.persistence, 0.001..=1.0, "persistence");
216+
add_slider!(
217+
ui,
218+
loc_changed,
219+
&mut params.lacuranity,
220+
0.001..=4.0,
221+
"lacuranity"
222+
);
223+
add_slider!(
224+
ui,
225+
loc_changed,
226+
&mut params.frequency,
227+
10.0..=800.0,
228+
"frequency"
229+
);
230+
add_slider!(
231+
ui,
232+
loc_changed,
233+
&mut params.persistence,
234+
0.001..=1.0,
235+
"persistence"
236+
);
205237

206238
params.frequency = 1.0 / params.frequency;
207239

src/server/terrain/util/generator.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -179,7 +179,7 @@ impl Generator {
179179

180180
sample /= weight_sum;
181181

182-
sample as f64
182+
sample
183183

184184
// sample.abs() * 2.0 - 1.0
185185
}

0 commit comments

Comments
 (0)