use bevy::{prelude::*, sprite::MaterialMesh2dBundle}; use bevy_rapier2d::prelude::*; use crate::{AppState, METER}; use super::set::IngameSet; #[derive(Component)] struct Player {} pub(super) fn player_plugin(app: &mut App) { app.add_systems(OnEnter(AppState::InGame), add_player.in_set(IngameSet)); } pub fn add_player( mut commands: Commands, mut meshes: ResMut>, mut materials: ResMut>, ) { // TODO replace commands .spawn(( Player {}, MaterialMesh2dBundle { mesh: meshes.add(Circle::new(20.)).into(), material: materials.add(Color::linear_rgb(0., 1., 0.)), transform: Transform::from_xyz(100., 100., 0.), ..default() }, )) .insert(( RigidBody::Dynamic, Collider::cuboid(0.4 * METER, 0.9 * METER), Velocity::default(), )) .insert(ActiveEvents::COLLISION_EVENTS); }