bevy/crates/bevy_ui/src/entity.rs
Carter Anderson dcc34473e5 sprites
2020-05-04 01:23:40 -07:00

55 lines
No EOL
1.5 KiB
Rust

use super::Node;
use crate::{render::UI_PIPELINE_HANDLE, ColorMaterial, Rect, QUAD_HANDLE, sprite::Sprite};
use bevy_asset::Handle;
use bevy_derive::EntityArchetype;
use bevy_render::{mesh::Mesh, Renderable};
#[derive(EntityArchetype)]
#[module(meta = false)]
pub struct UiEntity {
pub node: Node,
pub rect: Rect,
pub mesh: Handle<Mesh>, // TODO: maybe abstract this out
pub material: Handle<ColorMaterial>,
pub renderable: Renderable,
}
impl Default for UiEntity {
fn default() -> Self {
UiEntity {
node: Default::default(),
rect: Default::default(),
mesh: QUAD_HANDLE,
material: Default::default(),
renderable: Renderable {
pipelines: vec![UI_PIPELINE_HANDLE],
..Default::default()
},
}
}
}
#[derive(EntityArchetype)]
#[module(meta = false)]
pub struct SpriteEntity {
pub sprite: Sprite,
pub rect: Rect,
pub mesh: Handle<Mesh>, // TODO: maybe abstract this out
pub material: Handle<ColorMaterial>,
pub renderable: Renderable,
}
impl Default for SpriteEntity {
fn default() -> Self {
SpriteEntity {
sprite: Default::default(),
rect: Default::default(),
mesh: QUAD_HANDLE,
material: Default::default(),
renderable: Renderable {
pipelines: vec![UI_PIPELINE_HANDLE],
..Default::default()
},
}
}
}