package Ġcom . le ha ine . game Ċ Ċ import Ġcom . le ha ine . little kt . Asset Provider Ċ import Ġcom . le ha ine . little kt . Bitmap Font Asset Parameter Ċ import Ġcom . le ha ine . little kt . Context Ċ import Ġcom . le ha ine . little kt . Disposable Ċ import Ġcom . le ha ine . little kt . graphics . Texture Atlas Ċ import Ġcom . le ha ine . little kt . graphics . font . Bitmap Font Ċ import Ġkotlin . jvm . Volatile Ċ Ċ class ĠAssets Ġprivate Ġconstructor ( context : ĠContext ) Ġ: ĠDis posable Ġ{ ĊĠĠĠ Ġprivate Ġval Ġassets Ġ= ĠAsset Provider ( context ) ĊĠĠĠ Ġprivate Ġval Ġatlas : ĠTexture Atlas Ġby Ġassets . load ( context . resources V fs [" tiles . atlas . json "]) ĊĠĠĠ Ġprivate Ġval Ġpixel Font : ĠBitmap Font Ġby Ġassets . prepare Ġ{ ĊĠĠĠĠĠĠĠ Ġassets . load Sus pending < Bitmap Font >( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontext . resources V fs [" m 5 x 7 _ 1 6 _ outline . f nt "], ĊĠĠĠĠĠĠĠĠĠĠĠ ĠBitmap Font Asset Parameter ( pre loaded Textures Ġ= ĠlistOf ( atlas [" m 5 x 7 _ 1 6 _ outline _ 0 "]. slice )) ĊĠĠĠĠĠĠĠ Ġ). content ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġdispose () Ġ{ ĊĠĠĠĠĠĠĠ Ġatlas . dispose () ĊĠĠĠĠĠĠĠ Ġpixel Font . dispose () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġ@ Volatile ĊĠĠĠĠĠĠĠ Ġprivate Ġvar Ġinstance : ĠAssets ? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġprivate Ġval ĠINSTANCE : ĠAssets Ġget () Ġ= Ġinstance Ġ?: Ġerror (" Instance Ġhas Ġnot Ġbeen Ġcreated !") ĊĊĠĠĠĠĠĠĠ Ġval Ġatlas : ĠTexture Atlas Ġget () Ġ= ĠINSTANCE . atlas ĊĠĠĠĠĠĠĠ Ġval Ġpixel Font : ĠBitmap Font Ġget () Ġ= ĠINSTANCE . pixel Font ĊĊĠĠĠĠĠĠĠ Ġfun Ġcreate Instance ( context : ĠContext , ĠonLoad : Ġ() Ġ-> ĠUnit ): ĠAssets Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcheck ( instance Ġ== Ġnull ) Ġ{ Ġ" Instance Ġalready Ġcreated !" Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġnew Instance Ġ= ĠAssets ( context ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinstance Ġ= Ġnew Instance ĊĠĠĠĠĠĠĠĠĠĠĠ ĠINSTANCE . assets . on Fully Loaded Ġ= ĠonLoad ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontext . on Render Ġ{ ĠINSTANCE . assets . update () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġnew Instance ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfun Ġdispose () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinstance ?. dispose () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }