Skip to content
This repository was archived by the owner on Nov 28, 2025. It is now read-only.

Commit 990fa8a

Browse files
committed
add additional options to IconHud
1 parent fbbaf57 commit 990fa8a

File tree

13 files changed

+154
-2
lines changed

13 files changed

+154
-2
lines changed

1.16_combat-6/src/main/java/io/github/axolotlclient/bridge/mixin/MinecraftClientMixin.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -156,4 +156,9 @@ public MinecraftClientMixin(String string) {
156156
public AxoResourceManager br$getResourceManager() {
157157
return getResourceManager();
158158
}
159+
160+
@Override
161+
public Object br$getScreen() {
162+
return currentScreen;
163+
}
159164
}

1.16_combat-6/src/main/java/io/github/axolotlclient/mixin/HandledScreenMixin.java

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,13 +22,16 @@
2222

2323
package io.github.axolotlclient.mixin;
2424

25+
import io.github.axolotlclient.modules.hud.HudManager;
26+
import io.github.axolotlclient.modules.hud.gui.hud.IconHud;
2527
import io.github.axolotlclient.modules.scrollableTooltips.ScrollableTooltips;
2628
import net.minecraft.client.gui.screen.ingame.HandledScreen;
2729
import net.minecraft.client.util.math.MatrixStack;
2830
import net.minecraft.screen.slot.Slot;
2931
import org.jetbrains.annotations.Nullable;
3032
import org.spongepowered.asm.mixin.Mixin;
3133
import org.spongepowered.asm.mixin.Shadow;
34+
import org.spongepowered.asm.mixin.Unique;
3235
import org.spongepowered.asm.mixin.injection.At;
3336
import org.spongepowered.asm.mixin.injection.Inject;
3437
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
@@ -39,6 +42,7 @@ public abstract class HandledScreenMixin {
3942
@Shadow
4043
@Nullable
4144
protected Slot focusedSlot;
45+
@Unique
4246
private Slot cachedSlot;
4347

4448
@Inject(method = "drawMouseoverTooltip", at = @At("HEAD"))
@@ -48,4 +52,12 @@ public abstract class HandledScreenMixin {
4852
ScrollableTooltips.getInstance().resetScroll();
4953
}
5054
}
55+
56+
@Inject(method = "render", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/gui/screen/ingame/HandledScreen;drawBackground(Lnet/minecraft/client/util/math/MatrixStack;FII)V"))
57+
private void renderIcon(MatrixStack matrices, int mouseX, int mouseY, float delta, CallbackInfo ci) {
58+
var hud = (IconHud) HudManager.getInstance().get(IconHud.ID);
59+
if (hud != null && hud.isEnabled()) {
60+
hud.renderInGui(matrices, delta);
61+
}
62+
}
5163
}

1.20/src/main/java/io/github/axolotlclient/bridge/mixin/MinecraftClientMixin.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -155,4 +155,9 @@ public abstract class MinecraftClientMixin implements AxoMinecraftClient {
155155
public AxoResourceManager br$getResourceManager() {
156156
return getResourceManager();
157157
}
158+
159+
@Override
160+
public Object br$getScreen() {
161+
return currentScreen;
162+
}
158163
}

1.20/src/main/java/io/github/axolotlclient/mixin/HandledScreenMixin.java

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,13 +22,16 @@
2222

2323
package io.github.axolotlclient.mixin;
2424

