aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/com/dulkirfabric/mixin/render
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/render
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/render')
-rw-r--r--src/main/java/com/dulkirfabric/mixin/render/HandledScreenMixin.java47
-rw-r--r--src/main/java/com/dulkirfabric/mixin/render/KeyboardMixin.java16
2 files changed, 47 insertions, 16 deletions
diff --git a/src/main/java/com/dulkirfabric/mixin/render/HandledScreenMixin.java b/src/main/java/com/dulkirfabric/mixin/render/HandledScreenMixin.java
new file mode 100644
index 0000000..97d9552
--- /dev/null
+++ b/src/main/java/com/dulkirfabric/mixin/render/HandledScreenMixin.java
@@ -0,0 +1,47 @@
+package com.dulkirfabric.mixin.render;
+
+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/render/KeyboardMixin.java b/src/main/java/com/dulkirfabric/mixin/render/KeyboardMixin.java
deleted file mode 100644
index c2c5a45..0000000
--- a/src/main/java/com/dulkirfabric/mixin/render/KeyboardMixin.java
+++ /dev/null
@@ -1,16 +0,0 @@
-package com.dulkirfabric.mixin.render;
-
-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();
- }
-}