aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/com/dulkirfabric/mixin/io
diff options
context:
space:
mode:
authoringlettronald <inglettronald@gmail.com>2023-07-21 19:09:59 -0500
committeringlettronald <inglettronald@gmail.com>2023-07-21 19:09:59 -0500
commite3f9d34e8ad5ff1effcba2cc39c7f375edaab115 (patch)
tree3df811af120ae607bdf46b230022979bd8331921 /src/main/java/com/dulkirfabric/mixin/io
parentc53d33258ac48cd89883d5f27f380a7d30e561cb (diff)
downloadDulkirMod-Fabric-e3f9d34e8ad5ff1effcba2cc39c7f375edaab115.tar.gz
DulkirMod-Fabric-e3f9d34e8ad5ff1effcba2cc39c7f375edaab115.tar.bz2
DulkirMod-Fabric-e3f9d34e8ad5ff1effcba2cc39c7f375edaab115.zip
Organization
Diffstat (limited to 'src/main/java/com/dulkirfabric/mixin/io')
-rw-r--r--src/main/java/com/dulkirfabric/mixin/io/HandledScreenMixin.java47
-rw-r--r--src/main/java/com/dulkirfabric/mixin/io/KeyboardMixin.java16
-rw-r--r--src/main/java/com/dulkirfabric/mixin/io/MouseMixin.java43
-rw-r--r--src/main/java/com/dulkirfabric/mixin/io/SoundSystemMixin.java18
4 files changed, 77 insertions, 47 deletions
diff --git a/src/main/java/com/dulkirfabric/mixin/io/HandledScreenMixin.java b/src/main/java/com/dulkirfabric/mixin/io/HandledScreenMixin.java
deleted file mode 100644
index dbf8dbd..0000000
--- a/src/main/java/com/dulkirfabric/mixin/io/HandledScreenMixin.java
+++ /dev/null
@@ -1,47 +0,0 @@
-package com.dulkirfabric.mixin.io;
-
-import com.dulkirfabric.events.InventoryKeyPressEvent;
-import com.dulkirfabric.events.SlotRenderEvent;
-import net.minecraft.client.gui.DrawContext;
-import net.minecraft.client.gui.screen.ingame.HandledScreen;
-import net.minecraft.screen.slot.Slot;
-import org.spongepowered.asm.mixin.Mixin;
-import org.spongepowered.asm.mixin.injection.At;
-import org.spongepowered.asm.mixin.injection.Inject;
-import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
-import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable;
-import org.spongepowered.asm.mixin.injection.callback.LocalCapture;
-
-@Mixin(HandledScreen.class)
-public class HandledScreenMixin {
- @Inject(method = "keyPressed", at = @At(value = "INVOKE",
- target = "Lnet/minecraft/client/gui/screen/ingame/HandledScreen;handleHotbarKeyPressed(II)Z",
- shift = At.Shift.BEFORE), cancellable = true)
- public void onKeyPressed(int keyCode, int scanCode, int modifiers, CallbackInfoReturnable<Boolean> cir) {
- if (new InventoryKeyPressEvent(keyCode, scanCode, modifiers).post()) {
- cir.setReturnValue(true);
- }
- }
-
- /**@Inject(method = "onMouseClick(Lnet/minecraft/screen/slot/Slot;IILnet/minecraft/screen/slot/SlotActionType;)V",
- at = @At("HEAD"), cancellable = true)
- public void onMouseClickedSlot(Slot slot, int slotId, int button, SlotActionType actionType, CallbackInfo ci) {
- if (IsSlotProtectedEvent.shouldBlockInteraction(slot)) {
- ci.cancel();
- }
- }*/
-
- @Inject(method = "render", at = @At(value = "INVOKE",
- target = "Lnet/minecraft/client/gui/screen/ingame/HandledScreen;drawSlot(Lnet/minecraft/client/gui/DrawContext;Lnet/minecraft/screen/slot/Slot;)V",
- shift = At.Shift.AFTER), locals = LocalCapture.CAPTURE_FAILHARD)
- public void onAfterDrawSlot(DrawContext context, int mouseX, int mouseY, float delta, CallbackInfo ci, int i, int j, int k, Slot slot) {
- SlotRenderEvent.After event = new SlotRenderEvent.After(context, slot, mouseX, mouseY, delta);
- event.post();
- }
-
- @Inject(method = "render", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/gui/screen/ingame/HandledScreen;drawSlot(Lnet/minecraft/client/gui/DrawContext;Lnet/minecraft/screen/slot/Slot;)V", shift = At.Shift.BEFORE), locals = LocalCapture.CAPTURE_FAILHARD)
- public void onBeforeDrawSlot(DrawContext context, int mouseX, int mouseY, float delta, CallbackInfo ci, int i, int j, int k, Slot slot) {
- SlotRenderEvent.Before event = new SlotRenderEvent.Before(context, slot, mouseX, mouseY, delta);
- event.post();
- }
-}
diff --git a/src/main/java/com/dulkirfabric/mixin/io/KeyboardMixin.java b/src/main/java/com/dulkirfabric/mixin/io/KeyboardMixin.java
new file mode 100644
index 0000000..47decc6
--- /dev/null
+++ b/src/main/java/com/dulkirfabric/mixin/io/KeyboardMixin.java
@@ -0,0 +1,16 @@
+package com.dulkirfabric.mixin.io;
+
+import com.dulkirfabric.events.WorldKeyPressEvent;
+import net.minecraft.client.Keyboard;
+import org.spongepowered.asm.mixin.Mixin;
+import org.spongepowered.asm.mixin.injection.At;
+import org.spongepowered.asm.mixin.injection.Inject;
+import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
+
+@Mixin(Keyboard.class)
+public class KeyboardMixin {
+ @Inject(method = "onKey", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/option/KeyBinding;onKeyPressed(Lnet/minecraft/client/util/InputUtil$Key;)V"))
+ public void onKeyBoardInWorld(long window, int key, int scancode, int action, int modifiers, CallbackInfo ci) {
+ new WorldKeyPressEvent(key, scancode, modifiers).post();
+ }
+}
diff --git a/src/main/java/com/dulkirfabric/mixin/io/MouseMixin.java b/src/main/java/com/dulkirfabric/mixin/io/MouseMixin.java
new file mode 100644
index 0000000..76dd828
--- /dev/null
+++ b/src/main/java/com/dulkirfabric/mixin/io/MouseMixin.java
@@ -0,0 +1,43 @@
+package com.dulkirfabric.mixin.io;
+
+import com.dulkirfabric.features.InventoryScale;
+import com.llamalad7.mixinextras.injector.ModifyExpressionValue;
+import net.minecraft.client.Mouse;
+import org.spongepowered.asm.mixin.Mixin;
+import org.spongepowered.asm.mixin.injection.At;
+
+@Mixin(Mouse.class)
+public class MouseMixin {
+
+ @ModifyExpressionValue(method = "onMouseButton", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/util/Window;getScaledWidth()I"))
+ public int onMouseButtonWidth(int originalScaledWidth) {
+ return (int) (originalScaledWidth / InventoryScale.INSTANCE.getScale());
+ }
+
+ @ModifyExpressionValue(method = "onMouseButton", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/util/Window;getScaledHeight()I"))
+ public int onMouseButtonHeight(int originalScaledHeight) {
+ return (int) (originalScaledHeight / InventoryScale.INSTANCE.getScale());
+ }
+
+ @ModifyExpressionValue(method = "onCursorPos", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/util/Window;getScaledWidth()I"))
+ public int onCursorPosWidth(int originalScaledWidth) {
+ return (int) (originalScaledWidth / InventoryScale.INSTANCE.getScale());
+ }
+
+ @ModifyExpressionValue(method = "onCursorPos", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/util/Window;getScaledHeight()I"))
+ public int onCursorPosHeight(int originalScaledHeight) {
+ return (int) (originalScaledHeight / InventoryScale.INSTANCE.getScale());
+ }
+
+ @ModifyExpressionValue(method = "onMouseScroll", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/util/Window;getScaledWidth()I"))
+ public int onMouseScrollWidth(int originalScaledWidth) {
+ return (int) (originalScaledWidth / InventoryScale.INSTANCE.getScale());
+ }
+
+ @ModifyExpressionValue(method = "onMouseScroll", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/util/Window;getScaledHeight()I"))
+ public int onMouseScrollHeight(int originalScaledHeight) {
+ return (int) (originalScaledHeight / InventoryScale.INSTANCE.getScale());
+ }
+
+}
+
diff --git a/src/main/java/com/dulkirfabric/mixin/io/SoundSystemMixin.java b/src/main/java/com/dulkirfabric/mixin/io/SoundSystemMixin.java
new file mode 100644
index 0000000..e28d133
--- /dev/null
+++ b/src/main/java/com/dulkirfabric/mixin/io/SoundSystemMixin.java
@@ -0,0 +1,18 @@
+package com.dulkirfabric.mixin.io;
+
+import com.dulkirfabric.events.PlaySoundEvent;
+import net.minecraft.client.sound.SoundInstance;
+import net.minecraft.client.sound.SoundSystem;
+import org.spongepowered.asm.mixin.Mixin;
+import org.spongepowered.asm.mixin.injection.At;
+import org.spongepowered.asm.mixin.injection.Inject;
+import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
+
+@Mixin(SoundSystem.class)
+public class SoundSystemMixin {
+
+ @Inject(method = "play(Lnet/minecraft/client/sound/SoundInstance;)V", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/sound/SoundInstance;getSound()Lnet/minecraft/client/sound/Sound;"), cancellable = true)
+ public void onSound(SoundInstance sound, CallbackInfo ci) {
+ if (new PlaySoundEvent(sound).post()) ci.cancel();
+ }
+}