From 330f587c9b6dd28b24f8c99a01dc0d57c67da0ae Mon Sep 17 00:00:00 2001 From: Jade Herd Date: Mon, 13 Jun 2022 13:23:06 -0400 Subject: [PATCH] Add show food on rideable mobs (#331) --- .../lambda/mixin/gui/MixinGuiIngameForge.java | 17 ++++++++++++++++- .../module/modules/render/HungerOverlay.kt | 1 + 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/lambda/mixin/gui/MixinGuiIngameForge.java b/src/main/java/com/lambda/mixin/gui/MixinGuiIngameForge.java index 1efef7c87..4d2ec539b 100644 --- a/src/main/java/com/lambda/mixin/gui/MixinGuiIngameForge.java +++ b/src/main/java/com/lambda/mixin/gui/MixinGuiIngameForge.java @@ -1,14 +1,22 @@ package com.lambda.mixin.gui; import com.lambda.client.module.modules.player.Freecam; +import com.lambda.client.module.modules.render.HungerOverlay; import net.minecraft.entity.player.EntityPlayer; import net.minecraftforge.client.GuiIngameForge; 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.ModifyVariable; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; @Mixin(value = GuiIngameForge.class, remap = false) -public class MixinGuiIngameForge { +public abstract class MixinGuiIngameForge { + + @Shadow + public abstract void renderFood(int width, int height); + @ModifyVariable(method = "renderAir", at = @At(value = "STORE", ordinal = 0)) private EntityPlayer renderAir$getRenderViewEntity(EntityPlayer renderViewEntity) { return Freecam.getRenderViewEntity(renderViewEntity); @@ -28,4 +36,11 @@ public class MixinGuiIngameForge { private EntityPlayer renderHealthMount$getRenderViewEntity(EntityPlayer renderViewEntity) { return Freecam.getRenderViewEntity(renderViewEntity); } + + @Inject(method = "renderHealthMount", at = @At("HEAD")) + private void renderHealthMount(int width, int height, CallbackInfo ci) { + if (HungerOverlay.INSTANCE.getRenderFoodOnRideable()) { + this.renderFood(width, height); + } + } } diff --git a/src/main/kotlin/com/lambda/client/module/modules/render/HungerOverlay.kt b/src/main/kotlin/com/lambda/client/module/modules/render/HungerOverlay.kt index d6a873830..d716771ee 100644 --- a/src/main/kotlin/com/lambda/client/module/modules/render/HungerOverlay.kt +++ b/src/main/kotlin/com/lambda/client/module/modules/render/HungerOverlay.kt @@ -27,6 +27,7 @@ object HungerOverlay : Module( private val saturationOverlay by setting("Saturation Overlay", true) private val foodHungerOverlay by setting("Food Hunger Overlay", true) private val foodSaturationOverlay by setting("Food Saturation Overlay", true) + val renderFoodOnRideable by setting("Render Food On Rideables", true) private val icons = ResourceLocation("lambda/textures/hungeroverlay.png")