package Ġdev . toast mc . toast client . impl . gui . click Ċ Ċ import Ġdev . toast mc . toast client . I Toast Client Ċ import Ġdev . toast mc . toast client . api . managers . Setting Manager Ċ import Ġdev . toast mc . toast client . api . managers . module . Module Ċ import Ġdev . toast mc . toast client . api . managers . module . Module Manager Ċ import Ġdev . toast mc . toast client . api . setting . Setting Ċ import Ġdev . toast mc . toast client . api . util . Key Util Ċ import Ġdev . toast mc . toast client . api . util . lit Ċ import Ġdev . toast mc . toast client . api . util . render . Drawable Extensions Ċ import Ġdev . toast mc . toast client . api . util . render . Drawable Util Ċ import Ġdev . toast mc . toast client . impl . module . client . Click GUI Ċ import Ġdev . toast mc . toast client . impl . module . client . Click GUI . BACKGROUND _ COLOR Ċ import Ġdev . toast mc . toast client . impl . module . client . Click GUI . COLOR Ċ import Ġdev . toast mc . toast client . impl . module . client . Click GUI . COLOR _ HO VER Ċ import Ġdev . toast mc . toast client . impl . module . client . Click GUI . FONT _ COLOR Ċ import Ġdev . toast mc . toast client . impl . module . client . Click GUI . HO VER _ COLOR Ċ import Ġdev . toast mc . toast client . impl . module . client . Click GUI . IN ACTIVE _ COLOR Ċ import Ġnet . minecraft . client . util . math . Matrix Stack Ċ import Ġorg . lwjgl . glfw . GLFW Ċ import Ġjava . awt . Rectangle Ċ import Ġkotlin . math . round ToInt Ċ Ċ // ĠTODO ĠThe mes Ċ class ĠClick GU IP anel ( var Ġcategory : ĠModule . Category , Ġvar Ġx : ĠDouble , Ġvar Ġy : ĠDouble ) Ġ: ĠI Toast Client , ĠDrawable Extensions Ġ{ ĊĊĠĠĠ Ġvar Ġwidth Ġ= Ġ 1 0 0 ĊĠĠĠ Ġvar Ġheight Ġ= Ġ 1 5 ĊĊĠĠĠ Ġvar Ġcategory Expanded Ġ= Ġtrue ĊĠĠĠ Ġvar Ġmods Expanded : ĠHashMap < Module , ĠBoolean > Ġ= Ġjava . util . HashMap < Module , ĠBoolean >() ĊĊĠĠĠ Ġvar Ġkey binding Ġ= Ġfalse ĊĊĠĠĠ Ġprivate Ġvar Ġlevel Ġ= Ġ 1 ĊĊĠĠĠ Ġprivate Ġvar Ġmouse X Ġ= Ġ 0 . 0 ĊĠĠĠ Ġprivate Ġvar ĠmouseY Ġ= Ġ 0 . 0 ĊĊĠĠĠ Ġprivate Ġvar Ġdragging Ġ= Ġfalse ĊĠĠĠ Ġprivate Ġvar Ġclicked Once Ġ= Ġfalse ĊĠĠĠ Ġprivate Ġvar Ġright Clicked Ġ= Ġfalse ĊĠĠĠ Ġprivate Ġvar Ġleft Clicked Ġ= Ġfalse ĊĊĠĠĠ Ġprivate Ġvar Ġtext Scale Category Ġ= Ġ 1 f ĊĠĠĠ Ġprivate Ġvar Ġtext Scale Module Ġ= Ġ 0 . 9 0 f ĊĠĠĠ Ġprivate Ġvar Ġtext Scale Setting Ġ= Ġ 0 . 9 1 5 f ĊĊĠĠĠ Ġval Ġhover ing Category : ĠBoolean ĊĠĠĠĠĠĠĠ Ġget () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġhover ( mouse X , ĠmouseY , ĠRectangle ( x . round ToInt (), Ġy . round ToInt () Ġ- Ġ 3 , Ġwidth , Ġheight Ġ- Ġ 3 )) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġmouse Clicked ( mouse X : ĠDouble , ĠmouseY : ĠDouble , Ġbutton : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif (! clicked Once ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( button Ġ== Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġleft Clicked Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġright Clicked Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġclicked Once Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( button Ġ== Ġ 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġleft Clicked Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġright Clicked Ġ Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġclicked Once Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġleft Clicked Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġright Clicked Ġ Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġmouse Released ( mouse X : ĠDouble , ĠmouseY : ĠDouble , Ġbutton : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif ( button Ġ== Ġ 0 Ġ|| Ġbutton Ġ== Ġ 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġleft Clicked Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġright Clicked Ġ Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġclicked Once Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdragging Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġmouse Drag ged ( mouse X : ĠDouble , ĠmouseY : ĠDouble , Ġbutton : ĠInt , Ġdrag X : ĠDouble , Ġdrag Y : ĠDouble ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( button Ġ== Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . drag ging Ġ= Ġtrue ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif ( hover ing Category ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis . x Ġ+= Ġdrag X ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis . y Ġ+= Ġdrag Y ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġkey Released ( key : ĠInt , Ġscan code : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif ( key binding ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( key Ġ== ĠGLFW . GLFW _ KEY _ BACK SPACE Ġ|| ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġkey Ġ== ĠGLFW . GLFW _ KEY _ DELETE Ġ|| ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠModule Manager . modules . stream (). any Match Ġ{ Ġit . getKey (). code Ġ== Ġkey Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠClick GUI . SCREEN . key binding Module ?. set Key (- 1 , Ġ- 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠClick GUI . SCREEN . key binding Module ?. set Key ( key , Ġ- 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . key binding Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ ĠClick GUI . SCREEN . key binding Module Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġkey binding Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġrender ( matrices : ĠMatrix Stack , Ġmouse X : ĠDouble , ĠmouseY : ĠDouble ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . mouse X Ġ= Ġmouse X ĊĠĠĠĠĠĠĠ Ġthis . mouse Y Ġ= ĠmouseY ĊĊĠĠĠĠĠĠĠ Ġdraw Category ( matrices , Ġcategory ) ĊĊĠĠĠĠĠĠĠ Ġif ( this . clicked Once ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . left Clicked Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . right Clicked Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġdraw Category ( matrices : ĠMatrix Stack , Ġcategory : ĠModule . Category ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . level Ġ= Ġ 1 ĊĊĠĠĠĠĠĠĠ Ġval Ġcat Height Ġ= Ġheight Ġ- Ġ 3 ĊĊĠĠĠĠĠĠĠ Ġ// ĠCategory ĠName ĊĠĠĠĠĠĠĠ ĠDrawable Util . draw Center ed TextBox ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmatrices , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcategory . name , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠRectangle ( x . round ToInt (), Ġy . round ToInt () Ġ- Ġ 3 , Ġwidth , Ġcat Height ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( hover ing Category ) ĠCOLOR _ HO VER Ġelse ĠCOLOR , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠF ONT _ COLOR , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtext Scale Category ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġ// ĠBackground ĊĠĠĠĠĠĠĠ Ġval Ġbg Height Ġ= Ġif ( category Expanded ) Ġlevel () Ġ+ Ġheight Ġ* Ġlevel () Ġ- Ġ( height Ġ- Ġ 2 ) Ġelse Ġheight Ġ/ Ġ 2 Ġ- Ġ 2 ĊĊĠĠĠĠĠĠĠ ĠDrawable Util . draw Rect ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmatrices , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġx . round ToInt () Ġ- Ġ 2 , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġy . round ToInt () Ġ- Ġ 4 Ġ+ Ġcat Height , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwidth , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbg Height , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠBACK GROUND _ COLOR ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġif Ġ( hover ing Category ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( right Clicked ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcategory Expanded Ġ= Ġ! category Expanded ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġif Ġ( category Expanded ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( mod Ġin ĠModule Manager . get Modules By Category ( category ) !! ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdraw Module ( matrices , Ġmod ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġdraw Module ( matrices : ĠMatrix Stack , Ġmod : ĠModule ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġrect Ġ= Ġiteration ( Rectangle ( x . round ToInt (), Ġy . round ToInt () Ġ- Ġ 6 , Ġwidth Ġ- Ġ 4 , Ġheight ), Ġlevel ) ĊĠĠĠĠĠĠĠ Ġval Ġhover ing Ġ= Ġhover ( mouse X , ĠmouseY , Ġrect ) ĊĊĠĠĠĠĠĠĠ Ġmods Expanded . put If Absent ( mod , Ġfalse ) ĊĊĠĠĠĠĠĠĠ Ġif Ġ( hover ing ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( left Clicked ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmod . toggle () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( right Clicked ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmods Expanded [ mod ] Ġ= Ġ! mods Expanded [ mod ] !! ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġbg Color Ġ= Ġif Ġ( mod . isEnabled ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( hover ing ) ĠCOLOR _ HO VER Ġelse ĠCOLOR ĊĠĠĠĠĠĠĠ Ġelse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( hover ing ) ĠH OVER _ COLOR Ġelse ĠIN ACTIVE _ COLOR ĊĊĠĠĠĠĠĠĠ ĠDrawable Util . draw Rect ( matrices , Ġrect . x , Ġrect . y , Ġrect . width , Ġrect . height , Ġbg Color ) ĊĠĠĠĠĠĠĠ ĠDrawable Util . draw Text ( matrices , Ġlit ( mod . getName ()), Ġrect . x Ġ+ Ġ 3 , Ġrect . y Ġ+ Ġ 3 , ĠF ONT _ COLOR , Ġtext Scale Module ) ĊĠĠĠĠĠĠĠ Ġlevel ++ ĊĊĠĠĠĠĠĠĠ Ġfor Ġ(( module , Ġexpanded ) Ġin Ġmods Expanded ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif ( expanded ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( setting Ġin ĠSetting Manager . get Settings For Mod ( module )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif ( setting . parent Ġ== Ġmod Ġ&& Ġ! setting . is Hidden ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif ( setting . type Ġ== ĠSetting . Type . GROUP ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġgroup Setting Ġ= Ġsetting Ġas ĠSetting . Group ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdraw Group ( matrices , Ġgroup Setting ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlevel ++ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif ( group Setting . is Expanded ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfor ( sub Setting Ġin Ġgroup Setting . settings ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdraw Setting ( matrices , Ġsub Setting ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlevel ++ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġif (! setting . is Group ed ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdraw Setting ( matrices , Ġsetting ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlevel ++ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif ( module Ġ== Ġmod ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdraw Key binding ( matrices , Ġmod ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlevel ++ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġdraw Setting ( matrices : ĠMatrix Stack , Ġsetting : ĠSetting <* >) Ġ{ ĊĠĠĠĠĠĠĠ Ġwhen Ġ( setting . type ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSetting . Type . BOOLEAN Ġ-> Ġreturn Ġdraw Boolean ( matrices , Ġsetting Ġas ĠSetting . Boolean ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSetting . Type . NUMBER Ġ-> Ġreturn Ġdraw Slider ( matrices , Ġsetting Ġas ĠSetting . Number ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSetting . Type . MODE Ġ-> Ġreturn Ġdraw Mode ( matrices , Ġsetting Ġas ĠSetting . Mode ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSetting . Type . COLOR Ġ-> Ġreturn Ġdraw Color Picker ( matrices , Ġsetting Ġas ĠSetting . Color Setting ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġdraw Key binding ( matrices : ĠMatrix Stack , Ġmod : ĠModule ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġrect Ġ= ĠRectangle (( x Ġ+ Ġ 3 ). round ToInt (), Ġ( y Ġ+ Ġlevel Ġ+ Ġheight Ġ* Ġlevel ). round ToInt () Ġ- Ġ 6 , Ġwidth Ġ- Ġ 1 0 , Ġheight ) ĊĠĠĠĠĠĠĠ Ġval Ġhover ing Ġ= Ġhover ( mouse X , ĠmouseY , Ġrect ) ĊĊĠĠĠĠĠĠĠ Ġif ( hover ing ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠDrawable Util . draw Rect ( matrices , Ġrect . x , Ġrect . y , Ġrect . width , Ġrect . height , ĠH OVER _ COLOR ) ĊĊĠĠĠĠĠĠĠ Ġif ( Click GUI . SCREEN . key binding Module Ġ== Ġmod ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠDrawable Util . draw Rect ( matrices , Ġrect . x , Ġrect . y , Ġrect . width , Ġrect . height , Ġif ( hover ing ) ĠCOLOR _ HO VER Ġelse ĠCOLOR ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠDrawable Util . draw Text ( matrices , Ġlit (" Press Ġa Ġkey ... "), Ġrect . x Ġ+ Ġ 4 , Ġrect . y Ġ+ Ġ 3 , ĠF ONT _ COLOR , Ġtext Scale Setting ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠDrawable Util . draw Text ( matrices , Ġlit (" Key bind Ġ" Ġ+ ĠKey Util . getKey Name ( mod . getKey (). code )), Ġrect . x Ġ+ Ġ 4 , Ġrect . y Ġ+ Ġ 3 , ĠF ONT _ COLOR , Ġtext Scale Setting ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġif ( hover ing Ġ&& Ġleft Clicked ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġkey binding Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ ĠClick GUI . SCREEN . key binding Module Ġ= Ġmod ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġdraw Group ( matrices : ĠMatrix Stack , Ġgroup : ĠSetting . Group ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġrect Ġ= ĠRectangle (( x Ġ+ Ġ 3 ). round ToInt (), Ġ( y Ġ+ Ġlevel Ġ+ Ġheight Ġ* Ġlevel ). round ToInt () Ġ- Ġ 6 , Ġwidth Ġ- Ġ 1 0 , Ġheight ) ĊĠĠĠĠĠĠĠ Ġval Ġhover ing Ġ= Ġhover ( mouse X , ĠmouseY , Ġrect ) ĊĠĠĠĠĠĠĠ Ġval Ġstr Ġ= Ġif Ġ( group . is Expanded ) Ġ"_" Ġelse Ġ" ..." ĊĠĠĠĠĠĠĠ Ġval Ġi Ġ= Ġif Ġ( group . is Expanded ) Ġ 1 Ġelse Ġ 0 ĊĊĠĠĠĠĠĠĠ ĠDrawable Util . draw Rect ( matrices , Ġrect . x , Ġrect . y , Ġrect . width , Ġrect . height Ġ- Ġi , Ġif ( hover ing ) ĠCOLOR _ HO VER Ġelse ĠCOLOR ) ĊĠĠĠĠĠĠĠ ĠDrawable Util . draw Text ( matrices , Ġlit ( group . name ), Ġrect . x Ġ+ Ġ 4 , Ġrect . y Ġ+ Ġ 3 , ĠF ONT _ COLOR , text Scale Setting ) ĊĠĠĠĠĠĠĠ ĠDrawable Util . draw Text ( matrices , Ġlit ( str ), Ġrect . x Ġ+ Ġ( rect . width Ġ- Ġmc . text Renderer . getWidth ( str )) Ġ- Ġ 5 , Ġrect . y Ġ+ Ġ 3 , ĠF ONT _ COLOR , text Scale Setting ) ĊĊĠĠĠĠĠĠĠ Ġif ( hover ing Ġ&& Ġright Clicked ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġgroup . is Expanded Ġ= Ġ! group . is Expanded ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġdraw Boolean ( matrices : ĠMatrix Stack , Ġbool : ĠSetting . Boolean ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġrect Ġ= ĠRectangle (( x Ġ+ Ġ 3 ). round ToInt (), Ġ( y Ġ+ Ġlevel Ġ+ Ġheight Ġ* Ġlevel ). round ToInt () Ġ- Ġ 6 , Ġwidth Ġ- Ġ 1 0 , Ġheight Ġ+ Ġ 1 ) ĊĠĠĠĠĠĠĠ Ġval Ġhover ing Ġ= Ġhover ( mouse X , ĠmouseY , Ġrect ) ĊĠĠĠĠĠĠĠ Ġval Ġi Ġ= Ġif Ġ( bool . is Group ed ) Ġ 1 Ġelse Ġ 0 ĊĠĠĠĠĠĠĠ Ġval Ġt Ġ= Ġif Ġ( bool . is Group ed ) Ġ 2 Ġelse Ġ 0 ĊĊĠĠĠĠĠĠĠ Ġif ( hover ing ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠDrawable Util . draw Rect ( matrices , Ġrect . x Ġ+ Ġt , Ġrect . y Ġ- Ġi , Ġrect . width Ġ- Ġ( t Ġ* Ġ 2 ), Ġrect . height , Ġif ( bool . enabled ()) ĠCOLOR _ HO VER Ġelse ĠH OVER _ COLOR ) ĊĠĠĠĠĠĠĠ Ġif ( bool . enabled ()) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠDrawable Util . draw Rect ( matrices , Ġrect . x Ġ+ Ġt , Ġrect . y Ġ- Ġi , Ġrect . width Ġ- Ġ( t Ġ* Ġ 2 ), Ġrect . height , Ġif ( hover ing ) ĠCOLOR _ HO VER Ġelse ĠCOLOR ) ĊĠĠĠĠĠĠĠ ĠDrawable Util . draw Text ( matrices , Ġlit ( bool . name ), Ġrect . x Ġ+ Ġ 4 Ġ+ Ġt , Ġrect . y Ġ+ Ġ 3 Ġ- Ġi , ĠF ONT _ COLOR , Ġtext Scale Setting ) ĊĊĠĠĠĠĠĠĠ Ġif Ġ( hover ing Ġ&& Ġleft Clicked ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbool . value Ġ= Ġ! bool . value ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġdraw Slider ( matrices : ĠMatrix Stack , Ġsetting : ĠSetting . Number ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġrect Ġ= ĠRectangle (( x Ġ+ Ġ 3 ). round ToInt (), Ġ( y Ġ+ Ġlevel Ġ+ Ġheight Ġ* Ġlevel ). round ToInt () Ġ- Ġ 6 , Ġwidth Ġ- Ġ 1 0 , Ġheight Ġ+ Ġ 1 ) ĊĠĠĠĠĠĠĠ Ġval Ġhover ing Ġ= Ġhover ( mouse X , ĠmouseY , Ġrect ) ĊĠĠĠĠĠĠĠ Ġval Ġi Ġ= Ġif Ġ( setting . is Group ed ) Ġ 1 Ġelse Ġ 0 ĊĠĠĠĠĠĠĠ Ġval Ġt Ġ= Ġif Ġ( setting . is Group ed ) Ġ 2 Ġelse Ġ 0 ĊĠĠĠĠĠĠĠ Ġval Ġprogress Ġ= Ġ(( setting . value Ġ- Ġsetting . min ) Ġ/ Ġ( setting . max Ġ- Ġsetting . min ) Ġ* Ġ( rect . width Ġ- Ġ( t Ġ* Ġ 2 ))). toInt () ĊĊĠĠĠĠĠĠĠ Ġif Ġ( setting . value Ġ!= Ġsetting . min ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠDrawable Util . draw Rect ( matrices , Ġrect . x Ġ+ Ġt , Ġrect . y Ġ- Ġi , Ġprogress , Ġrect . height , Ġif ( hover ing ) ĠCOLOR _ HO VER Ġelse ĠCOLOR ) ĊĠĠĠĠĠĠĠ Ġif Ġ( hover ing ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠDrawable Util . draw Rect ( matrices , Ġrect . x Ġ+ Ġprogress Ġ+ Ġt , Ġrect . y Ġ- Ġi , Ġrect . width Ġ- Ġprogress Ġ- Ġ( t Ġ* Ġ 2 ), Ġrect . height , ĠH OVER _ COLOR ) ĊĠĠĠĠĠĠĠ ĠDrawable Util . draw Text ( matrices , Ġlit ( setting . name ), Ġrect . x Ġ+ Ġ 4 Ġ+ Ġt , Ġrect . y Ġ+ Ġ 3 , ĠF ONT _ COLOR , Ġtext Scale Setting ) ĊĠĠĠĠĠĠĠ ĠDrawable Util . draw Text ( matrices , Ġlit ( setting . stringValue ), Ġrect . x Ġ+ Ġ( rect . width Ġ- Ġmc . text Renderer . getWidth ( setting . stringValue )) Ġ- Ġ 5 Ġ+ Ġt , rect . y Ġ+ Ġ 3 , ĠF ONT _ COLOR , Ġtext Scale Setting ) ĊĊĠĠĠĠĠĠĠ Ġif ( hover ing Ġ&& Ġ( drag ging Ġ|| Ġleft Clicked )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsetting . value Ġ= Ġclamp ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġround ((( mouse X Ġ- Ġx ) Ġ* Ġ 1 0 0 Ġ/ Ġ( width Ġ- Ġ 1 0 )). round ToInt () Ġ* Ġ(( setting . max Ġ- Ġsetting . min ) Ġ/ Ġ 1 0 0 ) Ġ+ Ġsetting . min , Ġsetting . precision ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsetting . min , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsetting . max ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġdraw Mode ( matrices : ĠMatrix Stack , Ġmode : ĠSetting . Mode ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġrect Ġ= ĠRectangle (( x Ġ+ Ġ 3 ). round ToInt (), Ġ( y Ġ+ Ġlevel Ġ+ Ġheight Ġ* Ġlevel ). round ToInt () Ġ- Ġ 6 , Ġwidth Ġ- Ġ 1 0 , Ġheight Ġ+ Ġ 1 ) ĊĠĠĠĠĠĠĠ Ġval Ġhover ing Ġ= Ġhover ( mouse X , ĠmouseY , Ġrect ) ĊĊĠĠĠĠĠĠĠ ĠDrawable Util . draw Text ( matrices , Ġlit ( mode . name ), Ġrect . x Ġ+ Ġ 4 , Ġrect . y Ġ+ Ġ 3 , ĠF ONT _ COLOR , Ġtext Scale Setting ) ĊĠĠĠĠĠĠĠ ĠDrawable Util . draw Text ( matrices , Ġlit ( mode . stringValue ), Ġrect . x Ġ+ Ġ( rect . width Ġ- Ġmc . text Renderer . getWidth ( lit ( mode . stringValue ))), Ġrect . y Ġ+ Ġ 3 , ĠF ONT _ COLOR , Ġtext Scale Setting ) ĊĊĠĠĠĠĠĠĠ Ġif Ġ( hover ing ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġleft Clicked Ġ-> Ġmode . increment () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġright Clicked Ġ-> Ġmode . decrement () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġdraw Color Picker ( matrices : ĠMatrix Stack , Ġcolor Setting : ĠSetting . Color Setting ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ// TODO ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġlevel (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġl Ġ= Ġ 1 ĊĠĠĠĠĠĠĠ Ġfor Ġ(( module , Ġexpanded ) Ġin Ġmods Expanded ){ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġl ++ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( expanded ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( setting Ġin ĠSetting Manager . get Settings For Mod ( module )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! setting . is Hidden ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( setting . type Ġ== ĠSetting . Type . GROUP ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġl ++ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(( setting Ġas ĠSetting . Group ). is Expanded ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( sub Setting Ġin Ġsetting . settings ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġl ++ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ(! setting . is Group ed ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġl ++ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġl ++ Ġ// ĠKey bind ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġl ĊĠĠĠ Ġ} Ċ }