From 0d5b18f45866ed890adff742a78a1686c5ef4a7f Mon Sep 17 00:00:00 2001 From: Rendo Date: Wed, 19 Nov 2025 21:25:32 +0500 Subject: [PATCH] AtlasTexture --- assets/atlas.png | Bin 0 -> 15889 bytes assets/atlas.svg | 97 +++++++++++++++++++++++++++++++++++++++++++ src/lofpara_atlas.rs | 18 ++++++++ src/main.rs | 8 +++- 4 files changed, 122 insertions(+), 1 deletion(-) create mode 100644 assets/atlas.png create mode 100644 assets/atlas.svg create mode 100644 src/lofpara_atlas.rs diff --git a/assets/atlas.png b/assets/atlas.png new file mode 100644 index 0000000000000000000000000000000000000000..4e572ad6354d99efcf3ef1705d1cfaf69e1e6f8f GIT binary patch literal 15889 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 literal 0 HcmV?d00001 diff --git a/assets/atlas.svg b/assets/atlas.svg new file mode 100644 index 0000000..27d9b44 --- /dev/null +++ b/assets/atlas.svg @@ -0,0 +1,97 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/src/lofpara_atlas.rs b/src/lofpara_atlas.rs new file mode 100644 index 0000000..542b35f --- /dev/null +++ b/src/lofpara_atlas.rs @@ -0,0 +1,18 @@ +use bevy::prelude::*; + +#[derive(Resource)] +pub struct LofparaAtlas(TextureAtlasLayout); + +pub struct LofparaAtlasPlugin; + +impl Plugin for LofparaAtlasPlugin { + fn build(&self, app: &mut App) { + let mut atlas = TextureAtlasLayout::new_empty(UVec2::new(1920, 1080)); + //Card, index = 0 + atlas.add_texture(URect::new(0, 0, 258, 363)); + //Cardholder, index = 1 + atlas.add_texture(URect::new(259, 0, 166, 166)); + + app.insert_resource(LofparaAtlas(atlas)); + } +} diff --git a/src/main.rs b/src/main.rs index e7a11a9..cff54c9 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,3 +1,9 @@ +use bevy::prelude::*; + +use crate::lofpara_atlas::LofparaAtlasPlugin; + +mod lofpara_atlas; + fn main() { - println!("Hello, world!"); + App::new().add_plugins((DefaultPlugins, LofparaAtlasPlugin)); }