/* Ċ Ġ* ĠThe ĠMIT ĠLicense Ġ( MIT ) Ċ Ġ* Ċ Ġ* ĠCopyright Ġ 2 0 2 1 ĠK w ai , ĠInc . ĠAll Ġrights Ġreserved . Ċ Ġ* Ċ Ġ* ĠPermission Ġis Ġhereby Ġgranted , Ġfree Ġof Ġcharge , Ġto Ġany Ġperson Ġobtaining Ġa Ġcopy Ġof Ċ Ġ* Ġthis Ġsoftware Ġand Ġassociated Ġdocumentation Ġfiles Ġ( the Ġ" Software "), Ġto Ġdeal Ġin Ċ Ġ* Ġthe ĠSoftware Ġwithout Ġrestriction , Ġincluding Ġwithout Ġlimitation Ġthe Ġrights Ġto Ċ Ġ* Ġuse , Ġcopy , Ġmodify , Ġmerge , Ġpublish , Ġdistribute , Ġsublicense , Ġand / or Ġsell Ġcopies Ġof Ċ Ġ* Ġthe ĠSoftware , Ġand Ġto Ġpermit Ġpersons Ġto Ġwhom Ġthe ĠSoftware Ġis Ġfurnished Ġto Ġdo Ġso , Ċ Ġ* Ġsubject Ġto Ġthe Ġfollowing Ġconditions : Ċ Ġ* Ċ Ġ* ĠThe Ġabove Ġcopyright Ġnotice Ġand Ġthis Ġpermission Ġnotice Ġshall Ġbe Ġincluded Ġin Ġall Ċ Ġ* Ġcopies Ġor Ġsubstantial Ġportions Ġof Ġthe ĠSoftware . Ċ Ġ* Ċ Ġ* ĠTHE ĠSOFTWARE ĠIS ĠPROVIDED Ġ" AS ĠIS ", ĠWITHOUT ĠWARRANTY ĠOF ĠANY ĠKIND , ĠEXPRESS ĠOR Ċ Ġ* ĠIMPLIED , ĠINCLUDING ĠBUT ĠNOT ĠLIMITED ĠTO ĠTHE ĠWARRANTIES ĠOF ĠMERCHANTABILITY , ĠFITNESS Ċ Ġ* ĠFOR ĠA ĠPARTICULAR ĠPURPOSE ĠAND ĠNONINFRINGEMENT . ĠIN ĠNO ĠEVENT ĠSHALL ĠTHE ĠAUTHORS ĠOR Ċ Ġ* ĠCOPYRIGHT ĠHOLDERS ĠBE ĠLIABLE ĠFOR ĠANY ĠCLAIM , ĠDAMAGES ĠOR ĠOTHER ĠLIABILITY , ĠWHETHER Ċ Ġ* ĠIN ĠAN ĠACTION ĠOF ĠCONTRACT , ĠTORT ĠOR ĠOTHERWISE , ĠARISING ĠFROM , ĠOUT ĠOF ĠOR ĠIN Ċ Ġ* ĠCONNECTION ĠWITH ĠTHE ĠSOFTWARE ĠOR ĠTHE ĠUSE ĠOR ĠOTHER ĠDEALINGS ĠIN ĠTHE ĠSOFTWARE . Ċ Ġ*/ Ċ Ċ package Ġcom . k ua ish ou . ak dan mak u . ecs . component . action Ċ Ċ import Ġkotlin . properties . Deleg ates Ċ Ċ /** Ċ Ġ* Ġ ä»£çĲĨ ĠAction Ċ Ġ* Ċ Ġ* Ġ@ author ĠX ana Ċ Ġ* Ġ@ since Ġ 2 0 2 1 - 0 7 - 1 5 Ċ Ġ*/ Ċ abstract Ġclass ĠDelegate Action Ġ: ĠAction () Ġ{ ĊĊĠ Ġvar Ġaction Ġby ĠDeleg ates . observable < Action ? >( null ) Ġ{ Ġ_, Ġ_, Ġnew Ġ-> ĊĠĠĠ Ġupdate Duration ( new ?. duration Ġ?: Ġ 0 L ) ĊĠ Ġ} ĊĊĠ Ġoverride Ġvar Ġtarget Ġby ĠDeleg ates . observable < Action Component ? >( null ) Ġ{ Ġ_, Ġ_, Ġnew Ġ-> ĊĠĠĠ Ġaction ?. target Ġ= Ġnew ĊĠĠĠ Ġsuper . target Ġ= Ġnew ĊĠ Ġ} ĊĊĠ Ġprotected Ġabstract Ġfun Ġdelegate ( deltaTime Ms : ĠLong ): ĠBoolean ĊĊĠ Ġprotected Ġabstract Ġfun Ġupdate Duration ( new Duration : ĠLong ) ĊĊĠ Ġoverride Ġfun Ġact ( time M ills : ĠLong ): ĠBoolean Ġ{ ĊĠĠĠ Ġval Ġpool Ġ= Ġthis . pool ĊĠĠĠ Ġthis . pool Ġ= Ġnull ĊĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠ Ġreturn Ġdelegate ( time M ills ) ĊĠĠĠ Ġ} Ġfinally Ġ{ ĊĠĠĠĠĠ Ġthis . pool Ġ= Ġpool ĊĠĠĠ Ġ} ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun Ġrestart () Ġ{ ĊĠĠĠ Ġaction ?. restart () ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun Ġreset () Ġ{ ĊĠĠĠ Ġsuper . reset () ĊĠĠĠ Ġaction Ġ= Ġnull ĊĠ Ġ} Ċ } Ċ