~starkingdoms/starkingdoms

ref: c7da20800d035a6491e612693b2039aa99988c15 starkingdoms/crates/unified/src/client/plugins.rs -rw-r--r-- 2.0 KiB
c7da2080 — core netcode: easing 6 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
37
38
39
40
41
42
43
44
45
46
47
48
use aeronet_websocket::client::WebSocketClientPlugin;
use bevy::a11y::AccessibilityPlugin;
use crate::client::ClientPlugin;
use bevy::app::{PanicHandlerPlugin, PluginGroup, PluginGroupBuilder, ScheduleRunnerPlugin};
use bevy::dev_tools::picking_debug::DebugPickingPlugin;
use bevy::diagnostic::{DiagnosticsPlugin, FrameCountPlugin};
use bevy::ecs::schedule::ScheduleLabel;
use bevy::input::InputPlugin;
use bevy::input_focus::InputDispatchPlugin;
use bevy::log::LogPlugin;
use bevy::state::app::StatesPlugin;
use bevy::time::TimePlugin;
use bevy_transform_interpolation::hermite::TransformHermiteEasingPlugin;
use bevy_transform_interpolation::prelude::TransformInterpolationPlugin;
use crate::prelude::*;
use leafwing_input_manager::plugin::InputManagerPlugin;
use crate::client::net::{AngularVelocitySource, LinearVelocitySource};

pub struct ClientPluginGroup;

impl PluginGroup for ClientPluginGroup {
    fn build(self) -> PluginGroupBuilder {
        PluginGroupBuilder::start::<Self>()
            .add_group(
                DefaultPlugins.build()
                    .disable::<LogPlugin>()
                    .disable::<TaskPoolPlugin>()
                    .disable::<FrameCountPlugin>()
                    .disable::<TimePlugin>()
                    .disable::<TransformPlugin>()
                    .disable::<DiagnosticsPlugin>()
                    .disable::<AssetPlugin>()
                    .disable::<StatesPlugin>()
            )
            .add(DebugPickingPlugin)
            .add(InputDispatchPlugin)
            .add(InputManagerPlugin::<crate::client::input::ClientAction>::default())
            .add(WebSocketClientPlugin)
            .add(TransformInterpolationPlugin::interpolate_all())
            .add(TransformHermiteEasingPlugin::<LinearVelocitySource, AngularVelocitySource>::default())
            //.add(bevy_replicon::client::ClientPlugin)
            //.add(bevy_replicon::client::message::ClientMessagePlugin)
            //.add(AeronetRepliconClientPlugin)
    }
}

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