From c33f961f819502623b79deda14c24eb52302db42 Mon Sep 17 00:00:00 2001 From: Sollace Date: Tue, 13 Oct 2020 17:41:38 +0200 Subject: [PATCH] Swap the hud to the other side for people who play left handed --- .../unicopia/client/gui/ManaRingSlot.java | 2 +- .../unicopia/client/gui/Slot.java | 25 +++++++++++++++++-- .../unicopia/client/gui/UHud.java | 9 ++++++- 3 files changed, 32 insertions(+), 4 deletions(-) diff --git a/src/main/java/com/minelittlepony/unicopia/client/gui/ManaRingSlot.java b/src/main/java/com/minelittlepony/unicopia/client/gui/ManaRingSlot.java index 95bac4ab..671f72b1 100644 --- a/src/main/java/com/minelittlepony/unicopia/client/gui/ManaRingSlot.java +++ b/src/main/java/com/minelittlepony/unicopia/client/gui/ManaRingSlot.java @@ -20,7 +20,7 @@ class ManaRingSlot extends Slot { private static final double TWO_PI = Math.PI * 2; public ManaRingSlot(UHud uHud, AbilitySlot normalSlot, AbilitySlot backupSlot, int x, int y) { - super(uHud, normalSlot, backupSlot, x, y, 8, 49, 33, 43, 42); + super(uHud, normalSlot, backupSlot, x, y, 8, UHud.PRIMARY_SLOT_SIZE, 33, 43, 42); background(0, 5); foreground(0, 59); } diff --git a/src/main/java/com/minelittlepony/unicopia/client/gui/Slot.java b/src/main/java/com/minelittlepony/unicopia/client/gui/Slot.java index 94f5cfef..d1e7579f 100644 --- a/src/main/java/com/minelittlepony/unicopia/client/gui/Slot.java +++ b/src/main/java/com/minelittlepony/unicopia/client/gui/Slot.java @@ -62,9 +62,21 @@ class Slot { return this; } + int getX() { + if (uHud.xDirection < 0) { + return UHud.PRIMARY_SLOT_SIZE - size - x; + } + + return x; + } + + int getY() { + return y; + } + void renderBackground(MatrixStack matrices, AbilityDispatcher abilities, boolean bSwap, float tickDelta) { matrices.push(); - matrices.translate(x, y, 0); + matrices.translate(getX(), getY(), 0); float cooldown = abilities.getStat(bSwap ? bSlot : aSlot).getFillProgress(); @@ -101,7 +113,16 @@ class Slot { Text label = KeyBindingsHandler.INSTANCE.getBinding(aSlot).getBoundKeyLocalizedText(); matrices.push(); - matrices.translate(x + labelX, y + labelY, 0); + + int x = getX(); + if (uHud.xDirection > 0) { + x += labelX; + } else { + x += labelX - size/3; + x -= uHud.client.textRenderer.getWidth(label)/2; + } + + matrices.translate(x, getY() + labelY, 0); matrices.scale(0.5F, 0.5F, 0.5F); UHud.drawTextWithShadow(matrices, uHud.font, label, 0, 0, 0xFFFFFF); diff --git a/src/main/java/com/minelittlepony/unicopia/client/gui/UHud.java b/src/main/java/com/minelittlepony/unicopia/client/gui/UHud.java index b79818ea..511f9de7 100644 --- a/src/main/java/com/minelittlepony/unicopia/client/gui/UHud.java +++ b/src/main/java/com/minelittlepony/unicopia/client/gui/UHud.java @@ -21,6 +21,7 @@ import net.minecraft.client.gui.hud.InGameHud; import net.minecraft.client.gui.screen.ingame.InventoryScreen; import net.minecraft.client.util.math.MatrixStack; import net.minecraft.text.Text; +import net.minecraft.util.Arm; import net.minecraft.util.Identifier; import net.minecraft.util.Util; @@ -30,6 +31,8 @@ public class UHud extends DrawableHelper { public static final Identifier HUD_TEXTURE = new Identifier("unicopia", "textures/gui/hud.png"); + public static final int PRIMARY_SLOT_SIZE = 49; + public TextRenderer font; final MinecraftClient client = MinecraftClient.getInstance(); @@ -44,6 +47,8 @@ public class UHud extends DrawableHelper { private Text message; private int messageTime; + int xDirection; + public void render(InGameHud hud, MatrixStack matrices, float tickDelta) { if (client.player == null || client.player.isSpectator()) { @@ -52,11 +57,13 @@ public class UHud extends DrawableHelper { font = client.textRenderer; + xDirection = client.player.getMainArm() == Arm.LEFT ? -1 : 1; + int scaledWidth = client.getWindow().getScaledWidth(); int scaledHeight = client.getWindow().getScaledHeight(); matrices.push(); - matrices.translate(104 + (scaledWidth - 50) / 2, scaledHeight - 50, 0); + matrices.translate(((scaledWidth - 50) / 2) + (104 * xDirection), scaledHeight - 50, 0); Pony pony = Pony.of(client.player); AbilityDispatcher abilities = pony.getAbilities();