nano9 0.1.0-alpha.7

A Pico-8 compatibility layer for Bevy
Documentation
//! This example is the same as `sprite.rs` but it doesn't use any bobtail
//! macros.
use bevy::prelude::*;
use nano9::prelude::*;

fn update(mut pico8: Pico8, mut t: Local<usize>) -> Result<(), BevyError> {
    pico8.cls(None)?;
    let n = ((pico8.time() * 4.0) % 8.0) + 8.0;
    let x = *t % 128;
    let y = *t / 128;
    pico8.spr(
        n as usize,
        Vec2::new(x as f32, y as f32),
        None,
        Some(BVec2::new(true, false)),
        None,
    )?;
    pico8.print("hello world", Some(Vec2::ZERO), None, None, None)?;
    *t += 1;
    Ok(())
}

fn main() {
    let mut app = App::new();

    app.add_systems(nano9::schedule::Update, update);

    app.add_plugins(Nano9Plugins)
        .add_systems(
            Startup,
            move |asset_server: Res<AssetServer>, mut commands: Commands| {
                let pico8_asset: Handle<Pico8Asset> =
                    asset_server.load::<Pico8Asset>("sprite.toml");
                commands.insert_resource(Pico8Handle::from(pico8_asset));
            },
        )
        .add_systems(PreUpdate, run_pico8_when_loaded);

    #[cfg(feature = "minibuffer")]
    app.add_plugins(nano9::minibuffer::quick_plugin);
    app.run();
}