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::<LogPlugin>()
.disable::<UiPlugin>()
);
app.add_plugins(ClientPluginGroup {
server: Some(server.to_string()),
});
app.add_plugins(SharedPluginGroup);
app.run();
bevy::prelude::info!("goodbye!");
Ok(())
}