package Ġorg . run est ar . client . plugins . smooth animations Ċ Ċ import Ġorg . run est ar . client . game . raw . CLIENT Ċ import Ġorg . run est ar . client . game . raw . access . X Model Ċ import Ġorg . run est ar . client . game . raw . access . X Seq Type Ċ import Ġorg . run est ar . client . game . raw . access . X Component Ċ import Ġorg . run est ar . client . game . raw . base . Method Event Ċ Ċ internal Ġfun Ġwidget Get Model Enter ( event : ĠMethod Event < X Component , ĠX Model >) Ġ{ ĊĠĠĠ Ġval Ġwidget Ġ= Ġevent . instance ĊĠĠĠ Ġevent . arguments [ 1 ] Ġ= Ġpack Frame ( widget . model Frame , Ġwidget . model Frame Cycle ) Ċ } Ċ Ċ internal Ġfun Ġanimate Widget Enter ( event : ĠMethod Event < X Seq Type , ĠX Model >) Ġ{ ĊĠĠĠ Ġval Ġframe Arg Ġ= Ġevent . arguments [ 1 ] Ġas ĠInt ĊĠĠĠ Ġval Ġframe Ġ= Ġframe Arg Ġand Ġ 0 xFFFF ĊĠĠĠ Ġevent . arguments [ 1 ] Ġ= Ġframe ĊĠĠĠ Ġval Ġseq Ġ= Ġevent . instance ĊĠĠĠ Ġval Ġnext Frame Ġ= Ġframe Ġ+ Ġ 1 ĊĠĠĠ Ġval Ġframe Cycle Ġ= Ġ( frame Arg Ġxor ĠInt . MIN _ VALUE ) Ġshr Ġ 1 6 ĊĊĠĠĠ Ġif Ġ( seq Ġ== Ġnull Ġ|| Ġframe Arg Ġ>= Ġ- 1 Ġ|| Ġnext Frame Ġ> Ġseq . frame Ids . last Index Ġ|| Ġframe Cycle Ġ== Ġ 0 ) Ġreturn ĊĠĠĠ Ġval Ġframe Id 1 Ġ= Ġseq . frame Ids [ frame ] ĊĠĠĠ Ġval Ġframes 1 Ġ= ĠCLIENT . get Anim Frame set ( frame Id 1 Ġshr Ġ 1 6 ) Ġ?: Ġreturn ĊĠĠĠ Ġval Ġnext Frame Id 1 Ġ= Ġseq . frame Ids [ next Frame ] ĊĠĠĠ Ġval Ġnext Frames 1 Ġ= ĠCLIENT . get Anim Frame set ( next Frame Id 1 Ġshr Ġ 1 6 ) Ġ?: Ġreturn ĊĊĠĠĠ Ġval Ġmodel Ġ= Ġevent . arguments [ 0 ] Ġas ĠX Model ĊĠĠĠ Ġval Ġframe Idx 1 Ġ= Ġframe Id 1 Ġand Ġ 0 xFFFF ĊĠĠĠ Ġval Ġnext Frame Idx 1 Ġ= Ġnext Frame Id 1 Ġand Ġ 0 xFFFF ĊĊĠĠĠ Ġevent . skip Body Ġ= Ġtrue ĊĊĠĠĠ Ġval Ġframe Ids 2 Ġ= Ġseq . frame Ids 2 ĊĠĠĠ Ġif Ġ( frame Ids 2 Ġ!= Ġnull Ġ&& Ġframe Ġ<= Ġframe Ids 2 . last Index ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġframe Id 2 Ġ= Ġseq . frame Ids 2 [ frame ] ĊĠĠĠĠĠĠĠ Ġval Ġframes 2 Ġ= ĠCLIENT . get Anim Frame set ( frame Id 1 Ġshr Ġ 1 6 ) ĊĠĠĠĠĠĠĠ Ġval Ġframe Idx 2 Ġ= Ġframe Id 2 Ġand Ġ 0 xFFFF ĊĊĠĠĠĠĠĠĠ Ġif Ġ( frames 2 Ġ!= Ġnull Ġ&& Ġnext Frame Ġ<= Ġseq . frame Ids 2 . last Index ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġnext Frame Id 2 Ġ= Ġseq . frame Ids 2 [ next Frame ] ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġnext Frames 2 Ġ= ĠCLIENT . get Anim Frame set ( next Frame Id 2 Ġshr Ġ 1 6 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġnext Frame Idx 2 Ġ= Ġnext Frame Id 2 Ġand Ġ 0 xFFFF ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( next Frames 2 Ġ!= Ġnull Ġ&& Ġnext Frame Idx 2 Ġ!= Ġ 0 xFFFF ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġanimated Model Ġ= Ġmodel . to Shared Sequence Model (! frames 1 . has Alpha Transform ( frame Idx 1 ) Ġ&& Ġ! next Frames 1 . has Alpha Transform ( next Frame Idx 1 ) Ġ&& ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ! frames 2 . has Alpha Transform ( frame Idx 2 ) Ġ&& Ġ! next Frames 2 . has Alpha Transform ( next Frame Idx 2 )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġanimated Model . animate Interpol ated ( frames 1 . frames [ frame Idx 1 ], Ġnext Frames 1 . frames [ next Frame Idx 1 ], Ġframe Cycle , Ġseq . frame Lengths [ frame ] Ġ+ Ġ 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġanimated Model . animate Interpol ated ( frames 2 . frames [ frame Idx 2 ], Ġnext Frames 2 . frames [ next Frame Idx 2 ], Ġframe Cycle , Ġseq . frame Lengths [ frame ] Ġ+ Ġ 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġevent . returned Ġ= Ġanimated Model ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġanimated Model Ġ= Ġmodel . to Shared Sequence Model (! frames 1 . has Alpha Transform ( frame Idx 1 ) Ġ&& Ġ! next Frames 1 . has Alpha Transform ( next Frame Idx 1 )) ĊĠĠĠ Ġanimated Model . animate Interpol ated ( frames 1 . frames [ frame Idx 1 ], Ġnext Frames 1 . frames [ next Frame Idx 1 ], Ġframe Cycle , Ġseq . frame Lengths [ frame ] Ġ+ Ġ 1 ) ĊĠĠĠ Ġevent . returned Ġ= Ġanimated Model Ċ }