Fix EntityItemPickupEvent 'pop' sound spamming.

This commit is contained in:
LexManos committed 2012-08-17 13:31:47 -07:00
1 parent 912072535d
commit 20e38dca99
2 files changed
+18 -4

No files matched your search

@@ -9,10 +9,21 @@ import net.minecraftforge.event.Cancelable;
public class EntityItemPickupEvent extends PlayerEvent
{
public final EntityItem item;
private boolean handled = false;
public EntityItemPickupEvent(EntityPlayer player, EntityItem item)
{
super(player);
this.item = item;
}
public boolean isHandled()
{
return handled;
}
public void setHandled()
{
handled = true;
}
}
@@ -10,14 +10,17 @@
public class EntityItem extends Entity
{
@@ -238,6 +241,23 @@
@@ -238,6 +241,26 @@
{
int var2 = this.item.stackSize;
+ EntityItemPickupEvent event = new EntityItemPickupEvent(par1EntityPlayer, this);
+ MinecraftForge.EVENT_BUS.post(event);
+
+ if (delayBeforeCanPickup == 0 && (!event.isCanceled() || item.stackSize <= 0))
+ if (MinecraftForge.EVENT_BUS.post(event))
+ {
+ return;
+ }
+
+ if (delayBeforeCanPickup == 0 && (event.isHandled() || item.stackSize <= 0))
+ {
+ //FML Notify pickup
+ worldObj.playSoundAtEntity(this, "random.pop", 0.2F, ((rand.nextFloat() - rand.nextFloat()) * 0.7F + 1.0F) * 2.0F);