use std::time::Duration; use aeronet_replicon::server::AeronetRepliconServerPlugin; use aeronet_transport::AeronetTransportPlugin; use aeronet_websocket::server::WebSocketServerPlugin; use bevy::app::{PluginGroup, PluginGroupBuilder, ScheduleRunnerPlugin}; use crate::shared::plugins::TICK_RATE; pub struct ServerPluginGroup; impl PluginGroup for ServerPluginGroup { fn build(self) -> PluginGroupBuilder { PluginGroupBuilder::start::() .add(ScheduleRunnerPlugin::run_loop(Duration::from_secs_f64(1.0 / TICK_RATE))) .add(WebSocketServerPlugin) .add(bevy_replicon::server::ServerPlugin::default()) .add(bevy_replicon::server::message::ServerMessagePlugin) .add(AeronetRepliconServerPlugin) } }