From 4a097e7ed8323ac2cf973bfea21f86f9281d3c2b Mon Sep 17 00:00:00 2001 From: Michael Bradley Date: Sat, 24 May 2025 22:27:44 -0400 Subject: [PATCH] Scope GameObjects for automatic cleanup --- src/game/objects.rs | 4 +++- src/lib.rs | 1 + 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/src/game/objects.rs b/src/game/objects.rs index da4f096..1ede2d5 100644 --- a/src/game/objects.rs +++ b/src/game/objects.rs @@ -1,9 +1,11 @@ use avian2d::prelude::*; use bevy::prelude::*; +use crate::AppState; + /// Basic implementation of a physics object #[derive(Component, Default)] -#[require(Collider, Mesh2d, MeshMaterial2d, Restitution = Restitution::new(1.0), RigidBody, TransformInterpolation, Transform)] +#[require(Collider, Mesh2d, MeshMaterial2d, Restitution = Restitution::new(1.0), RigidBody, TransformInterpolation, Transform, StateScoped = StateScoped(AppState::InGame))] struct GameObject; /// Radius of a ball diff --git a/src/lib.rs b/src/lib.rs index 113b8b6..be09d25 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -40,6 +40,7 @@ struct Source { } #[derive(States, Default, Debug, Clone, PartialEq, Eq, Hash)] +#[states(scoped_entities)] enum AppState { #[default] Loading,