Controller mouse click

This commit is contained in:
PeytonPlayz595 2024-07-08 08:16:20 -07:00
parent f20012c33f
commit 48f8a49dd3
4 changed files with 26 additions and 2 deletions

View File

@ -40,7 +40,7 @@ public class GuiButton extends Gui {
public int id; public int id;
public boolean enabled; public boolean enabled;
public boolean visible; public boolean visible;
protected boolean hovered; public boolean hovered;
public float fontScale = 1.0f; public float fontScale = 1.0f;
public GuiButton(int buttonId, int x, int y, String buttonText) { public GuiButton(int buttonId, int x, int y, String buttonText) {

View File

@ -11,7 +11,9 @@ import org.teavm.jso.dom.html.HTMLImageElement;
import org.teavm.jso.gamepad.GamepadEvent; import org.teavm.jso.gamepad.GamepadEvent;
import net.lax1dude.eaglercraft.v1_8.Display; import net.lax1dude.eaglercraft.v1_8.Display;
import net.lax1dude.eaglercraft.v1_8.Mouse;
import net.lax1dude.eaglercraft.v1_8.internal.PlatformRuntime; import net.lax1dude.eaglercraft.v1_8.internal.PlatformRuntime;
import net.minecraft.client.Minecraft;
import org.teavm.jso.gamepad.Gamepad; import org.teavm.jso.gamepad.Gamepad;
@ -27,8 +29,8 @@ public class Controller {
private static boolean left = false; private static boolean left = false;
private static boolean right = false; private static boolean right = false;
private static double threshold = 0.3;
//Fixes 'slight' issues of stick drift people have been complaining about //Fixes 'slight' issues of stick drift people have been complaining about
private static double threshold = 0.3;
private static double cameraThreshold = 4.0; private static double cameraThreshold = 4.0;
private static double cursorThreshold = 0.4; private static double cursorThreshold = 0.4;
@ -189,6 +191,10 @@ public class Controller {
updateAxes(gamePad); updateAxes(gamePad);
updateButtons(gamePad, index); updateButtons(gamePad, index);
} }
if(cursor != null && isButtonPressed(0) || isButtonDown(0)) {
Minecraft.getMinecraft().currentScreen.controllerClicked(Mouse.getX(), Mouse.getY());
}
} }
public static void addCursor(int x, int y) { public static void addCursor(int x, int y) {

View File

@ -21,6 +21,7 @@ import org.teavm.jso.dom.html.HTMLElement;
import org.teavm.jso.webgl.WebGLFramebuffer; import org.teavm.jso.webgl.WebGLFramebuffer;
import org.teavm.jso.webgl.WebGLRenderbuffer; import org.teavm.jso.webgl.WebGLRenderbuffer;
import net.PeytonPlayz585.shadow.input.Controller;
import net.lax1dude.eaglercraft.v1_8.EagUtils; import net.lax1dude.eaglercraft.v1_8.EagUtils;
import net.lax1dude.eaglercraft.v1_8.internal.teavm.EarlyLoadScreen; import net.lax1dude.eaglercraft.v1_8.internal.teavm.EarlyLoadScreen;
import net.lax1dude.eaglercraft.v1_8.internal.teavm.WebGL2RenderingContext; import net.lax1dude.eaglercraft.v1_8.internal.teavm.WebGL2RenderingContext;
@ -503,10 +504,16 @@ public class PlatformInput {
} }
public static int mouseGetX() { public static int mouseGetX() {
if(Controller.cursor != null) {
return Controller.cursor.getOffsetLeft();
}
return mouseX; return mouseX;
} }
public static int mouseGetY() { public static int mouseGetY() {
if(Controller.cursor != null) {
return canvas.getClientHeight() - Controller.cursor.getOffsetTop();
}
return mouseY; return mouseY;
} }

View File

@ -426,6 +426,17 @@ public abstract class GuiScreen extends Gui implements GuiYesNoCallback {
this.mc.thePlayer.sendChatMessage(msg); this.mc.thePlayer.sendChatMessage(msg);
} }
public void controllerClicked(int x, int y) {
for (int i = 0; i < this.buttonList.size(); ++i) {
GuiButton guibutton = (GuiButton) this.buttonList.get(i);
if (guibutton.enabled && guibutton.visible && guibutton.hovered) {
this.selectedButton = guibutton;
guibutton.playPressSound(this.mc.getSoundHandler());
this.actionPerformed(guibutton);
}
}
}
/**+ /**+
* Called when the mouse is clicked. Args : mouseX, mouseY, * Called when the mouse is clicked. Args : mouseX, mouseY,
* clickedButton * clickedButton