53 lines
1.9 KiB
Rust
53 lines
1.9 KiB
Rust
use crate::{
|
|
texture_atlas::{TextureAtlas, TextureAtlasSprite},
|
|
Sprite,
|
|
};
|
|
use bevy_asset::Handle;
|
|
use bevy_ecs::bundle::Bundle;
|
|
use bevy_render::{
|
|
texture::{Image, DEFAULT_IMAGE_HANDLE},
|
|
view::{ComputedVisibility, Visibility},
|
|
};
|
|
use bevy_transform::components::{GlobalTransform, Transform};
|
|
|
|
#[derive(Bundle, Clone)]
|
|
pub struct SpriteBundle {
|
|
pub sprite: Sprite,
|
|
pub transform: Transform,
|
|
pub global_transform: GlobalTransform,
|
|
pub texture: Handle<Image>,
|
|
/// User indication of whether an entity is visible
|
|
pub visibility: Visibility,
|
|
/// Algorithmically-computed indication of whether an entity is visible and should be extracted for rendering
|
|
pub computed_visibility: ComputedVisibility,
|
|
}
|
|
|
|
impl Default for SpriteBundle {
|
|
fn default() -> Self {
|
|
Self {
|
|
sprite: Default::default(),
|
|
transform: Default::default(),
|
|
global_transform: Default::default(),
|
|
texture: DEFAULT_IMAGE_HANDLE.typed(),
|
|
visibility: Default::default(),
|
|
computed_visibility: Default::default(),
|
|
}
|
|
}
|
|
}
|
|
/// A Bundle of components for drawing a single sprite from a sprite sheet (also referred
|
|
/// to as a `TextureAtlas`)
|
|
#[derive(Bundle, Clone, Default)]
|
|
pub struct SpriteSheetBundle {
|
|
/// The specific sprite from the texture atlas to be drawn, defaulting to the sprite at index 0.
|
|
pub sprite: TextureAtlasSprite,
|
|
/// A handle to the texture atlas that holds the sprite images
|
|
pub texture_atlas: Handle<TextureAtlas>,
|
|
/// Data pertaining to how the sprite is drawn on the screen
|
|
pub transform: Transform,
|
|
pub global_transform: GlobalTransform,
|
|
/// User indication of whether an entity is visible
|
|
pub visibility: Visibility,
|
|
/// Algorithmically-computed indication of whether an entity is visible and should be extracted for rendering
|
|
pub computed_visibility: ComputedVisibility,
|
|
}
|