use crate::client::plugins::ClientPluginGroup; use crate::server::plugins::ServerPluginGroup; use crate::shared::plugins::SharedPluginGroup; use bevy::app::App; use bevy::log::LogPlugin; use bevy::ui::UiPlugin; use bevy::DefaultPlugins; use wasm_bindgen::prelude::*; use bevy::prelude::PluginGroup; use tracing_web::MakeWebConsoleWriter; use tracing_subscriber::prelude::*; use tracing_subscriber::filter::LevelFilter; #[wasm_bindgen] pub fn play(_server: &str) -> Result<(), JsValue> { console_error_panic_hook::set_once(); let fmt_layer = tracing_subscriber::fmt::layer() .with_ansi(false) .without_time() .with_writer(MakeWebConsoleWriter::new()) .with_filter(LevelFilter::INFO); tracing_subscriber::registry() .with(fmt_layer) .init(); for instance in wgpu::Instance::enabled_backend_features().iter_names() { bevy::log::debug!(?instance, "available backend"); } let mut app = App::new(); app.add_plugins( DefaultPlugins.build() .disable::() .disable::() ); app.add_plugins(SharedPluginGroup); app.add_plugins(ServerPluginGroup); app.add_plugins(ClientPluginGroup); app.run(); bevy::prelude::info!("goodbye!"); Ok(()) }