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::picking_debug::DebugPickingPlugin; use bevy::ecs::schedule::ScheduleLabel; use bevy::log::LogPlugin; use crate::prelude::*; use bevy::ui::UiPlugin; use bevy_replicon::RepliconPlugins; 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(PhysicsDebugPlugin) -- debug rendering //.add(FpsOverlayPlugin::default()) //.add(EguiPlugin::default()) //.add(WorldInspectorPlugin::new()) } } #[derive(ScheduleLabel, Clone, Eq, Debug, Hash, PartialEq)] pub struct DontRunSchedule;