azalea_client/plugins/
tick_broadcast.rs1use azalea_core::tick::GameTick;
2use bevy_app::prelude::*;
3use bevy_ecs::prelude::*;
4use derive_more::Deref;
5use tokio::sync::broadcast;
6
7#[derive(Resource, Deref)]
26pub struct TickBroadcast(broadcast::Sender<()>);
27#[derive(Resource, Deref)]
32pub struct UpdateBroadcast(broadcast::Sender<()>);
33
34pub fn send_tick_broadcast(tick_broadcast: ResMut<TickBroadcast>) {
35 let _ = tick_broadcast.0.send(());
36}
37pub fn send_update_broadcast(update_broadcast: ResMut<UpdateBroadcast>) {
38 let _ = update_broadcast.0.send(());
39}
40pub struct TickBroadcastPlugin;
42impl Plugin for TickBroadcastPlugin {
43 fn build(&self, app: &mut App) {
44 app.insert_resource(TickBroadcast(broadcast::channel(1).0))
45 .insert_resource(UpdateBroadcast(broadcast::channel(1).0))
46 .add_systems(GameTick, send_tick_broadcast)
47 .add_systems(Update, send_update_broadcast);
48 }
49}