@name EGP Store
@inputs S:wirelink Screen:entity 
@outputs User:entity Page 
@persist A Text:string [CornerPos1 CornerPos2]:vector 
@trigger 
interval(100)

Cursor = S:egpCursor(User)

if (first()) {
    #Leave a space before any text
    Text = " has enabled the egp."
    
    
    Scale = vec(2,3,4) * 12
    Door = holoCreate(1)
    
    holoScaleUnits(1,Scale)
    holoPos(1,Screen:toWorld(vec(0,0,40)))
    holoColor(1,vec(255,255,255),255)
    holoParent(1,entity())
    
    CornerPos1 = Scale / 2
    CornerPos2 = -CornerPos1
    
    CornerPos1 = Door:toWorld(CornerPos1)
    CornerPos2 = Door:toWorld(CornerPos2)
    
    CornerScale = vec() + 1
    
    holoCreate(2)
    holoPos(2,CornerPos1)
    holoScaleUnits(2,CornerScale)
    holoParent(2, Door)
    
    holoCreate(3)
    holoPos(3,CornerPos2)
    holoScaleUnits(3,CornerScale)
    holoParent(3, Door)
    
    for (I = 1,3) {holoColor(I,vec(),100)}
    
    S:egpClear()
    
    S:egpBox(2,vec2(256,256),vec2(512,512))
    S:egpColor(2,vec(85,85,85))
    
    S:egpCircle(3,vec2(256,256),vec2(180,180))
    S:egpColor(3,vec(160,0,0))
    
    S:egpCircle(4,vec2(256,256),vec2(160,160))
    S:egpColor(4,vec(85,85,85))
    
    S:egpCircle(5,vec2(256,256),vec2(100,100))
    S:egpColor(5,vec(160,0,0))
    
    S:egpCircle(6,vec2(256,256),vec2(80,80))
    S:egpColor(6,vec(85,85,85))
    
    S:egpBox(7,vec2(256,176),vec2(100,100))
    S:egpAngle(7,45)
    S:egpColor(7,vec(85,85,85))
    
    S:egpRoundedBox(8,vec2(256,186),vec2(25,90))
    S:egpColor(8,vec(160,0,0))
}

findInBox(CornerPos1,CornerPos2)
findIncludeClass("player")
User = findClosest(holoEntity(1):pos())

if(changed(inrange(Cursor, S:egpPos(3)-S:egpSize(3)/2, S:egpPos(3)+S:egpSize(3)/2) & User:keyUse()) & inrange(Cursor, S:egpPos(3)-S:egpSize(3)/2, S:egpPos(3)+S:egpSize(3)/2) & User:keyUse()){
    Page = 2
}

if (Page == 1) {
    S:egpClear()
    
    S:egpBox(2,vec2(256,256),vec2(512,512))
    S:egpColor(2,vec(85,85,85))
    
    S:egpCircle(3,vec2(256,256),vec2(180,180))
    S:egpColor(3,vec(160,0,0))
    
    S:egpCircle(4,vec2(256,256),vec2(160,160))
    S:egpColor(4,vec(85,85,85))
    
    S:egpCircle(5,vec2(256,256),vec2(100,100))
    S:egpColor(5,vec(160,0,0))
    
    S:egpCircle(6,vec2(256,256),vec2(80,80))
    S:egpColor(6,vec(85,85,85))
    
    S:egpBox(7,vec2(256,176),vec2(100,100))
    S:egpAngle(7,45)
    S:egpColor(7,vec(85,85,85))
    
    S:egpRoundedBox(8,vec2(256,186),vec2(25,90))
    S:egpColor(8,vec(160,0,0))
}

if (Page == 2) {
    S:egpClear()
    
    S:egpBox(9,vec2(256,256),vec2(512,512))
    S:egpColor(9,vec(85,85,85))
    
    S:egpBox(10,vec2(256,256),vec2(512,512))
    S:egpMaterial(10,"vgui/button_central_disabled")
    
    S:egpBox(11,vec2(426,386),vec2(62,122))
    S:egpMaterial(11,"vgui/button_central_hover")
    
    S:egpBox(12,vec2(86,386),vec2(62,122))
    S:egpMaterial(12,"vgui/button_central_hover")
    
    S:egpBox(13,vec2(256,96),vec2(312,82))
    S:egpMaterial(13,"vgui/button_central_hover")
    
    S:egpBox(14,vec2(426,386),vec2(52,102))
    S:egpMaterial(14,"gui/spawnmenu_toggle")
    
    S:egpBox(15,vec2(86,386),vec2(52,102))
    S:egpMaterial(15,"gui/spawnmenu_toggle_back")
}

if(S:entity():pos():distance(User:pos()) > 100) {S}

S:egpCircle(0, vec2(0,0), vec2(2,2))
S:egpColor(0,vec4(255,255,255,0))
S:egpParentToCursor(0)

if(User:isPlayer()) {A = 1}
else {A = 0}

if(changed(A) & !first()) {
    if(A == 1) {
        printColor(vec(147,65,0),User:name(),vec(0,45,45),Text)
    }
}