25+
import io.github.axolotlclient.modules.hud.HudManager;
26+
import io.github.axolotlclient.modules.hud.gui.hud.IconHud;
2527
import io.github.axolotlclient.modules.scrollableTooltips.ScrollableTooltips;
2628
import net.minecraft.client.gui.GuiGraphics;
2729
import net.minecraft.client.gui.screen.ingame.HandledScreen;
2830
import net.minecraft.screen.slot.Slot;
2931
import org.jetbrains.annotations.Nullable;
3032
import org.spongepowered.asm.mixin.Mixin;
3133
import org.spongepowered.asm.mixin.Shadow;
34+
import org.spongepowered.asm.mixin.Unique;
3235
import org.spongepowered.asm.mixin.injection.At;
3336
import org.spongepowered.asm.mixin.injection.Inject;
3437
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
@@ -39,6 +42,7 @@ public abstract class HandledScreenMixin {
3942
@Shadow
4043
@Nullable
4144
protected Slot focusedSlot;
45+
@Unique
4246
private Slot cachedSlot;
4347

4448
@Inject(method = "drawMouseoverTooltip", at = @At("HEAD"))
@@ -48,4 +52,12 @@ public abstract class HandledScreenMixin {
4852
ScrollableTooltips.getInstance().resetScroll();
4953
}
5054
}
55+
56+
@Inject(method = "render", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/gui/screen/ingame/HandledScreen;drawBackground(Lnet/minecraft/client/gui/GuiGraphics;FII)V"))
57+
private void renderIcon(GuiGraphics guiGraphics, int mouseX, int mouseY, float partialTick, CallbackInfo ci) {
58+
var hud = (IconHud) HudManager.getInstance().get(IconHud.ID);
59+
if (hud != null && hud.isEnabled()) {
60+
hud.renderInGui(guiGraphics, partialTick);
61+
}
62+
}
5163
}

1.21/src/main/java/io/github/axolotlclient/bridge/mixin/MinecraftClientMixin.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -154,4 +154,9 @@ public abstract class MinecraftClientMixin implements AxoMinecraftClient {
154154
public AxoResourceManager br$getResourceManager() {
155155
return getResourceManager();
156156
}
157+
158+
@Override
159+
public Object br$getScreen() {
160+
return currentScreen;
161+
}
157162
}

1.21/src/main/java/io/github/axolotlclient/mixin/HandledScreenMixin.java

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,13 +22,16 @@
2222

2323
package io.github.axolotlclient.mixin;
2424

25+
import io.github.axolotlclient.modules.hud.HudManager;
26+
import io.github.axolotlclient.modules.hud.gui.hud.IconHud;
2527
import io.github.axolotlclient.modules.scrollableTooltips.ScrollableTooltips;
2628
import net.minecraft.client.gui.GuiGraphics;
2729
import net.minecraft.client.gui.screen.ingame.HandledScreen;
2830
import net.minecraft.screen.slot.Slot;
2931
import org.jetbrains.annotations.Nullable;
3032
import org.spongepowered.asm.mixin.Mixin;
3133
import org.spongepowered.asm.mixin.Shadow;
34+
import org.spongepowered.asm.mixin.Unique;
3235
import org.spongepowered.asm.mixin.injection.At;
3336
import org.spongepowered.asm.mixin.injection.Inject;
3437
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
@@ -39,6 +42,7 @@ public abstract class HandledScreenMixin {
3942
@Shadow
4043
@Nullable
4144
protected Slot focusedSlot;
45+
@Unique
4246
private Slot cachedSlot;
4347

4448
@Inject(method = "drawMouseoverTooltip", at = @At("HEAD"))
@@ -48,4 +52,12 @@ public abstract class HandledScreenMixin {
4852
ScrollableTooltips.getInstance().resetScroll();
4953
}
5054
}
55+
56+
@Inject(method = "renderBackground", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/gui/screen/ingame/HandledScreen;drawBackground(Lnet/minecraft/client/gui/GuiGraphics;FII)V"))
57+
private void renderIcon(GuiGraphics guiGraphics, int mouseX, int mouseY, float partialTick, CallbackInfo ci) {
58+
var hud = (IconHud) HudManager.getInstance().get(IconHud.ID);
59+
if (hud != null && hud.isEnabled()) {
60+
hud.renderInGui(guiGraphics, partialTick);
61+
}
62+
}
5163
}

1.8.9/src/main/java/io/github/axolotlclient/bridge/mixin/MinecraftClientMixin.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -158,4 +158,9 @@ public abstract class MinecraftClientMixin implements AxoMinecraftClient {
158158
public void execute(@NotNull Runnable command) {
159159
this.submit(command);
160160
}
161+
162+
@Override
163+
public Object br$getScreen() {
164+
return screen;
165+
}
161166
}

