PSF-LoginServer/net/psforever/packet/game/objectcreate/ObjectCreateBase$.html

20 lines
62 KiB
HTML
Raw Normal View History

<!DOCTYPE html ><html><head><meta http-equiv="X-UA-Compatible" content="IE=edge"/><meta content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" name="viewport"/><title>PSF-LoginServer - master - net.psforever.packet.game.objectcreate.ObjectCreateBase</title><meta content="PSF - LoginServer - master - net.psforever.packet.game.objectcreate.ObjectCreateBase" name="description"/><meta content="PSF LoginServer master net.psforever.packet.game.objectcreate.ObjectCreateBase" name="keywords"/><meta http-equiv="content-type" content="text/html; charset=UTF-8"/><link href="../../../../../lib/index.css" media="screen" type="text/css" rel="stylesheet"/><link href="../../../../../lib/template.css" media="screen" type="text/css" rel="stylesheet"/><link href="../../../../../lib/print.css" media="print" type="text/css" rel="stylesheet"/><link href="../../../../../lib/diagrams.css" media="screen" type="text/css" rel="stylesheet" id="diagrams-css"/><script type="text/javascript" src="../../../../../lib/jquery.min.js"></script><script type="text/javascript" src="../../../../../lib/index.js"></script><script type="text/javascript" src="../../../../../index.js"></script><script type="text/javascript" src="../../../../../lib/scheduler.js"></script><script type="text/javascript" src="../../../../../lib/template.js"></script><script type="text/javascript">/* this variable can be used by the JS to determine the path to the root document */
var toRoot = '../../../../../';</script></head><body><div id="search"><span id="doc-title">PSF-LoginServer - <span id="doc-version">master</span></span> <span class="close-results"><span class="left">&lt;</span> Back</span><div id="textfilter"><span class="input"><input autocapitalize="none" placeholder="Search" id="index-input" type="text" accesskey="/"/><i class="clear material-icons"></i><i id="search-icon" class="material-icons"></i></span></div></div><div id="search-results"><div id="search-progress"><div id="progress-fill"></div></div><div id="results-content"><div id="entity-results"></div><div id="member-results"></div></div></div><div id="content-scroll-container" style="-webkit-overflow-scrolling: touch;"><div id="content-container" style="-webkit-overflow-scrolling: touch;"><div id="subpackage-spacer"><div id="packages"><h1>Packages</h1><ul><li class="indented0 " name="_root_.root" group="Ungrouped" fullComment="yes" data-isabs="false" visbl="pub"><a id="_root_"></a><a id="root:_root_"></a> <span class="permalink"><a href="../../../../../index.html" title="Permalink"><i class="material-icons"></i></a></span> <span class="modifier_kind"><span class="modifier"></span> <span class="kind">package</span></span> <span class="symbol"><a href="../../../../../index.html" title=""><span class="name">root</span></a></span><div class="fullcomment"><dl class="attributes block"><dt>Definition Classes</dt><dd><a href="../../../../../index.html" name="_root_" id="_root_" class="extype">root</a></dd></dl></div></li><li class="indented1 " name="_root_.net" group="Ungrouped" fullComment="yes" data-isabs="false" visbl="pub"><a id="net"></a><a id="net:net"></a> <span class="permalink"><a href="../../../../../net/index.html" title="Permalink"><i class="material-icons"></i></a></span> <span class="modifier_kind"><span class="modifier"></span> <span class="kind">package</span></span> <span class="symbol"><a href="../../../../index.html" title=""><span class="name">net</span></a></span><div class="fullcomment"><dl class="attributes block"><dt>Definition Classes</dt><dd><a href="../../../../../index.html" name="_root_" id="_root_" class="extype">root</a></dd></dl></div></li><li class="indented2 " name="net.psforever" group="Ungrouped" fullComment="yes" data-isabs="false" visbl="pub"><a id="psforever"></a><a id="psforever:psforever"></a> <span class="permalink"><a href="../../../../../net/psforever/index.html" title="Permalink"><i class="material-icons"></i></a></span> <span class="modifier_kind"><span class="modifier"></span> <span class="kind">package</span></span> <span class="symbol"><a href="../../../index.html" title=""><span class="name">psforever</span></a></span><div class="fullcomment"><dl class="attributes block"><dt>Definition Classes</dt><dd><a href="../../../../index.html" name="net" id="net" class="extype">net</a></dd></dl></div></li><li class="indented3 " name="net.psforever.packet" group="Ungrouped" fullComment="yes" data-isabs="false" visbl="pub"><a id="packet"></a><a id="packet:packet"></a> <span class="permalink"><a href="../../../../../net/psforever/packet/index.html" title="Permalink"><i class="material-icons"></i></a></span> <span class="modifier_kind"><span class="modifier"></span> <span class="kind">package</span></span> <span class="symbol"><a href="../../index.html" title=""><span class="name">packet</span></a></span><div class="fullcomment"><dl class="attributes block"><dt>Definition Classes</dt><dd><a href="../../../index.html" name="net.psforever" id="net.psforever" class="extype">psforever</a></dd></dl></div></li><li class="indented4 " name="net.psforever.packet.game" group="Ungrouped" fullComment="yes" data-isabs="false" visbl="pub"><a id="game"></a><a id="game:game"></a> <span class="permalink"><a href="../../../../../net/psforever/packet/game/index.html" title="Permalink"><i class="material-icons"></i></a></span> <span class="modifier_kind"><span class="modifier"></span> <span class="kind">package</span></span> <span class="symbol"><a href="../index.html" title=""><span class="name
This function is fail-safe because it catches errors involving bad parsing of the bitstream data.
Generally, the <code>Exception</code> messages themselves are not useful here.
The important parts are what the packet thought the object class should be and what it actually processed.</p></div><dl class="paramcmts block"><dt class="param">objectClass</dt><dd class="cmt"><p>the code for the type of object being constructed</p></dd><dt class="param">data</dt><dd class="cmt"><p>the bitstream data</p></dd><dt class="param">getCodecFunc</dt><dd class="cmt"><p>a lookup function that returns a <code>Codec</code> for this object class</p></dd><dt>returns</dt><dd class="cmt"><p>the optional constructed object</p></dd></dl><dl class="attributes block"><dt>See also</dt><dd><span class="cmt"><p><code>ObjectClass</code></p></span></dd></dl></div></li><li class="indented0 " name="net.psforever.packet.game.objectcreate.ObjectCreateBase#encodeData" group="Ungrouped" fullComment="yes" data-isabs="false" visbl="pub"><a id="encodeData(objectClass:Int,obj:net.psforever.packet.game.objectcreate.ConstructorData,getCodecFunc:Int=&gt;scodec.Codec[net.psforever.packet.game.objectcreate.ConstructorData]):scodec.Attempt[scodec.bits.BitVector]"></a><a id="encodeData(Int,ConstructorData,(Int)=&gt;Codec[ConstructorData]):Attempt[BitVector]"></a> <span class="permalink"><a href="../../../../../net/psforever/packet/game/objectcreate/ObjectCreateBase$.html#encodeData(objectClass:Int,obj:net.psforever.packet.game.objectcreate.ConstructorData,getCodecFunc:Int=&gt;scodec.Codec[net.psforever.packet.game.objectcreate.ConstructorData]):scodec.Attempt[scodec.bits.BitVector]" title="Permalink"><i class="material-icons"></i></a></span> <span class="modifier_kind"><span class="modifier"></span> <span class="kind">def</span></span> <span class="symbol"><span class="name">encodeData</span><span class="params">(<span name="objectClass">objectClass: <span name="scala.Int" class="extype">Int</span></span>, <span name="obj">obj: <a href="ConstructorData.html" name="net.psforever.packet.game.objectcreate.ConstructorData" id="net.psforever.packet.game.objectcreate.ConstructorData" class="extype">ConstructorData</a></span>, <span name="getCodecFunc">getCodecFunc: (<span name="scala.Int" class="extype">Int</span>) =&gt; <span name="scodec.Codec" class="extype">Codec</span>[<a href="ConstructorData.html" name="net.psforever.packet.game.objectcreate.ConstructorData" id="net.psforever.packet.game.objectcreate.ConstructorData" class="extype">ConstructorData</a>]</span>)</span><span class="result">: <span name="scodec.Attempt" class="extype">Attempt</span>[<span name="scodec.bits.BitVector" class="extype">BitVector</span>]</span></span><p class="shortcomment cmt">Take the important information of a game piece and transform it into bit data.</p><div class="fullcomment"><div class="comment cmt"><p>Take the important information of a game piece and transform it into bit data.
This function is fail-safe because it catches errors involving bad parsing of the object data.
Generally, the <code>Exception</code> messages themselves are not useful here.</p></div><dl class="paramcmts block"><dt class="param">objectClass</dt><dd class="cmt"><p>the code for the type of object being deconstructed</p></dd><dt class="param">obj</dt><dd class="cmt"><p>the object data</p></dd><dt class="param">getCodecFunc</dt><dd class="cmt"><p>a lookup function that returns a <code>Codec</code> for this object class</p></dd><dt>returns</dt><dd class="cmt"><p>the bitstream data</p></dd></dl><dl class="attributes block"><dt>See also</dt><dd><span class="cmt"><p><code>ObjectClass</code></p></span></dd></dl></div></li><li class="indented0 " name="scala.AnyRef#eq" group="Ungrouped" fullComment="yes" data-isabs="false" visbl="pub"><a id="eq(x$1:AnyRef):Boolean"></a><a id="eq(AnyRef):Boolean"></a> <span class="permalink"><a href="../../../../../net/psforever/packet/game/objectcreate/ObjectCreateBase$.html#eq(x$1:AnyRef):Boolean" title="Permalink"><i class="material-icons"></i></a></span> <span class="modifier_kind"><span class="modifier">final </span> <span class="kind">def</span></span> <span class="symbol"><span class="name">eq</span><span class="params">(<span name="arg0">arg0: <span name="scala.AnyRef" class="extype">AnyRef</span></span>)</span><span class="result">: <span name="scala.Boolean" class="extype">Boolean</span></span></span><div class="fullcomment"><dl class="attributes block"><dt>Definition Classes</dt><dd>AnyRef</dd></dl></div></li><li class="indented0 " name="scala.AnyRef#equals" group="Ungrouped" fullComment="yes" data-isabs="false" visbl="pub"><a id="equals(x$1:Object):Boolean"></a><a id="equals(AnyRef):Boolean"></a> <span class="permalink"><a href="../../../../../net/psforever/packet/game/objectcreate/ObjectCreateBase$.html#equals(x$1:Object):Boolean" title="Permalink"><i class="material-icons"></i></a></span> <span class="modifier_kind"><span class="modifier"></span> <span class="kind">def</span></span> <span class="symbol"><span class="name">equals</span><span class="params">(<span name="arg0">arg0: <span name="scala.AnyRef" class="extype">AnyRef</span></span>)</span><span class="result">: <span name="scala.Boolean" class="extype">Boolean</span></span></span><div class="fullcomment"><dl class="attributes block"><dt>Definition Classes</dt><dd>AnyRef → Any</dd></dl></div></li><li class="indented0 " name="scala.AnyRef#finalize" group="Ungrouped" fullComment="yes" data-isabs="false" visbl="prt"><a id="finalize():Unit"></a> <span class="permalink"><a href="../../../../../net/psforever/packet/game/objectcreate/ObjectCreateBase$.html#finalize():Unit" title="Permalink"><i class="material-icons"></i></a></span> <span class="modifier_kind"><span class="modifier"></span> <span class="kind">def</span></span> <span class="symbol"><span class="name">finalize</span><span class="params">()</span><span class="result">: <span name="scala.Unit" class="extype">Unit</span></span></span><div class="fullcomment"><dl class="attributes block"><dt>Attributes</dt><dd>protected[<span name="java.lang" class="extype">lang</span>] </dd><dt>Definition Classes</dt><dd>AnyRef</dd><dt>Annotations</dt><dd><span class="name">@throws</span><span class="args">(<span><span class="symbol">classOf[java.lang.Throwable]</span></span>)</span> </dd></dl></div></li><li class="indented0 " name="scala.AnyRef#getClass" group="Ungrouped" fullComment="yes" data-isabs="false" visbl="pub"><a id="getClass():Class[_]"></a><a id="getClass():Class[_&lt;:AnyRef]"></a> <span class="permalink"><a href="../../../../../net/psforever/packet/game/objectcreate/ObjectCreateBase$.html#getClass():Class[_]" title="Permalink"><i class="material-icons"></i></a></span> <span class="modifier_kind"><span class="modifier">final </span> <span class="kind">def</span></span> <span class="symbol"><span class="name">getClass</span><span class="params">()</span><span class="result">: <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html#java.lang.Class" name="java.lang.Class" id="java.lang.Class" class="extype">Class</a>[_ &lt;: <span name="scala
This process automates for: object encoding.<br>
<br>
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><dl class="paramcmts block"><dt class="param">parentInfo</dt><dd class="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><dt class="param">data</dt><dd class="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><dd class="cmt"><p>the total length of the resulting data stream in bits</p></dd></dl></div></li><li class="indented0 " name="scala.AnyRef#synchronized" group="Ungrouped" fullComment="yes" data-isabs="false" visbl="pub"><a id="synchronized[T0](x$1:=&gt;T0):T0"></a><a id="synchronized[T0](=&gt;T0):T0"></a> <span class="permalink"><a href="../../../../../net/psforever/packet/game/objectcreate/ObjectCreateBase$.html#synchronized[T0](x$1:=&gt;T0):T0" title="Permalink"><i class="material-icons"></i></a></span> <span class="modifier_kind"><span class="modifier">final </span> <span class="kind">def</span></span> <span class="symbol"><span class="name">synchronized</span><span class="tparams">[<span name="T0">T0</span>]</span><span class="params">(<span name="arg0">arg0: =&gt; <span name="java.lang.AnyRef.synchronized.T0" class="extype">T0</span></span>)</span><span class="result">: <span name="java.lang.AnyRef.synchronized.T0" class="extype">T0</span></span></span><div class="fullcomment"><dl class="attributes block"><dt>Definition Classes</dt><dd>AnyRef</dd></dl></div></li><li class="indented0 " name="scala.AnyRef#toString" group="Ungrouped" fullComment="yes" data-isabs="false" visbl="pub"><a id="toString():String"></a> <span class="permalink"><a href="../../../../../net/psforever/packet/game/objectcreate/ObjectCreateBase$.html#toString():String" title="Permalink"><i class="material-icons"></i></a></span> <span class="modifier_kind"><span class="modifier"></span> <span class="kind">def</span></span> <span class="symbol"><span class="name">toString</span><span class="params">()</span><span class="result">: <a href="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><div class="fullcomment"><dl class="attributes block"><dt>Definition Classes</dt><dd>AnyRef → Any</dd></dl></div></li><li class="indented0 " name="scala.AnyRef#wait" group="Ungrouped" fullComment="yes" data-isabs="false" visbl="pub"><a id="wait():Unit"></a> <span class="permalink"><a href="../../../../../net/psforever/packet/game/objectcreate/ObjectCreateBase$.html#wait():Unit" title="Permalink"><i class="material-icons"></i></a></span> <span class="modifier_kind"><span class="modifier">final </span> <span class="kind">def</span></span> <span class="symbol"><span class="name">wait</span><span class="params">()</span><span class="result">: <span name="scala.Unit" class="extype">Unit</span></span></span><div class="fullcomment"><dl class="attributes block"><dt>Definition Classes</dt><dd>AnyRef</dd><dt>Annotations</dt><dd><span class="name">@throws</span><span class="args">(<span><span class="defval">classOf[java.lang.InterruptedException]</span></span>)</span> </dd></dl></div></li><li class="indented0 " name="scala.AnyRef#wait" group="Ungrouped" fullComment="yes" data-isabs="false" visbl="pub"><a id="wait(x$1:Long,x$2:Int):Unit"></a><a id="wait(Long,Int):Unit"></a> <span class="permalink"><a href="../../../../../net/psforever/packet/game/objectcreate/ObjectCreateBase$.html#wait(x$1:Long,x$2:Int):Unit" title="Permalink"><i class="material-icons"></i></a></span> <span class="modifier_kind"><span class="modifier">final </span> <span class="kind">def</span></span> <span class="symbol"><span class="name">wait</span><span class="params">(<span name="arg0">arg0: <span name="scala.Long" class="extype">Long</span></span>, <span name="arg1">arg1: <span name="scala.Int" class="extype">Int</span></span>)</span><span class="result">: <span name="scala.Unit" class="extype">Unit</span></span></span><div class="fullcomment"><dl class="attributes block"><dt>Definition Classes</dt><dd>AnyRef</dd><dt>Annotations</dt><dd><span class="name">@throws</span><span class="args">(<span><span class="defval">classOf[java.lang.InterruptedException]</span></span>)</span> </dd></dl></div></li><li class="indented0 " name="scala.AnyRef#wait" group="Ung