diff --git a/client/net/minecraftforge/client/ForgeHooksClient.java b/client/net/minecraftforge/client/ForgeHooksClient.java index 7d573a15ee..64fa53ba40 100644 --- a/client/net/minecraftforge/client/ForgeHooksClient.java +++ b/client/net/minecraftforge/client/ForgeHooksClient.java @@ -6,6 +6,7 @@ import java.util.TreeSet; import javax.imageio.ImageIO; +import net.minecraftforge.client.event.MouseEvent; import org.lwjgl.LWJGLException; import org.lwjgl.opengl.Display; import org.lwjgl.opengl.GL11; @@ -325,6 +326,10 @@ public class ForgeHooksClient } } + public static boolean postMouseEvent() { + return MinecraftForge.EVENT_BUS.post(new MouseEvent()); + } + /** * Initialization of Forge Renderers. */ diff --git a/client/net/minecraftforge/client/event/MouseEvent.java b/client/net/minecraftforge/client/event/MouseEvent.java new file mode 100644 index 0000000000..1c3a1df9fd --- /dev/null +++ b/client/net/minecraftforge/client/event/MouseEvent.java @@ -0,0 +1,32 @@ +package net.minecraftforge.client.event; + +import net.minecraftforge.event.Cancelable; +import net.minecraftforge.event.Event; +import org.lwjgl.input.Mouse; + +/** + * Author: MachineMuse (Claire Semple) + * Created: 2:46 PM, 9/4/13 + */ +@Cancelable +public class MouseEvent extends Event { + public final int x; + public final int y; + public final int dx; + public final int dy; + public final int dwheel; + public final int button; + public final boolean buttonstate; + public final long nanoseconds; + + public MouseEvent() { + this.x = Mouse.getEventX(); + this.y = Mouse.getEventY(); + this.dx = Mouse.getEventDX(); + this.dy = Mouse.getEventDY(); + this.dwheel = Mouse.getEventDWheel(); + this.button = Mouse.getEventButton(); + this.buttonstate = Mouse.getEventButtonState(); + this.nanoseconds = Mouse.getEventNanoseconds(); + } +} diff --git a/patches/minecraft/net/minecraft/client/Minecraft.java.patch b/patches/minecraft/net/minecraft/client/Minecraft.java.patch index 145728f34f..e1420fbf6f 100644 --- a/patches/minecraft/net/minecraft/client/Minecraft.java.patch +++ b/patches/minecraft/net/minecraft/client/Minecraft.java.patch @@ -62,6 +62,15 @@ { this.entityRenderer.itemRenderer.resetEquippedProgress2(); } +@@ -1575,7 +1585,7 @@ + while (Mouse.next()) + { + i = Mouse.getEventButton(); +- ++ if (ForgeHooksClient.postMouseEvent()) continue; + if (field_142025_a && i == 0 && (Keyboard.isKeyDown(29) || Keyboard.isKeyDown(157))) + { + i = 1; @@ -2046,6 +2056,11 @@ { this.statFileWriter.syncStats();