mirror of
https://github.com/Minestom/Minestom.git
synced 2025-02-05 23:11:36 +01:00
Update LivingEntity to use BlockHandler#growSymmetrically
Also updates usage of Player. Breaking change as it changes the data in expandedBoundingBox.
This commit is contained in:
parent
b7c38fd36b
commit
21e8a6eb07
@ -198,19 +198,17 @@ public class LivingEntity extends Entity implements EquipmentHandler {
|
||||
// Items picking
|
||||
if (canPickupItem() && itemPickupCooldown.isReady(time)) {
|
||||
itemPickupCooldown.refreshLastUpdate(time);
|
||||
final Point loweredPosition = position.sub(0, .5, 0);
|
||||
this.instance.getEntityTracker().nearbyEntities(position, expandedBoundingBox.width(),
|
||||
EntityTracker.Target.ITEMS, itemEntity -> {
|
||||
if (this instanceof Player player && !itemEntity.isViewer(player)) return;
|
||||
if (!itemEntity.isPickable()) return;
|
||||
if (expandedBoundingBox.intersectEntity(loweredPosition, itemEntity)) {
|
||||
PickupItemEvent pickupItemEvent = new PickupItemEvent(this, itemEntity);
|
||||
EventDispatcher.callCancellable(pickupItemEvent, () -> {
|
||||
final ItemStack item = itemEntity.getItemStack();
|
||||
sendPacketToViewersAndSelf(new CollectItemPacket(itemEntity.getEntityId(), getEntityId(), item.amount()));
|
||||
itemEntity.remove();
|
||||
});
|
||||
}
|
||||
if (!expandedBoundingBox.intersectEntity(position, itemEntity)) return;
|
||||
final PickupItemEvent pickupItemEvent = new PickupItemEvent(this, itemEntity);
|
||||
EventDispatcher.callCancellable(pickupItemEvent, () -> {
|
||||
final ItemStack item = itemEntity.getItemStack();
|
||||
sendPacketToViewersAndSelf(new CollectItemPacket(itemEntity.getEntityId(), getEntityId(), item.amount()));
|
||||
itemEntity.remove();
|
||||
});
|
||||
});
|
||||
}
|
||||
}
|
||||
@ -543,7 +541,7 @@ public class LivingEntity extends Entity implements EquipmentHandler {
|
||||
@Override
|
||||
public void setBoundingBox(BoundingBox boundingBox) {
|
||||
super.setBoundingBox(boundingBox);
|
||||
this.expandedBoundingBox = boundingBox.expand(1, .5, 1);
|
||||
this.expandedBoundingBox = boundingBox.growSymmetrically(1, .5, 1);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -389,16 +389,14 @@ public class Player extends LivingEntity implements CommandSender, HoverEventSou
|
||||
// Experience orb pickup
|
||||
if (experiencePickupCooldown.isReady(time)) {
|
||||
experiencePickupCooldown.refreshLastUpdate(time);
|
||||
final Point loweredPosition = position.sub(0, .5, 0);
|
||||
this.instance.getEntityTracker().nearbyEntities(position, expandedBoundingBox.width(),
|
||||
EntityTracker.Target.EXPERIENCE_ORBS, experienceOrb -> {
|
||||
if (expandedBoundingBox.intersectEntity(loweredPosition, experienceOrb)) {
|
||||
PickupExperienceEvent pickupExperienceEvent = new PickupExperienceEvent(this, experienceOrb);
|
||||
EventDispatcher.callCancellable(pickupExperienceEvent, () -> {
|
||||
short experienceCount = pickupExperienceEvent.getExperienceCount(); // TODO give to player
|
||||
experienceOrb.remove();
|
||||
});
|
||||
}
|
||||
if (!expandedBoundingBox.intersectEntity(position, experienceOrb)) return;
|
||||
final PickupExperienceEvent pickupExperienceEvent = new PickupExperienceEvent(this, experienceOrb);
|
||||
EventDispatcher.callCancellable(pickupExperienceEvent, () -> {
|
||||
short experienceCount = pickupExperienceEvent.getExperienceCount(); // TODO give to player
|
||||
experienceOrb.remove();
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user