veloren/common/src/time.rs

31 lines
737 B
Rust
Raw Normal View History

2020-08-30 12:25:54 +00:00
#[derive(Copy, Clone, PartialEq, Eq)]
pub enum DayPeriod {
Night,
Morning,
Noon,
Evening,
}
2020-10-07 02:23:20 +00:00
impl From<f64> for DayPeriod {
fn from(time_of_day: f64) -> Self {
let tod = time_of_day.rem_euclid(60.0 * 60.0 * 24.0);
if tod < 60.0 * 60.0 * 4.0 {
DayPeriod::Night
} else if tod < 60.0 * 60.0 * 10.0 {
DayPeriod::Morning
} else if tod < 60.0 * 60.0 * 16.0 {
DayPeriod::Noon
} else if tod < 60.0 * 60.0 * 20.0 {
DayPeriod::Evening
} else {
DayPeriod::Night
}
}
}
2020-08-30 12:25:54 +00:00
impl DayPeriod {
2020-09-03 18:06:06 +00:00
pub fn is_dark(&self) -> bool { *self == DayPeriod::Night }
2020-08-30 12:25:54 +00:00
2020-09-03 18:06:06 +00:00
pub fn is_light(&self) -> bool { !self.is_dark() }
2020-08-30 12:25:54 +00:00
}