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,
 | |
| }
 | 
