aboutsummaryrefslogtreecommitdiff
path: root/render/guis/powertrackerGui.js
diff options
context:
space:
mode:
Diffstat (limited to 'render/guis/powertrackerGui.js')
-rw-r--r--render/guis/powertrackerGui.js116
1 files changed, 116 insertions, 0 deletions
diff --git a/render/guis/powertrackerGui.js b/render/guis/powertrackerGui.js
new file mode 100644
index 0000000..f6bc96b
--- /dev/null
+++ b/render/guis/powertrackerGui.js
@@ -0,0 +1,116 @@
+/*
+Major credit to Fabi019 for Powdertracker module.
+*/
+import constants from "../../util/constants"
+import settings from "../../settings"
+
+const powderGui = new Gui(),
+ bossBar = Java.type("net.minecraft.entity.boss.BossStatus").field_82827_c
+
+let sessionRunning = false,
+ sessionChests = 0,
+ sessionGemstone = 0,
+ sessionMithril = 0,
+ seconds = 0,
+ timeSinceLastGain = 0
+
+export function openPowderGui()
+{
+ powderGui.open()
+}
+
+function DoublePowderActive()
+{
+ return bossBar.includes("2X POWDER")
+}
+
+register("dragged", (dx, dy, x, y) => {
+ if (!powderGui.isOpen()) return
+ constants.powderdata.x = x
+ constants.powderdata.y = y
+ constants.powderdata.save()
+})
+
+register("chat", (value, type) => {
+ let powder = parseInt(value)
+
+ if (DoublePowderActive())
+ powder *= 2
+ if(type.toLowerCase() == "gemstone")
+ {
+ constants.powderdata.gemstonePowder += powder
+ sessionGemstone += powder
+ }
+ else if (type.toLowerCase() == "mithril")
+ {
+ constants.powderdata.mithrilPowder += powder
+ sessionMithril += powder
+ }
+ constants.powderdata.save()
+ timeSinceLastGain = 0
+ sessionRunning = true
+}).setCriteria(/You received \+([0-9]+) ([a-zA-Z]+) Powder/g)
+
+register("chat", event => {
+ constants.powderdata.chests += 1
+ sessionChests += 1
+ sessionRunning = true
+}).setCriteria("&r&6You have successfully picked the lock on this chest!&r");
+
+register("renderOverlay", () => {
+ if (powderGui.isOpen())
+ {
+ let txt = "Drag to move."
+ Renderer.drawStringWithShadow(txt, Renderer.screen.getWidth()/2 - Renderer.getStringWidth(txt)/2, Renderer.screen.getHeight()/2)
+ }
+ if (!settings.trackerVisible || !sessionRunning) return
+
+ let uptimeHr = Math.floor(seconds/60/60),
+ lines = [],
+ message =""
+
+ function addText(item, value)
+ {
+ lines.push("&a" + item + ": &b" + value)
+ }
+
+ if (settings.showTotals)
+ {
+ addText("Total Chest", constants.powderdata.chests)
+ addText("Total Gemstone", constants.powderdata.gemstonePowder)
+ addText("Total Mithril", constants.powderdata.mithrilPowder)
+ }
+
+ addText("Session Chests", sessionChests)
+ addText("Session Gemstone", sessionGemstone)
+ addText("Session Mithril", sessionMithril)
+
+
+ if (settings.showRates)
+ {
+ addText("Chests/hr", Math.round(((sessionChests ?? 0)/(seconds ?? 1)) * 3600))
+ addText("Gemstone/hr", Math.round(((sessionGemstone ?? 0)/(seconds ?? 1)) * 3600))
+ addText("Mithril/hr", Math.round(((sessionMithril ?? 0)/(seconds ?? 1)) * 3600))
+ if(uptimeHr >= 1)
+ addText("Uptime", `${uptimeHr}h ${Math.floor(seconds/60) - uptimeHr*60}m`)
+ else
+ addText("Uptime", `${Math.floor(seconds/60)}m ${Math.floor(seconds%60)}s`)
+ }
+
+ lines.forEach((line) => {
+ message += line + "\n"
+ })
+ Renderer.drawStringWithShadow(message, constants.powderdata.x, constants.powderdata.y)
+})
+
+register("step", () => {
+ if(sessionRunning)
+ {
+ seconds += 1
+ timeSinceLastGain += 1
+ }
+ if(timeSinceLastGain > 300 && sessionRunning)
+ {
+ sessionRunning = false
+ }
+}).setFps(1)