1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
mod base; pub use self::base::{AirmashUnits, BaseType}; use types::Vector2; pub type Distance = self::base::Distance<BaseType>; pub type Time = self::base::Time<BaseType>; pub type Health = self::base::Health<BaseType>; pub type Energy = self::base::Energy<BaseType>; pub type Rotation = self::base::Rotation<BaseType>; pub type HealthRegen = self::base::HealthRegen<BaseType>; pub type EnergyRegen = self::base::EnergyRegen<BaseType>; pub type Speed = self::base::Speed<BaseType>; pub type AccelScalar = self::base::Accel<BaseType>; pub type RotationRate = self::base::RotationRate<BaseType>; pub type Position = Vector2<Distance>; pub type Velocity = Vector2<Speed>; pub type Accel = Vector2<AccelScalar>; impl Position { pub fn rotate(self, angle: Rotation) -> Self { let (sin, cos) = angle.sin_cos(); Position::new(self.x * cos - self.y * sin, self.x * sin + self.y * cos) } }