summaryrefslogtreecommitdiff
path: root/src/main.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/main.rs')
-rw-r--r--src/main.rs32
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);