Most weapons will have only one ammunition slot and swap different ammunition into it as needed.</p><divclass="fullcomment"><divclass="comment cmt"><p>The <code>FireModeSlot</code> can be called the "magazine feed," an abstracted "ammunition slot."
Most weapons will have only one ammunition slot and swap different ammunition into it as needed.
In general to swap ammunition means to unload the onld ammunition and load the new ammunition.
Many weapons also have one ammunition slot and multiple fire modes using the same list of ammunition
This slot manages either of two ammunitions where one does not need to unload to be swapped to the other;
however, the fire mod has most likely been changed.
The Punisher -
six ammunition types in total,
two uniquely different types without unloading,
two exclusive groups of ammunition divided into 2 cycled types and 4 cycled types -
is an example of a weapon that benefits from this implementation.
</p></div></div></li></ol></div><divclass="values members"><h3>Value Members</h3><ol><liclass="indented0 "name="scala.AnyRef#!="group="Ungrouped"fullComment="yes"data-isabs="false"visbl="pub"><aid="!=(x$1:Any):Boolean"></a><aid="!=(Any):Boolean"></a><spanclass="permalink"><ahref="../../../net/psforever/objects/Tool$.html#!=(x$1:Any):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"title="gt4s: $bang$eq">!=</span><spanclass="params">(<spanname="arg0">arg0: <spanname="scala.Any"class="extype">Any</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###"group="Ungrouped"fullComment="yes"data-isabs="false"visbl="pub"><aid="##:Int"></a><spanclass="permalink"><ahref="../../../net/psforever/objects/Tool$.html###:Int"title="Permalink"><iclass="material-icons"></i></a></span><spanclass="modifier_kind"><spanclass="modifier">final </span><spanclass="kind">def</span></span><spanclass="symbol"><spanclass="name"title="gt4s: $hash$hash">##</span><spanclass="result">: <spanname="scala.Int"class="extype">Int</span></span></span><divclass="fullcomment"><dlclass="attributes block"><dt>Definition Classes</dt><dd>AnyRef → Any</dd></dl></div></li><liclass="indented0 "name="scala.AnyRef#=="group="Ungrouped"fullComment="yes"data-isabs="false"visbl="pub"><aid="==(x$1:Any):Boolean"></a><aid="==(Any):Boolean"></a><spanclass="permalink"><ahref="../../../net/psforever/objects/Tool$.html#==(x$1:Any):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"title="gt4s: $eq$eq">==</span><spanclass="params">(<spanname="arg0">arg0: <spanname="scala.Any"class="extype">Any</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="net.psforever.objects.Tool#LoadDefinition"group="Ungrouped"fullComment="yes"data-isabs="false"visbl="pub"><aid="LoadDefinition(tool:net.psforever.objects.Tool,tdef:net.psforever.objects.definition.ToolDefinition):Unit"></a><aid="LoadDefinition(Tool,ToolDefinition):Unit"></a><spanclass="permalink"><ahref="../../../net/psforever/objects/Tool$.html#LoadDefinition(tool:net.psforever.objects.Tool,tdef:net.psforever.objects.definition.ToolDefinition):Unit"title="Permalink"><iclass="material-icons"></i></a></span><spanclass="modifier_kind"><spanclass="modifier"></span><spanclass="kind">def</span></span><spanclass="symbol"><spanclass="name">LoadDefinition</span><spanclass="params">(<spanname="tool">tool: <ahref="Tool.html"name="net.psforever.objects.Tool"id="net.psforever.objects.Tool"class="extype">Tool</a></span>, <spanname="tdef">tdef: <ahref="definition/ToolDefinition.html"name="net.psforever.objects.definition.ToolDefinition"id="net.psforever.objects.definition.ToolDefinition"class="extype">ToolDefinition</a></span>)</span><spanclass="result">: <spanname="scala.Unit"class="extype">Unit</span></span></span><pclass="shortcomment cmt">Substitute this <code>Definition</code> for the one that was originally provided for this entity.</p><divclass="fullcomment"><divclass="comment cmt"><p>Substitute this <code>Definition</code> for the one that was originally provided for this entity.
Calling this will not reconstruct the internal fields of the entity.</p></div><dlclass="paramcmts block"><dtclass="param">tool</dt><ddclass="cmt"><p>the <code>Tool</code> being modified</p></dd><dtclass="param">tdef</dt><ddclass="cmt"><p>the definition used to override the definition that was previously assigned this <code>Tool</code>;
WILL override the assignment in the original constructor</p></dd></dl></div></li><liclass="indented0 "name="net.psforever.objects.Tool#LoadDefinition"group="Ungrouped"fullComment="yes"data-isabs="false"visbl="pub"><aid="LoadDefinition(tool:net.psforever.objects.Tool):Unit"></a><aid="LoadDefinition(Tool):Unit"></a><spanclass="permalink"><ahref="../../../net/psforever/objects/Tool$.html#LoadDefinition(tool:net.psforever.objects.Tool):Unit"title="Permalink"><iclass="material-icons"></i></a></span><spanclass="modifier_kind"><spanclass="modifier"></span><spanclass="kind">def</span></span><spanclass="symbol"><spanclass="name">LoadDefinition</span><spanclass="params">(<spanname="tool">tool: <ahref="Tool.html"name="net.psforever.objects.Tool"id="net.psforever.objects.Tool"class="extype">Tool</a></span>)</span><spanclass="result">: <spanname="scala.Unit"class="extype">Unit</span></span></span><pclass="shortcomment cmt">Use the <code>*Definition</code> that was provided to this object to initialize its fields and settings.</p><divclass="fullcomment"><divclass="comment cmt"><p>Use the <code>*Definition</code> that was provided to this object to initialize its fields and settings.</p></div><dlclass="paramcmts block"><dtclass="param">tool</dt><ddclass="cmt"><p>the <code>Tool</code> being initialized</p></dd></dl></div></li><liclass="indented0 "name="net.psforever.objects.Tool#apply"group="Ungrouped"fullComment="no"data-isabs="false"visbl="pub"><aid="apply(toolDef:net.psforever.objects.definition.ToolDefinition):net.psforever.objects.Tool"></a><aid="apply(ToolDefinition):Tool"></a><spanclass="permalink"><ahref="../../../net/psforever/objects/Tool$.html#apply(toolDef:net.psforever.objects.definition.ToolDefinition):net.psforever.objects.Tool"title="Permalink"><iclass="material-icons"></i></a></span><spanclass="modifier_kind"><spanclass="modifier"></span><spanclass="kind">def</span></span><spanclass="symbol"><spanclass="name">apply</span><spanclass="params">(<spanname="toolDef">toolDef: <ahref="definition/ToolDefinition.html"name="net.psforever.objects.definition.ToolDefinition"id="net.psforever.objects.definition.ToolDefinition"class="extype">ToolDefinition</a></span>)</span><spanclass="result">: <ahref="Tool.html"name="net.psforever.objects.Tool"id="net.psforever.objects.Tool"class="extype">Tool</a></span></span></li><liclass="indented0 "name="scala.Any#asInstanceOf"group="Ungrouped"fullComment="yes"data-isabs="false"visbl="pub"><aid="asInstanceOf[T0]:T0"></a><spanclass="permalink"><ahref="../../../net/psforever/objects/Tool$.html#asInstanceOf[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">asInstanceOf</span><spanclass="tparams">[<spanname="T0">T0</span>]</span><spanclass="result">: <spanname="scala.Any.asInstanceOf.T0"class="extype">T0</span></span></span><divclass="fullcomment"><dlclass="attributes block"><dt>Definition Classes</dt><dd>Any</dd></dl></div></li><liclass="indented0 "name="scala.AnyRef#clone"group="Ungrouped"fullComment="yes"data-isabs="false"visbl="prt"><aid="clone():Object"></a><aid="clone():AnyRef"></a><spanclass="permalink"><ahref="../../../net/psforever/objects/Tool$.html#clone():Object"title="Permalink"><iclass="material-icons"></i></a></span><spanclass="modifier_kind"><spanclass="modifier"></span><spanclass="kind">def</span></span><spanclass="symbol"><spanclass="name">clone</span><spanclass="params">()</span><spanclass="result">: <spanname="scala.AnyRef"class="extype">AnyRef</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="defval">classOf[java.lang.CloneNotSupportedExceptio