package Ġb aa ah s Ċ Ċ import Ġb aa ah s . api . ws . WebSocket Router Ċ import Ġb aa ah s . controller . Controllers Manager Ċ import Ġb aa ah s . dm x . D mx Manager Ċ import Ġb aa ah s . fixtures . Fixture Manager Ċ import Ġb aa ah s . gl . Tool chain Ċ import Ġb aa ah s . gl . glsl . Compilation Exception Ċ import Ġb aa ah s . io . Fs Ċ import Ġb aa ah s . libraries . Shader Library Manager Ċ import Ġb aa ah s . mapper . P ink y Mapper Handlers Ċ import Ġb aa ah s . mapper . Storage Ċ import Ġb aa ah s . mapping . Mapping Manager Ċ import Ġb aa ah s . net . Network Ċ import Ġb aa ah s . plugin . Plugins Ċ import Ġb aa ah s . scene . Scene Ċ import Ġb aa ah s . show . Show Ċ import Ġb aa ah s . sm . brain . Brain Manager Ċ import Ġb aa ah s . sm . brain . Firmware D addy Ċ import Ġb aa ah s . sm . server . Document Service Ċ import Ġb aa ah s . sm . server . Server Not ices Ċ import Ġb aa ah s . sm . server . Stage Manager Ċ import Ġb aa ah s . sm . web api . Topics Ċ import Ġb aa ah s . util . Clock Ċ import Ġb aa ah s . util . F ram erate Ċ import Ġb aa ah s . util . Logger Ċ import Ġkotlinx . coroutines .* Ċ import Ġkotlinx . serialization . Serializable Ċ import Ġkotlin . coroutines . Coroutine Context Ċ Ċ class ĠP ink y ( ĊĠĠĠ Ġval Ġclock : ĠClock , ĊĠĠĠ Ġval Ġfirmware D addy : ĠF irmware D addy , ĊĠĠĠ Ġval Ġplugins : ĠPlugins , Ċ // ĠĠĠ Ġprivate Ġval Ġswitch Show After Idle Seconds : ĠInt ? Ġ= Ġ 6 0 0 , Ċ // ĠĠĠ Ġprivate Ġval Ġadjust Show After Idle Seconds : ĠInt ? Ġ= Ġnull , ĊĠĠĠ Ġprivate Ġval Ġstorage : ĠStorage , ĊĠĠĠ Ġprivate Ġval Ġlink : ĠNetwork . Link , ĊĠĠĠ Ġval Ġhttp Server : ĠNetwork . HttpServer , ĊĠĠĠ Ġpub Sub : ĠPub Sub . Server , ĊĠĠĠ Ġprivate Ġval Ġd mx Manager : ĠD mx Manager , ĊĠĠĠ Ġprivate Ġval Ġmapping Manager : ĠMapping Manager , ĊĠĠĠ Ġinternal Ġval Ġfixture Manager : ĠFix ture Manager , ĊĠĠĠ Ġoverride Ġval Ġcoroutine Context : ĠCor outine Context , ĊĠĠĠ Ġval Ġtoolchain : ĠTool chain , ĊĠĠĠ Ġval Ġstage Manager : ĠStage Manager , ĊĠĠĠ Ġprivate Ġval Ġcontrollers Manager : ĠCont rollers Manager , ĊĠĠĠ Ġval Ġbrain Manager : ĠBr ain Manager , ĊĠĠĠ Ġprivate Ġval Ġshader Library Manager : ĠShader Library Manager , ĊĠĠĠ Ġprivate Ġval Ġnetwork Stats : ĠNetwork Stats , ĊĠĠĠ Ġval Ġp ink y Settings : ĠP ink y Settings , ĊĠĠĠ Ġval Ġserver Not ices : ĠServer Not ices Ċ ) Ġ: ĠCor outine Scope Ġ{ ĊĠĠĠ Ġval Ġfac ade Ġ= ĠF acade () ĊĊĠĠĠ Ġfun Ġswitch To ( new Show : ĠShow ?, Ġfile : ĠFs . File ? Ġ= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠ Ġstage Manager . switch To ( new Show , Ġfile Ġ= Ġfile ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġswitch To Scene ( new Scene : ĠScene ?, Ġfile : ĠFs . File ? Ġ= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠ Ġstage Manager . switch To Scene ( new Scene , Ġfile ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġaddress : ĠNetwork . Address Ġget () Ġ= Ġlink . my Address ĊĊĠĠĠ Ġprivate Ġvar Ġp ink y State Ġ= ĠP ink y State . Initializing ĊĠĠĠ Ġprivate Ġval Ġp ink y State Channel Ġ= Ġpub Sub . publish ( Topics . pink y State , Ġp ink y State ) Ġ{} ĊĠĠĠ Ġprivate Ġvar Ġmapper Is Running Ġ= Ġfalse ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġhttp Server . listen WebSocket ("/ ws / api ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠWebSocket Router ( coroutine Context ) Ġ{ ĠP ink y Mapper Handlers ( storage ). register ( this ) Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġhttp Server . listen WebSocket ("/ ws / visual izer ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfixture Manager . new Remote Visualizer Server () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfixture Manager . add Frame Listener ( controllers Manager ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġvar Ġkeep Running Ġ= Ġtrue ĊĊĠĠĠ Ġsuspend Ġfun Ġstart And Run ( before Run : Ġsuspend ĠCor outine Scope . () Ġ-> ĠUnit Ġ= Ġ{}) Ġ{ ĊĠĠĠĠĠĠĠ Ġwith Context ( coroutine Context ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġstartup Jobs Ġ= Ġlaunch Startup Jobs () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdaemon Jobs Ġ= Ġlaunch Daemon Jobs () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġstartup Jobs . join () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġbefore Run () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġrun () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdaemon Jobs . cancel And Join () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġsuspend Ġfun Ġrun () Ġ{ ĊĠĠĠĠĠĠĠ Ġwhile Ġ( keep Running ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrottle ( pink y Settings . target F ram erate ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( mapper Is Running ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdisable D mx () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn @ throttle ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnetwork Stats . reset () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġelapsed Ms Ġ= Ġtime Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstage Manager . render And Send Next Frame () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlogger . error ( e ) Ġ{ Ġ" Error Ġrendering Ġframe Ġfor Ġ${ stage Manager . facade . current Show ?. title } "} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( e Ġis ĠCompilation Exception ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġe . source ?. let Ġ{ Ġlogger . info Ġ{ Ġit Ġ} Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdelay ( 1 0 0 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfac ade . notify Changed () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfac ade . fram erate . elapsed ( elapsed Ms ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmaybe Change Things If Users Are Idle () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġvar Ġmapping Results Loader Job : ĠJob ? Ġ= Ġnull ĊĊĠĠĠ Ġinternal Ġsuspend Ġfun Ġlaunch Startup Jobs (): ĠJob Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠCor outine Scope ( coroutine Context ). launch Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠCor outine Scope ( coroutine Context ). launch Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlaunch Ġ{ Ġfirmware D addy . start () Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmapping Results Loader Job Ġ= Ġlaunch Ġ{ Ġmapping Manager . start () Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlaunch Ġ{ Ġshader Library Manager . start () Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlaunch Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġconfig Ġ= Ġstorage . load Config () ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġconfig ?. running Scene Path ?. let Ġ{ Ġpath Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlaunch Ġ{ Ġstage Manager . scene Document Service . load ( path ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġconfig ?. running Show Path ?. let Ġ{ Ġpath Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlaunch Ġ{ Ġstage Manager . show Document Service . load ( path ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}. join () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġbrain Manager . listen For Mapper Messages Ġ{ Ġmessage Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlogger . info Ġ{ Ġ" Mapper Ġis Running =${ message . isRunning }" Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( pink y State Ġ== ĠP ink y State . Running Ġ&& Ġmessage . isRunning ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġp ink y State Ġ= ĠP ink y State . Mapping ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġp ink y State Channel . onChange ( P ink y State . Mapping ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmapper Is Running Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( pink y State Ġ== ĠP ink y State . Mapping Ġ&& Ġ! message . isRunning ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġp ink y State Ġ= ĠP ink y State . Running ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġp ink y State Channel . onChange ( P ink y State . Running ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmapper Is Running Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠThis Ġneeds Ġto Ġgo Ġlast - ish , Ġotherwise Ġwe Ġstart Ġgetting Ġnetwork Ġtraffic Ġtoo Ġearly . ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontrollers Manager . start () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġupdate P ink y State ( P ink y State . Running ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġsuspend Ġfun Ġ< T > ĠDocument Service < T , Ġ* >. load ( path : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġfile Ġ= Ġstorage . resolve ( path ) ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdoc Ġ= Ġload ( file ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( doc Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreport Error (" No Ġ${ document Type . title . lowercase ()} Ġfound Ġat Ġ$ file .") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġswitch To ( doc , Ġfile Ġ= Ġfile ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreport Error (" Failed Ġto Ġload Ġ${ document Type . title . lowercase ()} Ġat Ġ$ path ", Ġe ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinternal Ġsuspend Ġfun Ġawait Mapping Results Loaded () Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠG ross Ġhack Ġto Ġensure Ġmapping Ġresults Ġhave Ġloaded Ġbefore Ġwe Ġstart Ġfixture Ġsim ulators . ĊĠĠĠĠĠĠĠ Ġwhile Ġ( mapping Results Loader Job Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdelay ( 5 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġyield () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġmapping Results Loader Job !!. join () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġupdate P ink y State ( newState : ĠP ink y State ) Ġ{ ĊĠĠĠĠĠĠĠ Ġp ink y State Ġ= ĠnewState ĊĠĠĠĠĠĠĠ Ġp ink y State Channel . onChange ( newState ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġsuspend Ġfun Ġlaunch Daemon Jobs (): ĠJob Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠCor outine Scope ( coroutine Context ). launch Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlaunch Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhile Ġ( true ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( mapper Is Running ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlogger . info Ġ{ Ġ" Mapping Ġ${ brain Manager . brain Count } Ġbr ains ." Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstage Manager . log Status () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontrollers Manager . log Status () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdelay ( 1 0 0 0 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġlaunch Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhile Ġ( keep Running ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdelay ( 1 0 0 0 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlogger . info Ġ{ Ġ" F ram erate : Ġ${ facade . fram erate . sum mar ize () }" Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġmaybe Change Things If Users Are Idle () Ġ{ Ċ // ĠĠĠĠĠĠĠ Ġval Ġnow Ġ= ĠDateTime . now () Ċ // ĠĠĠĠĠĠĠ Ġval Ġseconds Since User Interaction Ġ= Ġnow . minus ( gad getManager . last User Interaction ). seconds Ċ // ĠĠĠĠĠĠĠ Ġif Ġ( switch Show After Idle Seconds Ġ!= Ġnull Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ&& Ġnow . minus ( selected New Show At ). seconds Ġ> Ġswitch Show After Idle Seconds Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ&& Ġseconds Since User Interaction Ġ> Ġswitch Show After Idle Seconds Ċ // ĠĠĠĠĠĠĠ Ġ) Ġ{ Ċ //// ĠĠĠĠĠĠĠĠĠĠĠ ĠTODO Ġswitch To Show ( shows . random ()) Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġselected New Show At Ġ= Ġnow Ċ // ĠĠĠĠĠĠĠ Ġ} Ċ // Ċ // ĠĠĠĠĠĠĠ Ġif Ġ( adjust Show After Idle Seconds Ġ!= Ġnull Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ&& Ġseconds Since User Interaction Ġ> Ġadjust Show After Idle Seconds Ċ // ĠĠĠĠĠĠĠ Ġ) Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġg ad getManager . adjust Something () Ċ // ĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġdisable D mx () Ġ{ ĊĠĠĠĠĠĠĠ Ġd mx Manager . all Off () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġclass ĠNetwork Stats ( var Ġbytes Sent : ĠInt Ġ= Ġ 0 , Ġvar Ġpackets Sent : ĠInt Ġ= Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠ Ġinternal Ġfun Ġreset () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbytes Sent Ġ= Ġ 0 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpackets Sent Ġ= Ġ 0 ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġreport Error ( message : ĠString , Ġe : ĠException ? Ġ= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( e Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlogger . error Ġ{ Ġmessage Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġserver Not ices . add ( message ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlogger . error ( e ) Ġ{ Ġmessage Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġserver Not ices . add ( message , Ġe . message , Ġe . stack Trace ToString ()) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġlogger Ġ= ĠLogger (" P ink y ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinner Ġclass ĠF acade Ġ: Ġb aa ah s . ui . Facade () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġstage Manager : ĠStage Manager . Facade ĊĠĠĠĠĠĠĠĠĠĠĠ Ġget () Ġ= Ġthis @ P ink y . stage Manager . facade ĊĊĠĠĠĠĠĠĠ Ġval Ġfixture Manager ĊĠĠĠĠĠĠĠĠĠĠĠ Ġget () Ġ= Ġthis @ P ink y . fixture Manager . facade ĊĊĠĠĠĠĠĠĠ Ġval Ġnetwork Stats : ĠNetwork Stats ĊĠĠĠĠĠĠĠĠĠĠĠ Ġget () Ġ= Ġthis @ P ink y . network Stats ĊĊĠĠĠĠĠĠĠ Ġval Ġbr ains : ĠList < Brain Manager . Brain Controller > ĊĠĠĠĠĠĠĠĠĠĠĠ Ġget () Ġ= Ġthis @ P ink y . brain Manager . active Brains . values . toList () ĊĊĠĠĠĠĠĠĠ Ġval Ġclock : ĠClock ĊĠĠĠĠĠĠĠĠĠĠĠ Ġget () Ġ= Ġthis @ P ink y . clock ĊĊĠĠĠĠĠĠĠ Ġval Ġfram erate Ġ= ĠF ram erate () ĊĠĠĠ Ġ} Ċ } Ċ Ċ @ Serializable Ċ data Ġclass ĠP ink y Config ( ĊĠĠĠ Ġval Ġrunning Show Path : ĠString ? Ġ= Ġnull , ĊĠĠĠ Ġval Ġrunning Scene Path : ĠString ? Ġ= Ġnull Ċ ) Ċ Ċ data Ġclass ĠP ink y Settings ( ĊĠĠĠ Ġvar Ġtarget F ram erate : ĠFloat Ġ= Ġ 3 0 f , Ġ// ĠFrame s Ġper Ġsecond Ċ ) Ċ Ċ @ Serializable Ċ enum Ġclass ĠP ink y State Ġ{ ĊĠĠĠ ĠInitial izing , ĊĠĠĠ ĠRunning , ĊĠĠĠ ĠMapping , ĊĠĠĠ ĠSh ut ting Down Ċ }