aboutsummaryrefslogtreecommitdiff
path: root/render/downtimeGui.js
blob: 538c5905b0ff517e8087df0fb7d2cfc3c334f15b (plain)
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)