Moves the status bar adjustments to HudHook
They really do belong there. Hooking into the profiler was just a crutch.
This commit is contained in:
@@ -58,7 +58,8 @@ public class HudHook
|
||||
cancellable = true)
|
||||
public void startCrosshair(MatrixStack stack, CallbackInfo callbackInfo)
|
||||
{
|
||||
if (TimerUtils.drawCrosshair(MinecraftClient.getInstance().getTickDelta()))
|
||||
if (TimerUtils.drawCrosshair(MinecraftClient.getInstance()
|
||||
.getTickDelta()))
|
||||
{
|
||||
callbackInfo.cancel();
|
||||
}
|
||||
@@ -97,7 +98,8 @@ public class HudHook
|
||||
int x,
|
||||
CallbackInfo callbackInfo)
|
||||
{
|
||||
if (TimerUtils.drawJumpbar(stack, MinecraftClient.getInstance().getTickDelta()))
|
||||
if (TimerUtils.drawJumpbar(stack,
|
||||
MinecraftClient.getInstance().getTickDelta()))
|
||||
{
|
||||
callbackInfo.cancel();
|
||||
}
|
||||
@@ -139,7 +141,8 @@ public class HudHook
|
||||
int x,
|
||||
CallbackInfo callbackInfo)
|
||||
{
|
||||
if (TimerUtils.drawExperience(stack, MinecraftClient.getInstance().getTickDelta()))
|
||||
if (TimerUtils.drawExperience(stack,
|
||||
MinecraftClient.getInstance().getTickDelta()))
|
||||
{
|
||||
callbackInfo.cancel();
|
||||
}
|
||||
@@ -183,6 +186,85 @@ public class HudHook
|
||||
return stack;
|
||||
}
|
||||
|
||||
/**
|
||||
* Adjusts the armor GUI.
|
||||
*
|
||||
* @param matrices
|
||||
* @param callbackInfo
|
||||
*/
|
||||
@Inject(method = "renderStatusBars(Lnet/minecraft/client/util" +
|
||||
"/math/MatrixStack;)V", at = @At(value = "INVOKE", target = "Lnet" +
|
||||
"/minecraft/util/profiler/Profiler;push(Ljava/lang/String;)V"))
|
||||
public void renderArmor(MatrixStack matrices, CallbackInfo callbackInfo)
|
||||
{
|
||||
if (TimerUtils.drawArmor())
|
||||
{
|
||||
TimerUtils.setAlpha(0F);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Adjusts the health GUI.
|
||||
*
|
||||
* @param matrices
|
||||
* @param callbackInfo
|
||||
*/
|
||||
@Inject(method = "renderStatusBars(Lnet/minecraft/client/util" +
|
||||
"/math/MatrixStack;)V", at = @At(value = "INVOKE", target = "Lnet" +
|
||||
"/minecraft/util/profiler/Profiler;swap(Ljava/lang/String;)V",
|
||||
ordinal = 0))
|
||||
public void renderHealth(MatrixStack matrices, CallbackInfo callbackInfo)
|
||||
{
|
||||
/*
|
||||
* Resets the transparency from the previous call.
|
||||
*/
|
||||
TimerUtils.setAlpha(1F);
|
||||
if (TimerUtils.drawHealth(MinecraftClient.getInstance().getTickDelta()))
|
||||
{
|
||||
TimerUtils.setAlpha(0F);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Adjusts the food GUI.
|
||||
*
|
||||
* @param matrices
|
||||
* @param callbackInfo
|
||||
*/
|
||||
@Inject(method = "renderStatusBars(Lnet/minecraft/client/util" +
|
||||
"/math/MatrixStack;)V", at = @At(value = "INVOKE", target = "Lnet" +
|
||||
"/minecraft/util/profiler/Profiler;swap(Ljava/lang/String;)V",
|
||||
ordinal = 1))
|
||||
public void renderFood(MatrixStack matrices, CallbackInfo callbackInfo)
|
||||
{
|
||||
/*
|
||||
* Resets the transparency from the previous call.
|
||||
*/
|
||||
TimerUtils.setAlpha(1F);
|
||||
if (TimerUtils.drawHunger(MinecraftClient.getInstance().getTickDelta()))
|
||||
{
|
||||
TimerUtils.setAlpha(0F);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Resets the air GUI.
|
||||
*
|
||||
* @param matrices
|
||||
* @param callbackInfo
|
||||
*/
|
||||
@Inject(method = "renderStatusBars(Lnet/minecraft/client/util" +
|
||||
"/math/MatrixStack;)V", at = @At(value = "INVOKE", target = "Lnet" +
|
||||
"/minecraft/util/profiler/Profiler;swap(Ljava/lang/String;)V",
|
||||
ordinal = 2))
|
||||
public void renderAir(MatrixStack matrices, CallbackInfo callbackInfo)
|
||||
{
|
||||
/*
|
||||
* Resets the color so that nothing else is bothered.
|
||||
*/
|
||||
TimerUtils.setAlpha(1F);
|
||||
}
|
||||
|
||||
@ModifyVariable(method = "renderStatusBars(Lnet/minecraft/client/util" +
|
||||
"/math/MatrixStack;)V", at = @At("TAIL"))
|
||||
public MatrixStack finishStatus(MatrixStack stack)
|
||||
@@ -204,7 +286,8 @@ public class HudHook
|
||||
cancellable = true)
|
||||
public void startMountHealth(MatrixStack stack, CallbackInfo callbackInfo)
|
||||
{
|
||||
if (TimerUtils.drawMountHealth(stack, MinecraftClient.getInstance().getTickDelta()))
|
||||
if (TimerUtils.drawMountHealth(stack,
|
||||
MinecraftClient.getInstance().getTickDelta()))
|
||||
{
|
||||
callbackInfo.cancel();
|
||||
}
|
||||
@@ -260,7 +343,8 @@ public class HudHook
|
||||
public boolean shouldRenderPotion(StatusEffectInstance effect)
|
||||
{
|
||||
currentEffect = effect;
|
||||
return TimerUtils.updatePotion(effect, MinecraftClient.getInstance().getTickDelta());
|
||||
return TimerUtils.updatePotion(effect,
|
||||
MinecraftClient.getInstance().getTickDelta());
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -1,101 +0,0 @@
|
||||
/**
|
||||
* Copyright (C) 2021 Markil 3
|
||||
* <p>
|
||||
* This program is free software: you can redistribute it and/or modify it under
|
||||
* the terms of the GNU General Public License as published by the Free Software
|
||||
* Foundation, either version 3 of the License, or (at your option) any later
|
||||
* version.
|
||||
* <p>
|
||||
* 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 General Public License for more
|
||||
* details.
|
||||
* <p>
|
||||
* You should have received a copy of the GNU General Public License along with
|
||||
* this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
package markil3.immersive_hud.mixin;
|
||||
|
||||
import net.minecraft.client.MinecraftClient;
|
||||
import net.minecraft.util.profiler.DummyProfiler;
|
||||
|
||||
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;
|
||||
|
||||
import markil3.immersive_hud.TimerUtils;
|
||||
|
||||
/**
|
||||
* This class hooks into the profiler to trigger color changes for the status
|
||||
* indicators.
|
||||
*
|
||||
* @author Markil 3
|
||||
* @version 0.1-1.16.4-fabric
|
||||
*/
|
||||
@Mixin(DummyProfiler.class)
|
||||
public class ProfilerHook
|
||||
{
|
||||
/**
|
||||
* Hooks into the profiler to add logic to drawing armor.
|
||||
*
|
||||
* @param section - The profiler section
|
||||
* @param callbackInfo
|
||||
*
|
||||
* @since 0.1-1.16.4-fabric
|
||||
*/
|
||||
@Inject(method = "push", at = @At(value = "TAIL"))
|
||||
public void renderArmor(String section, CallbackInfo callbackInfo)
|
||||
{
|
||||
if (section.equals("armor"))
|
||||
{
|
||||
if (TimerUtils.drawArmor())
|
||||
{
|
||||
TimerUtils.setAlpha(0F);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Hooks into the profiler to add logic to drawing status bars besides
|
||||
* armor.
|
||||
*
|
||||
* @param section - The profiler section
|
||||
* @param callbackInfo
|
||||
*
|
||||
* @since 0.1-1.16.4-fabric
|
||||
*/
|
||||
@Inject(method = "swap", at = @At(value = "TAIL"))
|
||||
public void renderStatus(String section, CallbackInfo callbackInfo)
|
||||
{
|
||||
switch (section)
|
||||
{
|
||||
case "health":
|
||||
/*
|
||||
* Resets the transparency from the previous call.
|
||||
*/
|
||||
TimerUtils.setAlpha(1F);
|
||||
if (TimerUtils.drawHealth(MinecraftClient.getInstance().getTickDelta()))
|
||||
{
|
||||
TimerUtils.setAlpha(0F);
|
||||
}
|
||||
break;
|
||||
case "food":
|
||||
/*
|
||||
* Resets the transparency from the previous call.
|
||||
*/
|
||||
TimerUtils.setAlpha(1F);
|
||||
if (TimerUtils.drawHunger(MinecraftClient.getInstance().getTickDelta()))
|
||||
{
|
||||
TimerUtils.setAlpha(0F);
|
||||
}
|
||||
break;
|
||||
case "air":
|
||||
/*
|
||||
* Resets the color so that nothing else is bothered.
|
||||
*/
|
||||
TimerUtils.setAlpha(1F);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -8,8 +8,7 @@
|
||||
"client": [
|
||||
"ClientPlayerHook",
|
||||
"HeldItemHook",
|
||||
"HudHook",
|
||||
"ProfilerHook"
|
||||
"HudHook"
|
||||
],
|
||||
"injectors": {
|
||||
"defaultRequire": 1
|
||||
|
||||
Reference in New Issue
Block a user