package Ġcom . my gdx . game . widgets Ċ Ċ import Ġcom . badlogic . gdx . G dx Ċ import Ġcom . badlogic . gdx . scenes . scene 2 d . Input Event Ċ import Ġcom . badlogic . gdx . scenes . scene 2 d . ui .* Ċ import Ġcom . badlogic . gdx . scenes . scene 2 d . ui . List Ċ import Ġcom . badlogic . gdx . scenes . scene 2 d . utils . ClickListener Ċ import Ġcom . badlogic . gdx . utils . Align Ċ import Ġcom . badlogic . gdx . utils . Json Ċ import Ġcom . my gdx . game . ecs . Entity Config Ċ import Ġcom . my gdx . game . Utility Ċ import Ġcom . my gdx . game . dialog . Conversation Choice Ċ import Ġcom . my gdx . game . dialog . Conversation Graph Ċ Ċ class ĠCon versation UI Ġ: ĠWindow (" dialog ", ĠUtility . STATUS UI _ SK IN , Ġ" solid background ") Ġ{ ĊĠĠĠ Ġprivate Ġval Ġdialog Text : ĠLabel ĊĠĠĠ Ġprivate Ġval Ġlist Items : ĠList < Conversation Choice > ĊĠĠĠ Ġvar Ġcurrent Conversation Graph : ĠCon versation Graph ? ĊĠĠĠ Ġvar Ġcurrent Entity ID : ĠString ? Ġ= Ġnull ĊĠĠĠ Ġval Ġclose Button : ĠText Button ĊĠĠĠ Ġprivate Ġval Ġjson : ĠJson Ġ= ĠJson () ĊĊĠĠĠ Ġfun Ġload Conversation ( entity Config : ĠEntity Config ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġfull Filename Path Ġ= Ġentity Config . conversation ConfigPath ĊĠĠĠĠĠĠĠ Ġtitle Label . setText ("") ĊĠĠĠĠĠĠĠ Ġclear Dialog () ĊĠĠĠĠĠĠĠ Ġif Ġ( full Filename Path !!. isEmpty () Ġ|| Ġ! G dx . files . internal ( full Filename Path ). exists ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠG dx . app . debug ( TAG , Ġ" Conversation Ġfile Ġdoes Ġnot Ġexist !") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġcurrent Entity ID Ġ= Ġentity Config . entity ID ĊĠĠĠĠĠĠĠ Ġtitle Label . setText ( entity Config . entity ID ) ĊĠĠĠĠĠĠĠ Ġval Ġgraph Ġ= Ġjson . fromJson ( Conversation Graph :: class . java , ĠG dx . files . internal ( full Filename Path )) ĊĠĠĠĠĠĠĠ Ġset Conversation Graph ( graph ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġset Conversation Graph ( graph : ĠCon versation Graph ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( current Conversation Graph Ġ!= Ġnull ) Ġcurrent Conversation Graph !!. removeAll Observer s () ĊĠĠĠĠĠĠĠ Ġcurrent Conversation Graph Ġ= Ġgraph ĊĠĠĠĠĠĠĠ Ġpopulate Conversation Dialog ( current Conversation Graph !!. current Conversation ID ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġpopulate Conversation Dialog ( conversation ID : ĠString ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġclear Dialog () ĊĠĠĠĠĠĠĠ Ġval Ġconversation Ġ= Ġcurrent Conversation Graph !!. get Conversation ByID ( conversation ID ) Ġ?: Ġreturn ĊĠĠĠĠĠĠĠ Ġcurrent Conversation Graph !!. setCurrent Conversation ( conversation ID ) ĊĠĠĠĠĠĠĠ Ġdialog Text . setText ( conversation . dialog ) ĊĠĠĠĠĠĠĠ Ġval Ġchoices Ġ= Ġcurrent Conversation Graph !!. current Choices ĊĠĠĠĠĠĠĠ Ġlist Items . set Items (* choices . to Typed Array ()) ĊĠĠĠĠĠĠĠ Ġlist Items . selectedIndex Ġ= Ġ- 1 ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġclear Dialog () Ġ{ ĊĠĠĠĠĠĠĠ Ġdialog Text . setText ("") ĊĠĠĠĠĠĠĠ Ġlist Items . clear Items () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġval ĠTAG Ġ= ĠCon versation UI :: class . java . simple Name ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġcurrent Conversation Graph Ġ= ĠCon versation Graph () ĊĊĠĠĠĠĠĠĠ Ġ// create ĊĠĠĠĠĠĠĠ Ġdialog Text Ġ= ĠLabel (" No ĠCon versation ", ĠUtility . STATUS UI _ SK IN ) ĊĠĠĠĠĠĠĠ Ġdialog Text . wrap Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġdialog Text . set Alignment ( Align . center ) ĊĠĠĠĠĠĠĠ Ġlist Items Ġ= ĠList ( Utility . STATUS UI _ SK IN ) ĊĠĠĠĠĠĠĠ Ġclose Button Ġ= ĠText Button (" X ", ĠUtility . STATUS UI _ SK IN ) ĊĠĠĠĠĠĠĠ Ġval Ġscroll Pane Ġ= ĠScroll Pane ( list Items , ĠUtility . STATUS UI _ SK IN , Ġ" inventory Pane ") ĊĠĠĠĠĠĠĠ Ġscroll Pane . set Over scroll ( false , Ġfalse ) ĊĠĠĠĠĠĠĠ Ġscroll Pane . fade ScrollBar s Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġscroll Pane . set Scrolling Disabled ( true , Ġfalse ) ĊĠĠĠĠĠĠĠ Ġscroll Pane . set Force Scroll ( true , Ġfalse ) ĊĠĠĠĠĠĠĠ Ġscroll Pane . set ScrollBar Positions ( false , Ġtrue ) ĊĊĠĠĠĠĠĠĠ Ġ// layout ĊĠĠĠĠĠĠĠ Ġthis . add () ĊĠĠĠĠĠĠĠ Ġthis . add ( close Button ) ĊĠĠĠĠĠĠĠ Ġrow () ĊĠĠĠĠĠĠĠ Ġdefaults (). expand (). fill () ĊĠĠĠĠĠĠĠ Ġthis . add ( dialog Text ). pad ( 1 0 f , Ġ 1 0 f , Ġ 1 0 f , Ġ 1 0 f ) ĊĠĠĠĠĠĠĠ Ġrow () ĊĠĠĠĠĠĠĠ Ġthis . add ( scroll Pane ). pad ( 1 0 f , Ġ 1 0 f , Ġ 1 0 f , Ġ 1 0 f ) ĊĊĠĠĠĠĠĠĠ Ġ// this . debug (); ĊĠĠĠĠĠĠĠ Ġpack () ĊĊĠĠĠĠĠĠĠ Ġ// Listeners ĊĠĠĠĠĠĠĠ Ġlist Items . addListener ( object Ġ: ĠClick Listener () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġclicked ( event : ĠInput Event , Ġx : ĠFloat , Ġy : ĠFloat ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġchoice Ġ= Ġlist Items . selected Ġas ĠCon versation Choice ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcurrent Conversation Graph !!. notify ( current Conversation Graph !! , Ġchoice . conversation Command Event !! ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpopulate Conversation Dialog ( choice . destination Id ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} Ċ }