aboutsummaryrefslogtreecommitdiff
path: root/render/miningAbilities.js
diff options
context:
space:
mode:
Diffstat (limited to 'render/miningAbilities.js')
-rw-r--r--render/miningAbilities.js95
1 files changed, 95 insertions, 0 deletions
diff --git a/render/miningAbilities.js b/render/miningAbilities.js
new file mode 100644
index 0000000..d920e50
--- /dev/null
+++ b/render/miningAbilities.js
@@ -0,0 +1,95 @@
+import settings from "../settings"
+import constants from "../util/constants"
+import { capitalizeFirst, checkInDwarven, checkInHollows, drawTitle, textGui } from "../util/helperFunctions"
+
+const miningAbilitiesGui = new textGui()
+let activeAbilities = []
+
+
+export function openMiningAbilitiesGui()
+{
+ miningAbilitiesGui.moveGui()
+}
+
+
+register("dragged", (dx, dy, x, y) => {
+ if (!miningAbilitiesGui.moveGuiObject.isOpen()) return
+ constants.abilitydata.x = x
+ constants.abilitydata.y = y
+ constants.abilitydata.save()
+})
+
+
+register("renderOverlay", () => {
+ if(!(checkInDwarven() || checkInHollows()) || !settings.miningAbilities) return
+ activeAbilities.forEach(ability => {
+ if(ability.drawTitle == 1)
+ {
+ let titleResults = drawTitle(`&6[&3&kd&6] &b&l${ability.name}&6 [&3&kd&6]`, ability.drawTimestamp)
+ ability.drawTitle = titleResults.drawTitle
+ ability.drawTimestamp = titleResults.drawTimestamp
+ }
+ })
+})
+
+register("renderOverlay", () => {
+ if(!(checkInDwarven() || checkInHollows()) || !settings.miningAbilitiesGui) return
+ let leftValues = [],
+ rightValues = []
+
+ activeAbilities.forEach(ability => {
+ leftValues.push(`${ability.name} CD`)
+ rightValues.push(ability.timer + "s")
+ })
+
+ if(miningAbilitiesGui.moveGuiObject.isOpen() && leftValues.length < 1)
+ {
+ leftValues.push("Mining Speed Boost")
+ rightValues.push("0")
+ }
+
+ miningAbilitiesGui.guiObject = {leftValues: leftValues, rightValues: rightValues}
+ miningAbilitiesGui.x = constants.abilitydata.x
+ miningAbilitiesGui.y = constants.abilitydata.y
+ miningAbilitiesGui.alignment = settings.miningAbilitiesAlignment
+ miningAbilitiesGui.renderGui()
+})
+
+
+register("step", () => {
+ activeAbilities.forEach(ability => {
+ if(ability.timer > 0)
+ ability.timer -= 1
+ else if (ability.drawTitle == 0)
+ ability.drawTitle = 1
+ })
+}).setDelay(1) // delay instead of fps for accuracy ?
+
+
+register("chat", (abilityName, event) => {
+ let found = false
+
+ activeAbilities.forEach(ability => {
+ if(ability.name == capitalizeFirst(abilityName))
+ {
+ found = true
+ drawTimestamp = undefined
+ ability.drawTitle = 0
+ if (capitalizeFirst(abilityName) === "Pickobulus")
+ ability.timer = 110
+ else
+ ability.timer = 120
+ }
+ })
+
+ if (!found)
+ {
+ let object = {timer: capitalizeFirst(abilityName) === "Pickobulus" ? 110 : 120, name: capitalizeFirst(abilityName), drawTitle: 0, drawTimestamp: undefined}
+
+ activeAbilities.push(object)
+ }
+}).setCriteria(/&r&aYou used your &r&6(.+) &r&aPickaxe Ability!&r/g)
+
+register("worldLoad", () => {
+ activeAbilities = []
+}) \ No newline at end of file