use bevy::prelude::*;
use bevy_mod_scripting::prelude::*;
fn main() {
let mut args: Vec<String> = std::env::args().skip(1).collect();
if args.is_empty() {
eprintln!("Usage: run-script <file1> <file2> ...");
std::process::exit(1);
}
App::new()
.add_plugins(DefaultPlugins)
.add_plugins(BMSPlugin)
.add_systems(
Startup,
move |asset_server: Res<AssetServer>, mut commands: Commands| {
let mut handles = vec![];
for file_name in args.drain(..) {
handles.push(asset_server.load::<ScriptAsset>(file_name));
}
commands.spawn(ScriptComponent(handles));
},
)
.add_systems(Update, info_on_asset_event::<ScriptAsset>())
.run();
}
pub fn info_on_asset_event<T: Asset>() -> impl FnMut(MessageReader<AssetEvent<T>>) {
move |mut reader: MessageReader<AssetEvent<T>>| {
for event in reader.read() {
match event {
AssetEvent::Modified { .. } => (),
_ => {
info!("ASSET EVENT {:?}", &event);
}
}
}
}
}