package Ġpub g . radar . de serializer . channel Ċ Ċ import Ġcom . badlogic . gdx . math . Vector 2 Ċ import Ġcom . badlogic . gdx . math . Vector 3 Ċ import Ġpub g . radar .* Ċ import Ġpub g . radar . de serializer . CH TYPE _ ACT OR Ċ import Ġpub g . radar . de serializer . actor . repl _ layout _ b unch Ċ import Ġpub g . radar . struct .* Ċ import Ġpub g . radar . struct . Arc he type .* Ċ import Ġpub g . radar . struct . Net GUID Cache . Companion . guid Cache Ċ import Ġpub g . radar . struct . cmd . Player State CMD . self ID Ċ import Ġpub g . radar . struct . cmd . Player State CMD . player Names Ċ import Ġpub g . radar . util . tuple 2 Ċ import Ġpub g . radar . util .* Ċ import Ġjava . util . concurrent . Concurrent HashMap Ċ Ċ class ĠActor Channel ( Ch Index : ĠInt , Ġclient : ĠBoolean Ġ= Ġtrue ) Ġ: ĠChannel ( Ch Index , ĠCH TYPE _ ACT OR , Ġclient ) Ġ{ ĊĠĠĠ Ġcompanion Ġobject Ġ: ĠGame Listener Ġ{ ĊĠĠĠĠĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġregister ( this ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġactors Ġ= ĠConcurrent HashMap < Network GUID , ĠActor >() ĊĠĠĠĠĠĠĠ Ġval Ġvisual Act ors Ġ= ĠConcurrent HashMap < Network GUID , ĠActor >() ĊĠĠĠĠĠĠĠ Ġval Ġair Drop Location Ġ= ĠConcurrent HashMap < Network GUID , ĠVector 3 >() ĊĠĠĠĠĠĠĠ Ġval Ġair Drop Items Ġ= ĠConcurrent HashMap < Network GUID , ĠMutable List < tuple 2 < Network GUID , ĠString ? >> >() ĊĠĠĠĠĠĠĠ Ġval Ġdropped Item Location Ġ= ĠConcurrent HashMap < Network GUID , Ġtuple 2 < Vector 3 , ĠString >>() ĊĠĠĠĠĠĠĠ Ġval Ġitem Guid ToString Name Ġ= ĠConcurrent HashMap < Network GUID , ĠString ?> () ĊĠĠĠĠĠĠĠ Ġval Ġcor p se Location Ġ= ĠConcurrent HashMap < Network GUID , ĠVector 3 >() ĊĠĠĠĠĠĠĠ Ġval Ġactor Has We apons Ġ= ĠConcurrent HashMap < Network GUID , ĠInt Array >() ĊĠĠĠĠĠĠĠ Ġval Ġwe apons Ġ= ĠConcurrent HashMap < Int , ĠActor >() ĊĠĠĠĠĠĠĠ Ġval Ġdropped ItemGroup Ġ= ĠConcurrent HashMap < Network GUID , ĠArrayList < Network GUID >>() ĊĠĠĠĠĠĠĠ Ġval Ġdropped Item Comp To Item Ġ= ĠConcurrent HashMap < Network GUID , ĠNetwork GUID >() ĊĠĠĠĠĠĠĠ Ġval Ġdropped Item To Item Ġ= ĠConcurrent HashMap < Network GUID , ĠNetwork GUID >() ĊĠĠĠĠĠĠĠ Ġval Ġitem Bag = Concurrent HashMap < Network GUID , Dynamic Array < Network GUID ? >>() ĊĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Game Over () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġactors . clear () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvisual Act ors . clear () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġair Drop Location . clear () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġair Drop Items . clear () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdropped Item Location . clear () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġitem Guid ToString Name . clear () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdropped Item To Item . clear () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcor p se Location . clear () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwe apons . clear () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġactor Has We apons . clear () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdropped ItemGroup . clear () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdropped Item Comp To Item . clear ()} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġvar Ġactor : ĠActor ? Ġ= Ġnull ĊĠĠĠ Ġvar Ġfirst Ġ= Ġfalse ĊĊĠĠĠ Ġoverride Ġfun ĠReceived B unch ( b unch : ĠB unch ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( client Ġ&& Ġbunch . b Has Must Be Mapped GUID s ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠNum Must Be Mapped GUID s Ġ= Ġbunch . read UInt 1 6 () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġ 0 Ġuntil ĠNum Must Be Mapped GUID s ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġguid Ġ= Ġbunch . read Network GUID () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ ĠProcess B unch ( b unch ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun ĠProcess B unch ( b unch : ĠB unch ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( client Ġ&& Ġactor Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! b unch . b Open ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSerialize Actor ( b unch ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( actor Ġ== Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ(! client Ġ&& Ġactor Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġclient Channel Ġ= Ġin Channels [ ch Index ] Ġ?: Ġreturn ĊĠĠĠĠĠĠĠĠĠĠĠ Ġactor Ġ= Ġ( client Channel Ġas ĠActor Channel ). actor ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( actor Ġ== Ġnull ) Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġactor Ġ= Ġactor !! ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( actor . Type Ġ== ĠD ropped Item Ġ&& Ġbunch . bits Left () Ġ== Ġ 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdropped Item Location . remove ( d ropped Item To Item [ actor . net GUID ] Ġ?: Ġreturn ) ĊĊĠĠĠĠĠĠĠ Ġwhile Ġ( b unch . not End ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// header ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġb Has Rep Layout Ġ= Ġbunch . read Bit () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġb Is Actor Ġ= Ġbunch . read Bit () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġrep Obj : ĠNet Guid Cache Object ? ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( b Is Actor ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrep Obj Ġ= ĠNet Guid Cache Object ( actor . Type . name , Ġactor . net GUID ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġ( net guid , Ġ_ sub obj ) Ġ= Ġbunch . read Object () // Sub Object , ĠSub Object Net GUID ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! client ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(_ sub obj Ġ== Ġnull )// ĠThe Ġserver Ġshould Ġnever Ġneed Ġto Ġcreate Ġsub Ġobjects ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontinue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrep Obj Ġ= Ġ_ sub obj ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbug ln Ġ{ Ġ"$ actor Ġhas Sub Obj Ġ$ rep Obj " Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġb St ably Named Ġ= Ġbunch . read Bit () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( b St ably Named ) Ġ{// ĠIf Ġthis Ġis Ġa Ġst ably Ġnamed Ġsub - object , Ġwe Ġshouldn 't Ġneed Ġto Ġcreate Ġit ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(_ sub obj Ġ== Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontinue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrep Obj Ġ= Ġ_ sub obj ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġ( class GUID , Ġclass Obj ) Ġ= Ġbunch . read Object () // Sub O jb ect Class , Sub Object Class Net GUID ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( class Obj Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsn Ġ= ĠItem . is Good ( class Obj . path Name ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( actor . Type Ġ== ĠD ro op ed ItemGroup Ġ|| Ġactor . Type Ġ== ĠD ropped Item ) Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( sn Ġ!= Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdropped Item Location [ net guid ] Ġ= Ġtuple 2 ( Vector 3 ( actor . location . x , Ġactor . location . y , Ġactor . location . z ), Ġsn ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġactor . Type Ġ== ĠAir Drop Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif ( air Drop Items [ actor . net GUID ] Ġ== Ġnull ) Ġair Drop Items [ actor . net GUID ] Ġ= Ġmutable ListOf () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif ( air Drop Items [ actor . net GUID ]?. contains ( tuple 2 ( net guid , sn )) Ġ== Ġfalse ) Ġair Drop Items [ actor . net GUID ]?. add ( tuple 2 ( net guid , sn )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbug ln Ġ{ Ġ" sub Obj Class :${ actor . net GUID } Ġ${ actor . ar che type . path Name } Ġclass Obj :$ class Obj " Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! class GUID . isValid () Ġ|| Ġclass Obj Ġ== Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontinue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsub obj Ġ= ĠNet Guid Cache Object ( class Obj . path Name , Ġclass GUID ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġguid Cache . register Net GUID _ Client ( net guid , Ġsub obj ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrep Obj Ġ= Ġguid Cache . getObject From Net GUID ( net guid ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠNum Payload Bits Ġ= Ġbunch . readInt Packed () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( Num Payload Bits Ġ< Ġ 0 Ġ|| ĠNum Payload Bits Ġ> Ġbunch . bits Left ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbug ln Ġ{ Ġ" Num Payload Bits =$ Num Payload Bits Ġ> Ġbunch . bits Left () =${ b unch . bits Left () }" Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( Num Payload Bits Ġ== Ġ 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontinue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġout Payload Ġ= Ġbunch . deep Copy ( Num Payload Bits ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinfo Ġ{ Ġ", ${ if Ġ( b Has Rep Layout ) Ġ" has Rep Layout " Ġelse Ġ" no Rep Layout "}, actor [ ${ actor . net GUID . value }] ar che type =${ actor . ar che type }" Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( b Has Rep Layout ) Ġ{ Ġ// object Ġhas Ġrep Ġlayout ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! client )// ĠServer Ġshouldn 't Ġreceive Ġproperties . ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( actor . Type Ġ== ĠD ro op ed ItemGroup Ġ&& Ġrep Obj ?. path Name Ġ== Ġ" Root Component ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrep Obj Ġ= ĠNet Guid Cache Object (" Dropped ItemGroup Root Component ", Ġrep Obj . outer GUID ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrepl _ layout _ b unch ( out Payload , Ġrep Obj , Ġactor ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif (! client ) Ġ{ Ġ// Ġif Ġclient Ġ-> Ġserver ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġactor . is Vehicle Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhile Ġ( out Payload . not End ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsend Client MoveTo Server Rel i ably ( out Payload , Ġactor ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġactor . is A Character Ġ&& Ġrep Obj ?. path Name Ġ== Ġ" Player " Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġself ID Ġ= Ġactor . net GUID ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhile ( out Payload . not End ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġchar move comp ( out Payload ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbunch . skip Bits ( Num Payload Bits ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġin fol n Ġ{ Ġ"" Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun ĠSerialize Actor ( b unch : ĠB unch ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġ( net GUID , Ġnew Actor ) Ġ= Ġbunch . read Object () // Net GUID ĊĠĠĠĠĠĠĠ Ġif Ġ( net GUID . is Dynamic ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġ( ar che type Net GUID , Ġar che type ) Ġ= Ġbunch . read Object () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( ar che type Net GUID . isValid () Ġ&& Ġar che type Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġexisting Cache Object Ptr Ġ= Ġguid Cache . object Loop [ ar che type Net GUID ] ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( existing Cache Object Ptr Ġ!= Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbug ln Ġ{ Ġ" Un resolved ĠArc he type ĠGUID . ĠPath : Ġ${ existing Cache Object Ptr . path Name }, ĠNet GUID : Ġ$ ar che type Net GUID " Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbug ln Ġ{ Ġ" Un resolved ĠArc he type ĠGUID . ĠGuid Ġnot Ġregistered !, ĠNet GUID : Ġ$ ar che type Net GUID " Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġb Serialize Location Ġ= Ġbunch . read Bit () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠLocation Ġ= Ġif Ġ( b Serialize Location ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbunch . read Vector () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠVector 3 . Zero ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġb Serialize Rotation Ġ= Ġbunch . read Bit () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠRotation Ġ= Ġif Ġ( b Serialize Rotation ) Ġbunch . read Rotation Short () Ġelse ĠVector 3 . Zero ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġb Serialize Scale Ġ= Ġbunch . read Bit () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠScale Ġ= Ġif Ġ( b Serialize Scale ) Ġbunch . read Vector () Ġelse ĠVector 3 . Zero ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġb Serialize Velocity Ġ= Ġbunch . read Bit () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠVe locity Ġ= Ġif Ġ( b Serialize Velocity ) Ġbunch . read Vector () Ġelse ĠVector 3 . Zero ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( actor Ġ== Ġnull Ġ&& Ġar che type Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġ_ actor Ġ= ĠActor ( net GUID , Ġar che type Net GUID , Ġar che type , Ġch Index ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwith (_ actor ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlocation Ġ= ĠLocation ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrotation Ġ= ĠRotation ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvelocity Ġ= ĠVe locity ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġguid Cache . register Net GUID _ Client ( net GUID , Ġthis ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġactor Ġ= Ġthis ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( client ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġactors [ net GUID ] Ġ= Ġthis ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( Type ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠWeapon Ġ-> Ġwe apons [ net GUID . value ] Ġ= Ġthis ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAir Drop Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġair Drop Location [ net GUID ] Ġ= Ġlocation ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠDe ath Drop Item Package Ġ-> Ġcor p se Location [ net GUID ] Ġ= Ġlocation ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbug ln Ġ{ Ġ" spawn Ġ$ actor " Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbug ln Ġ{ Ġ", [$ net GUID ] Ġspawn :$ Location ,$ Rotation ,$ Velocity , Ġactor :$ actor " Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( new Actor Ġ== Ġnull ) Ġreturn ĊĠĠĠĠĠĠĠĠĠĠĠ Ġactor Ġ= ĠActor ( net GUID , Ġnew Actor . outer GUID , Ġnew Actor , Ġch Index ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġactor !!. is Static Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġclose () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( actor Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( client ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġactors . remove ( actor !!. net GUID ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvisual Act ors . remove ( actor !!. net GUID ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġactor Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ Ċ }