From aa274edaa8011ddf499771cb5c744a2185b7ced9 Mon Sep 17 00:00:00 2001 From: IzzelAliz Date: Tue, 15 Jun 2021 15:05:57 +0800 Subject: [PATCH] Improve pickup delay check (#272) --- .../arclight/common/mixin/core/entity/item/ItemEntityMixin.java | 1 + .../activationrange/entity/ItemEntityMixin_ActivationRange.java | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/arclight-common/src/main/java/io/izzel/arclight/common/mixin/core/entity/item/ItemEntityMixin.java b/arclight-common/src/main/java/io/izzel/arclight/common/mixin/core/entity/item/ItemEntityMixin.java index 8d4bd352..1137cf97 100644 --- a/arclight-common/src/main/java/io/izzel/arclight/common/mixin/core/entity/item/ItemEntityMixin.java +++ b/arclight-common/src/main/java/io/izzel/arclight/common/mixin/core/entity/item/ItemEntityMixin.java @@ -65,6 +65,7 @@ public abstract class ItemEntityMixin extends EntityMixin { @Overwrite public void onCollideWithPlayer(final PlayerEntity entity) { if (!this.world.isRemote) { + if (this.pickupDelay > 0) return; final ItemStack itemstack = this.getItem(); final net.minecraft.item.Item item = itemstack.getItem(); final int i = itemstack.getCount(); diff --git a/arclight-forge-1.16/src/main/java/io/izzel/arclight/impl/mixin/optimization/general/activationrange/entity/ItemEntityMixin_ActivationRange.java b/arclight-forge-1.16/src/main/java/io/izzel/arclight/impl/mixin/optimization/general/activationrange/entity/ItemEntityMixin_ActivationRange.java index 5ec286bd..5963e3b4 100644 --- a/arclight-forge-1.16/src/main/java/io/izzel/arclight/impl/mixin/optimization/general/activationrange/entity/ItemEntityMixin_ActivationRange.java +++ b/arclight-forge-1.16/src/main/java/io/izzel/arclight/impl/mixin/optimization/general/activationrange/entity/ItemEntityMixin_ActivationRange.java @@ -42,7 +42,7 @@ public abstract class ItemEntityMixin_ActivationRange extends EntityMixin_Activa public void inactiveTick() { super.inactiveTick(); int elapsedTicks = ArclightConstants.currentTick - this.lastTick; - if (this.pickupDelay != 32767) this.pickupDelay -= elapsedTicks; + if (this.pickupDelay > 0 && this.pickupDelay != 32767 && elapsedTicks > 0) this.pickupDelay -= elapsedTicks; if (this.age != -32768) this.age += elapsedTicks; this.lastTick = ArclightConstants.currentTick;