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