lyra-engine/lyra-ecs/src/tests.rs

66 lines
1.2 KiB
Rust

use rand::Rng;
use crate::Component;
use crate::lyra_engine;
//use crate::lyra_ecs;
/// This source file includes some common things that tests are using.
#[derive(Debug, Default, Clone, Copy, PartialEq, PartialOrd)]
pub struct Vec2 {
pub x: f32,
pub y: f32,
}
impl Component for Vec2 {
fn name() -> &'static str {
"Vec2"
}
}
impl Vec2 {
pub fn new(x: f32, y: f32) -> Self {
Self {
x,
y,
}
}
pub fn rand() -> Self {
let mut rng = rand::thread_rng();
let range = 30.0..1853.0;
Vec2 {
x: rng.gen_range(range.clone()),
y: rng.gen_range(range)
}
}
}
#[derive(Debug, Default, Clone, Copy, PartialEq, PartialOrd, Component)]
pub struct Vec3 {
pub x: f32,
pub y: f32,
pub z: f32,
}
impl Vec3 {
pub fn new(x: f32, y: f32, z: f32) -> Self {
Self {
x,
y,
z
}
}
pub fn rand() -> Self {
let mut rng = rand::thread_rng();
let range = 30.0..1853.0;
Vec3 {
x: rng.gen_range(range.clone()),
y: rng.gen_range(range.clone()),
z: rng.gen_range(range)
}
}
}