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::log::LogPlugin;
use bevy::prelude::MeshPickingPlugin;
use bevy::sprite::prelude::SpritePickingPlugin;
use bevy_enoki::EnokiPlugin;
use bevy_rapier2d::prelude::RapierDebugRenderPlugin;
use bevy_replicon::RepliconPlugins;
pub struct ClientPluginGroup {
pub server: String,
}
impl PluginGroup for ClientPluginGroup {
fn build(self) -> PluginGroupBuilder {
PluginGroupBuilder::start::<Self>()
.add_group(DefaultPlugins.build().disable::<LogPlugin>())
.add_group(RepliconPlugins)
.add(WebSocketClientPlugin)
.add(AeronetRepliconClientPlugin)
.add(EnokiPlugin)
.add(MeshPickingPlugin)
.add(DebugPickingPlugin)
.add(ClientPlugin {
server: self.server,
})
.add(RapierDebugRenderPlugin::default().disabled())
}
}