diff --git a/src/animation.rs b/src/animation.rs index d37cc2f..14a57b5 100644 --- a/src/animation.rs +++ b/src/animation.rs @@ -1,7 +1,7 @@ use std::{collections::HashMap, time::Duration}; use crate::json::*; -use bevy::{prelude::*, render::view::VisibilitySystems}; +use bevy::prelude::*; use serde::Deserialize; pub struct AnimationLoadPlugin; @@ -42,6 +42,17 @@ pub enum AnimState { Dead, } +impl AnimState { + fn should_anim(&self) -> bool { + match self { + AnimState::Walking => true, + AnimState::Dying => true, + AnimState::Flashing => false, + AnimState::Dead => false, + } + } +} + #[derive(Component, Clone, Default)] pub struct AnimationComponent { pub walk_handle: Handle, @@ -104,13 +115,12 @@ impl Plugin for AnimationLoadPlugin { ) .add_systems( Update, - animate_sprite.run_if(state_exists_and_equals(crate::GameState::GamePlay)), - ) - .add_systems(PostUpdate, dummy.after(VisibilitySystems::CheckVisibility)); + (animate_sprite, flash_sprite) + .run_if(state_exists_and_equals(crate::GameState::GamePlay)), + ); } } -fn dummy() {} fn setup(asset_server: Res, mut anim_list: ResMut) { anim_list.handle = asset_server.load("sprites/list.animinfo.json"); } @@ -173,21 +183,31 @@ fn load_animations( fn animate_sprite( time: Res