1.8.9/src/main/java/io/github/axolotlclient/mixin/HandledScreenMixin.java

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,12 +22,16 @@
2222

2323
package io.github.axolotlclient.mixin;
2424

25+
import io.github.axolotlclient.bridge.impl.AxoRenderContextImpl;
26+
import io.github.axolotlclient.modules.hud.HudManager;
27+
import io.github.axolotlclient.modules.hud.gui.hud.IconHud;
2528
import io.github.axolotlclient.modules.scrollableTooltips.ScrollableTooltips;
2629
import net.minecraft.client.Minecraft;
2730
import net.minecraft.client.gui.screen.inventory.menu.InventoryMenuScreen;
2831
import net.minecraft.inventory.slot.InventorySlot;
2932
import org.spongepowered.asm.mixin.Mixin;
3033
import org.spongepowered.asm.mixin.Shadow;
34+
import org.spongepowered.asm.mixin.Unique;
3135
import org.spongepowered.asm.mixin.injection.At;
3236
import org.spongepowered.asm.mixin.injection.Inject;
3337
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
@@ -37,6 +41,7 @@ public abstract class HandledScreenMixin {
3741

3842
@Shadow
3943
private InventorySlot hoveredSlot;
44+
@Unique
4045
private InventorySlot cachedSlot;
4146

4247
@Shadow
@@ -62,4 +67,12 @@ public abstract class HandledScreenMixin {
6267
private void axolotlclient$mouseClickedTail(int mouseX, int mouseY, int mouseButton, CallbackInfo ci) {
6368
moveHoveredSlotToHotbar(mouseButton - 100);
6469
}
70+
71+
@Inject(method = "render", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/gui/screen/inventory/menu/InventoryMenuScreen;drawBackground(FII)V"))
72+
private void renderIcon(int i, int j, float f, CallbackInfo ci) {
73+
var hud = (IconHud) HudManager.getInstance().get(IconHud.ID);
74+
if (hud != null && hud.isEnabled()) {
75+
hud.renderInGui(AxoRenderContextImpl.getInstance(), f);
76+
}
77+
}
6578
}

1.latest/src/main/java/io/github/axolotlclient/bridge/mixin/MinecraftClientMixin.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -154,4 +154,9 @@ public abstract class MinecraftClientMixin implements AxoMinecraftClient {
154154
public AxoResourceManager br$getResourceManager() {
155155
return getResourceManager();
156156
}
157+
158+
@Override
159+
public Object br$getScreen() {
160+
return screen;
161+
}
157162
}

1.latest/src/main/java/io/github/axolotlclient/mixin/HandledScreenMixin.java

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,8 @@
2323
package io.github.axolotlclient.mixin;
2424

2525
import com.llamalad7.mixinextras.sugar.Local;
26+
import io.github.axolotlclient.modules.hud.HudManager;
27+
import io.github.axolotlclient.modules.hud.gui.hud.IconHud;
2628
import io.github.axolotlclient.modules.scrollableTooltips.ScrollableTooltips;
2729
import net.minecraft.client.gui.GuiGraphics;
2830
import net.minecraft.client.gui.screens.inventory.AbstractContainerScreen;
@@ -46,4 +48,12 @@ public abstract class HandledScreenMixin {
4648
ScrollableTooltips.getInstance().resetScroll();
4749
}
4850
}
51+
52+
@Inject(method = "renderBackground", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/gui/screens/inventory/AbstractContainerScreen;renderBg(Lnet/minecraft/client/gui/GuiGraphics;FII)V"))
53+
private void renderIcon(GuiGraphics guiGraphics, int mouseX, int mouseY, float partialTick, CallbackInfo ci) {
54+
var hud = (IconHud) HudManager.getInstance().get(IconHud.ID);
55+
if (hud != null && hud.isEnabled()) {
56+
hud.renderInGui(guiGraphics, partialTick);
57+
}
58+
}
4959
}

0 commit comments

Comments
 (0)