use bevy::{app::AppExit, core_pipeline::tonemapping::Tonemapping, log::LogPlugin, prelude::*};
use bevy_hanabi::prelude::*;
#[derive(Default, Resource)]
struct Frame(pub u32);
fn main() -> Result<(), Box<dyn std::error::Error>> {
let mut app = App::default();
app.insert_resource(ClearColor(Color::BLACK))
.add_plugins(DefaultPlugins.set(LogPlugin {
level: bevy::log::Level::INFO,
filter: "bevy_hanabi=debug".to_string(),
..default()
}))
.add_plugins(HanabiPlugin)
.init_resource::<Frame>()
.add_systems(Startup, setup)
.add_systems(Update, timeout)
.run();
Ok(())
}
fn setup(mut commands: Commands) {
commands.spawn((Camera3d::default(), Tonemapping::None));
commands.spawn(ParticleEffect::default());
}
fn timeout(mut frame: ResMut<Frame>, mut ev_app_exit: MessageWriter<AppExit>) {
frame.0 += 1;
if frame.0 >= 10 {
info!("SUCCESS!");
ev_app_exit.write(AppExit::Success);
}
}