summaryrefslogtreecommitdiff
path: root/src/main.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/main.rs')
-rw-r--r--src/main.rs14
1 files changed, 12 insertions, 2 deletions
diff --git a/src/main.rs b/src/main.rs
index ccca2db..6e6c9d9 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -4,6 +4,7 @@ mod content;
mod input;
mod renderer;
mod sim;
+mod vfx;
use futures::executor;
use std::{collections::VecDeque, sync::Arc, time::Instant};
@@ -30,6 +31,7 @@ use crate::{
},
renderer::RendererState,
sim::{rb_manager::DebugRenderMode, sim_manager::SimManager},
+ vfx::VfxManager,
};
pub type Error = Box<dyn std::error::Error>;
@@ -58,6 +60,7 @@ struct App {
// game
input_manager: InputManager,
camera: Option<Camera>,
+ vfx_manager: Option<VfxManager>,
sim_manager: Option<SimManager>,
// renderer
@@ -77,7 +80,9 @@ impl App {
camera.handle_camera_input(&self.input_manager, delta_time)
}
- if let Some(sim) = &mut self.sim_manager {
+ if let Some(sim) = &mut self.sim_manager
+ && let Some(vfx_manager) = &mut self.vfx_manager
+ {
// --TEST SPAWNING--
if self.input_manager.pressed(Input::Action1) {
sim.create_entity(entity_cube_def(
@@ -97,7 +102,7 @@ impl App {
));
}
- sim.update(&self.config, &self.input_manager, delta_time);
+ sim.update(vfx_manager, &self.config, &self.input_manager, delta_time);
self.input_manager.reset_for_frame();
}
}
@@ -113,6 +118,7 @@ impl Default for App {
camera: None,
+ vfx_manager: Some(VfxManager::new()),
sim_manager: Some(SimManager::new()),
last_render: Instant::now(),
@@ -206,15 +212,19 @@ impl ApplicationHandler for App {
if let Some(renderer_state) = &mut self.renderer_state
&& let Some(sim) = &mut self.sim_manager
+ && let Some(vfx) = &mut self.vfx_manager
&& let Some(camera) = &mut self.camera
{
renderer_state.render(
sim,
+ vfx,
camera,
&mut self.config,
&self.diagnostics,
&self.input_manager,
);
+
+ vfx.after_render(delta_time);
}
}
_ => {}