use crate::client_plugins::ClientPluginGroup; use crate::shared_plugins::SharedPluginGroup; use aeronet_websocket::client::WebSocketClient; use bevy::app::{App, Startup}; use url::Url; use bevy::log::{Level, LogPlugin}; use bevy::ui::UiPlugin; use bevy::DefaultPlugins; use wasm_bindgen::prelude::*; use bevy::prelude::PluginGroup; use tracing_web::{MakeWebConsoleWriter, performance_layer}; use tracing_subscriber::fmt::format::Pretty; 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) // Only partially supported across browsers .without_time() // std::time is not available in browsers, see note below .with_writer(MakeWebConsoleWriter::new()) .with_filter(LevelFilter::INFO); tracing_subscriber::registry() .with(fmt_layer) .init(); // Install these as subscribers to tracing events 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(ClientPluginGroup { server: Some(server.to_string()), }); app.add_plugins(SharedPluginGroup); app.run(); bevy::prelude::info!("goodbye!"); Ok(()) }