package Ġnet . tor val d . ter rar um . module base game . ui Ċ Ċ import Ġcom . badlogic . gdx . graphics . Camera Ċ import Ġcom . badlogic . gdx . graphics . Color Ċ import Ġcom . badlogic . gdx . graphics . g 2 d . Sprite Batch Ċ import Ġnet . tor val d . ter rar um . App Ċ import Ġnet . tor val d . ter rar um . Second Ċ import Ġnet . tor val d . ter rar um . lang pack . Lang Ċ import Ġnet . tor val d . ter rar um . ui . Toolkit Ċ import Ġnet . tor val d . ter rar um . ui . UIC an vas Ċ import Ġnet . tor val d . ter rar um . ui . UI Item Text Button List Ċ Ċ class ĠUIT itle Language ( val Ġremo Con : ĠUI Rem o Con ) Ġ: ĠU IC an vas () Ġ{ ĊĊĠĠĠ Ġval Ġmenu Labels Ġ= ĠarrayOf ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" MENU _ LABEL _ RETURN " ĊĠĠĠ Ġ) ĊĊĊĠĠĠ Ġoverride Ġvar Ġopen Close Time : ĠSecond Ġ= Ġ 0 f ĊĊĊĠĠĠ Ġprivate Ġval Ġtext Button Line Height Ġ= Ġ 3 2 ĊĊĠĠĠ Ġprivate Ġval Ġlocale List Ġ= ĠLang . language List . toList (). sorted () ĊĠĠĠ Ġprivate Ġval Ġlocale First Half Ġ= Ġlocale List . sub List ( 0 , Ġlocale List . size Ġ/ Ġ 2 ) ĊĠĠĠ Ġprivate Ġval Ġlocale Second Half Ġ= Ġlocale List . sub List ( locale List . size Ġ/ Ġ 2 , Ġlocale List . size ) ĊĊĠĠĠ Ġoverride Ġvar Ġwidth Ġ= Ġ 4 8 0 ĊĠĠĠ Ġoverride Ġvar Ġheight Ġ= Ġmax Of ( locale First Half . size , Ġlocale Second Half . size ) Ġ* Ġtext Button Line Height ĊĊĊĠĠĠ Ġprivate Ġval Ġtext Area 1 Ġ= ĠUI Item Text Button List ( this , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtext Button Line Height , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlocale First Half . map Ġ{ ĠLang . getBy Locale (" MENU _ LANGUAGE _ THIS ", Ġit , Ġtrue ) Ġ?: Ġ"! ERR : Ġ$ it " Ġ}. to Typed Array (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ( Toolkit . draw Width Ġ- Ġwidth ) Ġ/ Ġ 2 , Ġ( App . scr . height Ġ- Ġheight ) Ġ/ Ġ 2 , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwidth Ġ/ Ġ 2 , Ġheight , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtext Area Width Ġ= Ġwidth Ġ/ Ġ 2 , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġread From Lang Ġ= Ġfalse , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġactive Back Col Ġ= ĠColor ( 0 ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġhighlight Back Col Ġ= ĠColor ( 0 ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinactive Col Ġ= ĠColor . WHITE , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdefault Selection Ġ= Ġnull ĊĠĠĠ Ġ) ĊĠĠĠ Ġprivate Ġval Ġtext Area 2 Ġ= ĠUI Item Text Button List ( this , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtext Button Line Height , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlocale Second Half . map Ġ{ ĠLang . getBy Locale (" MENU _ LANGUAGE _ THIS ", Ġit , Ġtrue ) Ġ?: Ġ"! ERR : Ġ$ it " Ġ}. to Typed Array (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ( Toolkit . draw Width Ġ- Ġwidth ) Ġ/ Ġ 2 Ġ+ Ġ( width Ġ/ Ġ 2 ), Ġ( App . scr . height Ġ- Ġheight ) Ġ/ Ġ 2 , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwidth Ġ/ Ġ 2 , Ġheight , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtext Area Width Ġ= Ġwidth Ġ/ Ġ 2 , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġread From Lang Ġ= Ġfalse , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġactive Back Col Ġ= ĠColor ( 0 ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġhighlight Back Col Ġ= ĠColor ( 0 ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinactive Col Ġ= ĠColor . WHITE , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdefault Selection Ġ= Ġnull ĊĠĠĠ Ġ) ĊĊĊĠĠĠ Ġinit Ġ{ ĊĊĊĠĠĠĠĠĠĠ Ġ// textArea . ent ire Text Ġ= ĠLang . language List . toList (). sorted (). map Ġ{ ĠLang . lang pack [" MENU _ LANGUAGE _ THIS _$ it "] Ġ?: Ġ"! ERR : Ġ$ it " Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// //////////////////////// // ĊĊĊĊ ĊĠĠĠĠĠĠĠ Ġ// Ġattach Ġlisteners ĊĠĠĠĠĠĠĠ Ġtext Area 1 . selection ChangeListener Ġ= Ġ{ Ġ_, Ġnew Selection Index Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ ĠApp . GAME _ LOCAL E Ġ= Ġlocale List [ new Selection Index ] ĊĠĠĠĠĠĠĠĠĠĠĠ ĠApp . set Config (" language ", Ġlocale List [ new Selection Index ]) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtext Area 2 . de select () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġtext Area 2 . selection ChangeListener Ġ= Ġ{ Ġ_, Ġnew Selection Index Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ ĠApp . GAME _ LOCAL E Ġ= Ġlocale List [ new Selection Index Ġ+ Ġlocale First Half . size ] ĊĠĠĠĠĠĠĠĠĠĠĠ ĠApp . set Config (" language ", Ġlocale List [ new Selection Index Ġ+ Ġlocale First Half . size ]) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtext Area 1 . de select () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// Ġhighlight Ġinitial ĊĠĠĠĠĠĠĠ Ġtext Area 1 . buttons . forEach Indexed Ġ{ Ġindex , Ġit Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( it . label Text Ġ== ĠLang [" MENU _ LANGUAGE _ THIS "]) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtext Area 1 . select ( index ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġtext Area 2 . buttons . forEach Indexed Ġ{ Ġindex , Ġit Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( it . label Text Ġ== ĠLang [" MENU _ LANGUAGE _ THIS "]) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtext Area 2 . select ( index ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġupdate UI ( delta : ĠFloat ) Ġ{ ĊĠĠĠĠĠĠĠ Ġtext Area 1 . update ( delta ) ĊĠĠĠĠĠĠĠ Ġtext Area 2 . update ( delta ) ĊĊĠĠĠĠĠĠĠ Ġ// App Loader . print dbg ( this , Ġ" should Ġbe Ġprinting Ġin def initely ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġrender UI ( batch : ĠSprite Batch , Ġcamera : ĠCamera ) Ġ{ ĊĊĠĠĠĠĠĠĠ Ġbatch . color Ġ= ĠColor . WHITE ĊĠĠĠĠĠĠĠ Ġtext Area 1 . render ( batch , Ġcamera ) ĊĠĠĠĠĠĠĠ Ġtext Area 2 . render ( batch , Ġcamera ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġdo Opening ( delta : ĠFloat ) Ġ{ ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġdo Closing ( delta : ĠFloat ) Ġ{ ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġend Opening ( delta : ĠFloat ) Ġ{ ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġend Closing ( delta : ĠFloat ) Ġ{ ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġdispose () Ġ{ ĊĠĠĠ Ġ} Ċ Ċ }