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