From a4c15f96dedbce9b39d50eac1651a7572cbbe0cc Mon Sep 17 00:00:00 2001 From: Carter Anderson Date: Wed, 3 Jun 2020 19:53:41 -0700 Subject: [PATCH] Timer Resource/Component --- crates/bevy_core/Cargo.toml | 1 + crates/bevy_core/src/lib.rs | 4 +- crates/bevy_core/src/time/mod.rs | 5 +++ crates/bevy_core/src/{ => time}/time.rs | 8 ++-- crates/bevy_core/src/time/timer.rs | 42 +++++++++++++++++++ .../src/print_diagnostics_plugin.rs | 22 +++++----- examples/2d/sprite_sheet.rs | 21 +++------- examples/app/plugin.rs | 14 +++---- examples/ecs/event.rs | 21 ++++++---- src/prelude.rs | 4 +- 10 files changed, 94 insertions(+), 48 deletions(-) create mode 100644 crates/bevy_core/src/time/mod.rs rename crates/bevy_core/src/{ => time}/time.rs (79%) create mode 100644 crates/bevy_core/src/time/timer.rs diff --git a/crates/bevy_core/Cargo.toml b/crates/bevy_core/Cargo.toml index 7e638b4d7d..7d6dc64ff0 100644 --- a/crates/bevy_core/Cargo.toml +++ b/crates/bevy_core/Cargo.toml @@ -6,6 +6,7 @@ edition = "2018" [dependencies] bevy_app = { path = "../bevy_app" } +bevy_property = { path = "../bevy_property" } bevy_type_registry = { path = "../bevy_type_registry" } bevy_transform = { path = "../bevy_transform" } legion = { path = "../bevy_legion" } diff --git a/crates/bevy_core/src/lib.rs b/crates/bevy_core/src/lib.rs index d9b68707aa..6ba6d5d053 100644 --- a/crates/bevy_core/src/lib.rs +++ b/crates/bevy_core/src/lib.rs @@ -12,7 +12,7 @@ use bevy_transform::{ }; use glam::{Mat3, Mat4, Quat, Vec2, Vec3}; use legion::prelude::IntoSystem; -use time::{timer_system, Time}; +use time::{time_system, Time, Timer, timer_system}; #[derive(Default)] pub struct CorePlugin; @@ -31,11 +31,13 @@ impl AppPlugin for CorePlugin { .register_component::() .register_component::() .register_component::() + .register_component::() .register_property_type::() .register_property_type::() .register_property_type::() .register_property_type::() .register_property_type::() + .add_system_to_stage(stage::FIRST, time_system.system()) .add_system_to_stage(stage::FIRST, timer_system.system()); } } diff --git a/crates/bevy_core/src/time/mod.rs b/crates/bevy_core/src/time/mod.rs new file mode 100644 index 0000000000..dcad82c30c --- /dev/null +++ b/crates/bevy_core/src/time/mod.rs @@ -0,0 +1,5 @@ +mod time; +mod timer; + +pub use time::*; +pub use timer::*; \ No newline at end of file diff --git a/crates/bevy_core/src/time.rs b/crates/bevy_core/src/time/time.rs similarity index 79% rename from crates/bevy_core/src/time.rs rename to crates/bevy_core/src/time/time.rs index ba0f9feff5..552fac2b4a 100644 --- a/crates/bevy_core/src/time.rs +++ b/crates/bevy_core/src/time/time.rs @@ -29,12 +29,12 @@ impl Time { if let Some(instant) = self.instant { self.delta = now - instant; self.delta_seconds_f64 = - self.delta.as_secs() as f64 + (self.delta.subsec_nanos() as f64 / 1.0e9); - self.delta_seconds = self.delta_seconds_f64 as f32; + self.delta.as_secs_f64(); + self.delta_seconds = self.delta.as_secs_f32(); } let duration_since_startup = now - self.startup; - self.seconds_since_startup = duration_since_startup.as_secs() as f64 + (duration_since_startup.subsec_nanos() as f64 / 1.0e9); + self.seconds_since_startup = duration_since_startup.as_secs_f64(); self.instant = Some(now); } @@ -43,6 +43,6 @@ impl Time { } } -pub fn timer_system(mut time: ResMut