aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/org/chrisoft/trashyaddon/mixin/HandledScreenMixin.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/org/chrisoft/trashyaddon/mixin/HandledScreenMixin.java')
-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);
+ }
+}