9 releases (breaking)
0.8.1 | Aug 27, 2024 |
---|---|
0.7.0 | Jul 7, 2024 |
0.6.0 | Feb 18, 2024 |
0.5.0 | Nov 22, 2023 |
0.2.0 | Mar 27, 2023 |
#699 in Game dev
49 downloads per month
Used in bevy_trickfilm
41KB
290 lines
bevy_titan
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
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:
- 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.
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.
Dependencies
~37–74MB
~1.5M SLoC