use gamestates and assetloader
This commit is contained in:
@@ -1,7 +1,12 @@
|
||||
use avian3d::prelude::*;
|
||||
use bevy::prelude::*;
|
||||
|
||||
use crate::{control::Controls, control::controller::PlayerMovement, physics_layers::GameLayer};
|
||||
use crate::{
|
||||
GameState,
|
||||
control::{Controls, controller::PlayerMovement},
|
||||
loading_assets::UIAssets,
|
||||
physics_layers::GameLayer,
|
||||
};
|
||||
|
||||
#[derive(Component, Reflect, Debug)]
|
||||
pub struct CameraTarget;
|
||||
@@ -43,7 +48,7 @@ pub fn plugin(app: &mut App) {
|
||||
app.register_type::<MainCamera>();
|
||||
|
||||
app.init_resource::<CameraState>();
|
||||
app.add_systems(Startup, startup);
|
||||
app.add_systems(OnEnter(GameState::Playing), startup);
|
||||
app.add_systems(
|
||||
Update,
|
||||
(
|
||||
@@ -52,7 +57,8 @@ pub fn plugin(app: &mut App) {
|
||||
update_look_around,
|
||||
rotate_view_keyboard,
|
||||
rotate_view_gamepad,
|
||||
),
|
||||
)
|
||||
.run_if(in_state(GameState::Playing)),
|
||||
);
|
||||
}
|
||||
|
||||
@@ -76,15 +82,13 @@ fn update_look_around(controls: Res<Controls>, mut cam_state: ResMut<CameraState
|
||||
fn update_ui(
|
||||
mut commands: Commands,
|
||||
cam_state: Res<CameraState>,
|
||||
asset_server: Res<AssetServer>,
|
||||
assets: Res<UIAssets>,
|
||||
query: Query<Entity, With<CameraUi>>,
|
||||
) {
|
||||
if cam_state.is_changed() {
|
||||
let show_ui = cam_state.look_around || cam_state.cutscene;
|
||||
|
||||
if show_ui {
|
||||
let image = asset_server.load("ui/camera.png");
|
||||
|
||||
commands
|
||||
.spawn((
|
||||
CameraUi,
|
||||
@@ -102,7 +106,7 @@ fn update_ui(
|
||||
position_type: PositionType::Absolute,
|
||||
..default()
|
||||
},
|
||||
ImageNode::new(image),
|
||||
ImageNode::new(assets.camera.clone()),
|
||||
));
|
||||
} else {
|
||||
for entity in query.iter() {
|
||||
|
||||
Reference in New Issue
Block a user