rpack/crates/bevy_rpack
Piotr Siuszko e5781c912d CLI commands 2025-01-13 21:20:23 +01:00
..
assets Bevy crate improvements, example, docs 2025-01-09 17:39:04 +01:00
examples Bevy crate improvements, example, docs 2025-01-09 17:39:04 +01:00
src CLI commands 2025-01-13 21:20:23 +01:00
Cargo.toml CLI commands 2025-01-13 21:20:23 +01:00
README.md Bevy crate improvements, example, docs 2025-01-09 17:39:04 +01:00

README.md

Bevy_rPack

A Bevy plugin with support for the rpack.json atlases.

Example

use bevy::prelude::*;
use bevy_rpack::prelude::*;

#[allow(dead_code)]
#[derive(Resource)]
struct Holder(pub Handle<RpackAtlasAsset>);

fn main() {
    App::new()
        .add_plugins((DefaultPlugins, RpackAssetPlugin))
        .add_systems(Startup, setup)
        .add_systems(Update, on_loaded)
        .run();
}

fn setup(mut commands: Commands, asset_server: Res<AssetServer>) {
    commands.insert_resource(Holder(asset_server.load("Tilemap.rpack.json")));
    commands.spawn(Camera2d);
}

fn on_loaded(
    mut ev_asset: EventReader<AssetEvent<RpackAtlasAsset>>,
    assets: Res<Assets<RpackAtlasAsset>>,
    mut commands: Commands,
) {
    for ev in ev_asset.read() {
        let AssetEvent::LoadedWithDependencies { id: _ } = ev else {
            continue;
        };

        if let Ok(sprite) = assets.make_sprite_from_atlas("Sword006") {
            commands.spawn(Sprite {
                color: Color::linear_rgb(1.0, 0.0, 0.0),
                ..sprite
            });
        };
        if let Ok(image_node) = assets.make_image_node_from_atlas("Axe010") {
            commands.spawn(image_node);
        }
    }
}

Licence

bevy_rpack is dual-licensed under MIT and Apache 2.0 at your option.

Bevy compatibility table

Bevy version Crate version
0.15 0.1