use gamestates and assetloader

This commit is contained in:
2025-03-26 02:18:40 +01:00
parent 9842148010
commit ac87da83d8
25 changed files with 245 additions and 123 deletions

View File

@@ -1,7 +1,9 @@
use super::AimState;
use crate::{
GameState,
backpack::BackpackHead,
heads_ui::HeadsImages,
loading_assets::UIAssets,
npc::{Hitpoints, NpcHead},
};
use bevy::prelude::*;
@@ -20,15 +22,11 @@ struct TargetUi {
}
pub fn plugin(app: &mut App) {
app.add_systems(Startup, setup);
app.add_systems(Update, (sync, update));
app.add_systems(OnEnter(GameState::Playing), setup);
app.add_systems(Update, (sync, update).run_if(in_state(GameState::Playing)));
}
fn setup(mut commands: Commands, asset_server: Res<AssetServer>) {
let bg = asset_server.load("ui/head_bg.png");
let regular = asset_server.load("ui/head_regular.png");
let damage = asset_server.load("ui/head_damage.png");
fn setup(mut commands: Commands, assets: Res<UIAssets>) {
commands
.spawn((
Name::new("target-ui"),
@@ -41,7 +39,12 @@ fn setup(mut commands: Commands, asset_server: Res<AssetServer>) {
},
))
.with_children(|parent| {
spawn_head_ui(parent, bg.clone(), regular.clone(), damage.clone());
spawn_head_ui(
parent,
assets.head_bg.clone(),
assets.head_regular.clone(),
assets.head_damage.clone(),
);
});
commands.insert_resource(TargetUi::default());