diff options
author | Kevinthegreat <92656833+kevinthegreat1@users.noreply.github.com> | 2024-05-20 15:34:31 -0400 |
---|---|---|
committer | Kevinthegreat <92656833+kevinthegreat1@users.noreply.github.com> | 2024-05-20 15:34:31 -0400 |
commit | 551e63440894db7b3c6c8e3f0bd043085c5884a0 (patch) | |
tree | 4006159418b8ef812f3acf8060e2ae7422808d97 /src/main/java/de/hysky/skyblocker/mixins | |
parent | c7fb5ee7f3d8baba5e510772abf95eb2c322b688 (diff) | |
download | Skyblocker-551e63440894db7b3c6c8e3f0bd043085c5884a0.tar.gz Skyblocker-551e63440894db7b3c6c8e3f0bd043085c5884a0.tar.bz2 Skyblocker-551e63440894db7b3c6c8e3f0bd043085c5884a0.zip |
Refactor Fancy Bars part of InGameHudMixin
Diffstat (limited to 'src/main/java/de/hysky/skyblocker/mixins')
-rw-r--r-- | src/main/java/de/hysky/skyblocker/mixins/InGameHudMixin.java | 38 |
1 files changed, 15 insertions, 23 deletions
diff --git a/src/main/java/de/hysky/skyblocker/mixins/InGameHudMixin.java b/src/main/java/de/hysky/skyblocker/mixins/InGameHudMixin.java index cebc59ee..e69287da 100644 --- a/src/main/java/de/hysky/skyblocker/mixins/InGameHudMixin.java +++ b/src/main/java/de/hysky/skyblocker/mixins/InGameHudMixin.java @@ -1,14 +1,12 @@ package de.hysky.skyblocker.mixins; import com.llamalad7.mixinextras.injector.ModifyExpressionValue; -import com.llamalad7.mixinextras.injector.wrapoperation.Operation; -import com.llamalad7.mixinextras.injector.wrapoperation.WrapOperation; import com.llamalad7.mixinextras.sugar.Local; import com.mojang.blaze3d.systems.RenderSystem; import de.hysky.skyblocker.SkyblockerMod; import de.hysky.skyblocker.config.SkyblockerConfigManager; -import de.hysky.skyblocker.skyblock.fancybars.FancyStatusBars; import de.hysky.skyblocker.events.HudRenderEvents; +import de.hysky.skyblocker.skyblock.fancybars.FancyStatusBars; import de.hysky.skyblocker.skyblock.item.HotbarSlotLock; import de.hysky.skyblocker.skyblock.item.ItemCooldowns; import de.hysky.skyblocker.skyblock.item.ItemProtection; @@ -24,10 +22,6 @@ import net.minecraft.entity.player.PlayerEntity; import net.minecraft.item.ItemStack; import net.minecraft.text.Text; import net.minecraft.util.Identifier; - -import java.util.function.Supplier; -import java.util.regex.Pattern; - import org.spongepowered.asm.mixin.Final; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Shadow; @@ -38,6 +32,9 @@ import org.spongepowered.asm.mixin.injection.ModifyArg; import org.spongepowered.asm.mixin.injection.Slice; import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; +import java.util.function.Supplier; +import java.util.regex.Pattern; + @Environment(EnvType.CLIENT) @Mixin(InGameHud.class) public abstract class InGameHudMixin { @@ -81,16 +78,13 @@ public abstract class InGameHudMixin { @Inject(method = { "renderExperienceBar", "renderExperienceLevel" }, at = @At("HEAD"), cancellable = true) private void skyblocker$renderExperienceBar(CallbackInfo ci) { - if (Utils.isOnSkyblock() && SkyblockerConfigManager.get().uiAndVisuals.bars.enableBars && !Utils.isInTheRift() && FancyStatusBars.isExperienceFancyBarVisible()) + if (Utils.isOnSkyblock() && FancyStatusBars.isEnabled() && FancyStatusBars.isExperienceFancyBarVisible()) ci.cancel(); } - @Inject(method = "renderStatusBars", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/gui/hud/InGameHud;getRiddenEntity()Lnet/minecraft/entity/LivingEntity;"), cancellable = true) + @Inject(method = "renderStatusBars", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/gui/hud/InGameHud;renderHealthBar(Lnet/minecraft/client/gui/DrawContext;Lnet/minecraft/entity/player/PlayerEntity;IIIIFIIIZ)V", shift = At.Shift.AFTER), cancellable = true) private void skyblocker$renderStatusBars(DrawContext context, CallbackInfo ci) { - if (!Utils.isOnSkyblock()) - return; - if (statusBars.render(context, context.getScaledWindowWidth(), context.getScaledWindowHeight())) - ci.cancel(); + if (Utils.isOnSkyblock() && statusBars.render(context, context.getScaledWindowWidth(), context.getScaledWindowHeight())) ci.cancel(); } @Inject(method = "renderHealthBar", at = @At(value = "HEAD"), cancellable = true) @@ -99,16 +93,14 @@ public abstract class InGameHudMixin { if (FancyStatusBars.isEnabled() && FancyStatusBars.isHealthFancyBarVisible()) ci.cancel(); } - @WrapOperation(method = "renderStatusBars" , at = @At(value = "INVOKE", target = "Lnet/minecraft/client/gui/DrawContext;getScaledWindowHeight()I")) - private int skyblocker$moveHealthDown(DrawContext instance, Operation<Integer> original) { - if (Utils.isOnSkyblock() && FancyStatusBars.isEnabled() && !FancyStatusBars.isHealthFancyBarVisible() && FancyStatusBars.isExperienceFancyBarVisible()) return original.call(instance) + 6; - else return original.call(instance); + @ModifyExpressionValue(method = "renderStatusBars", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/gui/DrawContext;getScaledWindowHeight()I")) + private int skyblocker$moveHealthDown(int original) { + return Utils.isOnSkyblock() && FancyStatusBars.isEnabled() && !FancyStatusBars.isHealthFancyBarVisible() && FancyStatusBars.isExperienceFancyBarVisible() ? original + 6 : original; } @Inject(method = "renderArmor", at = @At("HEAD"), cancellable = true) private static void skyblocker$renderStatusBars(DrawContext context, PlayerEntity player, int i, int j, int k, int x, CallbackInfo ci) { - if (!Utils.isOnSkyblock()) return; - if (FancyStatusBars.isEnabled()) ci.cancel(); + if (Utils.isOnSkyblock() && FancyStatusBars.isEnabled()) ci.cancel(); } @Inject(method = "renderMountHealth", at = @At("HEAD"), cancellable = true) @@ -144,16 +136,16 @@ public abstract class InGameHudMixin { @ModifyArg(method = "<init>", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/gui/LayeredDrawer;addLayer(Lnet/minecraft/client/gui/LayeredDrawer$Layer;)Lnet/minecraft/client/gui/LayeredDrawer;", ordinal = 2)) private LayeredDrawer.Layer skyblocker$afterMainHud(LayeredDrawer.Layer mainHudLayer) { return (context, tickDelta) -> { - mainHudLayer.render(context, tickDelta); - HudRenderEvents.AFTER_MAIN_HUD.invoker().onRender(context, tickDelta); + mainHudLayer.render(context, tickDelta); + HudRenderEvents.AFTER_MAIN_HUD.invoker().onRender(context, tickDelta); }; } @ModifyArg(method = "<init>", slice = @Slice(from = @At(value = "NEW", target = "Lnet/minecraft/client/gui/LayeredDrawer;", ordinal = 1)), at = @At(value = "INVOKE", target = "Lnet/minecraft/client/gui/LayeredDrawer;addLayer(Lnet/minecraft/client/gui/LayeredDrawer$Layer;)Lnet/minecraft/client/gui/LayeredDrawer;", ordinal = 5)) private LayeredDrawer.Layer skyblocker$beforeChat(LayeredDrawer.Layer beforeChatLayer) { return (context, tickDelta) -> { - HudRenderEvents.BEFORE_CHAT.invoker().onRender(context, tickDelta); - beforeChatLayer.render(context, tickDelta); + HudRenderEvents.BEFORE_CHAT.invoker().onRender(context, tickDelta); + beforeChatLayer.render(context, tickDelta); }; } |