~starkingdoms/starkingdoms

ref: 0a56ebc381389eb63ab5cb3c3522d9ea2475e9d8 starkingdoms/crates/unified/src/client_plugins.rs -rw-r--r-- 1.2 KiB
0a56ebc3 — core aaa ??? ?? ? ?? ???????????????????????????????????????????? i would like to explosion 13 days ago
                                                                                
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
use crate::client::ClientPlugin;
#[cfg(feature = "target_net_client")]
use aeronet_replicon::client::AeronetRepliconClientPlugin;
#[cfg(feature = "target_net_client")]
use aeronet_websocket::client::WebSocketClientPlugin;
use bevy::app::{PluginGroup, PluginGroupBuilder};
use bevy::ecs::schedule::ScheduleLabel;
use crate::prelude::*;
use bevy::ui::UiPlugin;
use leafwing_input_manager::plugin::InputManagerPlugin;

pub struct ClientPluginGroup {
    pub server: Option<String>,
}
impl PluginGroup for ClientPluginGroup {
    fn build(self) -> PluginGroupBuilder {
        let mut b = PluginGroupBuilder::start::<Self>();

        #[cfg(feature = "target_net_client")] {
            b = b.add(WebSocketClientPlugin);
            b = b.add(AeronetRepliconClientPlugin);
        }

        b
            .add(bevy::dev_tools::picking_debug::DebugPickingPlugin)
            .add(MeshPickingPlugin)
            .add(ClientPlugin {
                server: self.server,
            })
            .add(UiPlugin)
            .add(InputManagerPlugin::<crate::client::input::ClientAction>::default())
    }
}

#[derive(ScheduleLabel, Clone, Eq, Debug, Hash, PartialEq)]
pub struct DontRunSchedule;