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,5 +1,5 @@
use super::{BackbackSwapEvent, Backpack, BackpackHead};
use crate::heads_ui::HeadsImages;
use crate::{GameState, heads_ui::HeadsImages, loading_assets::UIAssets};
use bevy::prelude::*;
static HEAD_SLOTS: usize = 5;
@@ -44,20 +44,17 @@ impl BackpackUiState {
pub fn plugin(app: &mut App) {
app.init_resource::<BackpackUiState>();
app.add_systems(Startup, setup);
app.add_systems(OnEnter(GameState::Playing), setup);
app.add_systems(
Update,
(update, sync_on_change, update_visibility, update_count),
(update, sync_on_change, update_visibility, update_count)
.run_if(in_state(GameState::Playing)),
);
app.add_observer(swap_head_inputs);
}
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");
let selector = asset_server.load("ui/selector.png");
fn setup(mut commands: Commands, assets: Res<UIAssets>) {
commands
.spawn((
Name::new("backpack"),
@@ -75,10 +72,10 @@ fn setup(mut commands: Commands, asset_server: Res<AssetServer>) {
for i in 0..HEAD_SLOTS {
spawn_head_ui(
parent,
bg.clone(),
regular.clone(),
selector.clone(),
damage.clone(),
assets.head_bg.clone(),
assets.head_regular.clone(),
assets.head_selector.clone(),
assets.head_damage.clone(),
i,
);
}
@@ -88,7 +85,7 @@ fn setup(mut commands: Commands, asset_server: Res<AssetServer>) {
Text::new("0"),
BackpackCountText,
TextFont {
font: asset_server.load("font.ttf"),
font: assets.font.clone(),
font_size: 34.0,
..default()
},