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/renderer/ui.rs | 23 +++++++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) (limited to 'src/renderer/ui.rs') diff --git a/src/renderer/ui.rs b/src/renderer/ui.rs index 02ebb48..9af0113 100644 --- a/src/renderer/ui.rs +++ b/src/renderer/ui.rs @@ -1,10 +1,12 @@ use egui::{Color32, Stroke, Ui, epaint::CircleShape}; +use glam::IVec2; use rapier2d::pipeline::QueryFilter; use crate::{ Camera, Config, Diagnostics, content::materials::MaterialId, input::InputManager, + proc_gen::WorldGenerator, sim::{rb_manager::DebugRenderMode, sim_manager::SimManager}, }; @@ -23,7 +25,8 @@ pub fn draw_egui<'a>( camera: &mut Camera, diagnostics: &Diagnostics, input_manager: &InputManager, - sim: &SimManager, + sim: &mut SimManager, + world_generator: &mut WorldGenerator, ) { puffin::profile_function!(); ui.heading("Config"); @@ -104,7 +107,19 @@ pub fn draw_egui<'a>( ui.label(format!("Real FPS: {}", diagnostics.fps)); ui.heading("Camera"); ui.add(egui::Slider::new(&mut camera.zoom, 0.0..=10.0).text("Zoom")); - ui.heading("Input"); + ui.heading("Proc gen"); + if ui.button("Generate").clicked() { + world_generator.update_params(config); + for cx in -5..5 { + for cy in -5..5 { + let chunk = world_generator.generate_chunk(IVec2::new(cx, cy)); + sim.cell_manager.upsert(cx, cy, chunk); + } + } + } + ui.add(egui::Slider::new(&mut config.proc_gen_seed, -100000..=100000).text("Seed")); + ui.label("Cave noise"); + ui.add(egui::Slider::new(&mut config.cave_noise_freq, 0.0..=1.0).text("Frequency")); ui.label(format!( "Mouse (world): x,y=({x}, {y})", @@ -118,13 +133,13 @@ pub fn draw_egui<'a>( y = input_manager.chunk_mouse_pos.y )); - if let Some(&chunk) = sim.cell_manager.chunk_position_to_chunk_idx.get(&( + if let Some(&idx) = sim.cell_manager.chunk_position_to_chunk_idx.get(&( input_manager.chunk_mouse_pos.x, input_manager.chunk_mouse_pos.y, )) { ui.label(format!( "Sleeping={}", - sim.cell_manager.chunks[chunk].sleeping + sim.cell_manager.chunks[idx].sleeping )); } -- cgit v1.3.1