Merge pull request #1 from jarkonik/bevy0.11

Migrate to bevy 0.11
This commit is contained in:
Jarosław Konik 2023-07-11 20:52:57 +02:00 committed by GitHub
commit 57459462d5
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
13 changed files with 62 additions and 53 deletions

View file

@ -1,7 +1,7 @@
[package]
name = "bevy_scriptum"
authors = ["Jaroslaw Konik <konikjar@gmail.com>"]
version = "0.1.0"
version = "0.2.0"
edition = "2021"
license = "MIT OR Apache-2.0"
readme = "README.md"
@ -13,7 +13,7 @@ keywords = ["bevy", "rhai", "scripting", "game", "gamedev"]
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[dependencies]
bevy = { default-features = false, version = "0.10.1", features = [
bevy = { default-features = false, version = "0.11.0", features = [
"bevy_asset",
] }
serde = "1.0.162"

View file

@ -21,7 +21,7 @@ use bevy_scriptum::prelude::*;
App::new()
.add_plugins(DefaultPlugins)
.add_plugin(ScriptingPlugin::default())
.add_plugins(ScriptingPlugin::default())
.add_script_function(String::from("hello_bevy"), || {
println!("hello bevy, called from script");
});
@ -42,7 +42,7 @@ struct Player;
App::new()
.add_plugins(DefaultPlugins)
.add_plugin(ScriptingPlugin::default())
.add_plugins(ScriptingPlugin::default())
.add_script_function(
String::from("print_player_names"),
|players: Query<&Name, With<Player>>| {
@ -61,7 +61,7 @@ use rhai::ImmutableString;
App::new()
.add_plugins(DefaultPlugins)
.add_plugin(ScriptingPlugin::default())
.add_plugins(ScriptingPlugin::default())
.add_script_function(
String::from("fun_with_string_param"),
|In((x,)): In<(ImmutableString,)>| {
@ -80,7 +80,7 @@ Add the following to your `Cargo.toml`:
```toml
[dependencies]
bevy_scriptum = "0.1"
bevy_scriptum = "0.2"
```
or execute `cargo add bevy_scriptum` from your project directory.
@ -93,7 +93,7 @@ use bevy_scriptum::prelude::*;
App::new()
.add_plugins(DefaultPlugins)
.add_plugin(ScriptingPlugin::default())
.add_plugins(ScriptingPlugin::default())
.run();
```
@ -106,7 +106,7 @@ use bevy_scriptum::prelude::*;
App::new()
.add_plugins(DefaultPlugins)
.add_plugin(ScriptingPlugin::default())
.add_plugins(ScriptingPlugin::default())
.add_script_function(
String::from("my_print"),
|In((x,)): In<(ImmutableString,)>| {
@ -128,7 +128,7 @@ use bevy::prelude::*;
use bevy_scriptum::Script;
App::new()
.add_startup_system(|mut commands: Commands, asset_server: Res<AssetServer>| {
.add_systems(Startup,|mut commands: Commands, asset_server: Res<AssetServer>| {
commands.spawn(Script::new(asset_server.load("script.rhai")));
});
```
@ -146,6 +146,7 @@ The examples live in `examples` directory and their corresponding scripts live i
| bevy version | bevy_scriptum version |
|--------------|----------------------|
| 0.11 | 0.2 |
| 0.10 | 0.1 |
### Promises - getting return values from scripts

View file

@ -9,7 +9,11 @@ fn main() {
let mut app_exit_event_reader = ManualEventReader::<AppExit>::default();
loop {
if let Some(app_exit_events) = app.world.get_resource_mut::<Events<AppExit>>() {
if let Some(_) = app_exit_event_reader.iter(&app_exit_events).last() {
if app_exit_event_reader
.iter(&app_exit_events)
.last()
.is_some()
{
break;
}
}
@ -17,9 +21,9 @@ fn main() {
}
})
.add_plugins(DefaultPlugins)
.add_plugin(ScriptingPlugin::default())
.add_startup_system(startup)
.add_system(call_rhai_on_update_from_rust)
.add_plugins(ScriptingPlugin::default())
.add_systems(Startup, startup)
.add_systems(Update, call_rhai_on_update_from_rust)
.add_script_function(String::from("quit"), |mut exit: EventWriter<AppExit>| {
exit.send(AppExit);
})

View file

@ -1,17 +1,17 @@
use bevy::{prelude::*};
use bevy::prelude::*;
use bevy_scriptum::{prelude::*, Script};
fn main() {
App::new()
.add_plugins(DefaultPlugins)
.add_plugin(ScriptingPlugin::default())
.add_plugins(ScriptingPlugin::default())
.add_script_function(
String::from("get_name"),
|In((entity,)): In<(Entity,)>, names: Query<&Name>| {
names.get(entity).unwrap().to_string()
},
)
.add_startup_system(startup)
.add_systems(Startup, startup)
.run();
}

View file

@ -1,14 +1,14 @@
use bevy::{prelude::*};
use bevy::prelude::*;
use bevy_scriptum::{prelude::*, Script, ScriptingRuntime};
fn main() {
App::new()
.add_plugins(DefaultPlugins)
.add_plugin(ScriptingPlugin::default())
.add_plugins(ScriptingPlugin::default())
.add_script_function(String::from("hello_bevy"), || {
println!("hello bevy, called from script");
})
.add_startup_system(startup)
.add_systems(Startup, startup)
.run();
}

View file

@ -1,4 +1,4 @@
use bevy::{prelude::*};
use bevy::prelude::*;
use bevy_scriptum::{prelude::*, Script};
#[derive(Component)]
@ -7,7 +7,7 @@ struct Player;
fn main() {
App::new()
.add_plugins(DefaultPlugins)
.add_plugin(ScriptingPlugin::default())
.add_plugins(ScriptingPlugin::default())
.add_script_function(
String::from("print_player_names"),
|players: Query<&Name, With<Player>>| {
@ -16,7 +16,7 @@ fn main() {
}
},
)
.add_startup_system(startup)
.add_systems(Startup, startup)
.run();
}

View file

@ -1,11 +1,11 @@
use bevy::{prelude::*};
use bevy::prelude::*;
use bevy_scriptum::{prelude::*, Script};
fn main() {
App::new()
.add_plugins(DefaultPlugins)
.add_plugin(ScriptingPlugin::default())
.add_startup_system(startup)
.add_plugins(ScriptingPlugin::default())
.add_systems(Startup, startup)
.run();
}

View file

@ -1,11 +1,11 @@
use bevy::{prelude::*};
use bevy::prelude::*;
use bevy_scriptum::{prelude::*, Script};
use rhai::ImmutableString;
fn main() {
App::new()
.add_plugins(DefaultPlugins)
.add_plugin(ScriptingPlugin::default())
.add_plugins(ScriptingPlugin::default())
.add_script_function(String::from("fun_without_params"), || {
println!("called without params");
})
@ -36,7 +36,7 @@ fn main() {
);
},
)
.add_startup_system(startup)
.add_systems(Startup, startup)
.run();
}

View file

@ -1,14 +1,14 @@
use bevy::{prelude::*};
use bevy::prelude::*;
use bevy_scriptum::{prelude::*, Script};
fn main() {
App::new()
.add_plugins(DefaultPlugins)
.add_plugin(ScriptingPlugin::default())
.add_plugins(ScriptingPlugin::default())
.add_script_function(String::from("hello_bevy"), || {
println!("hello bevy, called from script");
})
.add_startup_system(startup)
.add_systems(Startup, startup)
.run();
}

View file

@ -1,12 +1,12 @@
use bevy::{prelude::*};
use bevy::prelude::*;
use bevy_scriptum::{prelude::*, Script};
fn main() {
App::new()
.add_plugins(DefaultPlugins)
.add_plugin(ScriptingPlugin::default())
.add_plugins(ScriptingPlugin::default())
.add_script_function(String::from("hello_bevy"), hello_bevy_callback_system)
.add_startup_system(startup)
.add_systems(Startup, startup)
.run();
}

View file

@ -1,4 +1,4 @@
use bevy::{prelude::*};
use bevy::prelude::*;
use bevy_scriptum::{prelude::*, Script};
#[derive(Component)]
@ -7,12 +7,12 @@ struct Player;
fn main() {
App::new()
.add_plugins(DefaultPlugins)
.add_plugin(ScriptingPlugin::default())
.add_plugins(ScriptingPlugin::default())
.add_script_function(
String::from("get_player_name"),
|player_names: Query<&Name, With<Player>>| player_names.single().to_string(),
)
.add_startup_system(startup)
.add_systems(Startup, startup)
.run();
}

View file

@ -1,12 +1,12 @@
use bevy::{
asset::{AssetLoader, LoadContext, LoadedAsset},
reflect::TypeUuid,
reflect::{TypePath, TypeUuid},
utils::BoxedFuture,
};
use serde::Deserialize;
/// A script that can be loaded by the [crate::ScriptingPlugin].
#[derive(Debug, Deserialize, TypeUuid)]
#[derive(Debug, Deserialize, TypeUuid, TypePath)]
#[uuid = "3ed4b68b-4f5d-4d82-96f6-5194e358921a"]
pub struct RhaiScript(pub String);

View file

@ -19,7 +19,7 @@
//!
//! App::new()
//! .add_plugins(DefaultPlugins)
//! .add_plugin(ScriptingPlugin::default())
//! .add_plugins(ScriptingPlugin::default())
//! .add_script_function(String::from("hello_bevy"), || {
//! println!("hello bevy, called from script");
//! });
@ -40,7 +40,7 @@
//!
//! App::new()
//! .add_plugins(DefaultPlugins)
//! .add_plugin(ScriptingPlugin::default())
//! .add_plugins(ScriptingPlugin::default())
//! .add_script_function(
//! String::from("print_player_names"),
//! |players: Query<&Name, With<Player>>| {
@ -59,7 +59,7 @@
//!
//! App::new()
//! .add_plugins(DefaultPlugins)
//! .add_plugin(ScriptingPlugin::default())
//! .add_plugins(ScriptingPlugin::default())
//! .add_script_function(
//! String::from("fun_with_string_param"),
//! |In((x,)): In<(ImmutableString,)>| {
@ -78,7 +78,7 @@
//!
//! ```toml
//! [dependencies]
//! bevy_scriptum = "0.1"
//! bevy_scriptum = "0.2"
//! ```
//!
//! or execute `cargo add bevy_scriptum` from your project directory.
@ -91,7 +91,7 @@
//!
//! App::new()
//! .add_plugins(DefaultPlugins)
//! .add_plugin(ScriptingPlugin::default())
//! .add_plugins(ScriptingPlugin::default())
//! .run();
//! ```
//!
@ -104,7 +104,7 @@
//!
//! App::new()
//! .add_plugins(DefaultPlugins)
//! .add_plugin(ScriptingPlugin::default())
//! .add_plugins(ScriptingPlugin::default())
//! .add_script_function(
//! String::from("my_print"),
//! |In((x,)): In<(ImmutableString,)>| {
@ -126,7 +126,7 @@
//! use bevy_scriptum::Script;
//!
//! App::new()
//! .add_startup_system(|mut commands: Commands, asset_server: Res<AssetServer>| {
//! .add_systems(Startup,|mut commands: Commands, asset_server: Res<AssetServer>| {
//! commands.spawn(Script::new(asset_server.load("script.rhai")));
//! });
//! ```
@ -144,6 +144,7 @@
//!
//! | bevy version | bevy_scriptum version |
//! |--------------|----------------------|
//! | 0.11 | 0.2 |
//! | 0.10 | 0.1 |
//!
//! ## Promises - getting return values from scripts
@ -221,13 +222,16 @@ impl Plugin for ScriptingPlugin {
.init_asset_loader::<RhaiScriptLoader>()
.init_resource::<Callbacks>()
.insert_resource(ScriptingRuntime::default())
.add_startup_system(init_engine.pipe(log_errors))
.add_systems((
reload_scripts,
process_calls.pipe(log_errors).after(process_new_scripts),
init_callbacks.pipe(log_errors),
process_new_scripts.pipe(log_errors).after(init_callbacks),
));
.add_systems(Startup, init_engine.pipe(log_errors))
.add_systems(
Update,
(
reload_scripts,
process_calls.pipe(log_errors).after(process_new_scripts),
init_callbacks.pipe(log_errors),
process_new_scripts.pipe(log_errors).after(init_callbacks),
),
);
}
}