Skip to content

Spritesheet manifest loader

License

Apache-2.0, MIT licenses found

Licenses found

Apache-2.0
LICENSE-APACHE
MIT
LICENSE-MIT
Notifications You must be signed in to change notification settings

KirmesBude/bevy_titan

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

63 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

bevy_titan

crates.io Bevy tracking docs.rs MIT/Apache 2.0

bevy bevy_titan
main main
0.14 0.7.0, 0.8.1
0.13 0.6.0
0.12 0.4.0, 0.5.0
0.11 0.3.0
0.10 0.2.0
0.9 0.1.1

What is bevy_titan?

bevy_titan is a simple bevy plugin to load textures atlases from spritesheet manifest files written in ron. It also supports creating a texture atlas from multiple sprites and even multiple sprite sheets. Supports hot reloading.

Quickstart

# In your Cargo.toml
bevy_titan = "0.8.1"

homogeneous-sprite-sheet.titan.ron

//! A basic example of a titan ron file for a homogeneous sprite sheet.
(
    textures: [
        (
            path: "path-to-homogeneous-sprite-sheet",
            sprite_sheet: Homogeneous (
                tile_size: (
                    32,
                    32,
                ),
                columns: 4,
                rows: 1,
            ),
        ),
    ]
)

heterogeneous-sprite-sheet.titan.ron

//! A basic example of a titan ron file for a heterogeneous sprite sheet.
(
    textures: [
        (
            path: "path-to-heterogeneous-sprite-sheet",
            sprite_sheet: Heterogeneous (
                [
                    (
                        (0, 0),
                        (16, 16),
                    ),
                    (
                        (16, 0),
                        (32, 128),
                    ),
                    (
                        (48, 0),
                        (64, 16),
                    ),
                ]
            ),
        ),
    ]
)

main.rs

//! A basic example of how to create a TextureAtlas asset from a titan file.
use bevy::prelude::*;
use bevy_titan::SpriteSheetLoaderPlugin;

fn main() {
    App::new()
        .add_plugins(DefaultPlugins)
        .add_plugins(SpriteSheetLoaderPlugin)
        .add_systems(Startup, (setup, load_texture_atlas).chain())
        .run();
}

fn setup() {
    /* Setup camera and other stuff */
}

fn load_texture_atlas(mut commands: Commands, asset_server: Res<AssetServer>) {
    commands.spawn((
        SpriteBundle {
            texture: asset_server.load("example.titan.ron#texture"),
            transform: Transform::from_scale(Vec3::splat(6.0)),
            ..default()
        },
        TextureAtlas {
            layout: asset_server.load("example.titan.ron#layout"),
            ..Default::default()
        }
    ));
}

Documentation

Full API Documentation

File format specifiction

Examples

Future Work

  • Make use of bevy's AssetProcessor.

License

bevy_titan is free, open source and permissively licensed! Except where noted (below and/or in individual files), all code in this repository is dual-licensed under either:

at your option. This means you can select the license you prefer!

Some of the code was adapted from other sources. The assets included in this repository fall under different open licenses. See CREDITS.md for the details of the origin of the adapted code and licenses of those files.

Your contributions

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.

About

Spritesheet manifest loader

Resources

License

Apache-2.0, MIT licenses found

Licenses found

Apache-2.0
LICENSE-APACHE
MIT
LICENSE-MIT

Stars

Watchers

Forks

Packages

No packages published

Languages