001 package net.minecraftforge.event.entity.player;
002
003 import net.minecraft.entity.player.EntityPlayer;
004 import net.minecraft.world.World;
005 import net.minecraftforge.event.Cancelable;
006 import net.minecraftforge.event.Event;
007 import static net.minecraftforge.event.Event.Result;
008 import static net.minecraftforge.event.Event.Result.*;
009
010 @Cancelable
011 public class PlayerInteractEvent extends PlayerEvent
012 {
013 public static enum Action
014 {
015 RIGHT_CLICK_AIR,
016 RIGHT_CLICK_BLOCK,
017 LEFT_CLICK_BLOCK
018 }
019
020 public final Action action;
021 public final int x;
022 public final int y;
023 public final int z;
024 public final int face;
025
026 public Result useBlock = DEFAULT;
027 public Result useItem = DEFAULT;
028
029 public PlayerInteractEvent(EntityPlayer player, Action action, int x, int y, int z, int face)
030 {
031 super(player);
032 this.action = action;
033 this.x = x;
034 this.y = y;
035 this.z = z;
036 this.face = face;
037 if (face == -1) useBlock = DENY;
038 }
039
040 @Override
041 public void setCanceled(boolean cancel)
042 {
043 super.setCanceled(cancel);
044 useBlock = (cancel ? DENY : useBlock == DENY ? DEFAULT : useBlock);
045 useItem = (cancel ? DENY : useItem == DENY ? DEFAULT : useItem);
046 }
047 }