/* Ċ Ġ* ĠCopyright Ġ 2 0 1 8 - 2 0 2 1 ĠG uth ix Ċ Ġ* Ċ Ġ* ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* Ġ Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ*/ Ċ package Ġio . g uth ix . old scape . cache . config Ċ Ċ import Ġio . g uth ix . buffer . readString CP 1 2 5 2 Ċ import Ġio . g uth ix . buffer . writeString CP 1 2 5 2 Ċ import Ġio . netty . buffer . Byte Buf Ċ import Ġio . netty . buffer . Un p ooled Ċ import Ġjava . io . IOException Ċ Ċ data Ġclass ĠObj Config ( override Ġval Ġid : ĠInt ) Ġ: ĠNamed Config ( id ) Ġ{ ĊĠĠĠ Ġoverride Ġvar Ġname : ĠString Ġ= Ġ" null " ĊĠĠĠ Ġvar Ġmodel : ĠInt Ġ= Ġ 0 ĊĠĠĠ Ġvar Ġzoom 2 d : ĠInt Ġ= Ġ 2 0 0 0 ĊĠĠĠ Ġvar Ġx an 2 d : ĠInt Ġ= Ġ 0 ĊĠĠĠ Ġvar Ġy an 2 d : ĠInt Ġ= Ġ 0 ĊĠĠĠ Ġvar Ġz an 2 d : ĠInt Ġ= Ġ 0 ĊĠĠĠ Ġvar Ġx off 2 d : ĠInt Ġ= Ġ 0 ĊĠĠĠ Ġvar Ġy off 2 d : ĠInt Ġ= Ġ 0 ĊĠĠĠ Ġvar Ġstack able : ĠBoolean Ġ= Ġfalse ĊĠĠĠ Ġvar Ġcost : ĠInt Ġ= Ġ 1 ĊĠĠĠ Ġvar Ġmembers : ĠBoolean Ġ= Ġfalse ĊĠĠĠ Ġval Ġground Actions : ĠArray < String ?> Ġ= ĠarrayOf ( null , Ġnull , Ġ" Take ", Ġnull , Ġnull ) ĊĠĠĠ Ġval Ġi op : ĠArray < String ?> Ġ= ĠarrayOf ( null , Ġnull , Ġnull , Ġnull , Ġ" Drop ") ĊĠĠĠ Ġvar Ġshift Click Drop Index : ĠByte Ġ= Ġ- 2 ĊĠĠĠ Ġvar Ġmale Model 0 : ĠInt ? Ġ= Ġnull ĊĠĠĠ Ġvar Ġmale Model 1 : ĠInt ? Ġ= Ġnull ĊĠĠĠ Ġvar Ġmale Model 2 : ĠInt ? Ġ= Ġnull ĊĠĠĠ Ġvar Ġmale Offset : ĠShort Ġ= Ġ 0 ĊĠĠĠ Ġvar Ġfemale Model 0 : ĠInt ? Ġ= Ġnull ĊĠĠĠ Ġvar Ġfemale Model 1 : ĠInt ? Ġ= Ġnull ĊĠĠĠ Ġvar Ġfemale Model 2 : ĠInt ? Ġ= Ġnull ĊĠĠĠ Ġvar Ġfemale Offset : ĠShort Ġ= Ġ 0 ĊĠĠĠ Ġvar Ġmale Head Model : ĠInt ? Ġ= Ġnull ĊĠĠĠ Ġvar Ġmale Head Model 2 : ĠInt ? Ġ= Ġnull ĊĠĠĠ Ġvar Ġfemale Head Model : ĠInt ? Ġ= Ġnull ĊĠĠĠ Ġvar Ġfemale Head Model 2 : ĠInt ? Ġ= Ġnull ĊĠĠĠ Ġvar Ġnoted Id : ĠInt ? Ġ= Ġnull ĊĠĠĠ Ġvar Ġnoted Template Id : ĠInt ? Ġ= Ġnull ĊĠĠĠ Ġvar Ġresize X : ĠInt Ġ= Ġ 1 2 8 ĊĠĠĠ Ġvar Ġresize Y : ĠInt Ġ= Ġ 1 2 8 ĊĠĠĠ Ġvar Ġresize Z : ĠInt Ġ= Ġ 1 2 8 ĊĠĠĠ Ġvar Ġambient : ĠByte Ġ= Ġ 0 ĊĠĠĠ Ġvar Ġcontrast : ĠByte Ġ= Ġ 0 ĊĠĠĠ Ġvar Ġteam : ĠShort Ġ= Ġ 0 ĊĠĠĠ Ġvar Ġtrad able : ĠBoolean Ġ= Ġfalse ĊĠĠĠ Ġvar Ġcolor Find : ĠInt Array ? Ġ= Ġnull ĊĠĠĠ Ġvar Ġcolor Replace : ĠInt Array ? Ġ= Ġnull ĊĠĠĠ Ġvar Ġtexture Find : ĠInt Array ? Ġ= Ġnull ĊĠĠĠ Ġvar Ġtexture Replace : ĠInt Array ? Ġ= Ġnull ĊĠĠĠ Ġvar Ġcount Co : ĠInt Array ? Ġ= Ġnull ĊĠĠĠ Ġvar Ġcount Obj : ĠInt Array ? Ġ= Ġnull ĊĠĠĠ Ġvar Ġb ought Id : ĠInt ? Ġ= Ġnull ĊĠĠĠ Ġvar Ġb ought Template : ĠInt ? Ġ= Ġnull ĊĠĠĠ Ġvar Ġplaceholder Id : ĠInt ? Ġ= Ġnull ĊĠĠĠ Ġvar Ġplaceholder Template Id : ĠInt ? Ġ= Ġnull ĊĠĠĠ Ġoverride Ġvar Ġparams : ĠMutable Map < Int , ĠAny >? Ġ= Ġnull ĊĠĠĠ Ġval Ġis Not ed : ĠBoolean Ġget () Ġ= Ġnoted Template Id Ġ== Ġ 7 9 9 ĊĠĠĠ Ġval Ġis Place Holder : ĠBoolean Ġget () Ġ= Ġplaceholder Template Id Ġ== Ġ 1 4 4 0 1 ĊĊĠĠĠ Ġoverride Ġfun Ġencode (): ĠByte Buf Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġdata Ġ= ĠUn p ooled . buffer () ĊĠĠĠĠĠĠĠ Ġif Ġ( model Ġ!= Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdata . write Opcode ( 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdata . write Short ( model ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( name Ġ!= Ġ" null ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdata . write Opcode ( 2 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdata . writeString CP 1 2 5 2 ( name ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( zoom 2 d Ġ!= Ġ 2 0 0 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdata . write Opcode ( 4 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdata . write Short ( zoom 2 d ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( x an 2 d Ġ!= Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdata . write Opcode ( 5 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdata . write Short ( x an 2 d ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( yan 2 d Ġ!= Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdata . write Opcode ( 6 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdata . write Short ( yan 2 d ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( x off 2 d Ġ!= Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdata . write Opcode ( 7 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( x off 2 d Ġ< Ġ 0 ) Ġdata . write Short ( x off 2 d Ġ+ Ġ 6 5 5 3 6 ) Ġelse Ġdata . write Short ( x off 2 d ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( y off 2 d Ġ!= Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdata . write Opcode ( 8 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( y off 2 d Ġ< Ġ 0 ) Ġdata . write Short ( y off 2 d Ġ+ Ġ 6 5 5 3 6 ) Ġelse Ġdata . write Short ( y off 2 d ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( stack able ) Ġdata . write Opcode ( 1 1 ) ĊĠĠĠĠĠĠĠ Ġif Ġ( cost Ġ!= Ġ 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdata . write Opcode ( 1 2 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdata . writeInt ( cost ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( members ) Ġdata . write Opcode ( 1 6 ) ĊĠĠĠĠĠĠĠ Ġmale Model 0 ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdata . write Opcode ( 2 3 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdata . write Short ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdata . write Byte ( male Offset . toInt ()) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġmale Model 1 ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdata . write Opcode ( 2 4 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdata . write Short ( it ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġfemale Model 0 ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdata . write Opcode ( 2 5 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdata . write Short ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdata . write Byte ( female Offset . toInt ()) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġfemale Model 1 ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdata . write Opcode ( 2 6 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdata . write Short ( it ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġground Actions . forEach Indexed Ġ{ Ġi , Ġstr Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( str Ġ!= Ġnull Ġ&& Ġstr Ġ!= Ġ" Hidden " Ġ&& Ġstr Ġ!= Ġ" Take ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdata . write Opcode ( 3 0 Ġ+ Ġi ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdata . writeString CP 1 2 5 2 ( str ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġi op . forEach Indexed Ġ{ Ġi , Ġstr Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( str Ġ!= Ġnull Ġ&& Ġstr Ġ!= Ġ" Hidden " Ġ&& Ġstr Ġ!= Ġ" Drop ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdata . write Opcode ( 3 5 Ġ+ Ġi ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdata . writeString CP 1 2 5 2 ( str ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġcolor Find ?. let Ġ{ Ġcolor Find Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcolor Replace ?. let Ġ{ Ġcolor Replace Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdata . write Opcode ( 4 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdata . write Byte ( color Find . size ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġcolor Find . indices ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdata . write Short ( color Find [ i ]) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdata . write Short ( color Replace [ i ]) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġtexture Find ?. let Ġ{ Ġtexture Find Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtexture Replace ?. let Ġ{ Ġtexture Replace Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdata . write Opcode ( 4 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdata . write Byte ( texture Find . size ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġtexture Find . indices ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdata . write Short ( texture Find [ i ]) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdata . write Short ( texture Replace [ i ]) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( shift Click Drop Index . toInt () Ġ!= Ġ- 2 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdata . write Opcode ( 4 2 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdata . write Byte ( shift Click Drop Index . toInt ()) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( trad able ) Ġdata . write Opcode ( 6 5 ) ĊĠĠĠĠĠĠĠ Ġmale Model 2 ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdata . write Opcode ( 7 8 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdata . write Short ( it ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġfemale Model 2 ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdata . write Opcode ( 7 9 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdata . write Short ( it ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġmale Head Model ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdata . write Opcode ( 9 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdata . write Short ( it ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġfemale Head Model ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdata . write Opcode ( 9 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdata . write Short ( it ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġmale Head Model 2 ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdata . write Opcode ( 9 2 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdata . write Short ( it ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġfemale Head Model 2 ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdata . write Opcode ( 9 3 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdata . write Short ( it ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( z an 2 d Ġ!= Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdata . write Opcode ( 9 5 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdata . write Short ( z an 2 d ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġnoted Id ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdata . write Opcode ( 9 7 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdata . write Short ( it ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġnoted Template Id ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdata . write Opcode ( 9 8 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdata . write Short ( it ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġcount Obj ?. forEach Indexed Ġ{ Ġi , Ġobj Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcount Co Ġ= Ġcount Co ?. get ( i ) Ġ?: Ġthrow ĠIOException (" Found ĠOBJ Ġbut Ġno ĠCO .") Ġ Ġ// Ġ?? ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdata . write Opcode ( 1 0 0 Ġ+ Ġi ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdata . write Short ( obj ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdata . write Short ( count Co ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( resize X Ġ!= Ġ 1 2 8 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdata . write Opcode ( 1 1 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdata . write Short ( resize X ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( resize Y Ġ!= Ġ 1 2 8 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdata . write Opcode ( 1 1 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdata . write Short ( resize Y ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( resize Z Ġ!= Ġ 1 2 8 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdata . write Opcode ( 1 1 2 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdata . write Short ( resize Z ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( ambient . toInt () Ġ!= Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdata . write Opcode ( 1 1 3 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdata . write Byte ( ambient . toInt ()) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( contrast . toInt () Ġ!= Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdata . write Opcode ( 1 1 4 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdata . write Byte ( contrast . toInt ()) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( team . toInt () Ġ!= Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdata . write Opcode ( 1 1 5 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdata . write Byte ( team . toInt ()) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġb ought Id ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdata . write Opcode ( 1 3 9 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdata . write Short ( it ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġb ought Template ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdata . write Opcode ( 1 4 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdata . write Short ( it ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġplaceholder Id ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdata . write Opcode ( 1 4 8 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdata . write Short ( it ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġplaceholder Template Id ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdata . write Opcode ( 1 4 9 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdata . write Short ( it ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġparams ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdata . write Opcode ( 2 4 9 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdata . write Params ( it ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġdata . write Opcode ( 0 ) ĊĠĠĠĠĠĠĠ Ġreturn Ġdata ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ: ĠNamed Config Companion < Obj Config >() Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Ġval Ġid : ĠInt Ġ= Ġ 1 0 ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġdecode ( id : ĠInt , Ġdata : ĠByte Buf ): ĠObj Config Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġobj Config Ġ= ĠObj Config ( id ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdecoder @ Ġwhile Ġ( true ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( val Ġopcode Ġ= Ġdata . read Unsigned Byte (). toInt ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 0 Ġ-> Ġbreak @ decoder ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 1 Ġ-> Ġobj Config . model Ġ= Ġdata . read Unsigned Short () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 2 Ġ-> Ġobj Config . name Ġ= Ġdata . readString CP 1 2 5 2 () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 4 Ġ-> Ġobj Config . zoom 2 d Ġ= Ġdata . read Unsigned Short () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 5 Ġ-> Ġobj Config . x an 2 d Ġ= Ġdata . read Unsigned Short () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 6 Ġ-> Ġobj Config . yan 2 d Ġ= Ġdata . read Unsigned Short () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 7 Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtemp Ġ= Ġdata . read Unsigned Short () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġobj Config . x off 2 d Ġ= Ġif Ġ( temp Ġ> Ġ 3 2 7 6 7 ) Ġtemp Ġ- Ġ 6 5 5 3 6 Ġelse Ġtemp ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 8 Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtemp Ġ= Ġdata . read Unsigned Short () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġobj Config . y off 2 d Ġ= Ġif Ġ( temp Ġ> Ġ 3 2 7 6 7 ) Ġtemp Ġ- Ġ 6 5 5 3 6 Ġelse Ġtemp ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 1 1 Ġ-> Ġobj Config . stack able Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 1 2 Ġ-> Ġobj Config . cost Ġ= Ġdata . readInt () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 1 6 Ġ-> Ġobj Config . members Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 2 3 Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġobj Config . male Model 0 Ġ= Ġdata . read Unsigned Short () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġobj Config . male Offset Ġ= Ġdata . read Unsigned Byte () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 2 4 Ġ-> Ġobj Config . male Model 1 Ġ= Ġdata . read Unsigned Short () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 2 5 Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġobj Config . female Model 0 Ġ= Ġdata . read Unsigned Short () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġobj Config . female Offset Ġ= Ġdata . read Unsigned Byte () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 2 6 Ġ-> Ġobj Config . female Model 1 Ġ= Ġdata . read Unsigned Short () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġin Ġ 3 0 .. 3 4 Ġ-> Ġobj Config . ground Actions [ opcode Ġ- Ġ 3 0 ] Ġ= Ġdata . readString CP 1 2 5 2 (). take If Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit Ġ!= Ġ" Hidden " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġin Ġ 3 5 .. 3 9 Ġ-> Ġobj Config . iop [ opcode Ġ- Ġ 3 5 ] Ġ= Ġdata . readString CP 1 2 5 2 () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 4 0 Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcolors Size Ġ= Ġdata . read Unsigned Byte (). toInt () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcolor Find Ġ= ĠInt Array ( colors Size ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcolor Replace Ġ= ĠInt Array ( colors Size ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġ 0 Ġuntil Ġcolors Size ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcolor Find [ i ] Ġ= Ġdata . read Unsigned Short () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcolor Replace [ i ] Ġ= Ġdata . read Unsigned Short () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġobj Config . color Find Ġ= Ġcolor Find ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġobj Config . color Replace Ġ= Ġcolor Replace ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 4 1 Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtextures Size Ġ= Ġdata . read Unsigned Byte (). toInt () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtexture Find Ġ= ĠInt Array ( textures Size ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtexture Replace Ġ= ĠInt Array ( textures Size ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġ 0 Ġuntil Ġtextures Size ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtexture Find [ i ] Ġ= Ġdata . read Unsigned Short () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtexture Replace [ i ] Ġ= Ġdata . read Unsigned Short () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġobj Config . texture Find Ġ= Ġtexture Find ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġobj Config . texture Replace Ġ= Ġtexture Replace ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 4 2 Ġ-> Ġobj Config . shift Click Drop Index Ġ= Ġdata . read Byte () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 6 5 Ġ-> Ġobj Config . trad able Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 7 8 Ġ-> Ġobj Config . male Model 2 Ġ= Ġdata . read Unsigned Short () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 7 9 Ġ-> Ġobj Config . female Model 2 Ġ= Ġdata . read Unsigned Short () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 9 0 Ġ-> Ġobj Config . male Head Model Ġ= Ġdata . read Unsigned Short () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 9 1 Ġ-> Ġobj Config . female Head Model Ġ= Ġdata . read Unsigned Short () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 9 2 Ġ-> Ġobj Config . male Head Model 2 Ġ= Ġdata . read Unsigned Short () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 9 3 Ġ-> Ġobj Config . female Head Model 2 Ġ= Ġdata . read Unsigned Short () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 9 5 Ġ-> Ġobj Config . z an 2 d Ġ= Ġdata . read Unsigned Short () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 9 7 Ġ-> Ġobj Config . not ed Id Ġ= Ġdata . read Unsigned Short () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 9 8 Ġ-> Ġobj Config . not ed Template Id Ġ= Ġdata . read Unsigned Short () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġin Ġ 1 0 0 .. 1 0 9 Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( obj Config . count Obj Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġobj Config . count Obj Ġ= ĠInt Array ( 1 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġobj Config . count Co Ġ= ĠInt Array ( 1 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġobj Config . count Obj ! ![ opcode Ġ- Ġ 1 0 0 ] Ġ= Ġdata . read Unsigned Short () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġobj Config . count Co ! ![ opcode Ġ- Ġ 1 0 0 ] Ġ= Ġdata . read Unsigned Short () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 1 1 0 Ġ-> Ġobj Config . resize X Ġ= Ġdata . read Unsigned Short () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 1 1 1 Ġ-> Ġobj Config . resize Y Ġ= Ġdata . read Unsigned Short () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 1 1 2 Ġ-> Ġobj Config . resize Z Ġ= Ġdata . read Unsigned Short () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 1 1 3 Ġ-> Ġobj Config . ambient Ġ= Ġdata . read Byte () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 1 1 4 Ġ-> Ġobj Config . contrast Ġ= Ġdata . read Byte () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 1 1 5 Ġ-> Ġobj Config . team Ġ= Ġdata . read Unsigned Byte () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 1 3 9 Ġ-> Ġobj Config . b ought Id Ġ= Ġdata . read Unsigned Short () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 1 4 0 Ġ-> Ġobj Config . b ought Template Ġ= Ġdata . read Unsigned Short () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 1 4 8 Ġ-> Ġobj Config . placeholder Id Ġ= Ġdata . read Unsigned Short () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 1 4 9 Ġ-> Ġobj Config . placeholder Template Id Ġ= Ġdata . read Unsigned Short () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 2 4 9 Ġ-> Ġobj Config . params Ġ= Ġdata . read Params () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġthrow ĠIOException (" Did Ġnot Ġrecogn ise Ġopcode Ġ$ opcode .") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġobj Config ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }