use scenix_core::TextureId;
#[derive(Clone, Copy, Debug, Default, PartialEq, Eq)]
#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
pub enum BillboardMode {
#[default]
None,
FaceCamera,
AxisAlignedY,
}
#[derive(Clone, Copy, Debug, PartialEq)]
#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
pub struct Sprite {
pub width: f32,
pub height: f32,
pub texture_id: TextureId,
pub billboard: BillboardMode,
}
impl Sprite {
#[inline]
pub const fn new(width: f32, height: f32, texture_id: TextureId) -> Self {
Self {
width,
height,
texture_id,
billboard: BillboardMode::None,
}
}
#[inline]
pub const fn billboard(mut self, billboard: BillboardMode) -> Self {
self.billboard = billboard;
self
}
}