use crate::client::ClientPlugin; use aeronet_replicon::client::AeronetRepliconClientPlugin; use aeronet_websocket::client::WebSocketClientPlugin; use bevy::DefaultPlugins; use bevy::app::{PluginGroup, PluginGroupBuilder}; use bevy::dev_tools::fps_overlay::FpsOverlayPlugin; use bevy::dev_tools::picking_debug::DebugPickingPlugin; use bevy::log::LogPlugin; use bevy::prelude::MeshPickingPlugin; use bevy::ui::UiPlugin; use bevy_egui::EguiPlugin; use bevy_rapier2d::prelude::RapierDebugRenderPlugin; use bevy_replicon::RepliconPlugins; use bevy_inspector_egui::quick::WorldInspectorPlugin; pub struct ClientPluginGroup { pub server: String, } impl PluginGroup for ClientPluginGroup { fn build(self) -> PluginGroupBuilder { PluginGroupBuilder::start::() .add_group(DefaultPlugins.build().disable::()) .add_group(RepliconPlugins) .add(WebSocketClientPlugin) .add(AeronetRepliconClientPlugin) .add(MeshPickingPlugin) .add(DebugPickingPlugin) .add(UiPlugin) .add(ClientPlugin { server: self.server, }) .add(RapierDebugRenderPlugin::default().disabled()) //.add(FpsOverlayPlugin::default()) //.add(EguiPlugin::default()) //.add(WorldInspectorPlugin::new()) } }