Replicate Sounds (#68)

This commit is contained in:
PROMETHIA-27
2025-09-29 14:46:38 -04:00
committed by GitHub
parent a07dfb3840
commit a16ee231cc
47 changed files with 992 additions and 721 deletions

View File

@@ -2,11 +2,26 @@ use bevy::prelude::*;
#[macro_export]
macro_rules! global_observer {
($app:expr,$system:expr) => {{
($app:expr, $($system:tt)*) => {{
$app.world_mut()
.add_observer($system)
.insert(Name::new(stringify!($system)))
.add_observer($($system)*)
.insert(global_observer!(@name $($system)*))
}};
(@name $system:ident ::< $($param:ident),+ $(,)? >) => {{
let mut name = String::new();
name.push_str(stringify!($system));
name.push_str("::<");
$(
name.push_str(std::any::type_name::<$param>());
)+
name.push_str(">");
Name::new(name)
}};
(@name $system:expr) => {
Name::new(stringify!($system))
};
}
pub use global_observer;
@@ -30,6 +45,6 @@ fn global_observers(
};
for o in query.iter() {
cmds.entity(root).add_child(o);
cmds.entity(o).try_insert(ChildOf(root));
}
}

View File

@@ -1,3 +1,4 @@
use crate::utils::global_observer;
use bevy::{ecs::system::SystemParam, prelude::*};
use lightyear::prelude::{AppTriggerExt, Channel, NetworkDirection, RemoteTrigger, TriggerSender};
use serde::{Deserialize, Serialize};
@@ -31,8 +32,8 @@ impl TriggerAppExt for App {
) {
self.add_trigger::<M>()
.add_direction(NetworkDirection::ServerToClient);
self.add_observer(replicate_trigger_to_clients::<M, C>);
self.add_observer(remote_to_local_trigger::<M>);
global_observer!(self, replicate_trigger_to_clients::<M, C>);
global_observer!(self, remote_to_local_trigger::<M>);
}
}