mirror of
https://codeberg.org/moonleay/Gimbal.git
synced 2025-04-04 11:44:13 +02:00
refactor: Reworked translation key system Signed-off-by: moonleay <contact@moonleay.net>
74 lines
3.1 KiB
Java
74 lines
3.1 KiB
Java
/*
|
|
* Gimbal
|
|
* Copyright (C) 2024 moonleay
|
|
*
|
|
* 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.
|
|
*
|
|
* 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.
|
|
*
|
|
* 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 net.moonleay.gimbal.mixin;
|
|
|
|
import net.minecraft.client.MinecraftClient;
|
|
import net.minecraft.client.font.TextRenderer;
|
|
import net.minecraft.client.gui.hud.InGameHud;
|
|
import net.minecraft.client.util.math.MatrixStack;
|
|
import net.minecraft.text.Text;
|
|
import net.moonleay.gimbal.client.ClientMain;
|
|
import net.moonleay.gimbal.client.config.GimbalGuiSettings;
|
|
import net.moonleay.gimbal.client.editor.ClientEditor;
|
|
import net.moonleay.gimbal.client.util.screen.ScreenUtil;
|
|
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 abstract class HudMixin {
|
|
|
|
@Shadow @Final private MinecraftClient client;
|
|
|
|
@Inject(method = "renderStatusEffectOverlay", at = @At("HEAD"))
|
|
private void render(MatrixStack matrices, CallbackInfo ci) {
|
|
TextRenderer tr = this.client.textRenderer;
|
|
GimbalGuiSettings conf = ClientMain.CONFIG.getConfig().getGuiSettings();
|
|
if (!conf.getShowHud())
|
|
return;
|
|
int scaleFactor = this.client.getWindow()
|
|
.calculateScaleFactor(
|
|
this.client.options.getGuiScale().getValue(),
|
|
this.client.forcesUnicodeFont()
|
|
);
|
|
Text displayText = ClientEditor.INSTANCE.getModeDisplayText(ClientMain.CONFIG.getConfig());
|
|
tr.drawWithShadow(
|
|
matrices,
|
|
displayText,
|
|
ScreenUtil.INSTANCE.getXForAnchor(
|
|
ScreenUtil.INSTANCE.getReal(
|
|
this.client.getWindow().getWidth(),
|
|
conf.getOffset().getScaledX() / scaleFactor),
|
|
conf.getHorizontalAnchor(),
|
|
this.client.textRenderer.getWidth(displayText)
|
|
),
|
|
ScreenUtil.INSTANCE.getYForAnchor(
|
|
ScreenUtil.INSTANCE.getReal(
|
|
this.client.getWindow().getHeight(),
|
|
conf.getOffset().getScaledY() / scaleFactor),
|
|
conf.getVerticalAnchor(),
|
|
this.client.textRenderer.fontHeight
|
|
),
|
|
ClientEditor.INSTANCE.getCurrentColor()
|
|
);
|
|
}
|
|
}
|