The important parts are what the packet thought the object class should be and what it actually processed.</p></div><dlclass="paramcmts block"><dtclass="param">objectClass</dt><ddclass="cmt"><p>the code for the type of object being constructed</p></dd><dtclass="param">data</dt><ddclass="cmt"><p>the bitstream data</p></dd><dtclass="param">getCodecFunc</dt><ddclass="cmt"><p>a lookup function that returns a <code>Codec</code> for this object class</p></dd><dt>returns</dt><ddclass="cmt"><p>the optional constructed object</p></dd></dl><dlclass="attributes block"><dt>See also</dt><dd><spanclass="cmt"><p><code>ObjectClass</code></p></span></dd></dl></div></li><liclass="indented0 "name="net.psforever.packet.game.objectcreate.ObjectCreateBase#encodeData"group="Ungrouped"fullComment="yes"data-isabs="false"visbl="pub"><aid="encodeData(objectClass:Int,obj:net.psforever.packet.game.objectcreate.ConstructorData,getCodecFunc:Int=>scodec.Codec[net.psforever.packet.game.objectcreate.ConstructorData]):scodec.Attempt[scodec.bits.BitVector]"class="anchorToMember"></a><aid="encodeData(Int,ConstructorData,(Int)=>Codec[ConstructorData]):Attempt[BitVector]"class="anchorToMember"></a><spanclass="permalink"><ahref="../../../../../net/psforever/packet/game/objectcreate/ObjectCreateBase$.html#encodeData(objectClass:Int,obj:net.psforever.packet.game.objectcreate.ConstructorData,getCodecFunc:Int=>scodec.Codec[net.psforever.packet.game.objectcreate.ConstructorData]):scodec.Attempt[scodec.bits.BitVector]"title="Permalink"><iclass="material-icons"></i></a></span><spanclass="modifier_kind"><spanclass="modifier"></span><spanclass="kind">def</span></span><spanclass="symbol"><spanclass="name">encodeData</span><spanclass="params">(<spanname="objectClass">objectClass: <spanname="scala.Int"class="extype">Int</span></span>, <spanname="obj">obj: <ahref="ConstructorData.html"name="net.psforever.packet.game.objectcreate.ConstructorData"id="net.psforever.packet.game.objectcreate.ConstructorData"class="extype">ConstructorData</a></span>, <spanname="getCodecFunc">getCodecFunc: (<spanname="scala.Int"class="extype">Int</span>) =><spanname="scodec.Codec"class="extype">Codec</span>[<ahref="ConstructorData.html"name="net.psforever.packet.game.objectcreate.ConstructorData"id="net.psforever.packet.game.objectcreate.ConstructorData"class="extype">ConstructorData</a>]</span>)</span><spanclass="result">: <spanname="scodec.Attempt"class="extype">Attempt</span>[<spanname="scodec.bits.BitVector"class="extype">BitVector</span>]</span></span><pclass="shortcomment cmt">Take the important information of a game piece and transform it into bit data.</p><divclass="fullcomment"><divclass="comment cmt"><p>Take the important information of a game piece and transform it into bit data.
Generally, the <code>Exception</code> messages themselves are not useful here.</p></div><dlclass="paramcmts block"><dtclass="param">objectClass</dt><ddclass="cmt"><p>the code for the type of object being deconstructed</p></dd><dtclass="param">obj</dt><ddclass="cmt"><p>the object data</p></dd><dtclass="param">getCodecFunc</dt><ddclass="cmt"><p>a lookup function that returns a <code>Codec</code> for this object class</p></dd><dt>returns</dt><ddclass="cmt"><p>the bitstream data</p></dd></dl><dlclass="attributes block"><dt>See also</dt><dd><spanclass="cmt"><p><code>ObjectClass</code></p></span></dd></dl></div></li><liclass="indented0 "name="scala.AnyRef#eq"group="Ungrouped"fullComment="yes"data-isabs="false"visbl="pub"><aid="eq(x$1:AnyRef):Boolean"class="anchorToMember"></a><aid="eq(AnyRef):Boolean"class="anchorToMember"></a><spanclass="permalink"><ahref="../../../../../net/psforever/packet/game/objectcreate/ObjectCreateBase$.html#eq(x$1:AnyRef):Boolean"title="Permalink"><iclass="material-icons"></i></a></span><spanclass="modifier_kind"><spanclass="modifier">final </span><spanclass="kind">def</span></span><spanclass="symbol"><spanclass="name">eq</span><spanclass="params">(<spanname="arg0">arg0: <spanname="scala.AnyRef"class="extype">AnyRef</span></span>)</span><spanclass="result">: <spanname="scala.Boolean"class="extype">Boolean</span></span></span><divclass="fullcomment"><dlclass="attributes block"><dt>Definition Classes</dt><dd>AnyRef</dd></dl></div></li><liclass="indented0 "name="scala.AnyRef#equals"group="Ungrouped"fullComment="yes"data-isabs="false"visbl="pub"><aid="equals(x$1:Object):Boolean"class="anchorToMember"></a><aid="equals(AnyRef):Boolean"class="anchorToMember"></a><spanclass="permalink"><ahref="../../../../../net/psforever/packet/game/objectcreate/ObjectCreateBase$.html#equals(x$1:Object):Boolean"title="Permalink"><iclass="material-icons"></i></a></span><spanclass="modifier_kind"><spanclass="modifier"></span><spanclass="kind">def</span></span><spanclass="symbol"><spanclass="name">equals</span><spanclass="params">(<spanname="arg0">arg0: <spanname="scala.AnyRef"class="extype">AnyRef</span></span>)</span><spanclass="result">: <spanname="scala.Boolean"class="extype">Boolean</span></span></span><divclass="fullcomment"><dlclass="attributes block"><dt>Definition Classes</dt><dd>AnyRef → Any</dd></dl></div></li><liclass="indented0 "name="scala.AnyRef#finalize"group="Ungrouped"fullComment="yes"data-isabs="false"visbl="prt"><aid="finalize():Unit"class="anchorToMember"></a><spanclass="permalink"><ahref="../../../../../net/psforever/packet/game/objectcreate/ObjectCreateBase$.html#finalize():Unit"title="Permalink"><iclass="material-icons"></i></a></span><spanclass="modifier_kind"><spanclass="modifier"></span><spanclass="kind">def</span></span><spanclass="symbol"><spanclass="name">finalize</span><spanclass="params">()</span><spanclass="result">: <spanname="scala.Unit"class="extype">Unit</span></span></span><divclass="fullcomment"><dlclass="attributes block"><dt>Attributes</dt><dd>protected[<spanname="java.lang"class="extype">lang</span>] </dd><dt>Definition Classes</dt><dd>AnyRef</dd><dt>Annotations</dt><dd><spanclass="name">@throws</span><spanclass="args">(<span><spanclass="symbol">classOf[java.lang.Throwable]</span></span>)</span></dd></dl></div></li><liclass="indented0 "name="scala.AnyRef#getClass"group="Ungrouped"fullComment="yes"data-isabs="false"visbl="pub"><aid="getClass():Class[_]"class="anchorToMember"></a><aid="getClass():Class[_<:AnyRef]"class="anchorToMember"></a><spanclass="permalink"><ahref="../../../../../net/psforever/packet/game/objectcreate/ObjectCreateBase$.html#getClass():Class[_]"title="Permalink"><iclass="material-icons"></i></a></span><spanclass="modifier_kind"><spanclass="modifier">final </span><spanclass="kind">def</span></span><spanclass="symbol"><spanclass="name">getClass</span><spanclass="params">()</span><spanclass="result">: <ahref="https://docs.
Ignoring the parent data, constant field lengths have already been factored into the results.
That includes:
the length of the stream length field (32u),
the object's class (11u),
the object's GUID (16u),
and the bit to determine if there will be parent data.
In total, these fields form a known fixed length of 60u.</p></div><dlclass="paramcmts block"><dtclass="param">parentInfo</dt><ddclass="cmt"><p>if defined, the relationship between this object and another object (its parent);
information about the parent adds either 24u or 32u</p></dd><dtclass="param">data</dt><ddclass="cmt"><p>if defined, the data used to construct this type of object;
the data length is indeterminate until it is walked-through;
note: the type is <code>StreamBitSize</code> as opposed to <code>ConstructorData</code></p></dd><dt>returns</dt><ddclass="cmt"><p>the total length of the resulting data stream in bits</p></dd></dl></div></li><liclass="indented0 "name="scala.AnyRef#synchronized"group="Ungrouped"fullComment="yes"data-isabs="false"visbl="pub"><aid="synchronized[T0](x$1:=>T0):T0"class="anchorToMember"></a><aid="synchronized[T0](=>T0):T0"class="anchorToMember"></a><spanclass="permalink"><ahref="../../../../../net/psforever/packet/game/objectcreate/ObjectCreateBase$.html#synchronized[T0](x$1:=>T0):T0"title="Permalink"><iclass="material-icons"></i></a></span><spanclass="modifier_kind"><spanclass="modifier">final </span><spanclass="kind">def</span></span><spanclass="symbol"><spanclass="name">synchronized</span><spanclass="tparams">[<spanname="T0">T0</span>]</span><spanclass="params">(<spanname="arg0">arg0: =><spanname="java.lang.AnyRef.synchronized.T0"class="extype">T0</span></span>)</span><spanclass="result">: <spanname="java.lang.AnyRef.synchronized.T0"class="extype">T0</span></span></span><divclass="fullcomment"><dlclass="attributes block"><dt>Definition Classes</dt><dd>AnyRef</dd></dl></div></li><liclass="indented0 "name="scala.AnyRef#toString"group="Ungrouped"fullComment="yes"data-isabs="false"visbl="pub"><aid="toString():String"class="anchorToMember"></a><spanclass="permalink"><ahref="../../../../../net/psforever/packet/game/objectcreate/ObjectCreateBase$.html#toString():String"title="Permalink"><iclass="material-icons"></i></a></span><spanclass="modifier_kind"><spanclass="modifier"></span><spanclass="kind">def</span></span><spanclass="symbol"><spanclass="name">toString</span><spanclass="params">()</span><spanclass="result">: <ahref="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html#java.lang.String"name="java.lang.String"id="java.lang.String"class="extype">String</a></span></span><divclass="fullcomment"><dlclass="attributes block"><dt>Definition Classes</dt><dd>AnyRef → Any</dd></dl></div></li><liclass="indented0 "name="scala.AnyRef#wait"group="Ungrouped"fullComment="yes"data-isabs="false"visbl="pub"><aid="wait():Unit"class="anchorToMember"></a><spanclass="permalink"><ahref="../../../../../net/psforever/packet/game/objectcreate/ObjectCreateBase$.html#wait():Unit"title="Permalink"><iclass="material-icons"></i></a></span><spanclass="modifier_kind"><spanclass="modifier">final </span><spanclass="kind">def</span></span><spanclass="symbol"><spanclass="name">wait</span><spanclass="params">()</span><spanclass="result">: <spanname="scala.Unit"class="extype">Unit</span></span></span><divclass="fullcomment"><dlclass="attributes block"><dt>Definition Classes</dt><dd>AnyRef</dd><dt>Annotations</dt><dd><spanclass="name">@throws</span><spanclass="args">(<span><spanclass="defval">classOf[java.lang.InterruptedException]</span></span>)</span></dd></dl></div></li><liclass="indented0 "name="scala.AnyRef#wait"group="Ungrouped"fullComment="yes"data-isabs="false"visbl="pub"><aid="wait(x$1:Long,x$2:Int):Unit"class="anchorToMember"></a><aid="wait(Long,Int):Unit"class="anchorToMember"></a><spanclass="permalink"><ahref="../../../../../net/psforever/packet/game/objectcreate/ObjectCreateBase$.html#wait(x$1:Long,x$2:Int):Unit"title="Permalink"><iclass="material-icons"></i></a></span><spanclass="modifier_kind"><spanclass="modifier">final </span><spanclass="kind">def</span></span><spanclass="symbol"><spanclass="name">wait</span><spanclass="params">(<spanname="arg0">arg0: <spanname="scala.Long"class="extype">Long</span></span>, <spanname="arg1">arg1: <spanname="scala.Int"class="extype">Int</span></span>)</span><spanclass="result">: <spanname="scala.Unit"class="extype">Unit</span></span></span><divclass="fullcomment"><dlclass="attributes block"><dt>Definition Classes</dt><dd>AnyRef</dd><dt>Annotations</dt><dd><spanclass="name">@throws</span><spanclass="args">(<span><spanclass="defval">cla