package Ġbit sp ittle . k ross 2 d . engine . assets Ċ Ċ import Ġbit sp ittle . k ross 2 d . engine . audio . Music Ċ import Ġbit sp ittle . k ross 2 d . engine . audio . Sound Ċ import Ġbit sp ittle . k ross 2 d . engine . graphics . Font Ċ import Ġbit sp ittle . k ross 2 d . engine . graphics . Font Data Ċ import Ġbit sp ittle . k ross 2 d . engine . graphics . Image Ċ import Ġbit sp ittle . k ross 2 d . engine . graphics . ImageData Ċ import Ġkotlin . browser . document Ċ Ċ actual Ġclass ĠAsset Loader Backend Ġactual Ġconstructor ( private Ġval Ġroot : ĠString ) Ġ{ ĊĊĠĠĠ Ġactual Ġfun Ġload Font Into ( asset : ĠAsset < Font >) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġdata Ġ= ĠFont Data ("$ root /${ asset . path }") ĊĠĠĠĠĠĠĠ Ġdata . js Font . loaded ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. then Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdocument . as Dynamic (). fonts . add ( it ) Ġ// ĠAt Ġthis Ġtime , Ġdocument . fonts Ġis Ġstill Ġexperimental ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġasset . setData ( Font ( data )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. catch Ġ{ Ġasset . notify Failure () Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġactual Ġfun Ġload Image Into ( asset : ĠAsset < Image >) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġdata Ġ= ĠImage Data ("$ root /${ asset . path }") ĊĠĠĠĠĠĠĠ Ġdata . js Image . onload Ġ= Ġ{ Ġasset . setData ( Image ( data )) Ġ} ĊĠĠĠĠĠĠĠ Ġdata . js Image . onerror Ġ= Ġ{ Ġ_, Ġ_, Ġ_, Ġ_, Ġ_ Ġ-> Ġasset . notify Failure () Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġactual Ġfun Ġload Sound Into ( asset : ĠAsset < Sound >) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġsound Ġ= ĠSound ("$ root /${ asset . path }") ĊĠĠĠĠĠĠĠ Ġsound . js Audio . on lo ade dd ata Ġ= Ġ{ Ġasset . setData ( sound ) Ġ} ĊĠĠĠĠĠĠĠ Ġsound . js Audio . onerror Ġ= Ġ{ Ġ_, Ġ_, Ġ_, Ġ_, Ġ_ Ġ-> Ġasset . notify Failure () Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġactual Ġfun Ġload Music Into ( asset : ĠAsset < Music >) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġmusic Ġ= ĠMusic ("$ root /${ asset . path }") ĊĠĠĠĠĠĠĠ Ġmusic . js Audio . on lo ade dd ata Ġ= Ġ{ Ġasset . setData ( music ) Ġ} ĊĠĠĠĠĠĠĠ Ġmusic . js Audio . onerror Ġ= Ġ{ Ġ_, Ġ_, Ġ_, Ġ_, Ġ_ Ġ-> Ġasset . notify Failure () Ġ} ĊĠĠĠ Ġ} Ċ }