use bevy::prelude::{Component, Quat, Transform, Vec2, Vec3};
pub const TEXT_DEFAULT_LAYER: f32 = 900.0;
pub const TEXT_DEFAULT_FONT_SIZE: f32 = 30.0;
#[derive(Clone, Component, Debug, PartialEq)]
pub struct Text {
pub label: String,
pub value: String,
pub font: String,
pub font_size: f32,
pub translation: Vec2,
pub layer: f32,
pub rotation: f32,
pub scale: f32,
}
impl Default for Text {
fn default() -> Self {
Self {
label: String::default(),
value: String::default(),
font: "font/FiraSans-Bold.ttf".to_string(),
font_size: TEXT_DEFAULT_FONT_SIZE,
translation: Vec2::default(),
layer: TEXT_DEFAULT_LAYER,
rotation: f32::default(),
scale: 1.0,
}
}
}
impl Text {
#[doc(hidden)]
pub fn bevy_transform(&self) -> Transform {
let mut transform = Transform::from_translation(self.translation.extend(self.layer));
transform.rotation = Quat::from_axis_angle(Vec3::Z, self.rotation);
transform.scale = Vec3::splat(self.scale);
transform
}
}