use crate::client::ClientPlugin; use aeronet_replicon::client::AeronetRepliconClientPlugin; use aeronet_websocket::client::WebSocketClientPlugin; use bevy::app::{PluginGroup, PluginGroupBuilder}; use bevy::dev_tools::picking_debug::DebugPickingPlugin; use bevy::ecs::schedule::ScheduleLabel; use crate::prelude::*; use bevy::ui::UiPlugin; use leafwing_input_manager::plugin::InputManagerPlugin; pub struct ClientPluginGroup { pub server: Option, } impl PluginGroup for ClientPluginGroup { fn build(self) -> PluginGroupBuilder { PluginGroupBuilder::start::() .add(WebSocketClientPlugin) .add(AeronetRepliconClientPlugin) .add(MeshPickingPlugin) .add(DebugPickingPlugin) .add(ClientPlugin { server: self.server, }) .add(UiPlugin) .add(InputManagerPlugin::::default()) } } #[derive(ScheduleLabel, Clone, Eq, Debug, Hash, PartialEq)] pub struct DontRunSchedule;