diff --git a/src/game/player.rs b/src/game/player.rs index 123be38..50aa10c 100644 --- a/src/game/player.rs +++ b/src/game/player.rs @@ -19,13 +19,6 @@ use super::{ PLAYER_DEPTH, }; -mod camera { - use bevy::prelude::*; - - #[derive(Component)] - struct CameraAttached; -} - mod movement {} mod animation; @@ -64,6 +57,7 @@ pub(super) fn player_plugin(app: &mut App) { ( move_player, debug_player_pos, + move_camera, run_animations::, ) .in_set(IngameSet), @@ -85,10 +79,11 @@ fn debug_player_pos(query: Query<&Transform, With>) { /// what this system actually does: /// - move player -/// - act as camera controller +/// - act as camera controller /// - control player animations (fair? i guess??) +/// - count grounded timer /// - set respawn points?! -/// - check for player deaths to the void?!?!?? +/// - check for player deaths to the void?!?!?? fn move_player( mut commands: Commands, kb_input: Res>, @@ -100,7 +95,6 @@ fn move_player( &mut Sprite, &mut PlayerAnimations, )>, - mut camera_query: Query<&mut Transform, (With, Without)>, phys: Query<&KinematicCharacterControllerOutput>, player_coords: Res, world_info: Res, @@ -108,7 +102,6 @@ fn move_player( ) { let (mut vel, mut p_transform, mut player, mut controller, mut sprite, mut anim_state) = query.single_mut(); - let (mut cam_transform) = camera_query.single_mut(); let (output) = phys.get_single(); if player.move_cooldown.tick(time.delta()).finished() { let mut moved = false; @@ -134,9 +127,6 @@ fn move_player( move_y += 1; } - let orig = cam_transform.translation; - cam_transform.translation -= ((orig - p_transform.translation.xy().extend(0.0)) / 30.0); - controller.translation = Some(Vec2::new(move_x as f32 * 6., 0. - 0.01)); vel.linvel += Vec2::new(0., move_y as f32 * METER); @@ -161,15 +151,30 @@ fn move_player( } } - // if p_transform.translation.y < -10. * player_coords.block_size { - // commands.trigger(death::PlayerDeathEvent::Void); - // p_transform.translation = - // Vec2::new(player_coords.x, player_coords.y).extend(PLAYER_DEPTH); - // } player.last_grounded += 1; } } +// for now just extract, later proper refactor. +fn move_camera( + mut camera_query: Query<&mut Transform, With>, + player_query: Query< + &Transform, + ( + With, + // there is no player with a camera, but the engine doesn't know this + Without, + ), + >, +) { + let mut camera_transform = camera_query.single_mut(); + let player_transform = player_query.single(); + + let camera_transform_cur = camera_transform.translation; + camera_transform.translation -= + ((camera_transform_cur - player_transform.translation.xy().extend(0.)) / 30.) +} + fn add_player( mut commands: Commands, mut meshes: ResMut>,