From a57cb58602b323469861c0b06573c6e47db56f34 Mon Sep 17 00:00:00 2001 From: Kai Stevenson Date: Sat, 29 Aug 2026 21:26:41 -0700 Subject: generating wood caves --- src/main.rs | 32 +++++++++++++++++++++++--------- 1 file changed, 23 insertions(+), 9 deletions(-) (limited to 'src/main.rs') 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, vfx_manager: Option, sim_manager: Option, + world_generator: Option, // 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); -- cgit v1.3.1