package Ġcom . github . wang y ung . persona . particle . transformation Ċ Ċ import Ġandroidx . annotation . Visible ForTesting Ċ import Ġcom . github . wang y ung . persona . particle . Mutable Particle Ċ Ċ /** Ċ Ġ* ĠThe Ġtransformation Ġthat Ġtransforms Ġthe Ġparticle Ġse quent ially Ġin Ġdifferent Ġiteration . ĠUn like Ċ Ġ* Ġ[ Composite Transformation ], Ġit Ġonly Ġruns Ġsingle Ġtransformation Ġat Ġthe Ġsame Ġtime . Ċ Ġ*/ Ċ class ĠSequence Transformation Ġ: ĠParticle Transformation , ĠDuration able Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġparticle Transform ations : ĠMutable List < Duration al Decorator Transformation > Ġ= ĊĠĠĠĠĠĠĠ Ġmutable ListOf () ĊĊĠĠĠ Ġoverride Ġvar Ġduration : ĠLong Ġ= Ġ 0 ĊĠĠĠĠĠĠĠ Ġprivate Ġset ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠAdds Ġa Ġ[ Particle Transformation ] Ġfor Ġthe Ġgiven Ġ[ duration ]. ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġadd ( particle Transformation : ĠParticle Transformation , Ġduration : ĠLong ) Ġ{ ĊĠĠĠĠĠĠĠ Ġparticle Transform ations . add ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠDuration al Decorator Transformation ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstart From Ġ= Ġthis . duration , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġduration Ġ= Ġduration , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġparticle Transformation Ġ= Ġparticle Transformation ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġthis . duration Ġ+= Ġduration ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠClear s Ġall Ġ[ Particle Transformation ] s . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġclear () Ġ{ ĊĠĠĠĠĠĠĠ Ġparticle Transform ations . clear () ĊĠĠĠĠĠĠĠ Ġduration Ġ= Ġ 0 ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Suppress (" Return Count ") ĊĠĠĠ Ġoverride Ġfun Ġtransform ( particle : ĠMutable Particle , Ġiteration : ĠLong ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( particle Transform ations . isEmpty ()) Ġreturn ĊĊĠĠĠĠĠĠĠ Ġval Ġiteration For Particle Ġ= Ġiteration Ġ- Ġ( particle . initial Iteration Ġ+ Ġparticle . inst inct . start Offset ) ĊĠĠĠĠĠĠĠ Ġif Ġ( iteration For Particle Ġ< Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġduration al Transformation Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġget Activate Transformation ( iteration For Particle ) Ġ?: Ġkotlin . run Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( particle . is Alive ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġparticle . is Alive Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġduration al Transformation . transform ( particle Ġ= Ġparticle , Ġiteration Ġ= Ġiteration For Particle ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Visible ForTesting ĊĠĠĠ Ġinternal Ġfun Ġget Activate Transformation ( iteration : ĠLong ): ĠDuration al Decorator Transformation ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġparticle Transform ations . first OrNull Ġ{ Ġduration al Transformation Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfrom Ġ= Ġduration al Transformation . start From ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġto Ġ= Ġfrom Ġ+ Ġduration al Transformation . duration ĊĠĠĠĠĠĠĠĠĠĠĠ Ġiteration Ġin Ġfrom Ġuntil Ġto ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