From 2e2295faff9eaeab77752dc1c85419cf912c539f Mon Sep 17 00:00:00 2001 From: Lyzev Date: Fri, 3 Jan 2025 22:53:19 +0100 Subject: [PATCH] remove InGameHudMixin class and related HUD rendering logic --- .../dev/lyzev/hp/mixin/InGameHudMixin.java | 51 ------------------- src/main/kotlin/dev/lyzev/hp/HorsePower.kt | 19 +++++++ src/main/resources/horsepower.mixins.json | 1 - 3 files changed, 19 insertions(+), 52 deletions(-) delete mode 100644 src/main/java/dev/lyzev/hp/mixin/InGameHudMixin.java diff --git a/src/main/java/dev/lyzev/hp/mixin/InGameHudMixin.java b/src/main/java/dev/lyzev/hp/mixin/InGameHudMixin.java deleted file mode 100644 index 702e68c..0000000 --- a/src/main/java/dev/lyzev/hp/mixin/InGameHudMixin.java +++ /dev/null @@ -1,51 +0,0 @@ -/* - * Copyright (c) 2025. Lyzev - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published - * by the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - */ - -package dev.lyzev.hp.mixin; - -import dev.lyzev.hp.HorsePower; -import dev.lyzev.hp.modmenu.HorsePowerConfig; -import dev.lyzev.hp.util.HorseStatsRenderer; -import net.minecraft.client.MinecraftClient; -import net.minecraft.client.gui.DrawContext; -import net.minecraft.client.gui.hud.InGameHud; -import net.minecraft.client.render.RenderTickCounter; -import net.minecraft.entity.passive.AbstractHorseEntity; -import org.spongepowered.asm.mixin.Final; -import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.Shadow; -import org.spongepowered.asm.mixin.injection.At; -import org.spongepowered.asm.mixin.injection.Inject; -import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; - -@Mixin(InGameHud.class) -public class InGameHudMixin { - - @Shadow - @Final - private MinecraftClient client; - - @Inject(method = "render", at = @At("RETURN")) - private void onRender(DrawContext drawContext, RenderTickCounter renderTickCounter, CallbackInfo ci) { - if (HorsePowerConfig.INSTANCE.getSHOW_HUD().getValue()) { - final var entity = client.targetedEntity; - if (entity instanceof final AbstractHorseEntity horse) { - HorseStatsRenderer.INSTANCE.render(drawContext, horse, client.getWindow().getScaledWidth() / 2 + 10, client.getWindow().getScaledHeight() / 2 + 10, 0, 0); - } - } - } -} diff --git a/src/main/kotlin/dev/lyzev/hp/HorsePower.kt b/src/main/kotlin/dev/lyzev/hp/HorsePower.kt index ff04f4a..e7e3bf2 100644 --- a/src/main/kotlin/dev/lyzev/hp/HorsePower.kt +++ b/src/main/kotlin/dev/lyzev/hp/HorsePower.kt @@ -20,7 +20,9 @@ package dev.lyzev.hp import com.mojang.brigadier.arguments.IntegerArgumentType import com.mojang.brigadier.arguments.StringArgumentType import com.mojang.brigadier.context.CommandContext +import dev.lyzev.hp.modmenu.HorsePowerConfig import dev.lyzev.hp.modmenu.HorsePowerConfigManager +import dev.lyzev.hp.util.HorseStatsRenderer.render import dev.lyzev.hp.util.round import dev.lyzev.hp.util.toBPS import dev.lyzev.hp.util.toJump @@ -28,6 +30,7 @@ import net.fabricmc.api.ClientModInitializer import net.fabricmc.fabric.api.client.command.v2.ClientCommandManager import net.fabricmc.fabric.api.client.command.v2.ClientCommandRegistrationCallback import net.fabricmc.fabric.api.client.command.v2.FabricClientCommandSource +import net.fabricmc.fabric.api.client.rendering.v1.HudRenderCallback import net.minecraft.client.MinecraftClient import net.minecraft.entity.Entity import net.minecraft.entity.attribute.EntityAttributes @@ -92,6 +95,22 @@ object HorsePower : ClientModInitializer { } }) }) + + HudRenderCallback.EVENT.register(HudRenderCallback { drawContext, _ -> + if (HorsePowerConfig.SHOW_HUD.value) { + val entity = mc.targetedEntity + if (entity is AbstractHorseEntity) { + render( + drawContext, + entity, + mc.window.scaledWidth / 2 + 10, + mc.window.scaledHeight / 2 + 10, + 0, + 0 + ) + } + } + }) } private fun executeSearch(context: CommandContext, criteria: String, amount: Int): Int { diff --git a/src/main/resources/horsepower.mixins.json b/src/main/resources/horsepower.mixins.json index 4759ca9..c65acf1 100644 --- a/src/main/resources/horsepower.mixins.json +++ b/src/main/resources/horsepower.mixins.json @@ -7,7 +7,6 @@ ], "client": [ "HorseScreenMixin", - "InGameHudMixin", "MinecraftClientMixin" ], "injectors": {