46 lines
1.8 KiB
Java
46 lines
1.8 KiB
Java
package dev.micle.loginprotection.mixin;
|
|
|
|
import com.mojang.blaze3d.systems.RenderSystem;
|
|
import com.mojang.blaze3d.vertex.PoseStack;
|
|
import dev.micle.loginprotection.data.ProtectedPlayer;
|
|
import dev.micle.loginprotection.proxy.Proxy;
|
|
import net.minecraft.client.Minecraft;
|
|
import net.minecraft.client.gui.Font;
|
|
import net.minecraftforge.api.distmarker.Dist;
|
|
import net.minecraftforge.api.distmarker.OnlyIn;
|
|
import net.minecraftforge.client.gui.ForgeIngameGui;
|
|
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;
|
|
|
|
@Mixin(ForgeIngameGui.class)
|
|
@OnlyIn(Dist.CLIENT)
|
|
public class GuiRenderTickMixin {
|
|
@Inject(method = "render", at = @At(value = "HEAD"))
|
|
private void onClientTick(PoseStack poseStack, float partialTicks, CallbackInfo callbackInfo) {
|
|
// Setup
|
|
poseStack.pushPose();
|
|
poseStack.translate(Minecraft.getInstance().getWindow().getGuiScaledWidth() / 2.0,
|
|
Minecraft.getInstance().getWindow().getGuiScaledHeight() / 2.0, 0);
|
|
RenderSystem.enableBlend();
|
|
RenderSystem.defaultBlendFunc();
|
|
|
|
// Render state
|
|
poseStack.pushPose();
|
|
poseStack.scale(5, 5, 5);
|
|
Font font = Minecraft.getInstance().font;
|
|
int titleWidth = font.width(Proxy.Client.getPlayerState().toString());
|
|
float offset = -titleWidth / 2f;
|
|
int alpha = 255 << 24 & 0xFF000000;
|
|
|
|
if (!Proxy.Client.getPlayerState().equals(ProtectedPlayer.State.ACTIVE)) {
|
|
font.draw(poseStack, Proxy.Client.getPlayerState().toString(), offset, -50, 0xFFFFFF | alpha);
|
|
}
|
|
poseStack.popPose();
|
|
|
|
RenderSystem.disableBlend();
|
|
poseStack.popPose();
|
|
}
|
|
}
|