Replicate Sounds (#68)
This commit is contained in:
@@ -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));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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>);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user