diff options
| author | Kai Stevenson <kai@kaistevenson.com> | 2026-08-29 21:26:41 -0700 |
|---|---|---|
| committer | Kai Stevenson <kai@kaistevenson.com> | 2026-08-29 21:26:41 -0700 |
| commit | a57cb58602b323469861c0b06573c6e47db56f34 (patch) | |
| tree | ef00d97d1843f35472473a0ed8a3dedbfa9b43b9 /src/main.rs | |
| parent | e0feb1dc1821f3e1e3d6b9697cd4560b377988b8 (diff) | |
generating wood caves
Diffstat (limited to 'src/main.rs')
| -rw-r--r-- | src/main.rs | 32 |
1 files changed, 23 insertions, 9 deletions
diff --git a/src/main.rs b/src/main.rs index 9c702a8..0284aaf 100644 --- a/src/main.rs +++ b/src/main.rs @@ -2,6 +2,7 @@ mod camera; mod config; mod content; mod input; +mod proc_gen; mod renderer; mod sim; mod sprite_loader; @@ -30,6 +31,7 @@ use crate::{ Input::{self}, InputManager, }, + proc_gen::WorldGenerator, renderer::RendererState, sim::{entity::EntityDef, rb_manager::DebugRenderMode, sim_manager::SimManager}, vfx::VfxManager, @@ -46,6 +48,10 @@ struct Config { cells_render: bool, debug_render: bool, debug_render_mode: DebugRenderMode, + + // proc gen + proc_gen_seed: i32, + cave_noise_freq: f32, } struct Diagnostics { @@ -63,6 +69,7 @@ struct App { camera: Option<Camera>, vfx_manager: Option<VfxManager>, sim_manager: Option<SimManager>, + world_generator: Option<WorldGenerator>, // renderer last_render: Instant, @@ -123,6 +130,18 @@ impl App { impl Default for App { fn default() -> Self { + let config = Config { + use_threading: true, + brush_radius: 10.0, + brush_material: MaterialId::Sand, + dropper_material: MaterialId::Wood, + cells_render: true, + debug_render: false, + debug_render_mode: DebugRenderMode::default(), + + proc_gen_seed: 10, + cave_noise_freq: 0.005, + }; Self { window: None, renderer_state: None, @@ -133,18 +152,11 @@ impl Default for App { vfx_manager: Some(VfxManager::new()), sim_manager: Some(SimManager::new()), + world_generator: Some(WorldGenerator::new(&config)), last_render: Instant::now(), - config: Config { - use_threading: true, - brush_radius: 10.0, - brush_material: MaterialId::Sand, - dropper_material: MaterialId::Wood, - cells_render: true, - debug_render: false, - debug_render_mode: DebugRenderMode::default(), - }, + config, diagnostics: Diagnostics { fps: 0.0, frame_times: VecDeque::new(), @@ -227,6 +239,7 @@ impl ApplicationHandler for App { && let Some(sim) = &mut self.sim_manager && let Some(vfx) = &mut self.vfx_manager && let Some(camera) = &mut self.camera + && let Some(world_generator) = &mut self.world_generator { renderer_state.render( sim, @@ -235,6 +248,7 @@ impl ApplicationHandler for App { &mut self.config, &self.diagnostics, &self.input_manager, + world_generator, ); vfx.after_render(delta_time); |
