different head different range
This commit is contained in:
@@ -8,6 +8,7 @@ use crate::{
|
||||
controller::{CharacterControllerBundle, MovementBundle, PlayerMovement},
|
||||
},
|
||||
global_observer,
|
||||
head::ActiveHead,
|
||||
heads::HeadChanged,
|
||||
hitpoints::Hitpoints,
|
||||
loading_assets::GameAssets,
|
||||
@@ -28,16 +29,16 @@ use bevy::{
|
||||
use std::time::Duration;
|
||||
|
||||
#[derive(Component, Default)]
|
||||
pub struct Player(pub usize);
|
||||
pub struct Player;
|
||||
|
||||
#[derive(Component, Default)]
|
||||
struct PlayerAnimations;
|
||||
|
||||
#[derive(Component, Default)]
|
||||
struct PlayerHead;
|
||||
struct PlayerHeadMesh;
|
||||
|
||||
#[derive(Component, Default)]
|
||||
pub struct PlayerRig;
|
||||
pub struct PlayerBodyMesh;
|
||||
|
||||
pub fn plugin(app: &mut App) {
|
||||
app.add_systems(Startup, (toggle_cursor_system, cursor_recenter));
|
||||
@@ -85,7 +86,8 @@ fn spawn(
|
||||
commands
|
||||
.spawn((
|
||||
Name::from("player"),
|
||||
Player(0),
|
||||
Player,
|
||||
ActiveHead(0),
|
||||
Hitpoints::new(100),
|
||||
CameraTarget,
|
||||
transform,
|
||||
@@ -102,7 +104,7 @@ fn spawn(
|
||||
parent
|
||||
.spawn((
|
||||
Name::from("body rig"),
|
||||
PlayerRig,
|
||||
PlayerBodyMesh,
|
||||
CameraArmRotation,
|
||||
Transform::from_translation(Vec3::new(0., -1.45, 0.))
|
||||
.with_rotation(Quat::from_rotation_y(std::f32::consts::PI))
|
||||
@@ -111,7 +113,7 @@ fn spawn(
|
||||
))
|
||||
.with_child((
|
||||
Name::from("head"),
|
||||
PlayerHead,
|
||||
PlayerHeadMesh,
|
||||
Transform::from_translation(Vec3::new(0., 1.6, 0.))
|
||||
.with_scale(Vec3::splat(0.7)),
|
||||
SceneRoot(mesh),
|
||||
@@ -126,7 +128,7 @@ fn spawn(
|
||||
|
||||
fn rotate_view_gamepad(
|
||||
controls: Res<Controls>,
|
||||
mut player: Query<&mut Transform, With<PlayerRig>>,
|
||||
mut player: Query<&mut Transform, With<PlayerBodyMesh>>,
|
||||
) {
|
||||
let Some(gamepad) = controls.gamepad_state else {
|
||||
return;
|
||||
@@ -143,7 +145,7 @@ fn rotate_view_gamepad(
|
||||
|
||||
fn rotate_view_keyboard(
|
||||
mut controls: ResMut<Controls>,
|
||||
mut player: Query<&mut Transform, With<PlayerRig>>,
|
||||
mut player: Query<&mut Transform, With<PlayerBodyMesh>>,
|
||||
) {
|
||||
if controls.keyboard_state.view_mode {
|
||||
return;
|
||||
@@ -209,7 +211,7 @@ fn setup_animations_marker_for_player(
|
||||
mut commands: Commands,
|
||||
animation_handles: Query<Entity, Added<AnimationGraphHandle>>,
|
||||
parent_query: Query<&Parent>,
|
||||
player: Query<&PlayerRig>,
|
||||
player: Query<&PlayerBodyMesh>,
|
||||
) {
|
||||
for entity in animation_handles.iter() {
|
||||
for ancestor in parent_query.iter_ancestors(entity) {
|
||||
@@ -247,14 +249,14 @@ fn on_update_head(
|
||||
trigger: Trigger<HeadChanged>,
|
||||
mut commands: Commands,
|
||||
asset_server: Res<AssetServer>,
|
||||
head: Query<Entity, With<PlayerHead>>,
|
||||
mut player: Query<&mut Player>,
|
||||
head: Query<Entity, With<PlayerHeadMesh>>,
|
||||
mut player_head: Query<&mut ActiveHead, With<Player>>,
|
||||
) {
|
||||
let Ok(head) = head.get_single() else {
|
||||
return;
|
||||
};
|
||||
|
||||
let Ok(mut player) = player.get_single_mut() else {
|
||||
let Ok(mut player) = player_head.get_single_mut() else {
|
||||
return;
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user