use bevy::{log::info, prelude::*}; fn main() { App::build() .add_plugins(DefaultPlugins) .add_resource(Countdown::default()) .add_startup_system(setup_system.system()) .add_system(countdown_system.system()) .add_system(timer_system.system()) .run(); } pub struct Countdown { pub percent_trigger: Timer, pub main_timer: Timer, } impl Countdown { pub fn new() -> Self { Self { percent_trigger: Timer::from_seconds(4.0, true), main_timer: Timer::from_seconds(20.0, false), } } } impl Default for Countdown { fn default() -> Self { Self::new() } } fn setup_system(commands: &mut Commands) { // Add an entity to the world with a timer commands.spawn((Timer::from_seconds(5.0, false),)); } /// This system ticks all the `Timer` components on entities within the scene /// using bevy's `Time` resource to get the delta between each update. fn timer_system(time: Res