~starkingdoms/starkingdoms

ref: b6949834d53aadf53fa99b5f914a3dac09702395 starkingdoms/crates/unified/src/server_plugins.rs -rw-r--r-- 842 bytes
b6949834 — core replication experiment 5 months 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
use std::net::SocketAddr;
use std::time::Duration;
use bevy::app::{PluginGroup, PluginGroupBuilder, ScheduleRunnerPlugin, TaskPoolPlugin};
use bevy::diagnostic::FrameCountPlugin;
use bevy::log::LogPlugin;
use bevy::time::TimePlugin;
use crate::replication::ReplicationServerPlugin;
use crate::server::server_plugin;

pub struct ServerPluginGroup {
    pub bind: SocketAddr,
    pub tick_rate: f64
}
impl PluginGroup for ServerPluginGroup {
    fn build(self) -> PluginGroupBuilder {
        PluginGroupBuilder::start::<Self>()
            .add(TaskPoolPlugin::default())
            .add(FrameCountPlugin)
            .add(TimePlugin)
            .add(ScheduleRunnerPlugin::run_loop(
                Duration::from_secs_f64(1.0 / self.tick_rate)
            ))
            .add(ReplicationServerPlugin)
            .add(server_plugin)
    }
}