@name Speedometer
@inputs SpeedIn Scr:wirelink
@persist MaxSpeed Int Speed
@outputs MPH 

runOnTick(1)
MPH = toUnit("mph",entity():vel():length())

Speed = round(SpeedIn)

if(first()) {
    # MAX SPEED
    MaxSpeed = 148
    
    Scr:egpClear()
        
    Scr:egpCircle(4, vec2(256, 456), vec2(25, 25)/10)
    
    Scr:egpBox(5, vec2(0, -80)/10, vec2(10, 250)/10)
    Scr:egpColor(5,vec(255,0,0))
    
    Scr:egpBox(6, vec2(256,431), vec2(2,5)/1.5)
    Scr:egpBox(7, vec2(281,456), vec2(2,5)/1.5)
    Scr:egpAngle(7, 90)
    Scr:egpBox(8, vec2(231,456), vec2(2,5)/1.5)
    Scr:egpAngle(8, 90)
    Scr:egpBox(9, vec2(238,439), vec2(2,5)/1.5)
    Scr:egpAngle(9, 45)
    Scr:egpBox(10, vec2(274,439), vec2(2,5)/1.5)
    Scr:egpAngle(10, -45)
    Scr:egpBox(11, vec2(238,473), vec2(2,5)/1.5)
    Scr:egpAngle(11, 135)
    Scr:egpBox(12, vec2(274,473), vec2(2,5)/1.5)
    Scr:egpAngle(12, -135)
    Scr:egpBox(13, vec2(232,466), vec2(2,3)/1.5)
    Scr:egpAngle(13, -67.5)
    Scr:egpBox(14, vec2(280,466), vec2(2,3)/1.5)
    Scr:egpAngle(14, 67.5)
    Scr:egpBox(15, vec2(280,447), vec2(2,3)/1.5)
    Scr:egpAngle(15, 112.5)
    Scr:egpBox(16, vec2(232,447), vec2(2,3)/1.5)
    Scr:egpAngle(16, -112.5)
    Scr:egpBox(17, vec2(245,433), vec2(2,3)/1.5)
    Scr:egpAngle(17, 35.5)
    Scr:egpBox(18, vec2(267,433), vec2(2,3)/1.5)
    Scr:egpAngle(18, -35.5)
    Scr:egpBox(19, vec2(256,468), vec2(16,8))
    Scr:egpBoxOutline(20, vec2(256,468), vec2(17,9))
    Scr:egpColor(20, vec(0,0,0))
    
    for(I=6,18) {Scr:egpColor(I,vec(0,255,255))}
    
    Scr:egpParent(5, 4)
    
    Scr:egpText(1, "000", vec2(256, 463))
    Scr:egpColor(1,vec(0,0,0))
    Scr:egpSize(1,10)
    Scr:egpFont(1, "ChatFont")
    Scr:egpAlign(1, 1)
}

Scr:egpSetText(1, "" + Speed)

Var1 = Speed / MaxSpeed * 255
Scr:egpColor(2, vec(Var1, 255 - Var1, 0))

Var2 = Speed / MaxSpeed * 240
Scr:egpAngle(4, 120 - Var2)
