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,4 +1,5 @@
use crate::{
GameState,
aim::AimState,
billboards::Billboard,
npc::Hit,
@@ -39,10 +40,11 @@ struct ShotAssets {
struct AnimationTimer(Timer);
pub fn plugin(app: &mut App) {
app.add_systems(Startup, setup);
app.add_systems(OnEnter(GameState::Playing), setup);
app.add_systems(
Update,
(update, shot_collision, enemy_hit, timeout, animate_sprite),
(update, shot_collision, enemy_hit, timeout, animate_sprite)
.run_if(in_state(GameState::Playing)),
);
app.add_observer(on_trigger_state);
}
@@ -52,6 +54,7 @@ fn setup(
asset_server: Res<AssetServer>,
mut sprite_params: Sprite3dParams,
) {
// TODO: use asset server
let image = asset_server.load("textures/fx/impact.png");
let layout = TextureAtlasLayout::from_grid(UVec2::splat(256), 7, 6, None, None);
let texture_atlas_layout = sprite_params.atlas_layouts.add(layout);