From ab051ae480ee6a82430efc9acfc4ad5f479c5001 Mon Sep 17 00:00:00 2001 From: Eric White Date: Sat, 6 Oct 2018 18:10:33 -0500 Subject: [PATCH] Increase XP tracker accuracy to 2 decimal places (#5845) --- .../net/runelite/client/plugins/xptracker/XpInfoBox.java | 7 +++++-- .../client/plugins/xptracker/XpSnapshotSingle.java | 2 +- .../runelite/client/plugins/xptracker/XpStateSingle.java | 4 ++-- 3 files changed, 8 insertions(+), 5 deletions(-) diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/xptracker/XpInfoBox.java b/runelite-client/src/main/java/net/runelite/client/plugins/xptracker/XpInfoBox.java index cb638bccdf..17c1539f4e 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/xptracker/XpInfoBox.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/xptracker/XpInfoBox.java @@ -29,6 +29,7 @@ import java.awt.BorderLayout; import java.awt.Color; import java.awt.Dimension; import java.io.IOException; +import java.text.DecimalFormat; import javax.swing.ImageIcon; import javax.swing.JLabel; import javax.swing.JMenuItem; @@ -54,6 +55,8 @@ import net.runelite.client.util.StackFormatter; class XpInfoBox extends JPanel { + private static final DecimalFormat TWO_DECIMAL_FORMAT = new DecimalFormat("0.00"); + // Templates private static final String HTML_TOOL_TIP_TEMPLATE = "%s actions done
" @@ -197,8 +200,8 @@ class XpInfoBox extends JPanel actionsLeft.setText(htmlLabel("Actions: ", xpSnapshotSingle.getActionsRemainingToGoal())); // Update progress bar - progressBar.setValue(xpSnapshotSingle.getSkillProgressToGoal()); - progressBar.setCenterLabel(xpSnapshotSingle.getSkillProgressToGoal() + "%"); + progressBar.setValue((int) xpSnapshotSingle.getSkillProgressToGoal()); + progressBar.setCenterLabel(TWO_DECIMAL_FORMAT.format(xpSnapshotSingle.getSkillProgressToGoal()) + "%"); progressBar.setLeftLabel("Lvl. " + xpSnapshotSingle.getStartLevel()); progressBar.setRightLabel(xpSnapshotSingle.getEndGoalXp() == Experience.MAX_SKILL_XP ? "200M" diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/xptracker/XpSnapshotSingle.java b/runelite-client/src/main/java/net/runelite/client/plugins/xptracker/XpSnapshotSingle.java index 2e0a1f3a02..cc087b6bec 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/xptracker/XpSnapshotSingle.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/xptracker/XpSnapshotSingle.java @@ -38,7 +38,7 @@ class XpSnapshotSingle private int xpGainedInSession; private int xpRemainingToGoal; private int xpPerHour; - private int skillProgressToGoal; + private double skillProgressToGoal; private int actionsInSession; private int actionsRemainingToGoal; private int actionsPerHour; diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/xptracker/XpStateSingle.java b/runelite-client/src/main/java/net/runelite/client/plugins/xptracker/XpStateSingle.java index 0af9e7cb8f..44e1d079ca 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/xptracker/XpStateSingle.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/xptracker/XpStateSingle.java @@ -115,11 +115,11 @@ class XpStateSingle return Integer.MAX_VALUE; } - private int getSkillProgress() + private double getSkillProgress() { double xpGained = getCurrentXp() - startLevelExp; double xpGoal = endLevelExp - startLevelExp; - return (int) ((xpGained / xpGoal) * 100); + return (xpGained / xpGoal) * 100; } private String getTimeTillLevel()