diff --git a/Cargo.toml b/Cargo.toml index bb29946..21a41ba 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,8 +1,8 @@ [package] name = "bevy_rng" -version = "0.3.0" +version = "0.4.0" authors = ["Jean Mertz "] -edition = "2018" +edition = "2021" repository = "https://github.com/rustic-games/bevy_rng" description = "A Bevy game engine random number generator plugin" license-file = "LICENSE" @@ -12,8 +12,8 @@ rand = { version = "0.8", default-features = false, features = ["getrandom"] } rand_seeder = "0.2" rand_xoshiro = "0.6" -bevy-stable = { package = "bevy", version = "0.4", default-features = false, optional = true } -bevy-nightly = { package = "bevy", version = "0.4", git = "https://github.com/bevyengine/bevy", rev = "c2a427f1a38db6b1d9798e631a7da7a8507fe18c", default-features = false, optional = true } +bevy-stable = { package = "bevy", version = "0.7", default-features = false, optional = true } +bevy-nightly = { package = "bevy", version = "0.8.0-dev", git = "https://github.com/bevyengine/bevy", rev = "b9102b8836bd2aa07df2732f5364b9ac90accb66", default-features = false, optional = true } [features] default = ["bevy-stable"] diff --git a/examples/rng.rs b/examples/rng.rs index f704585..ee72983 100644 --- a/examples/rng.rs +++ b/examples/rng.rs @@ -1,3 +1,8 @@ +#[cfg(all(feature = "bevy-nightly", not(feature = "bevy-stable")))] +use bevy_nightly as bevy; +#[cfg(all(feature = "bevy-stable", not(feature = "bevy-nightly")))] +use bevy_stable as bevy; + use bevy::app::ScheduleRunnerSettings; use bevy::prelude::*; use bevy_rng::*; @@ -5,38 +10,38 @@ use std::time::Duration; fn main() { // Don't register the plugin (non-deterministic)... - App::build() - .add_resource(ScheduleRunnerSettings::run_once()) + App::new() + .insert_resource(ScheduleRunnerSettings::run_once()) .add_plugins(MinimalPlugins) - .add_system(random_number_1.system()) - .add_system(random_number_2.system()) + .add_system(random_number_1) + .add_system(random_number_2) .run(); // ...don't provide a seed (same as above)... - App::build() - .add_resource(ScheduleRunnerSettings::run_once()) + App::new() + .insert_resource(ScheduleRunnerSettings::run_once()) .add_plugins(MinimalPlugins) .add_plugin(RngPlugin::default()) - .add_system(random_number_1.system()) - .add_system(random_number_2.system()) + .add_system(random_number_1) + .add_system(random_number_2) .run(); // ...seed from u64 (deterministic)... - App::build() - .add_resource(ScheduleRunnerSettings::run_once()) + App::new() + .insert_resource(ScheduleRunnerSettings::run_once()) .add_plugins(MinimalPlugins) .add_plugin(RngPlugin::from(42)) - .add_system(random_number_1.system()) - .add_system(random_number_2.system()) + .add_system(random_number_1) + .add_system(random_number_2) .run(); // ...or from a string (same as above). - App::build() - .add_resource(ScheduleRunnerSettings::run_loop(Duration::from_millis(100))) + App::new() + .insert_resource(ScheduleRunnerSettings::run_loop(Duration::from_millis(100))) .add_plugins(MinimalPlugins) .add_plugin(RngPlugin::from("your seed here")) - .add_system(random_number_1.system()) - .add_system(random_number_2.system()) + .add_system(random_number_1) + .add_system(random_number_2) .run(); } diff --git a/src/lib.rs b/src/lib.rs index ad70d3d..b506237 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -62,7 +62,7 @@ enum Seed { } impl Plugin for RngPlugin { - fn build(&self, app: &mut AppBuilder) { + fn build(&self, app: &mut App) { let rng = match &self.seed { Some(Seed::String(seed)) => Seeder::from(seed.as_str()).make_rng(), Some(Seed::Number(num)) => Xoshiro256StarStar::seed_from_u64(*num), @@ -72,7 +72,7 @@ impl Plugin for RngPlugin { #[cfg(all(feature = "bevy-nightly", not(feature = "bevy-stable")))] app.insert_resource(RootRng { rng }); #[cfg(all(feature = "bevy-stable", not(feature = "bevy-nightly")))] - app.add_resource(RootRng { rng }); + app.insert_resource(RootRng { rng }); } } @@ -105,9 +105,9 @@ impl DerefMut for Rng { } } -impl FromResources for Rng { - fn from_resources(resources: &Resources) -> Self { - let inner = match resources.get_mut::() { +impl FromWorld for Rng { + fn from_world(world: &mut World) -> Self { + let inner = match world.get_resource_mut::() { Some(mut rng) => Xoshiro256StarStar::from_rng(&mut rng.deref_mut().rng) .expect("failed to create rng"), None => Xoshiro256StarStar::from_entropy(),