package Ġcom . ly ee ed ar . Render ables . Animation Ċ Ċ import Ġcom . badlogic . gdx . math . Math Utils Ċ import Ġcom . badlogic . gdx . utils . Pool Ċ import Ġcom . ly ee ed ar . Util . Colour Ċ import Ġcom . ly ee ed ar . Util . H SL Colour Ċ import Ġcom . ly ee ed ar . Util . Xml Data Ċ Ċ /** Ċ Ġ* ĠCreated Ġby ĠPhil ip Ġon Ġ 3 1 - Jul - 1 6 . Ċ Ġ*/ Ċ Ċ class ĠB link Animation () Ġ: ĠAbstract Colour Animation () Ċ { Ċ ĉ private Ġvar Ġduration : ĠFloat Ġ= Ġ 0 f Ċ ĉ private Ġvar Ġtime : ĠFloat Ġ= Ġ 0 f Ċ ĉ private Ġval Ġcolour : ĠColour Ġ= ĠColour () Ċ ĉ private Ġval Ġtarget Colour : ĠH SL Colour Ġ= ĠH SL Colour () Ċ ĉ private Ġval Ġstart Colour : ĠH SL Colour Ġ= ĠH SL Colour () Ċ ĉ private Ġval Ġtemp Colour : ĠH SL Colour Ġ= ĠH SL Colour () ĊĊ ĉ override Ġfun Ġduration (): ĠFloat Ġ= Ġduration Ċ ĉ override Ġfun Ġtime (): ĠFloat Ġ= Ġtime Ċ ĉ override Ġfun Ġrender Colour (): ĠColour Ġ= Ġcolour ĊĊ ĉ override Ġfun Ġupdate ( delta : ĠFloat ): ĠBoolean Ċ ĉ { Ċĉ ĉ time Ġ+= Ġdelta ĊĊĉ ĉ val Ġalpha Ġ= ĠMath Utils . clamp ( Math . abs (( time Ġ- Ġduration Ġ/ Ġ 2 ) Ġ/ Ġ( duration Ġ/ Ġ 2 )), Ġ 0 f , Ġ 1 f ) ĊĊĉ ĉ temp Colour . set ( target Colour ). lerp ( start Colour , Ġalpha ) Ċĉ ĉ temp Colour . to RGB ( colour ) ĊĊĉ ĉ if Ġ( time Ġ>= Ġduration ) Ċĉ ĉ { Ċĉĉ ĉ if Ġ( one Time ) Ġreturn Ġtrue Ċĉĉ ĉ else Ġtime Ġ-= Ġduration Ċĉ ĉ } ĊĊĉ ĉ return Ġfalse Ċ ĉ } ĊĊ ĉ fun Ġset ( target : ĠH SL Colour , Ġstart : ĠH SL Colour , Ġduration : ĠFloat , Ġone Time : ĠBoolean Ġ= Ġtrue ): ĠB link Animation Ċ ĉ { Ċĉ ĉ this . target Colour . set ( target ) Ċĉ ĉ this . start Colour . set ( start ) Ċĉ ĉ this . duration Ġ= Ġduration Ċĉ ĉ this . one Time Ġ= Ġone Time ĊĊĉ ĉ this . time Ġ= Ġ 0 f Ċĉ ĉ start . to RGB ( colour ) ĊĊĉ ĉ return Ġthis Ċ ĉ } ĊĊ ĉ fun Ġset ( target : ĠColour , Ġstart : ĠColour , Ġduration : ĠFloat , Ġone Time : ĠBoolean Ġ= Ġtrue ): ĠB link Animation Ċ ĉ { Ċĉ ĉ this . target Colour . set ( target ) Ċĉ ĉ this . start Colour . set ( start ) Ċĉ ĉ this . duration Ġ= Ġduration Ċĉ ĉ this . one Time Ġ= Ġone Time ĊĊĉ ĉ this . time Ġ= Ġ 0 f Ċĉ ĉ this . colour . set ( start ) ĊĊĉ ĉ return Ġthis Ċ ĉ } ĊĊ ĉ fun Ġset ( start : ĠColour , Ġdiff : ĠFloat , Ġduration : ĠFloat , Ġone Time : ĠBoolean Ġ= Ġtrue ): ĠB link Animation Ċ ĉ { Ċĉ ĉ this . start Colour . set ( start ) Ċĉ ĉ this . duration Ġ= Ġduration Ċĉ ĉ this . one Time Ġ= Ġone Time ĊĊĉ ĉ target Colour . set ( start Colour ) Ċĉ ĉ target Colour . l Ġ+= Ġdiff ĊĊĉ ĉ this . time Ġ= Ġ 0 f Ċĉ ĉ this . colour . set ( start ) ĊĊĉ ĉ return Ġthis Ċ ĉ } ĊĊ ĉ override Ġfun Ġparse ( xml : ĠXml Data ) Ċ ĉ { Ċ ĉ } ĊĊ ĉ override Ġfun Ġcopy (): ĠAbstract Animation Ġ= ĠB link Animation . obtain (). set ( target Colour , Ġstart Colour , Ġduration , Ġone Time ) ĊĊ ĉ var Ġobtained : ĠBoolean Ġ= Ġfalse Ċ ĉ comp anion Ġobject Ċ ĉ { Ċĉ ĉ private Ġval Ġpool : ĠPool < B link Animation > Ġ= Ġobject Ġ: ĠPool < B link Animation >() Ġ{ Ċĉĉ ĉ override Ġfun Ġnew Object (): ĠB link Animation Ċĉĉ ĉ { Ċĉĉĉ ĉ return ĠB link Animation () Ċĉĉ ĉ } ĊĊĉ ĉ } ĊĊĉ ĉ @ Jvm Static Ġfun Ġobtain (): ĠB link Animation Ċĉ ĉ { Ċĉĉ ĉ val Ġanim Ġ= ĠB link Animation . pool . obtain () ĊĊĉĉ ĉ if Ġ( anim . obt ained ) Ġthrow ĠRuntimeException () ĊĊĉĉ ĉ anim . obt ained Ġ= Ġtrue Ċĉĉ ĉ anim . time Ġ= Ġ 0 f Ċĉĉ ĉ return Ġanim Ċĉ ĉ } Ċ ĉ } Ċ ĉ override Ġfun Ġfree () Ġ{ Ġif Ġ( obt ained ) Ġ{ ĠB link Animation . pool . free ( this ); Ġobtained Ġ= Ġfalse Ġ} Ġ} Ċ }