package Ġpw . bin om . scene Editor Ċ Ċ import Ġcom . intellij . psi . Psi File Ċ import Ġm og ot . Engine Ċ import Ġm og ot . Node Ċ import Ġm og ot . Spatial Ċ import Ġm og ot . Spatial 2 D Ċ import Ġpw . bin om . scene . Scene Ċ import Ġjava . io . ByteArray InputStream Ċ Ċ interface ĠInject ed Scene Ġ{ ĊĠĠĠ Ġval Ġscene File : ĠPsi File ĊĠĠĠ Ġfun Ġupdate () Ċ } Ċ Ċ class ĠInject ed Scene Impl ( val Ġview : ĠScene Editor View , Ġoverride Ġval Ġscene File : ĠPsi File ) Ġ: ĠInject ed Scene Ġ{ ĊĠĠĠ Ġval Ġchange Time Ġ= Ġscene File . modification Stamp ĊĠĠĠ Ġval Ġis Changed ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġchange Time Ġ< Ġscene File . modification Stamp ĊĊĠĠĠ Ġoverride Ġfun Ġupdate () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ(! is Changed ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ ĠTODO () ĊĠĠĠĠĠĠĠ Ġ// create Scene ( view , scene File ) ĊĠĠĠ Ġ} Ċ } Ċ Ċ class ĠInject ed Scene 2 D ( val Ġview : ĠScene Editor View , Ġscene File : ĠPsi File ) Ġ: ĠSpatial 2 D ( view . engine ), ĠInject ed Scene Ġby ĠInject ed Scene Impl ( view , Ġscene File ) Ġ{ Ċ Ċ } Ċ Ċ class ĠInject ed Scene 3 D ( val Ġview : ĠScene Editor View , Ġscene File : ĠPsi File ) Ġ: ĠSpatial (), ĠInject ed Scene Ġby ĠInject ed Scene Impl ( view , Ġscene File ) Ġ{ Ċ Ċ } Ċ Ċ fun Ġload Inject ed Scene ( view : ĠScene Editor View , Ġfile : ĠPsi File ): ĠNode Ġ{ ĊĠĠĠ Ġval Ġscene Ġ= Ġfile . virtual File . inputStream . use Ġ{ ĊĠĠĠĠĠĠĠ ĠScene . load ( it ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġroot : ĠNode Ġ= Ġwhen Ġ( scene . type ) Ġ{ ĊĠĠĠĠĠĠĠ ĠScene . Type . D 3 Ġ-> ĠInject ed Scene 3 D ( view , Ġfile ) ĊĠĠĠĠĠĠĠ ĠScene . Type . D 2 Ġ-> ĠInject ed Scene 2 D ( view , Ġfile ) ĊĠĠĠ Ġ} ĊĠĠĠ Ġscene . child s . forEach Ġ{ ĊĠĠĠĠĠĠĠ ĠScene File Loader . load Node ( view , Ġfile . virtual File , Ġit )?. parent Ġ= Ġroot ĊĠĠĠ Ġ} ĊĠĠĠ Ġreturn Ġroot Ċ }