package Ġcom . element alg . client . managers čĊč Ċ import Ġcom . badlogic . gdx . assets . Asset Descriptor čĊč Ċ /** čĊ Ġ* ĠRepresents Ġthe Ġdependencies Ġof Ġa Ġgame Ġin Ġan Ġabstract Ġway Ġin Ġorder Ġto Ġallow Ġthe Ġaggregation Ġof Ġassets Ġby Ġthe čĊ Ġ* Ġplace Ġwhere Ġthey Ġare Ġbeing Ġused . ĠEach Ġ[ ID ] Ġmust Ġbe Ġunique Ġand Ġtherefore Ġidentify Ġa Ġ< i > Dependency </ i >. čĊ Ġ* čĊ Ġ* Ġ@ author ĠG ab riel ĠA mi hal ach io a ie . čĊ Ġ* čĊ Ġ* Ġ@ constructor ĠCreates Ġa Ġdependency Ġwhose Ġ[ assets ] Ġare Ġpassed Ġthrough Ġan Ġalready Ġfilled Ġhash Ġmap . čĊ Ġ* Ġ@ param ĠID Ġstring Ġidentifier Ġof Ġthe ĠDependency . čĊ Ġ* Ġ@ param Ġassets Ġhash Ġmap Ġcontaining Ġthe Ġassets Ġrequired Ġby Ġthis ĠDependency . čĊ Ġ* Ġ@ param Ġforce Load Ġwhether Ġor Ġnot Ġthe Ġassets Ġrequired Ġby Ġthis ĠDependency Ġshould Ġbe Ġloaded Ġsynchronous ly , Ġtherefore čĊ Ġ* Ġfree zing Ġthe Ġmain Ġthread Ġuntil Ġall Ġthose Ġassets Ġare Ġloaded . čĊ Ġ*/ č Ċ internal Ġclass ĠDependency Ġprivate Ġconstructor ( čĊĠĠĠ Ġprivate Ġval ĠID : ĠString , čĊĠĠĠ Ġprivate Ġval Ġassets : ĠHashMap < String , ĠAsset Descriptor <* >>, čĊĠĠĠ Ġprivate Ġval Ġforce Load : ĠBoolean č Ċ ) Ġ{ čĊĠĠĠ Ġenum Ġclass ĠState Ġ{ čĊĠĠĠĠĠĠĠ ĠU NA VA IL ABLE , čĊĠĠĠĠĠĠĠ ĠLO ADING , čĊĠĠĠĠĠĠĠ ĠA VA IL ABLE , čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġprivate Ġvar Ġstate : ĠState Ġ= ĠState . UN AVAILABLE čĊčĊĠĠĠ Ġinternal Ġfun ĠsetState ( state : ĠState ) Ġ{ čĊĠĠĠĠĠĠĠ Ġthis . state Ġ= Ġstate čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġinternal Ġfun ĠgetState (): ĠState Ġ{ čĊĠĠĠĠĠĠĠ Ġreturn Ġstate čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġinternal Ġfun Ġget ID (): ĠString Ġ{ čĊĠĠĠĠĠĠĠ Ġreturn ĠID čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġinternal Ġfun Ġget Assets (): ĠHashMap < String , ĠAsset Descriptor <* >> Ġ{ čĊĠĠĠĠĠĠĠ Ġreturn Ġassets čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġinternal Ġfun Ġis Force Loaded (): ĠBoolean Ġ{ čĊĠĠĠĠĠĠĠ Ġreturn Ġforce Load čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġinternal Ġcompanion Ġobject ĠBuilder Ġ{ čĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġdependencies : ĠHashMap < String , ĠDependency > Ġ= ĠHashMap () čĊčĊĠĠĠĠĠĠĠ Ġ/** čĊĠĠĠĠĠĠĠĠ Ġ* ĠReturns Ġan Ġinstance Ġof Ġ[ Dependency ] Ġwhich Ġalready Ġhas Ġbeen Ġbuilt Ġwith Ġ[ ID ]. čĊĠĠĠĠĠĠĠĠ Ġ* čĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ param ĠID Ġidentifier Ġof Ġthe Ġdependency , Ġwhich Ġhas Ġalready Ġbeen Ġbuilt . čĊĠĠĠĠĠĠĠĠ Ġ* čĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ throws ĠIllegalArgumentException Ġif Ġ[ ID ] Ġis Ġempty Ġor Ġthere 's Ġnot Ġa Ġdependency Ġbuilt Ġwith Ġthat Ġ[ ID ]. čĊĠĠĠĠĠĠĠĠ Ġ* čĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ return Ġthe Ġinstance Ġof Ġ[ Dependency ] Ġwith Ġthe Ġdesired Ġ[ ID ]. čĊĠĠĠĠĠĠĠĠ Ġ*/ čĊĠĠĠĠĠĠĠ Ġ@ Throws ( IllegalArgumentException :: class ) čĊĠĠĠĠĠĠĠ Ġinternal Ġfun Ġget ByID ( ID : ĠString ): ĠDependency Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġrequire ( ID . isNotEmpty ()) Ġ{ Ġ"' ID ' Ġis Ġempty ." Ġ} čĊĠĠĠĠĠĠĠĠĠĠĠ Ġrequire ( dependencies . containsKey ( ID )) Ġ{ Ġ" Dependency Ġwith Ġ' ID ' Ġ($ ID ) Ġhas Ġnot Ġbeen Ġbuilt Ġyet ." Ġ} čĊčĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġdependencies [ ID ] !! čĊĠĠĠĠĠĠĠ Ġ} čĊčĊĠĠĠĠĠĠĠ Ġ/** čĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ return Ġ[ HashMap ] Ġcontaining Ġall Ġthe Ġbuilt Ġdependencies . čĊĠĠĠĠĠĠĠĠ Ġ*/ čĊĠĠĠĠĠĠĠ Ġinternal Ġfun ĠgetAll (): ĠHashMap < String , ĠDependency > Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġdependencies čĊĠĠĠĠĠĠĠ Ġ} čĊčĊĠĠĠĠĠĠĠ Ġ/** čĊĠĠĠĠĠĠĠĠ Ġ* ĠBuilds Ġan Ġinstance Ġof ĠDependency . čĊĠĠĠĠĠĠĠĠ Ġ* čĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ param ĠID Ġunique Ġidentification Ġfor Ġthe Ġdependency , Ġnormally Ġthe Ġname Ġof Ġfor Ġwhat Ġthe Ġdependency Ġis Ġgoing čĊĠĠĠĠĠĠĠĠ Ġ* Ġto Ġbe Ġused . čĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ param Ġassets Ġlist Ġof Ġ[ Asset Descriptor ] s . čĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ param Ġforce Load Ġif Ġassets Ġmust Ġall Ġbe Ġloaded Ġ< i > free zing </ i > Ġthe Ġthread Ġuntil Ġthen . čĊĠĠĠĠĠĠĠĠ Ġ* čĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ throws ĠIllegalArgumentException Ġif Ġ[ ID ] Ġor Ġ[ assets ] Ġis Ġempty , Ġor Ġa Ġdependency Ġhas Ġbeen Ġcreated Ġalready čĊĠĠĠĠĠĠĠĠ Ġ* Ġwith Ġthat Ġ[ ID ]. čĊĠĠĠĠĠĠĠĠ Ġ* čĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ return Ġan Ġinstance Ġof Ġ[ Dependency ]. čĊĠĠĠĠĠĠĠĠ Ġ*/ čĊĠĠĠĠĠĠĠ Ġ@ Throws ( IllegalArgumentException :: class ) čĊĠĠĠĠĠĠĠ Ġinternal Ġfun Ġbuild ( ID : ĠString , Ġassets : ĠHashMap < String , ĠAsset Descriptor <* >>, Ġforce Load : ĠBoolean ): ĠDependency Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġrequire ( ID . isNotEmpty ()) Ġ{ Ġ"' ID ' Ġis Ġempty ." Ġ} čĊĠĠĠĠĠĠĠĠĠĠĠ Ġrequire (! dependencies . containsKey ( ID )) Ġ{ Ġ" Dependency Ġwith Ġ' ID ' Ġ($ ID ) Ġhas Ġbeen Ġbuilt Ġalready ." Ġ} čĊĠĠĠĠĠĠĠĠĠĠĠ Ġrequire ( assets . isNotEmpty ()) Ġ{ Ġ"' assets ' Ġis Ġempty ." Ġ} čĊčĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdependency : ĠDependency Ġ= ĠDependency ( ID , Ġassets , Ġforce Load ) čĊĠĠĠĠĠĠĠĠĠĠĠ Ġdependencies [ ID ] Ġ= Ġdependency čĊčĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġdependency čĊĠĠĠĠĠĠĠ Ġ} čĊĠĠĠ Ġ} č Ċ }