use bevy::prelude::*; use bevy_scriptum::prelude::*; use bevy_scriptum::runtimes::ruby::prelude::*; #[derive(Component)] struct Player; fn main() { App::new() .add_plugins(DefaultPlugins) .add_scripting::(|builder| { builder .add_function( String::from("get_player_name"), |player_names: Query<&Name, With>| { player_names .single() .expect("Missing player_names") .to_string() }, ) .add_function(String::from("quit"), |mut exit: EventWriter| { exit.write(AppExit::Success); }); }) .add_systems(Startup, startup) .run(); } fn startup(mut commands: Commands, assets_server: Res) { commands.spawn((Player, Name::new("John"))); commands.spawn(Script::::new( assets_server.load("examples/ruby/promises.rb"), )); }