aboutsummaryrefslogtreecommitdiff
path: root/azalea-client/src
diff options
context:
space:
mode:
authormat <git@matdoes.dev>2025-06-02 06:55:38 -1030
committermat <git@matdoes.dev>2025-06-02 06:55:38 -1030
commit2c5f293210a09c99577a6999afd52357c898eaeb (patch)
tree6611f914ba33dd3a9f8e9abe2e6221a0e280ca95 /azalea-client/src
parent5adf67fe04f1f95ec7b6ac7008874e16ed3bf41b (diff)
downloadazalea-drasl-2c5f293210a09c99577a6999afd52357c898eaeb.tar.xz
add Event::ReceiveChunk and find_blocks_in_chunk function
Diffstat (limited to 'azalea-client/src')
-rw-r--r--azalea-client/src/plugins/events.rs18
1 files changed, 17 insertions, 1 deletions
diff --git a/azalea-client/src/plugins/events.rs b/azalea-client/src/plugins/events.rs
index d9cbf912..36f48a05 100644
--- a/azalea-client/src/plugins/events.rs
+++ b/azalea-client/src/plugins/events.rs
@@ -4,7 +4,7 @@
use std::sync::Arc;
use azalea_chat::FormattedText;
-use azalea_core::tick::GameTick;
+use azalea_core::{position::ChunkPos, tick::GameTick};
use azalea_entity::{Dead, InLoadedChunk};
use azalea_protocol::packets::game::c_player_combat_kill::ClientboundPlayerCombatKill;
use azalea_world::{InstanceName, MinecraftEntityId};
@@ -15,6 +15,7 @@ use tokio::sync::mpsc;
use crate::{
chat::{ChatPacket, ChatReceivedEvent},
+ chunks::ReceiveChunkEvent,
disconnect::DisconnectEvent,
packet::game::{
AddPlayerEvent, DeathEvent, KeepAliveEvent, RemovePlayerEvent, UpdatePlayerEvent,
@@ -118,6 +119,7 @@ pub enum Event {
KeepAlive(u64),
/// The client disconnected from the server.
Disconnect(Option<FormattedText>),
+ ReceiveChunk(ChunkPos),
}
/// A component that contains an event sender for events that are only
@@ -294,3 +296,17 @@ pub fn disconnect_listener(
}
}
}
+
+pub fn receive_chunk_listener(
+ query: Query<&LocalPlayerEvents>,
+ mut events: EventReader<ReceiveChunkEvent>,
+) {
+ for event in events.read() {
+ if let Ok(local_player_events) = query.get(event.entity) {
+ let _ = local_player_events.send(Event::ReceiveChunk(ChunkPos::new(
+ event.packet.x,
+ event.packet.z,
+ )));
+ }
+ }
+}