1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
|
import settings from "../settings"
import constants from "../util/constants"
import { textGui } from "../util/helperFunctions"
const downtimeMoveGui = new Gui()
const downtimeGui = new textGui()
let oldFuel = 0,
timeAtLastFuel = 0,
overallDowntime = 0,
trackingDowntime = false,
downtime = 0,
downtimeCount = 0,
uptime = 0
export function openDowntimeGui()
{
downtimeMoveGui.open()
}
register("dragged", (dx, dy, x, y) => {
if (!downtimeMoveGui.isOpen()) return
constants.downtimedata.x = x
constants.downtimedata.y = y
constants.downtimedata.save()
})
register('actionbar', (xp) => {
if(!settings.downtimeTracker) return
if(Player.getHeldItem() == null) return
let heldItem = Player.getHeldItem().getNBT().toObject()["tag"]["ExtraAttributes"],
newFuel = parseInt(heldItem["drill_fuel"]) // credit to DocilElm because I'm lazy.
if(!newFuel) return
else if(oldFuel == 0) oldFuel = newFuel
else if(oldFuel !== newFuel)
{
if(timeAtLastFuel == 0)
{
timeAtLastFuel = Date.now()
return
}
downtime = Date.now() - timeAtLastFuel
overallDowntime += downtime
downtimeCount += 1
timeAtLastFuel = Date.now()
trackingDowntime = true
oldFuel = newFuel
}
}).setCriteria('${*}+${xp} Mining ${*}')
register("renderOverlay", () => {
if (downtimeMoveGui.isOpen())
{
let txt = "Drag to move."
Renderer.drawStringWithShadow(txt, Renderer.screen.getWidth()/2 - Renderer.getStringWidth(txt)/2, Renderer.screen.getHeight()/2)
downtimeGui.guiObject = {leftValues: ["Downtime", "Overall Downtime", "Average Downtime", "Uptime"], rightValues: [0, 0, 0, 0]}
downtimeGui.x = constants.downtimedata.x
downtimeGui.y = constants.downtimedata.y
downtimeGui.renderGui()
return
}
if (downtimeCount == 0 || !trackingDowntime || !settings.downtimeTracker) return
let avgDowntime = Math.ceil((overallDowntime/downtimeCount)*100) / 100
downtimeGui.guiObject = {leftValues: ["Downtime", "Overall Downtime", "Average Downtime", "Uptime"], rightValues: [downtime, overallDowntime, avgDowntime, uptime]}
downtimeGui.x = constants.downtimedata.x
downtimeGui.y = constants.downtimedata.y
downtimeGui.renderGui()
})
register("step", () => {
if((Date.now()-timeAtLastFuel)/1000 >= 60)
{
uptime = 0
oldFuel = 0
overallDowntime = 0
timeAtLastFuel = 0
trackingDowntime = false
} // over 60 seconds then stop making gui
else if(trackingDowntime)
uptime += 1
}).setFps(1)
|