@name E2 Derma Testing
@persist E:entity Names:table
if(first())
{
    runOnTick(1)
    E = entity():isConstrainedTo() ?: entity()
    dPod(E)
    Names["HelloWorld.panel",string]="\"Hello World!\" Panel"
    Names["HelloWorld.helloworld.label",string]="Hello World!"
    Names["BtnAndSlider.panel",string]="Buttons and Sliders Test Panel"
    Names["BtnAndSlider.killgarry.btn",string]="Kill Garry Newman"
    Names["BtnAndSlider.colorslider.label",string]="Color Slider: (Fuck Garry and his shitty sliders!)"
    Names["BtnAndSlider.rslider.slider",string]="R:"
    Names["BtnAndSlider.gslider.slider",string]="G:"
    Names["BtnAndSlider.bslider.slider",string]="B:"
    Names["BtnAndSlider.aslider.slider",string]="A:"
    Names["Options.panel",string]="Overall Options and Review"
    Names["Options.tabs.holder",string]="Tabs"
    Names["Options.tabs.options.tab",string]="Options"
    Names["Options.tabs.review.tab",string]="Review"
    Names["Options.into.label",string]="Check which windows you want open."
    Names["Options.tabs.options.helloworld.checkbox",string]="\"Hello World!\" Panel."
    Names["Options.tabs.options.btnandsliders.checkbox",string]="Button and Slider Panel"
    Names["Options.tabs.options.img.img",string]="Image:"
    Names["Options.tabs.options.materials.textbox",string]="Material"
    Names["Options.tabs.review.review.label",string]="The Derma E2 extension isn't all that bad...
Sure, there may be some githces, but it seems like a very
useful extention for E2s with changable options and maybe
even a HUD using dImage(...) and custom materials.

Tested so far:
dPanel(...)
dButton(...)
dCheckBox(...)
dSlider(...)
dLabel(...)
dTabHolder(...)
dTab(...)
dImage(...)
dTextBox(...)

Not tested yet:
dDropBox(...)
dListBox(...)

Bugs and dislikes:
-Garry's shitty fucking sliders
-Checkbox can't toggle the visibility of multiple windows
well (Either an isssue with dCheckBox(...) or dShow(...))
-dImage(...) gives an error when trying to set a material
with dTextBox(...) (Problem with dImage(...), not
dTextBox(...))

Overall score: 3/5
I'd recommend you add this to EGI if maybe someone like Cee
could fix it up if they voulenteered."
}
Dr = E:driver()
if(changed(Dr:isValid()))
{
    if(Dr:isValid())
    {
		      E:hintDriver("To toggle the mouse, press F3 on your keyboard.",8)
        enableMouseF3(1)
                
        #----Hello World!----#
        dPanel(Names["HelloWorld.panel",string],vec2(0,2),vec2(200,46))
        dLabel(Names["HelloWorld.helloworld.label",string],Names["HelloWorld.panel",string],vec2(2,26))
        
        #----Button and Slider Controls----#
        dPanel(Names["BtnAndSlider.panel",string],vec2(202,2),vec2(350,34*4))
        dButton(Names["BtnAndSlider.killgarry.btn",string],Names["BtnAndSlider.panel",string],vec2(2,26),vec2(Names["BtnAndSlider.killgarry.btn",string]:length()*6,20))
        dColor(Names["BtnAndSlider.killgarry.btn",string],100,0,0,255)
        dLabel(Names["BtnAndSlider.colorslider.label",string],Names["BtnAndSlider.panel",string],vec2(2,52))
        dSlider(Names["BtnAndSlider.rslider.slider",string],Names["BtnAndSlider.panel",string],vec2(2,52),255/2,0,255)
        dSlider(Names["BtnAndSlider.gslider.slider",string],Names["BtnAndSlider.panel",string],vec2(2,78),255/2,0,255)
        dSlider(Names["BtnAndSlider.bslider.slider",string],Names["BtnAndSlider.panel",string],vec2(2,104),255/2,0,255)
        dSlider(Names["BtnAndSlider.aslider.slider",string],Names["BtnAndSlider.panel",string],vec2(2,130),255/2,0,255)
        dSetNval(Names["BtnAndSlider.rslider.slider",string],100)
        dSetNval(Names["BtnAndSlider.gslider.slider",string],100)
        dSetNval(Names["BtnAndSlider.bslider.slider",string],100)
        dSetNval(Names["BtnAndSlider.aslider.slider",string],255)
        
        #----Options and reviews----#
        dPanel(Names["Options.panel",string],vec2(0,256),vec2(325,34*14.5))
        dTabHolder(Names["Options.tabs.holder",string],Names["Options.panel",string],vec2(0,24),vec2(325,(-24)+34*14.5))
        dTab(Names["Options.tabs.review.tab",string],Names["Options.tabs.holder",string])
        dLabel(Names["Options.tabs.review.review.label",string],Names["Options.tabs.review.tab",string],vec2(2,26))
        dTab(Names["Options.tabs.options.tab",string],Names["Options.tabs.holder",string])
        dTextBox(Names["Options.tabs.options.materials.textbox",string],Names["Options.tabs.options.tab",string],vec2(2,34*3),320)
        dImage(Names["Options.tabs.options.img.img",string],Names["Options.tabs.options.tab",string],"",vec2(3,34*3),vec2(128))
        dLabel(Names["Options.into.label",string],Names["Options.tabs.options.tab",string],vec2(2,26))
        dCheckBox(Names["Options.tabs.options.helloworld.checkbox",string],Names["Options.tabs.options.tab",string],vec2(2,52))
        dCheckBox(Names["Options.tabs.options.btnandsliders.checkbox",string],Names["Options.tabs.options.tab",string],vec2(2,78))
        dSetNval(Names["Options.tabs.options.helloworld.checkbox",string],1)
        dSetNval(Names["Options.tabs.options.btnandsliders.checkbox",string],1)
    }
}
if(Dr:isValid())
{
    #----Button, Checkbox, and Slider Controls cont'd----#
    if(dClk("Kill Garry Newman"))
    {
        E:hintDriver("I'm afraid I can't let you do that. -Garry Newman",7.5)
        E:killPod()
    }
    dColor(Names["BtnAndSlider.panel",string],dNval(Names["BtnAndSlider.rslider.slider",string]),dNval(Names["BtnAndSlider.gslider.slider",string]),dNval(Names["BtnAndSlider.bslider.slider",string]),dNval(Names["BtnAndSlider.aslider.slider",string]))
    dShow(Names["HelloWorld.panel",string],dNval(Names["Options.helloworld.checkbox",string]))
    dShow(Names["BtnAndSlider.panel",string],dNval(Names["Options.btnandsliders.checkbox",string]))
    
    #----Options and reviews cont'd----#
    dSetImage(Names["Options.tabs.options.img.img",string],dSval(Names["Options.tabs.options.materials.textbox",string]))
}
