Cleanup
This commit is contained in:
@@ -1,22 +1,16 @@
|
||||
use crate::{
|
||||
components::{
|
||||
camera::{CameraAttachment, CameraMode, CameraPitch, FollowCam, MainCamera},
|
||||
camera::{CameraAttachment, CameraMode, CameraPitch, MainCamera},
|
||||
player::PlayerDrag,
|
||||
tags::{Player, Ship},
|
||||
},
|
||||
plugins::{state_management::StateManagementPlugin, *},
|
||||
states::{
|
||||
game::*,
|
||||
input::{InputState, PlayerState},
|
||||
menu::MenuState,
|
||||
play::PlayStartupSystems,
|
||||
},
|
||||
states::play::PlayStartupSystems,
|
||||
};
|
||||
use bevy::{
|
||||
prelude::*,
|
||||
window::{CursorGrabMode, PrimaryWindow},
|
||||
};
|
||||
use bevy_asset_loader::prelude::*;
|
||||
use bevy_rapier3d::prelude::*;
|
||||
|
||||
#[derive(Default)]
|
||||
|
||||
@@ -15,6 +15,8 @@ pub use follow_cam::*;
|
||||
pub use game::*;
|
||||
pub use main_menu::*;
|
||||
pub use player::*;
|
||||
#[allow(unused_imports)]
|
||||
pub use ship::*;
|
||||
#[allow(unused_imports)]
|
||||
pub use ship_cam::*;
|
||||
pub use types::*;
|
||||
|
||||
@@ -9,7 +9,7 @@ use crate::{
|
||||
player::{GravityDirection, JumpSpeed, MoveSpeed, PlayerDrag, PlayerForce, PlayerMotion, PlayerVelocity},
|
||||
tags::Player,
|
||||
},
|
||||
states::{input::PlayerInputSystems, play::PlaySystems},
|
||||
states::{input::InputWorldSystems, play::PlaySystems},
|
||||
utils::{input::get_mouse_delta, rotation::get_alignment_rotation_preserve_twist},
|
||||
};
|
||||
|
||||
@@ -17,7 +17,7 @@ pub struct PlayerPlugin;
|
||||
|
||||
impl Plugin for PlayerPlugin {
|
||||
fn build(&self, app: &mut App) {
|
||||
app.add_systems(PreUpdate, (keyboard_input, player_look).in_set(PlayerInputSystems));
|
||||
app.add_systems(PreUpdate, (keyboard_input, player_look).in_set(InputWorldSystems));
|
||||
app.add_systems(
|
||||
Update,
|
||||
(apply_gravity, apply_forces, apply_motion, apply_drag)
|
||||
|
||||
@@ -3,7 +3,7 @@ use bevy::prelude::*;
|
||||
pub struct ShipCamPlugin;
|
||||
|
||||
impl Plugin for ShipCamPlugin {
|
||||
fn build(&self, app: &mut App) {
|
||||
fn build(&self, _app: &mut App) {
|
||||
todo!()
|
||||
}
|
||||
}
|
||||
|
||||
@@ -5,7 +5,10 @@ use crate::{
|
||||
configure_sets,
|
||||
states::{
|
||||
game::{GameState, InGameSystems, MenuSystems},
|
||||
input::{InputState, PlayerInputSystems, PlayerState},
|
||||
input::{
|
||||
InputDetachedSystems, InputMenuSystems, InputState, InputWorldSystems, PlayerFreeFloatingSystems,
|
||||
PlayerOnFootSystems, PlayerPilotingSystems, PlayerState,
|
||||
},
|
||||
menu::{
|
||||
MainMenuSystems, MenuCleanupSystems, MenuStartupSystems, MenuState, OptionsMenuSystems, SavesMenuSystems,
|
||||
},
|
||||
@@ -74,10 +77,40 @@ impl Plugin for StateManagementPlugin {
|
||||
//Input
|
||||
configure_sets!(
|
||||
app,
|
||||
PlayerInputSystems
|
||||
InputWorldSystems
|
||||
.run_if(in_state(InputState::World))
|
||||
.in_set(PlaySystems)
|
||||
);
|
||||
configure_sets!(
|
||||
app,
|
||||
InputMenuSystems.run_if(in_state(InputState::Menu)).in_set(PlaySystems)
|
||||
);
|
||||
configure_sets!(
|
||||
app,
|
||||
InputDetachedSystems
|
||||
.run_if(in_state(InputState::Detached))
|
||||
.in_set(PlaySystems)
|
||||
);
|
||||
|
||||
//Player
|
||||
configure_sets!(
|
||||
app,
|
||||
PlayerOnFootSystems
|
||||
.run_if(in_state(PlayerState::OnFoot))
|
||||
.in_set(PlaySystems)
|
||||
);
|
||||
configure_sets!(
|
||||
app,
|
||||
PlayerFreeFloatingSystems
|
||||
.run_if(in_state(PlayerState::FreeFloating))
|
||||
.in_set(PlaySystems)
|
||||
);
|
||||
configure_sets!(
|
||||
app,
|
||||
PlayerPilotingSystems
|
||||
.run_if(in_state(PlayerState::Piloting))
|
||||
.in_set(PlaySystems)
|
||||
);
|
||||
|
||||
//State Transitions
|
||||
app.add_systems(Update, game_startup.in_set(PlayStartupSystems));
|
||||
|
||||
@@ -9,7 +9,13 @@ pub enum InputState {
|
||||
}
|
||||
|
||||
#[derive(SystemSet, Debug, Clone, PartialEq, Eq, Hash)]
|
||||
pub struct PlayerInputSystems;
|
||||
pub struct InputWorldSystems;
|
||||
|
||||
#[derive(SystemSet, Debug, Clone, PartialEq, Eq, Hash)]
|
||||
pub struct InputMenuSystems;
|
||||
|
||||
#[derive(SystemSet, Debug, Clone, PartialEq, Eq, Hash)]
|
||||
pub struct InputDetachedSystems;
|
||||
|
||||
#[derive(States, Debug, Default, Clone, PartialEq, Eq, Hash)]
|
||||
pub enum PlayerState {
|
||||
@@ -18,3 +24,12 @@ pub enum PlayerState {
|
||||
FreeFloating,
|
||||
Piloting,
|
||||
}
|
||||
|
||||
#[derive(SystemSet, Debug, Clone, PartialEq, Eq, Hash)]
|
||||
pub struct PlayerOnFootSystems;
|
||||
|
||||
#[derive(SystemSet, Debug, Clone, PartialEq, Eq, Hash)]
|
||||
pub struct PlayerFreeFloatingSystems;
|
||||
|
||||
#[derive(SystemSet, Debug, Clone, PartialEq, Eq, Hash)]
|
||||
pub struct PlayerPilotingSystems;
|
||||
|
||||
@@ -2,6 +2,7 @@ use std::f32::consts::PI;
|
||||
|
||||
use bevy::prelude::*;
|
||||
|
||||
#[allow(dead_code)]
|
||||
pub fn get_alignment_rotation(cur_dir: Dir3, target_dir: Vec3) -> Quat {
|
||||
let tgt = target_dir.normalize();
|
||||
let axis = cur_dir.cross(tgt);
|
||||
|
||||
Reference in New Issue
Block a user