Add controller settings GUI and more WIP on controller support.

This commit is contained in:
LambdAurora
2019-12-01 23:07:54 +01:00
parent 6f09036814
commit 4fe7f70ffa
17 changed files with 1111 additions and 142 deletions

View File

@@ -11,6 +11,7 @@ package me.lambdaurora.lambdacontrols.mixin;
import me.lambdaurora.lambdacontrols.ControlsMode;
import me.lambdaurora.lambdacontrols.LambdaControls;
import me.lambdaurora.lambdacontrols.util.MouseAccessor;
import net.minecraft.client.MinecraftClient;
import net.minecraft.client.Mouse;
import org.spongepowered.asm.mixin.Final;
@@ -21,17 +22,13 @@ import org.spongepowered.asm.mixin.injection.Inject;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
@Mixin(Mouse.class)
public class MouseMixin
public abstract class MouseMixin implements MouseAccessor
{
@Shadow
@Final
private MinecraftClient client;
protected abstract void onCursorPos(long window, double x, double y);
@Shadow
private double x;
@Shadow
private double y;
protected abstract void onMouseButton(long window, int button, int action, int mods);
@Inject(method = "lockCursor", at = @At("HEAD"), cancellable = true)
private void on_mouse_locked(CallbackInfo ci)
@@ -39,4 +36,16 @@ public class MouseMixin
if (LambdaControls.get().config.get_controls_mode() == ControlsMode.TOUCHSCREEN)
ci.cancel();
}
@Override
public void on_mouse_button(long window, int button, int action, int mods)
{
this.onMouseButton(window, button, action, mods);
}
@Override
public void on_cursor_pos(long window, double x, double y)
{
this.onCursorPos(window, x, y);
}
}