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

52 lines
74 KiB
HTML
Raw Permalink 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.MountableInventory</title><meta content="PSF - LoginServer - master - net.psforever.packet.game.objectcreate.MountableInventory" name="description"/><meta content="PSF LoginServer master net.psforever.packet.game.objectcreate.MountableInventory" 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_" class="anchorToMember"></a><a id="root:_root_" class="anchorToMember"></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" class="anchorToMember"></a><a id="net:net" class="anchorToMember"></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" class="anchorToMember"></a><a id="psforever:psforever" class="anchorToMember"></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" class="anchorToMember"></a><a id="packet:packet" class="anchorToMember"></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" class="anchorToMember"></a><a id="game:game" class="anchorToMember"></a> <span class="permalink"><a href="../../../../../net/psforever/packet/game/index.html" titl
Due to the depth of seated player characters, the <code>name</code> field can have a variable amount of padding
between the string size field and the first character.
Specifically, the padding value is the number of bits after the size field
that would cause the first character of the name to be aligned to the first bit of the next byte.
The 35 counts the object class, unique identifier, and slot fields of the enclosing <code>InternalSlot</code>.
The 23 counts all of the fields before the player's <code>name</code> field in <code>CharacterAppearanceData</code>.</p></div><dl class="paramcmts block"><dt class="param">accumulative</dt><dd class="cmt"><p>current entry stream offset (start of this player's entry)</p></dd><dt>returns</dt><dd class="cmt"><p>the padding value, 0-7 bits</p></dd></dl><dl class="attributes block"><dt>See also</dt><dd><span class="cmt"><p><code>InternalSlot</code><br>
<code>CharacterAppearanceData.name</code><br>
<code>VehicleData.InitialStreamLengthToSeatEntries</code></p></span></dd></dl></div></li><li class="indented0 " name="net.psforever.packet.game.objectcreate.MountableInventory#CumulativeSeatedPlayerNamePadding" group="Ungrouped" fullComment="yes" data-isabs="false" visbl="pub"><a id="CumulativeSeatedPlayerNamePadding(base:Long,next:Option[net.psforever.packet.game.objectcreate.StreamBitSize]):Int" class="anchorToMember"></a><a id="CumulativeSeatedPlayerNamePadding(Long,Option[StreamBitSize]):Int" class="anchorToMember"></a> <span class="permalink"><a href="../../../../../net/psforever/packet/game/objectcreate/MountableInventory$.html#CumulativeSeatedPlayerNamePadding(base:Long,next:Option[net.psforever.packet.game.objectcreate.StreamBitSize]):Int" 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">CumulativeSeatedPlayerNamePadding</span><span class="params">(<span name="base">base: <span name="scala.Long" class="extype">Long</span></span>, <span name="next">next: <span name="scala.Option" class="extype">Option</span>[<a href="StreamBitSize.html" name="net.psforever.packet.game.objectcreate.StreamBitSize" id="net.psforever.packet.game.objectcreate.StreamBitSize" class="extype">StreamBitSize</a>]</span>)</span><span class="result">: <span name="scala.Int" class="extype">Int</span></span></span><p class="shortcomment cmt">Increment the distance to the next mounted player's <code>name</code> field with the length of the previous entry,
then calculate the new padding value for that next entry's <code>name</code> field.</p><div class="fullcomment"><div class="comment cmt"><p>Increment the distance to the next mounted player's <code>name</code> field with the length of the previous entry,
then calculate the new padding value for that next entry's <code>name</code> field.</p></div><dl class="paramcmts block"><dt class="param">base</dt><dd class="cmt"><p>the original distance to the last entry</p></dd><dt class="param">next</dt><dd class="cmt"><p>the length of the last entry, if one was parsed</p></dd><dt>returns</dt><dd class="cmt"><p>the padding value, 0-7 bits</p></dd></dl></div></li><li class="indented0 " name="net.psforever.packet.game.objectcreate.MountableInventory#InitialStreamLengthToSeatEntries" group="Ungrouped" fullComment="yes" data-isabs="false" visbl="pub"><a id="InitialStreamLengthToSeatEntries(hasVelocity:Boolean,format:net.psforever.types.VehicleFormat):Long" class="anchorToMember"></a><a id="InitialStreamLengthToSeatEntries(Boolean,VehicleFormat):Long" class="anchorToMember"></a> <span class="permalink"><a href="../../../../../net/psforever/packet/game/objectcreate/MountableInventory$.html#InitialStreamLengthToSeatEntries(hasVelocity:Boolean,format:net.psforever.types.VehicleFormat):Long" 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">InitialStreamLengthToSeatEntries</span><span class="params">(<span name="hasVelocity">hasVelocity: <span name="scala.Boolean" class="extype">Boolean</span></span>, <span name="format">format: <a href="../../../types/VehicleFormat.html" name="net.psforever.types.VehicleFormat" id="net.psforever.types.VehicleFormat" class="extype">VehicleFormat</a></span>)</span><span class="result">: <span name="scala.Long" class="extype">Long</span></span></span><p class="shortcomment cmt">Distance from the length field of a vehicle creation packet up until the start of the vehicle's inventory data.</p><div class="fullcomment"><div class="comment cmt"><p>Distance from the length field of a vehicle creation packet up until the start of the vehicle's inventory data.
The only field excluded belongs to the original opcode for the packet.
The parameters outline reasons why the length of the stream would be different
and are used to determine the exact difference value.<br>
<br>
Note:<br>
198 includes the <code>ObjectCreateMessage</code> packet fields, without parent data,
the <code>VehicleData</code> fields,
and the first three fields of the <code>InternalSlot</code>.</p></div><dl class="paramcmts block"><dt class="param">hasVelocity</dt><dd class="cmt"><p>the presence of a velocity field - <code>vel</code> - in the <code>PlacementData</code> object for this vehicle</p></dd><dt class="param">format</dt><dd class="cmt"><p>the subtype for this vehicle</p></dd><dt>returns</dt><dd class="cmt"><p>the length of the bitstream</p></dd></dl><dl class="attributes block"><dt>See also</dt><dd><span class="cmt"><p><code>ObjectCreateMessage</code></p></span></dd></dl></div></li><li class="indented0 " name="net.psforever.packet.game.objectcreate.MountableInventory#PlayerData" group="Ungrouped" fullComment="yes" data-isabs="false" visbl="pub"><a id="PlayerData(basic_appearance:Int=&gt;net.psforever.packet.game.objectcreate.CharacterAppearanceData,character_data:(Boolean,Boolean)=&gt;net.psforever.packet.game.objectcreate.CharacterData,drawn_slot:net.psforever.packet.game.objectcreate.DrawnSlot.Type,accumulative:Long):net.psforever.packet.game.objectcreate.PlayerData" class="anchorToMember"></a><a id="PlayerData((Int)=&gt;CharacterAppearanceData,(Boolean,Boolean)=&gt;CharacterData,Type,Long):PlayerData" class="anchorToMember"></a> <span class="permalink"><a href="../../../../../net/psforever/packet/game/objectcreate/MountableInventory$.html#PlayerData(basic_appearance:Int=&gt;net.psforever.packet.game.objectcreate.CharacterAppearanceData,character_data:(Boolean,Boolean)=&gt;net.psforever.packet.game.objectcreate.CharacterData,drawn_slot:net.psforever.packet.game.objectcreate.DrawnSlot.Type,accumulative:Long):net.psforever.packet.game.objectcreate.PlayerData" 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">PlayerData</span><span class="params">(<span name="basic_appearance">basic_appearance: (<span name="scala.Int" class="extype">Int</span>) =&gt; <a href="CharacterAppearanceData.html" name="net.psforever.packet.game.objectcreate.CharacterAppearanceData" id="net.psforever.packet.game.objectcreate.CharacterAppearanceData" class="extype">CharacterAppearanceData</a></span>, <span name="character_data">character_data: (<span name="scala.Boolean" class="extype">Boolean</span>, <span name="scala.Boolean" class="extype">Boolean</span>) =&gt; <a href="CharacterData.html" name="net.psforever.packet.game.objectcreate.CharacterData" id="net.psforever.packet.game.objectcreate.CharacterData" class="extype">CharacterData</a></span>, <span name="drawn_slot">drawn_slot: <a href="DrawnSlot$.html#Type=net.psforever.packet.game.objectcreate.DrawnSlot.Value" name="net.psforever.packet.game.objectcreate.DrawnSlot.Type" id="net.psforever.packet.game.objectcreate.DrawnSlot.Type" class="extmbr">Type</a></span>, <span name="accumulative">accumulative: <span name="scala.Long" class="extype">Long</span></span>)</span><span class="result">: <a href="PlayerData.html" name="net.psforever.packet.game.objectcreate.PlayerData" id="net.psforever.packet.game.objectcreate.PlayerData" class="extype">PlayerData</a></span></span><p class="shortcomment cmt">Constructor for <code>PlayerData</code> that ignores the coordinate information and the inventory
and performs a vehicle-unique calculation of the padding value.</p><div class="fullcomment"><div class="comment cmt"><p>Constructor for <code>PlayerData</code> that ignores the coordinate information and the inventory
and performs a vehicle-unique calculation of the padding value.
It passes information between the three major divisions for the purposes of offset calculations.
This constructor should be used for players that are mounted.</p></div><dl class="paramcmts block"><dt class="param">basic_appearance</dt><dd class="cmt"><p>a curried function for the common fields regarding the the character's appearance</p></dd><dt class="param">character_data</dt><dd class="cmt"><p>a curried function for the class-specific data that explains about the character</p></dd><dt class="param">drawn_slot</dt><dd class="cmt"><p>the holster that is initially drawn</p></dd><dt class="param">accumulative</dt><dd class="cmt"><p>the input position for the stream up to which this entry;
used to calculate the padding value for the player's name in <code>CharacterAppearanceData</code></p></dd><dt>returns</dt><dd class="cmt"><p>a <code>PlayerData</code> object</p></dd></dl></div></li><li class="indented0 " name="net.psforever.packet.game.objectcreate.MountableInventory#PlayerData" group="Ungrouped" fullComment="yes" data-isabs="false" visbl="pub"><a id="PlayerData(basic_appearance:Int=&gt;net.psforever.packet.game.objectcreate.CharacterAppearanceData,character_data:(Boolean,Boolean)=&gt;net.psforever.packet.game.objectcreate.CharacterData,inventory:net.psforever.packet.game.objectcreate.InventoryData,drawn_slot:net.psforever.packet.game.objectcreate.DrawnSlot.Type,accumulative:Long):net.psforever.packet.game.objectcreate.PlayerData" class="anchorToMember"></a><a id="PlayerData((Int)=&gt;CharacterAppearanceData,(Boolean,Boolean)=&gt;CharacterData,InventoryData,Type,Long):PlayerData" class="anchorToMember"></a> <span class="permalink"><a href="../../../../../net/psforever/packet/game/objectcreate/MountableInventory$.html#PlayerData(basic_appearance:Int=&gt;net.psforever.packet.game.objectcreate.CharacterAppearanceData,character_data:(Boolean,Boolean)=&gt;net.psforever.packet.game.objectcreate.CharacterData,inventory:net.psforever.packet.game.objectcreate.InventoryData,drawn_slot:net.psforever.packet.game.objectcreate.DrawnSlot.Type,accumulative:Long):net.psforever.packet.game.objectcreate.PlayerData" 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">PlayerData</span><span class="params">(<span name="basic_appearance">basic_appearance: (<span name="scala.Int" class="extype">Int</span>) =&gt; <a href="CharacterAppearanceData.html" name="net.psforever.packet.game.objectcreate.CharacterAppearanceData" id="net.psforever.packet.game.objectcreate.CharacterAppearanceData" class="extype">CharacterAppearanceData</a></span>, <span name="character_data">character_data: (<span name="scala.Boolean" class="extype">Boolean</span>, <span name="scala.Boolean" class="extype">Boolean</span>) =&gt; <a href="CharacterData.html" name="net.psforever.packet.game.objectcreate.CharacterData" id="net.psforever.packet.game.objectcreate.CharacterData" class="extype">CharacterData</a></span>, <span name="inventory">inventory: <a href="InventoryData.html" name="net.psforever.packet.game.objectcreate.InventoryData" id="net.psforever.packet.game.objectcreate.InventoryData" class="extype">InventoryData</a></span>, <span name="drawn_slot">drawn_slot: <a href="DrawnSlot$.html#Type=net.psforever.packet.game.objectcreate.DrawnSlot.Value" name="net.psforever.packet.game.objectcreate.DrawnSlot.Type" id="net.psforever.packet.game.objectcreate.DrawnSlot.Type" class="extmbr">Type</a></span>, <span name="accumulative">accumulative: <span name="scala.Long" class="extype">Long</span></span>)</span><span class="result">: <a href="PlayerData.html" name="net.psforever.packet.game.objectcreate.PlayerData" id="net.psforever.packet.game.objectcreate.PlayerData" class="extype">PlayerData</a></span></span><p class="shortcomment cmt">Constructor that ignores the coordinate information
and performs a vehicle-unique calculation of the padding value.</p><div class="fullcomment"><div class="comment cmt"><p>Constructor that ignores the coordinate information
and performs a vehicle-unique calculation of the padding value.
It passes information between the three major divisions for the purposes of offset calculations.
This constructor should be used for players that are mounted.</p></div><dl class="paramcmts block"><dt class="param">basic_appearance</dt><dd class="cmt"><p>a curried function for the common fields regarding the the character's appearance</p></dd><dt class="param">character_data</dt><dd class="cmt"><p>a curried function for the class-specific data that explains about the character</p></dd><dt class="param">inventory</dt><dd class="cmt"><p>the player's inventory</p></dd><dt class="param">drawn_slot</dt><dd class="cmt"><p>the holster that is initially drawn</p></dd><dt class="param">accumulative</dt><dd class="cmt"><p>the input position for the stream up to which this entry;
used to calculate the padding value for the player's name in <code>CharacterAppearanceData</code></p></dd><dt>returns</dt><dd class="cmt"><p>a <code>PlayerData</code> object</p></dd></dl></div></li><li class="indented0 " name="scala.Any#asInstanceOf" group="Ungrouped" fullComment="yes" data-isabs="false" visbl="pub"><a id="asInstanceOf[T0]:T0" class="anchorToMember"></a> <span class="permalink"><a href="../../../../../net/psforever/packet/game/objectcreate/MountableInventory$.html#asInstanceOf[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">asInstanceOf</span><span class="tparams">[<span name="T0">T0</span>]</span><span class="result">: <span name="scala.Any.asInstanceOf.T0" class="extype">T0</span></span></span><div class="fullcomment"><dl class="attributes block"><dt>Definition Classes</dt><dd>Any</dd></dl></div></li><li class="indented0 " name="scala.AnyRef#clone" group="Ungrouped" fullComment="yes" data-isabs="false" visbl="prt"><a id="clone():Object" class="anchorToMember"></a><a id="clone():AnyRef" class="anchorToMember"></a> <span class="permalink"><a href="../../../../../net/psforever/packet/game/objectcreate/MountableInventory$.html#clone():Object" 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">clone</span><span class="params">()</span><span class="result">: <span name="scala.AnyRef" class="extype">AnyRef</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="defval">classOf[java.lang.CloneNotSupportedException]</span></span>)</span> <span class="name">@native</span><span class="args">()</span> </dd></dl></div></li><li class="indented0 " name="net.psforever.packet.game.objectcreate.MountableInventory#custom_inventory_codec" group="Ungrouped" fullComment="yes" data-isabs="false" visbl="pub"><a id="custom_inventory_codec(length:Long):scodec.Codec[net.psforever.packet.game.objectcreate.InventoryData]" class="anchorToMember"></a><a id="custom_inventory_codec(Long):Codec[InventoryData]" class="anchorToMember"></a> <span class="permalink"><a href="../../../../../net/psforever/packet/game/objectcreate/MountableInventory$.html#custom_inventory_codec(length:Long):scodec.Codec[net.psforever.packet.game.objectcreate.InventoryData]" 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">custom_inventory_codec</span><span class="params">(<span name="length">length: <span name="scala.Long" class="extype">Long</span></span>)</span><span class="result">: <span name="scodec.Codec" class="extype">Codec</span>[<a href="InventoryData.html" name="net.psforever.packet.game.objectcreate.InventoryData" id="net.psforever.packet.game.objectcreate.InventoryData" class="extype">InventoryData</a>]</span></span><p class="shortcomment cmt">A special method of handling mounted players within the same inventory space as normal <code>Equipment</code> can be encountered
before restoring normal inventory operations.<br>
<br>
Due to variable-length fields within <code>PlayerData</code> extracted from the input,
the distance of the bit(stream) vector to the initial inventory entry is calculated
to produce the initial value for padding the <code>PlayerData</code> object's name field.</p><div class="fullcomment"><div class="comment cmt"><p>A special method of handling mounted players within the same inventory space as normal <code>Equipment</code> can be encountered
before restoring normal inventory operations.<br>
<br>
Due to variable-length fields within <code>PlayerData</code> extracted from the input,
the distance of the bit(stream) vector to the initial inventory entry is calculated
to produce the initial value for padding the <code>PlayerData</code> object's name field.
After player-related entries have been extracted and processed in isolation,
the remainder of the inventory must be handled as standard inventory
and finally both groups must be repackaged into a single standard <code>InventoryData</code> object.
Due to the unique value for the mounted players that must be updated for each entry processed,
the entries are temporarily formatted into a linked list before being put back into a normal <code>List</code>.<br>
<br>
6 June 2018:<br>
Due to curious behavior in the vehicle mount access controls,
please only encode and decode the driver mount even though all seats are currently reachable.</p></div><dl class="paramcmts block"><dt class="param">length</dt><dd class="cmt"><p>the distance in bits to the first inventory entry</p></dd><dt>returns</dt><dd class="cmt"><p>a <code>Codec</code> that translates <code>InventoryData</code></p></dd></dl></div></li><li class="indented0 " name="net.psforever.packet.game.objectcreate.MountableInventory#custom_inventory_codec" group="Ungrouped" fullComment="yes" data-isabs="false" visbl="pub"><a id="custom_inventory_codec(hasVelocity:Boolean,format:net.psforever.types.VehicleFormat):scodec.Codec[net.psforever.packet.game.objectcreate.InventoryData]" class="anchorToMember"></a><a id="custom_inventory_codec(Boolean,VehicleFormat):Codec[InventoryData]" class="anchorToMember"></a> <span class="permalink"><a href="../../../../../net/psforever/packet/game/objectcreate/MountableInventory$.html#custom_inventory_codec(hasVelocity:Boolean,format:net.psforever.types.VehicleFormat):scodec.Codec[net.psforever.packet.game.objectcreate.InventoryData]" 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">custom_inventory_codec</span><span class="params">(<span name="hasVelocity">hasVelocity: <span name="scala.Boolean" class="extype">Boolean</span></span>, <span name="format">format: <a href="../../../types/VehicleFormat.html" name="net.psforever.types.VehicleFormat" id="net.psforever.types.VehicleFormat" class="extype">VehicleFormat</a></span>)</span><span class="result">: <span name="scodec.Codec" class="extype">Codec</span>[<a href="InventoryData.html" name="net.psforever.packet.game.objectcreate.InventoryData" id="net.psforever.packet.game.objectcreate.InventoryData" class="extype">InventoryData</a>]</span></span><p class="shortcomment cmt">A special method of handling mounted players within the same inventory space as normal <code>Equipment</code> can be encountered
before restoring normal inventory operations.</p><div class="fullcomment"><div class="comment cmt"><p>A special method of handling mounted players within the same inventory space as normal <code>Equipment</code> can be encountered
before restoring normal inventory operations.</p></div><dl class="paramcmts block"><dt class="param">hasVelocity</dt><dd class="cmt"><p>the presence of a velocity field - <code>vel</code> - in the <code>PlacementData</code> object for this vehicle</p></dd><dt class="param">format</dt><dd class="cmt"><p>the subtype for this vehicle</p></dd><dt>returns</dt><dd class="cmt"><p>a <code>Codec</code> that translates <code>InventoryData</code></p></dd></dl><dl class="attributes block"><dt>See also</dt><dd><span class="cmt"><p><code>custom_inventory_codec(Long)</code></p></span><span class="cmt"><p><code>InitialStreamLengthToSeatEntries(Boolean, VehicleFormat)</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" class="anchorToMember"></a><a id="eq(AnyRef):Boolean" class="anchorToMember"></a> <span class="permalink"><a href="../../../../../net/psforever/packet/game/objectcreate/MountableInventory$.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" class="anchorToMember"></a><a id="equals(AnyRef):Boolean" class="anchorToMember"></a> <span class="permalink"><a href="../../../../../net/psforever/packet/game/objectcreate/MountableInventory$.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" class="anchorToMember"></a> <span class="permalink"><a href="../../../../../net/psforever/packet/game/objectcreate/MountableInventory$.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[_]" class="anchorToMember"></a><a id="getClass():Class[_&lt;:AnyRef]" class="anchorToMember"></a> <span class="permalink"><a href="../../../../../net/psforever/packet/game/objectcreate/MountableInventory$.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</sp