mirror of
https://github.com/Xevion/Pac-Man.git
synced 2025-12-17 18:12:36 -06:00
31 lines
892 B
Rust
31 lines
892 B
Rust
use crate::texture::animated::TileSequence;
|
|
use bevy_ecs::component::Component;
|
|
use bevy_ecs::resource::Resource;
|
|
|
|
/// Tag component to mark animations that should loop when they reach the end
|
|
#[derive(Component, Clone, Copy, Debug, PartialEq, Eq)]
|
|
pub struct Looping;
|
|
|
|
/// Linear animation component for non-directional animations (frightened ghosts)
|
|
#[derive(Component, Resource, Clone)]
|
|
pub struct LinearAnimation {
|
|
pub tiles: TileSequence,
|
|
pub current_frame: usize,
|
|
pub time_bank: u16,
|
|
pub frame_duration: u16,
|
|
pub finished: bool,
|
|
}
|
|
|
|
impl LinearAnimation {
|
|
/// Creates a new linear animation with the given tiles and frame duration
|
|
pub fn new(tiles: TileSequence, frame_duration: u16) -> Self {
|
|
Self {
|
|
tiles,
|
|
current_frame: 0,
|
|
time_bank: 0,
|
|
frame_duration,
|
|
finished: false,
|
|
}
|
|
}
|
|
}
|