package Ġme . w ie ku . dan ser . ui . main menu Ċ Ċ import Ġme . w ie ku . dan ser . be atmap . Beatmap Ċ import Ġme . w ie ku . dan ser . graphics . draw ables . triangles . Triangle Direction Ċ import Ġme . w ie ku . dan ser . graphics . draw ables . triangles . Triangles Ċ import Ġme . w ie ku . framework . animation . Gl ider Ċ import Ġme . w ie ku . framework . animation . Transform Ċ import Ġme . w ie ku . framework . animation . Transform Type Ċ import Ġme . w ie ku . framework . audio . Sample Store Ċ import Ġme . w ie ku . framework . di . bind able . Bind able Ċ import Ġme . w ie ku . framework . graphics . draw ables . Drawable Ċ import Ġme . w ie ku . framework . graphics . draw ables . containers . Color Container Ċ import Ġme . w ie ku . framework . graphics . draw ables . containers . Y oga Container Ċ import Ġme . w ie ku . framework . graphics . draw ables . sprite . Text Sprite Ċ import Ġme . w ie ku . framework . input . event . Click Event Ċ import Ġme . w ie ku . framework . input . event . Hover Event Ċ import Ġme . w ie ku . framework . input . event . Hover Lost Event Ċ import Ġme . w ie ku . framework . math . E asing Ċ import Ġme . w ie ku . framework . math . Origin Ċ import Ġme . w ie ku . framework . math . Scaling Ċ import Ġme . w ie ku . framework . math . color . Color Ċ import Ġme . w ie ku . framework . math . vector 2 f Rad Ċ import Ġorg . j om l . Vector 2 f Ċ import Ġorg . j om l . Vector 4 f Ċ import Ġorg . k oin . core . K oin Component Ċ import Ġorg . k oin . core . inject Ċ import Ġorg . lwjgl . util . y oga . Y oga Ċ import Ġkotlin . math . floor Ċ Ċ class ĠMenu Button ( private Ġval Ġtext : ĠString , Ġicon : ĠString , Ġfont : ĠString , Ġcolor : ĠColor , Ġprivate Ġval Ġis First : ĠBoolean Ġ= Ġfalse ): ĠY oga Container (), ĠK oin Component Ġ{ ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġicon Drawable : ĠDrawable ĊĠĠĠ Ġprivate Ġval Ġbe atmap Bind able : ĠBind able < Beatmap ?> Ġby Ġinject () ĊĠĠĠ Ġprivate Ġval Ġsample Store : ĠSample Store Ġby Ġinject () ĊĊĊĠĠĠ Ġprivate Ġvar Ġlast Beat Length Ġ= Ġ 0 f ĊĠĠĠ Ġprivate Ġvar Ġlast Beat Start Ġ= Ġ 0 f ĊĠĠĠ Ġprivate Ġvar Ġlast Progress Ġ= Ġ 0 ĊĊĠĠĠ Ġprivate Ġval Ġcontainer : ĠY oga Container ĊĠĠĠ Ġprivate Ġval Ġflash : ĠColor Container ĊĊĠĠĠ Ġprivate Ġvar Ġlast AR Ġ= Ġ 0 . 0 1 f ĊĠĠĠ Ġprivate Ġval Ġgl ider Ġ= ĠGl ider ( 0 . 0 1 f ) ĊĠĠĠ Ġprivate Ġval Ġj Gl ider Ġ= ĠGl ider ( 0 f ) ĊĊĠĠĠ Ġprivate Ġvar Ġar med Ġ= Ġfalse ĊĊĠĠĠ Ġconstructor ( text : ĠString , Ġicon : ĠString , Ġfont : ĠString , Ġcolor : ĠColor , Ġis First : ĠBoolean Ġ= Ġfalse , Ġin Context : ĠMenu Button . () Ġ-> ĠUnit ) Ġ: Ġthis ( text , Ġicon , Ġfont , Ġcolor , Ġis First ) Ġ{ ĊĠĠĠĠĠĠĠ Ġin Context () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġy oga AspectRatio Ġ= Ġgl ider . value ĊĠĠĠĠĠĠĠ Ġy oga Flex Shrink Ġ= Ġ 0 f ĊĠĠĠĠĠĠĠ Ġy oga Padding Percent Ġ= ĠVector 4 f ( 0 f ) ĊĠĠĠĠĠĠĠ Ġy oga Flex Direction Ġ= ĠY oga . Y GF lex Direction Column ĊĊĠĠĠĠĠĠĠ Ġthis . color . w Ġ= Ġ 0 f ĊĠĠĠĠĠĠĠ Ġshe ar X Ġ= Ġ 0 . 2 f ĊĊĠĠĠĠĠĠĠ Ġadd Child ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠColor Container Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfill Mode Ġ= ĠScaling . Stretch ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġshe ar X Ġ= Ġ 0 . 2 f ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis . color Ġ= Ġcolor ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd Child ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTri angles Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġuse Sc issor Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmask ing Info . blend Range Ġ= Ġ 0 f ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġscale Ġ= ĠVector 2 f ( 0 . 9 9 5 f , Ġ 1 f ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġshe ar X Ġ= Ġ 0 . 2 f ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtriangles Minimum Ġ= Ġ 4 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfill Mode Ġ= ĠScaling . Stretch ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtriangle Direction Ġ= ĠTriangle Direction . Down ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcolor Dark Ġ= ĠColor ( 0 . 9 f , Ġ 1 f ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreactive Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbase Velocity Ġ= Ġ 0 . 0 5 f ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠ ĠColor Container Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfill Mode Ġ= ĠScaling . Stretch ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġshe ar X Ġ= Ġ 0 . 2 f ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis . color . w Ġ= Ġ 0 f ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}. also Ġ{ Ġflash Ġ= Ġit Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠ ĠY oga Container Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfill Mode Ġ= ĠScaling . None ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis Root Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġy oga Flex Direction Ġ= ĠY oga . Y GF lex Direction Column ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġy oga Direction Ġ= ĠY oga . YG Direction LTR ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġy oga Align Items Ġ= ĠY oga . YG Align Center ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd Child ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠY oga Container Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġy oga Size Percent Ġ= ĠVector 2 f ( 1 0 0 f ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġy oga AspectRatio Ġ= Ġ 1 f ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġy oga Flex Shrink Ġ= Ġ 1 f ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġy oga Flex Grow Ġ= Ġ 1 f ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġy oga Just ify Content Ġ= ĠY oga . YG Just ify Center ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġy oga Align Items Ġ= ĠY oga . YG Align Flex End ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġy oga Padding Percent Ġ= ĠVector 4 f ( 0 f , Ġ 0 f , Ġ 0 f , Ġ 1 0 f ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd Child ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠY oga Container Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġy oga Size Percent Ġ= ĠVector 2 f ( 5 0 f ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġy oga AspectRatio Ġ= Ġ 1 f ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd Child ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠText Sprite ( font ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis . text Ġ= Ġicon ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġscale To Size Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdraw Shadow Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġshadow Offset Ġ= ĠVector 2 f ( 0 f , Ġ 0 . 1 f ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġanchor Ġ= ĠOrigin . Custom ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcustom Anchor Ġ= ĠVector 2 f ( 0 . 5 f ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdraw From Bottom Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfill Mode Ġ= ĠScaling . Fit ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}. also Ġ{ Ġicon Drawable Ġ= Ġit Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠY oga Container Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġy oga Flex Shrink Ġ= Ġ 0 f ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġy oga Flex Grow Ġ= Ġ 1 f ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġy oga Size Percent Ġ= ĠVector 2 f ( 1 0 0 f , Ġ 2 0 f ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġy oga Padding Percent Ġ= ĠVector 4 f ( 1 0 f ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd Child ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠY oga Container Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġy oga Size Percent Ġ= ĠVector 2 f ( 1 0 0 f ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd Child ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠText Sprite (" Exo 2 ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis . text Ġ= Ġthis @ Menu Button . text ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdraw Shadow Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġshadow Offset Ġ= ĠVector 2 f ( 0 f , Ġ 0 . 1 f ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġscale To Size Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfill Mode Ġ= ĠScaling . Fit ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}. also Ġ{ Ġcontainer Ġ= Ġit Ġ} ĊĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġupdate () Ġ{ ĊĊĠĠĠĠĠĠĠ Ġif Ġ( be atmap Bind able . value Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġb Time Ġ= Ġ( be atmap Bind able . value !!. get Track (). getPosition () Ġ* Ġ 1 0 0 0 ). to Long () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtiming Point Ġ= Ġbe atmap Bind able . value !!. timing . get Point At ( b Time ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( timing Point . base B pm Ġ!= Ġlast Beat Length ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlast Progress Ġ= Ġ- 1 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlast Beat Length Ġ= Ġtiming Point . base B pm ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlast Beat Start Ġ= Ġtiming Point . time . toFloat () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġb Prog Ġ= Ġ( b Time Ġ- Ġlast Beat Start ) Ġ/ Ġlast Beat Length ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġprogress Ġ= Ġfloor ( b Prog ). toInt () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( progress Ġ> Ġlast Progress ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( is Hover ed ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġflash . add Transform ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTransform ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTransform Type . Fade , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġclock . currentTime , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġclock . currentTime Ġ+ Ġlast Beat Length , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 0 . 2 5 f , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 0 f ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġicon Drawable . add Transform ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTransform ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTransform Type . Rotate , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġclock . currentTime , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġclock . currentTime Ġ+ Ġlast Beat Length , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( progress % 2 == 0 ) Ġ 0 . 2 f Ġelse Ġ- 0 . 2 f , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( progress % 2 == 0 ) Ġ- 0 . 2 f Ġelse Ġ 0 . 2 f ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġj Gl ider . add Event ( clock . currentTime Ġ, Ġclock . currentTime Ġ+ Ġlast Beat Length / 2 , Ġ 0 f , Ġ 0 . 3 f , ĠE asing . Out Quad ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġj Gl ider . add Event ( clock . currentTime + Ġlast Beat Length / 2 Ġ, Ġclock . currentTime Ġ+ Ġlast Beat Length , Ġ 0 . 3 f , Ġ 0 f , ĠE asing . In Quad ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlast Progress ++ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġgl ider . update ( clock . currentTime ) ĊĠĠĠĠĠĠĠ Ġj Gl ider . update ( clock . currentTime ) ĊĊĠĠĠĠĠĠĠ Ġicon Drawable . custom Anchor . set ( 0 . 5 f , Ġ 0 . 5 f - j Gl ider . value ) ĊĠĠĠĠĠĠĠ Ġicon Drawable . invalidate () ĊĠĠĠĠĠĠĠ Ġsuper . update () ĊĠĠĠĠĠĠĠ Ġif Ġ( last AR Ġ!= Ġgl ider . value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġy oga AspectRatio Ġ= Ġgl ider . value ĊĠĠĠĠĠĠĠĠĠĠĠ Ġparent !!. invalidate () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlast AR Ġ= Ġgl ider . value ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġupdate Drawable () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . update Drawable () ĊĠĠĠĠĠĠĠ Ġcontainer . size . set ( draw Size . x *( 1 f - vector 2 f Rad ( Math . PI . toFloat ()/ 2 *( 1 - 0 . 2 f ), Ġdraw Size . y / 2 ). x / draw Size . x ), Ġdraw Size . y ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Hover ( e : ĠHover Event ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ(! ar med ) Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġsample Store . getResource Or Load (" menu / men uc lick . wav "). play () ĊĠĠĠĠĠĠĠ Ġgl ider . add Event ( clock . currentTime + 3 0 0 f , Ġif ( is First ) Ġ 2 . 2 f Ġelse Ġ 1 . 8 f , ĠE asing . Out Elastic ) ĊĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Hover Lost ( e : ĠHover Lost Event ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ(! ar med ) Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġgl ider . add Event ( clock . currentTime + 3 0 0 f , Ġif ( is First ) Ġ 1 . 6 f Ġelse Ġ 1 . 2 f , ĠE asing . Out Elastic ) ĊĠĠĠĠĠĠĠ Ġicon Drawable . transforms . clear () ĊĠĠĠĠĠĠĠ Ġicon Drawable . add Transform ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTransform ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTransform Type . Rotate , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġclock . currentTime , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġclock . currentTime Ġ+ Ġ 3 0 0 f , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġicon Drawable . rotation , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 0 f ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġshow ( clicked : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠ Ġar med Ġ= Ġclicked ĊĠĠĠĠĠĠĠ Ġadd Transform ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTransform ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTransform Type . Fade , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġclock . currentTime Ġ+ Ġif Ġ( clicked ) Ġ 1 0 0 f Ġelse Ġ 0 f , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġclock . currentTime Ġ+ Ġif Ġ( clicked ) Ġ 4 0 0 f Ġelse Ġ 2 0 0 f , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( clicked ) Ġ 0 f Ġelse Ġ 1 f , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( clicked ) Ġ 1 f Ġelse Ġ 0 f , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠE asing . Out Quad ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġif Ġ( clicked ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġgl ider . add Event ( clock . currentTime + 4 0 0 f , Ġif ( is First ) Ġ 1 . 6 f Ġelse Ġ 1 . 2 f , ĠE asing . Out Quad ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġgl ider . add Event ( clock . currentTime + 4 0 0 f , Ġ 0 . 0 1 f , ĠE asing . Out Quad ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonClick ( e : ĠClick Event ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġprintln (" Clicked Ġ$ text ") ĊĠĠĠĠĠĠĠ Ġsample Store . getResource Or Load (" menu / menu hit 1 . wav "). play () ĊĠĠĠĠĠĠĠ Ġreturn Ġsuper . onClick ( e ) ĊĠĠĠ Ġ} Ċ Ċ }