bevy | bevy_titan |
---|---|
main | main |
0.14 | 0.7.0 |
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 |
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.
# In your Cargo.toml
bevy_titan = "0.7"
//! A basic example of a titan file for a homogeneous sprite sheet.
(
textures: [
(
path: "path-to-homogeneous-sprite-sheet",
sprite_sheet: Homogeneous (
tile_size: (
32,
32,
),
columns: 4,
rows: 1,
),
),
]
)
//! A basic example of a titan 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),
),
]
),
),
]
)
//! 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#texture"),
transform: Transform::from_scale(Vec3::splat(6.0)),
..default()
},
TextureAtlas {
layout: asset_server.load("example.titan#layout"),
..Default::default()
}
));
}
- Make use of bevy's AssetProcessor.
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:
- MIT License (LICENSE-MIT or http://opensource.org/licenses/MIT)
- Apache License, Version 2.0 (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
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.
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.