package Ġcom . dis graded . gdx machine . framework . scenes Ċ Ċ import Ġcom . badlogic . gdx . utils . Disposable Ċ import Ġcom . dis graded . gdx machine . framework . core . Core Ċ import Ġkotlin . reflect . K Class Ċ import Ġkotlin . reflect . full . create Instance Ċ Ċ class ĠScene Manager Ġprivate Ġconstructor (): ĠDis posable Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġcore Ġ= ĠCore ĊĊĠĠĠ Ġprivate Ġvar Ġnext Scene : ĠK Class < out ĠScene >? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġcurrent Scene Ġ: ĠScene ? Ġ= Ġnull ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġinstance Ġ= ĠScene Manager () ĊĠĠĠĠĠĠĠ Ġfun ĠgetInstance (): ĠScene Manager Ġ= Ġinstance ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġset ( scene Class : ĠK Class < out ĠScene >) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( next Scene Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext Scene Ġ= Ġscene Class ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġupdate () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( next Scene Ġ!== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( current Scene Ġ!== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreset () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcurrent Scene !!. destroy () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcurrent Scene Ġ= Ġnext Scene !!. create Instance () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext Scene Ġ= Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcurrent Scene !!. prepare () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcurrent Scene !!. initialize () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( current Scene Ġ!== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcurrent Scene !!. update ( core . graphics . get Delta Time ()) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġdispose () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( current Scene Ġ!== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcurrent Scene !!. destroy () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġreset () Ġ{ ĊĠĠĠĠĠĠĠ Ġcore . input . clear () ĊĠĠĠĠĠĠĠ Ġcore . graphics . clear () ĊĠĠĠĠĠĠĠ Ġcore . physics . clear () ĊĠĠĠĠĠĠĠ Ġcore . engine . clear () ĊĠĠĠ Ġ} Ċ }