@name EGP Radar
@inputs EGP:wirelink Prop:entity 
@persist Direction:string 
interval(60)

Plys = players()

if(first()|duped()|changed(EGP)|changed(Plys:count())){
    EGP:egpClear()
    EGP:egpWedge(1,vec2(256,156),vec2(150,150))
    EGP:egpColor(1,vec(40,60,100))
    EGP:egpAlpha(1,75)
    EGP:egpSize(1,90)
    EGP:egpAngle(1,45)
    EGP:egpWedgeOutline(2,vec2(256,156),vec2(150,150))
    EGP:egpColor(2,vec(40,100,100))
    EGP:egpAlpha(2,75)
    EGP:egpSize(2,90)
    EGP:egpAngle(2,45)
    EGP:egpCircleOutline(3,vec2(256,156),vec2(150,150))
    EGP:egpColor(3,vec(40,100,100))
    EGP:egpAlpha(3,75)
    EGP:egpSize(3,3)
    EGP:egpWedge(4,vec2(256,156),vec2(150,150))
    EGP:egpColor(4,vec(40,100,200))
    EGP:egpAlpha(4,75)
    EGP:egpSize(4,270)
    EGP:egpAngle(4,135)
    EGP:egpCircleOutline(6,vec2(256,156),vec2(100,100))
    EGP:egpColor(6,vec(40,100,100))
    EGP:egpAlpha(6,200)
    EGP:egpCircleOutline(7,vec2(256,156),vec2(50,50))
    EGP:egpColor(7,vec(40,100,100))
    EGP:egpAlpha(7,200)
}

for (I = 1,Plys:count()) {
    Ply = Plys[I,entity]
    Dis = Ply:pos():distance(Prop:pos())
    
    if (Dis>2000||Ply == Prop) {EGP:egpRemove(8+I),continue}
    
    Dif = Ply:pos()-Prop:pos()
    W = toRad(toDeg(atan(Dif:x(),Dif:y()))-toDeg(atan(Prop:eye():x(),Prop:eye():y())))
    Org = sqrt(Dif:x()^2+Dif:y()^2)
    X = sin(W)*Org
    Y = -cos(W)*Org
    Color = vec(255,0,0)  
    
    EGP:egpBox(8+I,vec2(256+X/2000*150,156+Y/2000*150),vec2(8,8))
    
    EGP:egpAngle(8+I,45)
    EGP:egpColor(8+I,Color)
    EGP:egpAlpha(8+I,200)
}
    
    Yaw = floor(entity():isWeldedTo():angles():yaw())
    
    if (Yaw<157.5&Yaw>112.5) {Direction="SW"}
    if (Yaw<112.5&Yaw>67.5) {Direction="W"}
    if (Yaw<67.5&Yaw>22.5) {Direction="NW"}
    if (Yaw<22.5&Yaw>-22.5) {Direction="N"}
    if (Yaw<-22.5&Yaw>-67.5) {Direction="NE"}
    if (Yaw<-67.5&Yaw>-112.5) {Direction="E"}
    if (Yaw<-112.5&Yaw>-157.5) {Direction="SE"}
    if ((Yaw<-157.5&Yaw>-256)|(Yaw<256&Yaw>157.5)) {Direction="S"}
    
    EGP:egpText(20, "Direction: " + Direction,vec2(650,14))
    
if (first() | duped()) {
    EGP:egpHudToggle()
    reset()
}
