mirror of
https://github.com/mat-1/azalea.git
synced 2024-09-19 14:42:32 +00:00
rename Local to LocalEntity
This commit is contained in:
parent
dea4a656a5
commit
83784d5a35
14 changed files with 60 additions and 53 deletions
|
@ -22,8 +22,8 @@ use azalea_auth::{game_profile::GameProfile, sessionserver::ClientSessionServerE
|
|||
use azalea_chat::FormattedText;
|
||||
use azalea_core::Vec3;
|
||||
use azalea_entity::{
|
||||
indexing::EntityIdIndex, metadata::Health, EntityPlugin, EntityUpdateSet, EyeHeight, Local,
|
||||
Position,
|
||||
indexing::EntityIdIndex, metadata::Health, EntityPlugin, EntityUpdateSet, EyeHeight,
|
||||
LocalEntity, Position,
|
||||
};
|
||||
use azalea_physics::PhysicsPlugin;
|
||||
use azalea_protocol::{
|
||||
|
@ -316,7 +316,7 @@ impl Client {
|
|||
mining: mining::MineBundle::default(),
|
||||
attack: attack::AttackBundle::default(),
|
||||
|
||||
_local: Local,
|
||||
_local: LocalEntity,
|
||||
});
|
||||
|
||||
Ok((client, rx))
|
||||
|
@ -584,7 +584,7 @@ impl Client {
|
|||
}
|
||||
|
||||
/// A bundle for the components that are present on a local player that received
|
||||
/// a login packet. If you want to filter for this, just use [`Local`].
|
||||
/// a login packet. If you want to filter for this, just use [`LocalEntity`].
|
||||
#[derive(Bundle)]
|
||||
pub struct JoinedClientBundle {
|
||||
pub local_player: LocalPlayer,
|
||||
|
@ -606,7 +606,7 @@ pub struct JoinedClientBundle {
|
|||
pub mining: mining::MineBundle,
|
||||
pub attack: attack::AttackBundle,
|
||||
|
||||
pub _local: Local,
|
||||
pub _local: LocalEntity,
|
||||
}
|
||||
|
||||
pub struct AzaleaPlugin;
|
||||
|
|
|
@ -3,7 +3,7 @@ use std::ops::AddAssign;
|
|||
use azalea_block::BlockState;
|
||||
use azalea_core::{BlockHitResult, BlockPos, Direction, GameMode, Vec3};
|
||||
use azalea_entity::{
|
||||
clamp_look_direction, view_vector, Attributes, EyeHeight, Local, LookDirection, Position,
|
||||
clamp_look_direction, view_vector, Attributes, EyeHeight, LocalEntity, LookDirection, Position,
|
||||
};
|
||||
use azalea_inventory::{ItemSlot, ItemSlotData};
|
||||
use azalea_nbt::NbtList;
|
||||
|
@ -318,7 +318,7 @@ pub fn handle_swing_arm_event(
|
|||
fn update_modifiers_for_held_item(
|
||||
mut query: Query<
|
||||
(&mut Attributes, &InventoryComponent),
|
||||
(With<Local>, Changed<InventoryComponent>),
|
||||
(With<LocalEntity>, Changed<InventoryComponent>),
|
||||
>,
|
||||
) {
|
||||
for (mut attributes, inventory) in &mut query {
|
||||
|
|
|
@ -23,10 +23,11 @@ use crate::{
|
|||
/// world. If you have access to a [`Client`], you probably don't need to care
|
||||
/// about this since `Client` gives you access to everything here.
|
||||
///
|
||||
/// You can also use the [`Local`] marker component for queries if you're only
|
||||
/// checking for a local player and don't need the contents of this component.
|
||||
/// You can also use the [`LocalEntity`] marker component for queries if you're
|
||||
/// only checking for a local player and don't need the contents of this
|
||||
/// component.
|
||||
///
|
||||
/// [`Local`]: azalea_entity::Local
|
||||
/// [`LocalEntity`]: azalea_entity::LocalEntity
|
||||
/// [`Client`]: crate::Client
|
||||
#[derive(Component)]
|
||||
pub struct LocalPlayer {
|
||||
|
|
|
@ -709,11 +709,10 @@ pub fn process_packet_events(ecs: &mut World) {
|
|||
ClientboundGamePacket::TeleportEntity(p) => {
|
||||
let mut system_state: SystemState<(
|
||||
Commands,
|
||||
Query<(&EntityIdIndex, &LocalPlayer, Option<&mut Physics>)>,
|
||||
Query<(&EntityIdIndex, &LocalPlayer)>,
|
||||
)> = SystemState::new(ecs);
|
||||
let (mut commands, mut query) = system_state.get_mut(ecs);
|
||||
let (entity_id_index, local_player, physics) =
|
||||
query.get_mut(player_entity).unwrap();
|
||||
let (entity_id_index, local_player) = query.get_mut(player_entity).unwrap();
|
||||
|
||||
let entity = entity_id_index.get(&MinecraftEntityId(p.id));
|
||||
|
||||
|
@ -741,11 +740,10 @@ pub fn process_packet_events(ecs: &mut World) {
|
|||
ClientboundGamePacket::MoveEntityPos(p) => {
|
||||
let mut system_state: SystemState<(
|
||||
Commands,
|
||||
Query<(&EntityIdIndex, &LocalPlayer, Option<&mut Physics>)>,
|
||||
Query<(&EntityIdIndex, &LocalPlayer)>,
|
||||
)> = SystemState::new(ecs);
|
||||
let (mut commands, mut query) = system_state.get_mut(ecs);
|
||||
let (entity_id_index, local_player, physics) =
|
||||
query.get_mut(player_entity).unwrap();
|
||||
let (entity_id_index, local_player) = query.get_mut(player_entity).unwrap();
|
||||
|
||||
let entity = entity_id_index.get(&MinecraftEntityId(p.entity_id));
|
||||
|
||||
|
@ -770,11 +768,10 @@ pub fn process_packet_events(ecs: &mut World) {
|
|||
ClientboundGamePacket::MoveEntityPosRot(p) => {
|
||||
let mut system_state: SystemState<(
|
||||
Commands,
|
||||
Query<(&EntityIdIndex, &LocalPlayer, Option<&mut Physics>)>,
|
||||
Query<(&EntityIdIndex, &LocalPlayer)>,
|
||||
)> = SystemState::new(ecs);
|
||||
let (mut commands, mut query) = system_state.get_mut(ecs);
|
||||
let (entity_id_index, local_player, physics) =
|
||||
query.get_mut(player_entity).unwrap();
|
||||
let (entity_id_index, local_player) = query.get_mut(player_entity).unwrap();
|
||||
|
||||
let entity = entity_id_index.get(&MinecraftEntityId(p.entity_id));
|
||||
|
||||
|
|
|
@ -354,7 +354,7 @@ pub struct PlayerBundle {
|
|||
/// A marker component that signifies that this entity is "local" and shouldn't
|
||||
/// be updated by other clients.
|
||||
#[derive(Component)]
|
||||
pub struct Local;
|
||||
pub struct LocalEntity;
|
||||
|
||||
#[derive(Component, Clone, Debug, PartialEq, Deref, DerefMut)]
|
||||
pub struct FluidOnEyes(azalea_registry::Fluid);
|
||||
|
|
|
@ -13,7 +13,7 @@ use nohash_hasher::IntMap;
|
|||
use std::{collections::HashMap, fmt::Debug};
|
||||
use uuid::Uuid;
|
||||
|
||||
use crate::{EntityUuid, LastSentPosition, Local, Position};
|
||||
use crate::{EntityUuid, LastSentPosition, LocalEntity, Position};
|
||||
|
||||
use super::LoadedBy;
|
||||
|
||||
|
@ -87,7 +87,7 @@ pub fn deduplicate_entities(
|
|||
mut commands: Commands,
|
||||
mut query: Query<
|
||||
(Entity, &MinecraftEntityId, &InstanceName),
|
||||
(Changed<MinecraftEntityId>, Without<Local>),
|
||||
(Changed<MinecraftEntityId>, Without<LocalEntity>),
|
||||
>,
|
||||
mut loaded_by_query: Query<&mut LoadedBy>,
|
||||
mut entity_id_index_query: Query<&mut EntityIdIndex>,
|
||||
|
@ -141,7 +141,7 @@ pub fn deduplicate_local_entities(
|
|||
mut commands: Commands,
|
||||
mut query: Query<
|
||||
(Entity, &MinecraftEntityId, &InstanceName),
|
||||
(Changed<MinecraftEntityId>, With<Local>),
|
||||
(Changed<MinecraftEntityId>, With<LocalEntity>),
|
||||
>,
|
||||
instance_container: Res<InstanceContainer>,
|
||||
) {
|
||||
|
@ -169,7 +169,7 @@ pub fn deduplicate_local_entities(
|
|||
|
||||
pub fn update_uuid_index(
|
||||
mut entity_infos: ResMut<EntityUuidIndex>,
|
||||
query: Query<(Entity, &EntityUuid, Option<&Local>), Changed<EntityUuid>>,
|
||||
query: Query<(Entity, &EntityUuid, Option<&LocalEntity>), Changed<EntityUuid>>,
|
||||
) {
|
||||
for (entity, &uuid, local) in query.iter() {
|
||||
// only add it if it doesn't already exist in
|
||||
|
@ -189,7 +189,12 @@ pub fn update_uuid_index(
|
|||
/// System to keep the entity_by_id index up-to-date.
|
||||
pub fn update_entity_by_id_index(
|
||||
mut query: Query<
|
||||
(Entity, &MinecraftEntityId, &InstanceName, Option<&Local>),
|
||||
(
|
||||
Entity,
|
||||
&MinecraftEntityId,
|
||||
&InstanceName,
|
||||
Option<&LocalEntity>,
|
||||
),
|
||||
Changed<MinecraftEntityId>,
|
||||
>,
|
||||
instance_container: Res<InstanceContainer>,
|
||||
|
|
|
@ -5,13 +5,13 @@ use std::collections::HashSet;
|
|||
|
||||
use azalea_core::{BlockPos, ChunkPos, Vec3};
|
||||
use azalea_world::{InstanceContainer, InstanceName, MinecraftEntityId};
|
||||
use bevy_app::{App, FixedUpdate, Plugin, PostUpdate, PreUpdate, Update};
|
||||
use bevy_app::{App, Plugin, PostUpdate, PreUpdate, Update};
|
||||
use bevy_ecs::prelude::*;
|
||||
use derive_more::{Deref, DerefMut};
|
||||
use log::debug;
|
||||
|
||||
use crate::{
|
||||
metadata::Health, Dead, EyeHeight, FluidOnEyes, Local, LookDirection, Physics, Position,
|
||||
metadata::Health, Dead, EyeHeight, FluidOnEyes, LocalEntity, LookDirection, Physics, Position,
|
||||
};
|
||||
|
||||
use indexing::EntityUuidIndex;
|
||||
|
@ -73,7 +73,7 @@ impl Plugin for EntityPlugin {
|
|||
}
|
||||
}
|
||||
|
||||
fn debug_new_entity(query: Query<(Entity, Option<&Local>), Added<MinecraftEntityId>>) {
|
||||
fn debug_new_entity(query: Query<(Entity, Option<&LocalEntity>), Added<MinecraftEntityId>>) {
|
||||
for (entity, local) in query.iter() {
|
||||
if local.is_some() {
|
||||
debug!("new local entity: {:?}", entity);
|
||||
|
|
|
@ -28,7 +28,7 @@ use derive_more::{Deref, DerefMut};
|
|||
use log::warn;
|
||||
use parking_lot::RwLock;
|
||||
|
||||
use crate::Local;
|
||||
use crate::LocalEntity;
|
||||
|
||||
/// An [`EntityCommand`] that applies a "relative update" to an entity, which
|
||||
/// means this update won't be run multiple times by different clients in the
|
||||
|
@ -69,7 +69,7 @@ impl EntityCommand for RelativeEntityUpdate {
|
|||
};
|
||||
|
||||
let entity_id = *entity_mut.get::<MinecraftEntityId>().unwrap();
|
||||
if entity_mut.contains::<Local>() {
|
||||
if entity_mut.contains::<LocalEntity>() {
|
||||
// a client tried to update another client, which isn't allowed
|
||||
return;
|
||||
}
|
||||
|
@ -99,12 +99,15 @@ impl EntityCommand for RelativeEntityUpdate {
|
|||
}
|
||||
}
|
||||
|
||||
/// The [`UpdatesReceived`] component should never be on [`Local`] entities.
|
||||
/// This warns if an entity has both components.
|
||||
/// The [`UpdatesReceived`] component should never be on [`LocalEntity`]
|
||||
/// entities. This warns if an entity has both components.
|
||||
pub fn debug_detect_updates_received_on_local_entities(
|
||||
query: Query<Entity, (With<Local>, With<UpdatesReceived>)>,
|
||||
query: Query<Entity, (With<LocalEntity>, With<UpdatesReceived>)>,
|
||||
) {
|
||||
for entity in &query {
|
||||
warn!("Entity {:?} has both Local and UpdatesReceived", entity);
|
||||
warn!(
|
||||
"Entity {:?} has both LocalEntity and UpdatesReceived",
|
||||
entity
|
||||
);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -7,8 +7,8 @@ pub mod collision;
|
|||
use azalea_block::{Block, BlockState};
|
||||
use azalea_core::{math, BlockPos, Vec3};
|
||||
use azalea_entity::{
|
||||
metadata::Sprinting, move_relative, Attributes, InLoadedChunk, Jumping, Local, LookDirection,
|
||||
Physics, Position,
|
||||
metadata::Sprinting, move_relative, Attributes, InLoadedChunk, Jumping, LocalEntity,
|
||||
LookDirection, Physics, Position,
|
||||
};
|
||||
use azalea_world::{Instance, InstanceContainer, InstanceName};
|
||||
use bevy_app::{App, FixedUpdate, Plugin};
|
||||
|
@ -49,7 +49,7 @@ fn travel(
|
|||
&Attributes,
|
||||
&InstanceName,
|
||||
),
|
||||
(With<Local>, With<InLoadedChunk>),
|
||||
(With<LocalEntity>, With<InLoadedChunk>),
|
||||
>,
|
||||
instance_container: Res<InstanceContainer>,
|
||||
) {
|
||||
|
@ -132,7 +132,7 @@ pub fn ai_step(
|
|||
&Sprinting,
|
||||
&InstanceName,
|
||||
),
|
||||
(With<Local>, With<InLoadedChunk>),
|
||||
(With<LocalEntity>, With<InLoadedChunk>),
|
||||
>,
|
||||
instance_container: Res<InstanceContainer>,
|
||||
) {
|
||||
|
@ -378,7 +378,7 @@ mod tests {
|
|||
ResourceLocation::new("minecraft:overworld"),
|
||||
),
|
||||
MinecraftEntityId(0),
|
||||
Local,
|
||||
LocalEntity,
|
||||
))
|
||||
.id();
|
||||
{
|
||||
|
@ -437,7 +437,7 @@ mod tests {
|
|||
ResourceLocation::new("minecraft:overworld"),
|
||||
),
|
||||
MinecraftEntityId(0),
|
||||
Local,
|
||||
LocalEntity,
|
||||
))
|
||||
.id();
|
||||
let block_state = partial_world.chunks.set_block_state(
|
||||
|
@ -497,7 +497,7 @@ mod tests {
|
|||
ResourceLocation::new("minecraft:overworld"),
|
||||
),
|
||||
MinecraftEntityId(0),
|
||||
Local,
|
||||
LocalEntity,
|
||||
))
|
||||
.id();
|
||||
let block_state = partial_world.chunks.set_block_state(
|
||||
|
@ -551,7 +551,7 @@ mod tests {
|
|||
ResourceLocation::new("minecraft:overworld"),
|
||||
),
|
||||
MinecraftEntityId(0),
|
||||
Local,
|
||||
LocalEntity,
|
||||
))
|
||||
.id();
|
||||
let block_state = world_lock.write().chunks.set_block_state(
|
||||
|
@ -604,7 +604,7 @@ mod tests {
|
|||
ResourceLocation::new("minecraft:overworld"),
|
||||
),
|
||||
MinecraftEntityId(0),
|
||||
Local,
|
||||
LocalEntity,
|
||||
))
|
||||
.id();
|
||||
let block_state = world_lock.write().chunks.set_block_state(
|
||||
|
@ -662,7 +662,7 @@ mod tests {
|
|||
ResourceLocation::new("minecraft:overworld"),
|
||||
),
|
||||
MinecraftEntityId(0),
|
||||
Local,
|
||||
LocalEntity,
|
||||
))
|
||||
.id();
|
||||
let block_state = world_lock.write().chunks.set_block_state(
|
||||
|
|
|
@ -3,7 +3,7 @@ use azalea::ClientBuilder;
|
|||
use azalea::{Bot, LookAtEvent};
|
||||
use azalea_client::Account;
|
||||
use azalea_entity::metadata::{ItemItem, Player};
|
||||
use azalea_entity::{EyeHeight, Local, Position};
|
||||
use azalea_entity::{EyeHeight, LocalEntity, Position};
|
||||
use bevy_app::{FixedUpdate, Plugin};
|
||||
use bevy_ecs::{
|
||||
prelude::{Entity, EventWriter},
|
||||
|
@ -30,7 +30,7 @@ impl Plugin for LookAtStuffPlugin {
|
|||
}
|
||||
|
||||
fn look_at_everything(
|
||||
bots: Query<Entity, (With<Local>, With<Player>)>,
|
||||
bots: Query<Entity, (With<LocalEntity>, With<Player>)>,
|
||||
entities: EntityFinder,
|
||||
entity_positions: Query<(&Position, Option<&EyeHeight>)>,
|
||||
mut look_at_event: EventWriter<LookAtEvent>,
|
||||
|
|
|
@ -13,7 +13,8 @@ use azalea_client::mining::Mining;
|
|||
use azalea_client::TickBroadcast;
|
||||
use azalea_core::{BlockPos, Vec3};
|
||||
use azalea_entity::{
|
||||
clamp_look_direction, metadata::Player, EyeHeight, Jumping, Local, LookDirection, Position,
|
||||
clamp_look_direction, metadata::Player, EyeHeight, Jumping, LocalEntity, LookDirection,
|
||||
Position,
|
||||
};
|
||||
use azalea_physics::PhysicsSet;
|
||||
use bevy_app::{FixedUpdate, Update};
|
||||
|
@ -52,7 +53,7 @@ pub struct Bot {
|
|||
#[allow(clippy::type_complexity)]
|
||||
fn insert_bot(
|
||||
mut commands: Commands,
|
||||
mut query: Query<Entity, (Without<Bot>, With<Local>, With<Player>)>,
|
||||
mut query: Query<Entity, (Without<Bot>, With<LocalEntity>, With<Player>)>,
|
||||
) {
|
||||
for entity in &mut query {
|
||||
commands.entity(entity).insert(Bot::default());
|
||||
|
|
|
@ -18,14 +18,14 @@ use bevy_ecs::{
|
|||
/// use azalea::chat::SendChatEvent;
|
||||
/// use azalea::nearest_entity::EntityFinder;
|
||||
/// use azalea_entity::metadata::{Player, AbstractMonster};
|
||||
/// use azalea_entity::Local;
|
||||
/// use azalea_entity::LocalEntity;
|
||||
/// use bevy_ecs::system::Query;
|
||||
/// use bevy_ecs::prelude::{Entity, EventWriter};
|
||||
/// use bevy_ecs::query::With;
|
||||
///
|
||||
/// /// All bots near aggressive mobs will scream in chat.
|
||||
/// pub fn bots_near_aggressive_mobs(
|
||||
/// bots: Query<Entity, (With<Local>, With<Player>)>,
|
||||
/// bots: Query<Entity, (With<LocalEntity>, With<Player>)>,
|
||||
/// entity_finder: EntityFinder<With<AbstractMonster>>,
|
||||
/// mut chat_events: EventWriter<SendChatEvent>,
|
||||
/// ) {
|
||||
|
|
|
@ -20,7 +20,7 @@ use azalea_client::movement::walk_listener;
|
|||
use azalea_client::{StartSprintEvent, StartWalkEvent};
|
||||
use azalea_core::BlockPos;
|
||||
use azalea_entity::metadata::Player;
|
||||
use azalea_entity::Local;
|
||||
use azalea_entity::LocalEntity;
|
||||
use azalea_entity::{Physics, Position};
|
||||
use azalea_physics::PhysicsSet;
|
||||
use azalea_world::{InstanceContainer, InstanceName};
|
||||
|
@ -73,7 +73,7 @@ pub struct Pathfinder {
|
|||
#[allow(clippy::type_complexity)]
|
||||
fn add_default_pathfinder(
|
||||
mut commands: Commands,
|
||||
mut query: Query<Entity, (Without<Pathfinder>, With<Local>, With<Player>)>,
|
||||
mut query: Query<Entity, (Without<Pathfinder>, With<LocalEntity>, With<Player>)>,
|
||||
) {
|
||||
for entity in &mut query {
|
||||
commands.entity(entity).insert(Pathfinder::default());
|
||||
|
|
|
@ -83,7 +83,7 @@ impl Simulation {
|
|||
.spawn((
|
||||
MinecraftEntityId(0),
|
||||
InstanceName(instance_name),
|
||||
azalea_entity::Local,
|
||||
azalea_entity::LocalEntity,
|
||||
azalea_entity::Jumping::default(),
|
||||
azalea_entity::LookDirection::default(),
|
||||
Sprinting(true),
|
||||
|
|
Loading…
Reference in a new issue