diff options
Diffstat (limited to 'src/main')
-rw-r--r-- | src/main/java/me/xmrvizzy/skyblocker/skyblock/FancyStatusBars.java | 15 |
1 files changed, 11 insertions, 4 deletions
diff --git a/src/main/java/me/xmrvizzy/skyblocker/skyblock/FancyStatusBars.java b/src/main/java/me/xmrvizzy/skyblocker/skyblock/FancyStatusBars.java index 94642df0..852a16df 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/skyblock/FancyStatusBars.java +++ b/src/main/java/me/xmrvizzy/skyblocker/skyblock/FancyStatusBars.java @@ -16,7 +16,7 @@ import java.util.regex.Pattern; public class FancyStatusBars extends DrawableHelper { private static final MinecraftClient client = MinecraftClient.getInstance(); private static final Identifier BARS = new Identifier(SkyblockerMod.NAMESPACE,"textures/gui/bars.png"); - private static final Pattern ACTION_BAR_STATUS = Pattern.compile("^§[6c]([0-9]+)/([0-9]+)❤(?:\\+§c[0-9]+\\S)? {3,}(?:§a([0-9]+)§a❈ Defense|(\\S+(?: \\S+)*)) {3,}(?:§b([0-9]+)/([0-9]+)✎ Mana|(\\S+(?: \\S+)*))(.*)$"); + private static final Pattern ACTION_BAR_STATUS = Pattern.compile("^§[6c]([0-9]+)/([0-9]+)❤(?:\\+§c[0-9]+\\S)? {3,}(?:§a([0-9]+)§a❈ Defense|(\\S+(?: \\S+)*)) {3,}(?:§b([0-9]+)/([0-9]+)✎ (?:Mana|§3([0-9]+)ʬ)?|(\\S+(?: \\S+)*))(.*)$"); private final Resource health; private final Resource mana; private int defense; @@ -36,13 +36,16 @@ public class FancyStatusBars extends DrawableHelper { health.set(matcher.group(1), matcher.group(2)); if(matcher.group(3) != null) defense = Integer.parseInt(matcher.group(3)); - if(matcher.group(5) != null) + if(matcher.group(5) != null) { mana.set(matcher.group(5), matcher.group(6)); + if(matcher.group(7) != null) + mana.add(Integer.parseInt(matcher.group(7))); + } StringBuilder sb = new StringBuilder(); appendIfNotNull(sb, matcher.group(4)); - appendIfNotNull(sb, matcher.group(7)); appendIfNotNull(sb, matcher.group(8)); + appendIfNotNull(sb, matcher.group(9)); if(!sb.isEmpty()) { assert client.player != null; @@ -71,6 +74,7 @@ public class FancyStatusBars extends DrawableHelper { int manaFillWidth = (int) (mana.getFillLevel() * 33.0F); assert client.player != null; int xp = (int) (client.player.experienceProgress * 33.0F); + int defenseFill = (int) (defense / (defense + 100.0) * 33.0); // Icons // this.client.getTextureManager().bindTexture(BARS); @@ -90,7 +94,7 @@ public class FancyStatusBars extends DrawableHelper { this.drawTexture(matrices, left + 10, top + 1, 0, 16, hpFillWidth, 7); this.drawTexture(matrices, left + 10, top + 1, 0, 44, hpOverflowWidth, 7); this.drawTexture(matrices, left + 55, top + 1, 0, 23, manaFillWidth, 7); - this.drawTexture(matrices, left + 102, top + 1, 0, 30, 33, 7); + this.drawTexture(matrices, left + 102, top + 1, 0, 30, defenseFill, 7); this.drawTexture(matrices, left + 149, top + 1, 0, 37, xp, 7); // Progress Texts @@ -125,6 +129,9 @@ public class FancyStatusBars extends DrawableHelper { this.value = Integer.parseInt(value); this.max = Integer.parseInt(max); } + public void add(int value) { + this.value += value; + } public int getValue() { return value; } |