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