aboutsummaryrefslogtreecommitdiff
path: root/azalea/src/auto_respawn.rs
diff options
context:
space:
mode:
authormat <git@matdoes.dev>2023-05-12 23:40:34 -0500
committermat <git@matdoes.dev>2023-05-12 23:40:34 -0500
commit49952dd1507d70cd63305ffbcae4b062dfb4ce68 (patch)
tree1b3e5bbd757634048988b9c8d96d5fb97f669427 /azalea/src/auto_respawn.rs
parent657c073eab0f09d873bde21d5cdeb13a1bebb71b (diff)
parent2057877eba5f6f13ba6863b48a9cdd44910a44f8 (diff)
downloadazalea-drasl-49952dd1507d70cd63305ffbcae4b062dfb4ce68.tar.xz
Merge branch 'main' into 1.20
Diffstat (limited to 'azalea/src/auto_respawn.rs')
-rw-r--r--azalea/src/auto_respawn.rs24
1 files changed, 24 insertions, 0 deletions
diff --git a/azalea/src/auto_respawn.rs b/azalea/src/auto_respawn.rs
new file mode 100644
index 00000000..c5dd12a4
--- /dev/null
+++ b/azalea/src/auto_respawn.rs
@@ -0,0 +1,24 @@
+use crate::app::{App, Plugin};
+use azalea_client::packet_handling::DeathEvent;
+use azalea_client::respawn::PerformRespawnEvent;
+use bevy_ecs::prelude::*;
+
+/// A plugin that makes [`DeathEvent`]s send [`PerformRespawnEvent`]s.
+#[derive(Clone, Default)]
+pub struct AutoRespawnPlugin;
+impl Plugin for AutoRespawnPlugin {
+ fn build(&self, app: &mut App) {
+ app.add_system(auto_respawn);
+ }
+}
+
+fn auto_respawn(
+ mut events: EventReader<DeathEvent>,
+ mut perform_respawn_events: EventWriter<PerformRespawnEvent>,
+) {
+ for event in events.iter() {
+ perform_respawn_events.send(PerformRespawnEvent {
+ entity: event.entity,
+ });
+ }
+}