From 80824a8b69b70e6e40577e4f0236c28c4ad5c15b Mon Sep 17 00:00:00 2001 From: Kai Stevenson Date: Sun, 23 Aug 2026 02:48:43 -0700 Subject: explosions affect rigidbodies, use "world" for rapier --- src/main.rs | 34 +++++++++++++++++++++------------- 1 file changed, 21 insertions(+), 13 deletions(-) (limited to 'src/main.rs') diff --git a/src/main.rs b/src/main.rs index 492f0ba..7620f92 100644 --- a/src/main.rs +++ b/src/main.rs @@ -28,10 +28,9 @@ use crate::{ }, renderer::RendererState, sim::{ - cell::cell::Cell, + cell::Cell, cell_manager::manager::CellManager, - lib::force::apply_explosion, - particle_manager::particle::Particle, + lib::force::{apply_bullet, apply_explosion}, rb_manager::DebugRenderMode, sim_manager::{SimCtx, SimManager}, }, @@ -80,6 +79,9 @@ struct App { window: Option>, renderer_state: Option, + // tests + bullet_origin: Option, + // game input: Input, camera: Option, @@ -125,16 +127,20 @@ impl App { && let Some(lm) = self.input.last_mouse_world_pos { self.input.trigger_test_3 = false; - for _ in 0..100 { - sim.particle_manager.particles.push(Particle { - position: Vec2::new( - lm.0 + random_range(-25.0..25.0), - lm.1 + random_range(-25.0..25.0), - ), - velocity: Vec2::ZERO, - material: MaterialId::Sand, - life: 2.0, - }) + if let Some(origin) = self.bullet_origin { + apply_bullet( + &mut SimCtx { + cell_manager: &mut sim.cell_manager, + particle_manager: &mut sim.particle_manager, + rb_manager: &mut sim.rb_manager, + }, + origin, + Vec2::new(lm.0, lm.1), + 800, + ); + self.bullet_origin = None; + } else { + self.bullet_origin = Some(Vec2::new(lm.0, lm.1)); } } @@ -202,6 +208,8 @@ impl Default for App { window: None, renderer_state: None, + bullet_origin: None, + input: Input { last_mouse_pos_on_screen: None, last_mouse_world_pos: None, -- cgit v1.3.1