package Ġcom . ly ee ed ar . Render ables . Animation Ċ Ċ import Ġcom . badlogic . gdx . utils . Pool Ċ import Ġcom . ly ee ed ar . Util . Xml Data Ċ Ċ class ĠSpin Animation Ġ: ĠAbstract Rotation Animation () Ċ { Ċ ĉ var Ġduration Ġ= Ġ 0 f Ċ ĉ var Ġtime Ġ= Ġ 0 f Ċ ĉ var Ġtarget Rotation Ġ= Ġ 0 f Ċ ĉ var Ġcurrent Rotation Ġ= Ġ 0 f ĊĊ ĉ override Ġfun Ġrender Rotation (): ĠFloat ? Ġ= Ġcurrent Rotation Ċ ĉ override Ġfun Ġduration (): ĠFloat Ġ= Ġduration Ċ ĉ override Ġfun Ġtime (): ĠFloat Ġ= Ġtime ĊĊ ĉ override Ġfun Ġupdate ( delta : ĠFloat ): ĠBoolean Ċ ĉ { Ċĉ ĉ time Ġ+= Ġdelta ĊĊĉ ĉ val Ġalpha Ġ= Ġtime Ġ/ Ġduration Ċĉ ĉ current Rotation Ġ= Ġtarget Rotation Ġ* Ġalpha ĊĊĉ ĉ return Ġtime Ġ>= Ġduration Ċ ĉ } ĊĊ ĉ override Ġfun Ġparse ( xml : ĠXml Data ) Ċ ĉ { ĊĊ ĉ } ĊĊ ĉ fun Ġset ( duration : ĠFloat , Ġrotation : ĠFloat ): ĠSpin Animation Ċ ĉ { Ċĉ ĉ this . duration Ġ= Ġduration Ċĉ ĉ this . target Rotation Ġ= Ġrotation ĊĊĉ ĉ this . time Ġ= Ġ 0 f Ċĉ ĉ this . current Rotation Ġ= Ġ 0 f ĊĊĉ ĉ return Ġthis Ċ ĉ } ĊĊ ĉ override Ġfun Ġcopy (): ĠAbstract Animation Ġ= Ġobtain (). set ( duration , Ġtarget Rotation ) ĊĊ ĉ var Ġobtained : ĠBoolean Ġ= Ġfalse Ċ ĉ comp anion Ġobject Ċ ĉ { Ċĉ ĉ private Ġval Ġpool : ĠPool < Spin Animation > Ġ= Ġobject Ġ: ĠPool < Spin Animation >() Ġ{ Ċĉĉ ĉ override Ġfun Ġnew Object (): ĠSpin Animation Ċĉĉ ĉ { Ċĉĉĉ ĉ return ĠSpin Animation () Ċĉĉ ĉ } ĊĊĉ ĉ } ĊĊĉ ĉ @ Jvm Static Ġfun Ġobtain (): ĠSpin Animation Ċĉ ĉ { Ċĉĉ ĉ val Ġanim Ġ= Ġpool . obtain () ĊĊĉĉ ĉ if Ġ( anim . obt ained ) Ġthrow ĠRuntimeException () ĊĊĉĉ ĉ anim . obt ained Ġ= Ġtrue Ċĉĉ ĉ anim . time Ġ= Ġ 0 f Ċĉĉ ĉ return Ġanim Ċĉ ĉ } Ċ ĉ } Ċ ĉ override Ġfun Ġfree () Ġ{ Ġif Ġ( obt ained ) Ġ{ Ġpool . free ( this ); Ġobtained Ġ= Ġfalse Ġ} Ġ} Ċ }