mirror of
https://github.com/bevyengine/bevy
synced 2025-01-25 03:15:20 +00:00
eb7f554ef7
# Objective Implement Debug trait for SpriteBundle and SpriteSheetBundle It's helpful and other basic bundles like TransformBundle and VisibilityBundle already implement this trait
62 lines
2.9 KiB
Rust
62 lines
2.9 KiB
Rust
use crate::{Sprite, TextureAtlas};
|
|
use bevy_asset::Handle;
|
|
use bevy_ecs::bundle::Bundle;
|
|
use bevy_render::{
|
|
texture::Image,
|
|
view::{InheritedVisibility, ViewVisibility, Visibility},
|
|
};
|
|
use bevy_transform::components::{GlobalTransform, Transform};
|
|
|
|
/// A [`Bundle`] of components for drawing a single sprite from an image.
|
|
///
|
|
/// # Extra behaviours
|
|
///
|
|
/// You may add the following components to enable additional behaviours
|
|
/// - [`ImageScaleMode`](crate::ImageScaleMode) to enable either slicing or tiling of the texture
|
|
/// - [`TextureAtlas`] to draw specific sections of a sprite sheet, (See [`SpriteSheetBundle`])
|
|
#[derive(Bundle, Clone, Debug, Default)]
|
|
pub struct SpriteBundle {
|
|
/// Specifies the rendering properties of the sprite, such as color tint and flip.
|
|
pub sprite: Sprite,
|
|
/// The local transform of the sprite, relative to its parent.
|
|
pub transform: Transform,
|
|
/// The absolute transform of the sprite. This should generally not be written to directly.
|
|
pub global_transform: GlobalTransform,
|
|
/// A reference-counted handle to the image asset to be drawn.
|
|
pub texture: Handle<Image>,
|
|
/// User indication of whether an entity is visible
|
|
pub visibility: Visibility,
|
|
/// Inherited visibility of an entity.
|
|
pub inherited_visibility: InheritedVisibility,
|
|
/// Algorithmically-computed indication of whether an entity is visible and should be extracted for rendering
|
|
pub view_visibility: ViewVisibility,
|
|
}
|
|
|
|
/// A [`Bundle`] of components for drawing a single sprite from a sprite sheet (also referred
|
|
/// to as a `TextureAtlas`) or for animated sprites.
|
|
///
|
|
/// Note:
|
|
/// This bundle is identical to [`SpriteBundle`] with an additional [`TextureAtlas`] component.
|
|
///
|
|
/// Check the following examples for usage:
|
|
/// - [`animated sprite sheet example`](https://github.com/bevyengine/bevy/blob/latest/examples/2d/sprite_sheet.rs)
|
|
/// - [`texture atlas example`](https://github.com/bevyengine/bevy/blob/latest/examples/2d/texture_atlas.rs)
|
|
#[derive(Bundle, Clone, Debug, Default)]
|
|
pub struct SpriteSheetBundle {
|
|
/// Specifies the rendering properties of the sprite, such as color tint and flip.
|
|
pub sprite: Sprite,
|
|
/// The local transform of the sprite, relative to its parent.
|
|
pub transform: Transform,
|
|
/// The absolute transform of the sprite. This should generally not be written to directly.
|
|
pub global_transform: GlobalTransform,
|
|
/// The sprite sheet base texture
|
|
pub texture: Handle<Image>,
|
|
/// The sprite sheet texture atlas, allowing to draw a custom section of `texture`.
|
|
pub atlas: TextureAtlas,
|
|
/// User indication of whether an entity is visible
|
|
pub visibility: Visibility,
|
|
/// Inherited visibility of an entity.
|
|
pub inherited_visibility: InheritedVisibility,
|
|
/// Algorithmically-computed indication of whether an entity is visible and should be extracted for rendering
|
|
pub view_visibility: ViewVisibility,
|
|
}
|