aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/org/chrisoft/trashyaddon/mixin
diff options
context:
space:
mode:
authorGravatar Chris Xiong <chirs241097@gmail.com> 2024-05-14 21:36:14 -0400
committerGravatar Chris Xiong <chirs241097@gmail.com> 2024-05-14 21:36:14 -0400
commit2b0c0f25b9e9ca690bb334479f798794fec6dd38 (patch)
tree7261e6d8358388c71af9c17f1cf7f3bbb0e652f5 /src/main/java/org/chrisoft/trashyaddon/mixin
parent3749f51f18ed2c309851ffcc0234f093943ec296 (diff)
downloadmeteor-trashy-addon-2b0c0f25b9e9ca690bb334479f798794fec6dd38.tar.xz
Combinable Slots: New module.
Diffstat (limited to 'src/main/java/org/chrisoft/trashyaddon/mixin')
-rw-r--r--src/main/java/org/chrisoft/trashyaddon/mixin/HandledScreenMixin.java28
1 files changed, 28 insertions, 0 deletions
diff --git a/src/main/java/org/chrisoft/trashyaddon/mixin/HandledScreenMixin.java b/src/main/java/org/chrisoft/trashyaddon/mixin/HandledScreenMixin.java
new file mode 100644
index 0000000..9a351da
--- /dev/null
+++ b/src/main/java/org/chrisoft/trashyaddon/mixin/HandledScreenMixin.java
@@ -0,0 +1,28 @@
+package org.chrisoft.trashyaddon.mixin;
+
+import meteordevelopment.meteorclient.systems.modules.Modules;
+import net.minecraft.client.gui.DrawContext;
+import net.minecraft.client.gui.screen.Screen;
+import net.minecraft.client.gui.screen.ingame.HandledScreen;
+import net.minecraft.client.gui.screen.ingame.ScreenHandlerProvider;
+import net.minecraft.screen.ScreenHandler;
+import net.minecraft.screen.slot.Slot;
+import net.minecraft.text.Text;
+import org.chrisoft.trashyaddon.modules.MatchedItemHighlight;
+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(HandledScreen.class)
+public abstract class HandledScreenMixin<T extends ScreenHandler> extends Screen implements ScreenHandlerProvider<T> {
+ public HandledScreenMixin(Text title) {
+ super(title);
+ }
+
+ @Inject(method = "drawSlot", at = @At("HEAD"))
+ private void onDrawSlot(DrawContext context, Slot slot, CallbackInfo ci) {
+ int color = Modules.get().get(MatchedItemHighlight.class).getSlotColor(slot.id).getPacked();
+ if (color != 0) context.fill(slot.x, slot.y, slot.x + 16, slot.y + 16, color);
+ }
+}