Skip to content
Snippets Groups Projects
colliders.rs 887 B
Newer Older
use crate::entities::{BoxSize, CollisionGroup};
use bevy::prelude::{Added, BuildChildren, Commands, Entity, Query, Transform};
use bevy_prototype_lyon::prelude::{Fill, GeometryBuilder, RectangleOrigin, ShapeBundle, Stroke};
use bevy_prototype_lyon::shapes;

pub fn spawn_debug_colliders(
	mut commands: Commands,
	new_collider_query: Query<(Entity, &BoxSize, &CollisionGroup), Added<CollisionGroup>>,
) {
	for (entity, box_size, group) in &new_collider_query {
		commands.entity(entity).with_children(|commands| {
			let shape = shapes::Rectangle {
				origin: RectangleOrigin::Center,
				extents: **box_size,
			};
			commands.spawn((
				ShapeBundle {
					transform: Transform::from_xyz(0.0, 0.0, 100.0),
					path: GeometryBuilder::build_as(&shape),
					..Default::default()
				},
				Fill::color(group.color().with_a(0.3)),
				Stroke::new(group.color(), 1.5),
			));
		});
	}
}