From 9e66053119b721eb1c4ea071952769e2d0bb4801 Mon Sep 17 00:00:00 2001 From: noil Date: Thu, 12 Nov 2020 19:34:16 -0500 Subject: [PATCH] Added a centered bottom anchor point, tray is now enabled by default and placed there for new users. --- .../hud/component/DraggableHudComponent.java | 7 +++++ .../impl/gui/hud/anchor/AnchorPoint.java | 4 +-- .../hud/component/EnabledModsComponent.java | 2 ++ .../hud/component/EnemyPotionsComponent.java | 2 ++ .../hud/component/NotificationsComponent.java | 6 +++++ .../hud/component/PotionEffectsComponent.java | 2 ++ .../impl/gui/hud/component/TrayComponent.java | 3 +++ .../seppuku/impl/management/HudManager.java | 26 +++++++++++++------ 8 files changed, 42 insertions(+), 10 deletions(-) diff --git a/src/main/java/me/rigamortis/seppuku/api/gui/hud/component/DraggableHudComponent.java b/src/main/java/me/rigamortis/seppuku/api/gui/hud/component/DraggableHudComponent.java index a5eefda..904ef01 100644 --- a/src/main/java/me/rigamortis/seppuku/api/gui/hud/component/DraggableHudComponent.java +++ b/src/main/java/me/rigamortis/seppuku/api/gui/hud/component/DraggableHudComponent.java @@ -125,6 +125,9 @@ public class DraggableHudComponent extends HudComponent { case TOP_CENTER: this.setX(this.anchorPoint.getX() - (this.getW() / 2)); break; + case BOTTOM_CENTER: + this.setX(this.anchorPoint.getX() - (this.getW() / 2)); + break; } if (this.glueSide != null) { switch (this.glueSide) { @@ -158,6 +161,10 @@ public class DraggableHudComponent extends HudComponent { this.setX(this.anchorPoint.getX() - (this.getW() / 2)); this.setY(this.anchorPoint.getY()); break; + case BOTTOM_CENTER: + this.setX(this.anchorPoint.getX() - (this.getW() / 2)); + this.setY(this.anchorPoint.getY() - this.getH()); + break; } } } diff --git a/src/main/java/me/rigamortis/seppuku/impl/gui/hud/anchor/AnchorPoint.java b/src/main/java/me/rigamortis/seppuku/impl/gui/hud/anchor/AnchorPoint.java index ae56904..d0845b1 100644 --- a/src/main/java/me/rigamortis/seppuku/impl/gui/hud/anchor/AnchorPoint.java +++ b/src/main/java/me/rigamortis/seppuku/impl/gui/hud/anchor/AnchorPoint.java @@ -41,8 +41,8 @@ public class AnchorPoint { this.point = point; } - public static enum Point { - TOP_LEFT, TOP_RIGHT, BOTTOM_LEFT, BOTTOM_RIGHT, TOP_CENTER + public enum Point { + TOP_LEFT, TOP_RIGHT, BOTTOM_LEFT, BOTTOM_RIGHT, TOP_CENTER, BOTTOM_CENTER } } diff --git a/src/main/java/me/rigamortis/seppuku/impl/gui/hud/component/EnabledModsComponent.java b/src/main/java/me/rigamortis/seppuku/impl/gui/hud/component/EnabledModsComponent.java index de49234..eb738f0 100644 --- a/src/main/java/me/rigamortis/seppuku/impl/gui/hud/component/EnabledModsComponent.java +++ b/src/main/java/me/rigamortis/seppuku/impl/gui/hud/component/EnabledModsComponent.java @@ -79,6 +79,7 @@ public final class EnabledModsComponent extends DraggableHudComponent { if (this.getAnchorPoint() != null) { switch (this.getAnchorPoint().getPoint()) { case TOP_CENTER: + case BOTTOM_CENTER: xOffset = (this.getW() - mc.fontRenderer.getStringWidth(name)) / 2; break; case TOP_LEFT: @@ -100,6 +101,7 @@ public final class EnabledModsComponent extends DraggableHudComponent { mc.fontRenderer.drawStringWithShadow(name, this.getX() + xOffset, this.getY() + yOffset, mod.getColor()); yOffset += (mc.fontRenderer.FONT_HEIGHT + 1); break; + case BOTTOM_CENTER: case BOTTOM_LEFT: case BOTTOM_RIGHT: mc.fontRenderer.drawStringWithShadow(name, this.getX() + xOffset, this.getY() + (this.getH() - mc.fontRenderer.FONT_HEIGHT) + yOffset, mod.getColor()); diff --git a/src/main/java/me/rigamortis/seppuku/impl/gui/hud/component/EnemyPotionsComponent.java b/src/main/java/me/rigamortis/seppuku/impl/gui/hud/component/EnemyPotionsComponent.java index 0c6e4ab..9e00484 100644 --- a/src/main/java/me/rigamortis/seppuku/impl/gui/hud/component/EnemyPotionsComponent.java +++ b/src/main/java/me/rigamortis/seppuku/impl/gui/hud/component/EnemyPotionsComponent.java @@ -54,6 +54,7 @@ public final class EnemyPotionsComponent extends DraggableHudComponent { if (this.getAnchorPoint() != null) { switch (this.getAnchorPoint().getPoint()) { case TOP_CENTER: + case BOTTOM_CENTER: xOffset = (this.getW() - width) / 2; break; case TOP_LEFT: @@ -75,6 +76,7 @@ public final class EnemyPotionsComponent extends DraggableHudComponent { mc.fontRenderer.drawStringWithShadow(displayLine, this.getX() + xOffset, this.getY() + yOffset, effect.getPotion().getLiquidColor()); yOffset += (mc.fontRenderer.FONT_HEIGHT + 1); break; + case BOTTOM_CENTER: case BOTTOM_LEFT: case BOTTOM_RIGHT: mc.fontRenderer.drawStringWithShadow(displayLine, this.getX() + xOffset, this.getY() + (this.getH() - mc.fontRenderer.FONT_HEIGHT) + yOffset, effect.getPotion().getLiquidColor()); diff --git a/src/main/java/me/rigamortis/seppuku/impl/gui/hud/component/NotificationsComponent.java b/src/main/java/me/rigamortis/seppuku/impl/gui/hud/component/NotificationsComponent.java index 57a9200..24e5d33 100644 --- a/src/main/java/me/rigamortis/seppuku/impl/gui/hud/component/NotificationsComponent.java +++ b/src/main/java/me/rigamortis/seppuku/impl/gui/hud/component/NotificationsComponent.java @@ -19,6 +19,11 @@ public final class NotificationsComponent extends DraggableHudComponent { this.setVisible(true); } + public NotificationsComponent() { + super("Notifications"); + this.setVisible(true); + } + @Override public void render(int mouseX, int mouseY, float partialTicks) { super.render(mouseX, mouseY, partialTicks); @@ -33,6 +38,7 @@ public final class NotificationsComponent extends DraggableHudComponent { if (this.getAnchorPoint() != null) { switch (this.getAnchorPoint().getPoint()) { case TOP_CENTER: + case BOTTOM_CENTER: offsetX = (this.getW() - Minecraft.getMinecraft().fontRenderer.getStringWidth(notification.getText())) / 2; break; case TOP_LEFT: diff --git a/src/main/java/me/rigamortis/seppuku/impl/gui/hud/component/PotionEffectsComponent.java b/src/main/java/me/rigamortis/seppuku/impl/gui/hud/component/PotionEffectsComponent.java index 8bac5e1..6c63a64 100644 --- a/src/main/java/me/rigamortis/seppuku/impl/gui/hud/component/PotionEffectsComponent.java +++ b/src/main/java/me/rigamortis/seppuku/impl/gui/hud/component/PotionEffectsComponent.java @@ -57,6 +57,7 @@ public final class PotionEffectsComponent extends DraggableHudComponent { if (this.getAnchorPoint() != null) { switch (this.getAnchorPoint().getPoint()) { case TOP_CENTER: + case BOTTOM_CENTER: xOffset = (this.getW() - mc.fontRenderer.getStringWidth(effect)) / 2; break; case TOP_LEFT: @@ -78,6 +79,7 @@ public final class PotionEffectsComponent extends DraggableHudComponent { mc.fontRenderer.drawStringWithShadow(effect, this.getX() + xOffset, this.getY() + yOffset, potionEffect.getPotion().getLiquidColor()); yOffset += (mc.fontRenderer.FONT_HEIGHT + 1); break; + case BOTTOM_CENTER: case BOTTOM_LEFT: case BOTTOM_RIGHT: mc.fontRenderer.drawStringWithShadow(effect, this.getX() + xOffset, this.getY() + (this.getH() - mc.fontRenderer.FONT_HEIGHT) + yOffset, potionEffect.getPotion().getLiquidColor()); diff --git a/src/main/java/me/rigamortis/seppuku/impl/gui/hud/component/TrayComponent.java b/src/main/java/me/rigamortis/seppuku/impl/gui/hud/component/TrayComponent.java index a1ca052..dc73a47 100644 --- a/src/main/java/me/rigamortis/seppuku/impl/gui/hud/component/TrayComponent.java +++ b/src/main/java/me/rigamortis/seppuku/impl/gui/hud/component/TrayComponent.java @@ -22,6 +22,7 @@ public class TrayComponent extends DraggableHudComponent { public TrayComponent() { super("Tray"); + buttons.add(new TrayButtonComponent("hub")); buttons.add(new TrayButtonComponent("combat")); buttons.add(new TrayButtonComponent("movement")); @@ -29,6 +30,8 @@ public class TrayComponent extends DraggableHudComponent { buttons.add(new TrayButtonComponent("player")); buttons.add(new TrayButtonComponent("world")); buttons.add(new TrayButtonComponent("misc")); + + this.setVisible(true); } @Override diff --git a/src/main/java/me/rigamortis/seppuku/impl/management/HudManager.java b/src/main/java/me/rigamortis/seppuku/impl/management/HudManager.java index 4fb306a..c742339 100644 --- a/src/main/java/me/rigamortis/seppuku/impl/management/HudManager.java +++ b/src/main/java/me/rigamortis/seppuku/impl/management/HudManager.java @@ -12,6 +12,7 @@ import me.rigamortis.seppuku.impl.gui.hud.component.module.ModuleListComponent; import net.minecraft.client.Minecraft; import net.minecraft.client.gui.GuiChat; import net.minecraft.client.gui.ScaledResolution; +import scala.tools.nsc.transform.patmat.Logic; import team.stiff.pomelo.impl.annotated.handler.annotation.Listener; import java.io.File; @@ -39,12 +40,14 @@ public final class HudManager { final AnchorPoint TOP_RIGHT = new AnchorPoint(res.getScaledWidth() - 2, 2, AnchorPoint.Point.TOP_RIGHT); final AnchorPoint BOTTOM_LEFT = new AnchorPoint(2, res.getScaledHeight() - 2, AnchorPoint.Point.BOTTOM_LEFT); final AnchorPoint BOTTOM_RIGHT = new AnchorPoint(res.getScaledWidth() - 2, res.getScaledHeight() - 2, AnchorPoint.Point.BOTTOM_RIGHT); - final AnchorPoint TOP_CENTER = new AnchorPoint(res.getScaledWidth() / 2, 2, AnchorPoint.Point.TOP_CENTER); + final AnchorPoint TOP_CENTER = new AnchorPoint(res.getScaledWidth() / 2.0f, 2, AnchorPoint.Point.TOP_CENTER); + final AnchorPoint BOTTOM_CENTER = new AnchorPoint(res.getScaledWidth() / 2.0f, res.getScaledHeight() - 2, AnchorPoint.Point.BOTTOM_CENTER); this.anchorPoints.add(TOP_LEFT); this.anchorPoints.add(TOP_RIGHT); this.anchorPoints.add(BOTTOM_LEFT); this.anchorPoints.add(BOTTOM_RIGHT); this.anchorPoints.add(TOP_CENTER); + this.anchorPoints.add(BOTTOM_CENTER); for (Module.ModuleType type : Module.ModuleType.values()) { if (type.equals(Module.ModuleType.HIDDEN) || type.equals(Module.ModuleType.UI)) @@ -79,8 +82,14 @@ public final class HudManager { this.componentList.add(new PlayerCountComponent()); this.componentList.add(new OverViewComponent()); this.componentList.add(new RearViewComponent()); - this.componentList.add(new TrayComponent()); - this.componentList.add(new NotificationsComponent(TOP_CENTER)); + + TrayComponent trayComponent = new TrayComponent(); + trayComponent.setAnchorPoint(BOTTOM_CENTER); + this.componentList.add(trayComponent); + + NotificationsComponent notificationsComponent = new NotificationsComponent(); + notificationsComponent.setAnchorPoint(TOP_CENTER); + this.componentList.add(notificationsComponent); this.loadExternalHudComponents(); @@ -132,9 +141,13 @@ public final class HudManager { point.setY(event.getScaledResolution().getScaledHeight() - chatHeight - 2); } if (point.getPoint() == AnchorPoint.Point.TOP_CENTER) { - point.setX(event.getScaledResolution().getScaledWidth() / 2); + point.setX(event.getScaledResolution().getScaledWidth() / 2.0f); point.setY(2); } + if (point.getPoint() == AnchorPoint.Point.BOTTOM_CENTER) { + point.setX(event.getScaledResolution().getScaledWidth() / 2.0f); + point.setY(event.getScaledResolution().getScaledHeight() - 2); + } } } @@ -164,10 +177,7 @@ public final class HudManager { } public void moveToTop(HudComponent component) { - final Iterator it = this.componentList.iterator(); - - while (it.hasNext()) { - final HudComponent comp = (HudComponent) it.next(); + for (HudComponent comp : this.componentList) { if (comp != null && comp == component) { this.componentList.remove(comp); this.componentList.add(comp);