# PSF-LoginServer - master - net.psforever.objects.avatar.DeployableToolbox
PSF - LoginServer - master - net.psforever.objects.avatar.DeployableToolbox
Keywords: PSF LoginServer master net.psforever.objects.avatar.DeployableToolbox

PSF-LoginServer - master < Back


# Packages

-  package root
  Definition Classes
    root
-  package net
  Definition Classes
    root
-  package psforever
  Definition Classes
    net
-  package objects
  Definition Classes
    psforever
-  package avatar
  Definition Classes
    objects
- Avatar
- Avatars
- BattleRank
- Certification
- CommandRank
- CorpseControl
- Cosmetic
- DeployableToolbox
- FirstTimeEvents
- Implant
- LoadoutManager
- PlayerControl
- SpecialCarry

c

net.psforever.objects.avatar

# DeployableToolbox 

###
Companion object DeployableToolbox

#### class DeployableToolbox extends AnyRef

A class that keeps track - "manages" - deployables that are owned by the avatar.
Deployables belong to the Engineering certification line of certifications. `CombatEngineering` and above certifications include permissions for different types of deployables, and one unique type of deployable is available through the `GroundSupport` and one that also requires `AdvancedHacking`. (They are collectively called "ce" for that reason.)
Not only does the level of certification change the maximum number of deployables that can be managed by type but it also influences the maximum number of deployables that can be managed by category. Individual deployables are counted by type and category individually in special data structures to avoid having to probe the primary list of deployable references whenever a question of quantity is asked. As deployables are added and removed, and tracked certifications are added and removed, these structures are updated to reflect proper count. For example, the greatest number of spitfire turrets that can be placed is 15 (individual count) and the greatest number of shadow turrets and cerebus turrets that can be placed is 5 each (individual counts) but the maximum number of small turrets that can be placed overall is only 15 (categorical count). Spitfire turrets, shadow turrets, and cerebus turrets are all included in the category of small turrets.

Source
  DeployableToolbox.scala

Linear Supertypes
AnyRef, Any

Ordering

1. Alphabetic
2. By Inheritance

Inherited

1. DeployableToolbox
2. AnyRef
3. Any

1. Hide All
2. Show All

Visibility

1. Public
2. Protected

### Instance Constructors

1.  new DeployableToolbox()

### Value Members

1.  final def !=(arg0: Any): Boolean
   Definition Classes
     AnyRef → Any
2.  final def ##: Int
   Definition Classes
     AnyRef → Any
3.  final def ==(arg0: Any): Boolean
   Definition Classes
     AnyRef → Any
4.  def Accept(obj: AcceptableDeployable): Boolean

   Determine if the given deployable can be managed by this toolbox.

   Determine if the given deployable can be managed by this toolbox.

   obj

     the deployable

   returns

     `true`, if it can be managed under the current conditions; `false`, otherwise

   See also

     `Valid`

     `Available`

     `Contains`

5.  def Add(obj: AcceptableDeployable): Boolean

   Manage the provided deployable.
   Although proper testing should be performed prior to attempting to add the deployable to this toolbox, three tests are administered to determine whether space is available prior to insertion.

   Manage the provided deployable.
   Although proper testing should be performed prior to attempting to add the deployable to this toolbox, three tests are administered to determine whether space is available prior to insertion. The first two tests check for available space in the category count and in the unit count and the third test checks whether the deployable is already being managed by this toolbox. No changes should occur if the deployable is not properly added.

   obj

     the deployable

   returns

     `true`, if the deployable is added; `false`, otherwise

6.  def AddOverLimit(obj: AcceptableDeployable): Boolean

   Manage the provided deployable, the maximum number of governable units be damned.

   Manage the provided deployable, the maximum number of governable units be damned. It still needs to be a unique unit of a governable deployable type, however.

   obj

     the deployable

   returns

     `true`, if the deployable is added; `false`, otherwise

7.  def Available(obj: AcceptableDeployable): Boolean

   Determine if the given deployable can be managed by this toolbox by testing if the specific deployable list and the deployable category list have available slots.

   Determine if the given deployable can be managed by this toolbox by testing if the specific deployable list and the deployable category list have available slots. In this case, a "slot" is merely the difference between the current count is less than the maximum count.

   obj

     the deployable

   returns

     `true`, if the deployable can be added to the support lists and counted; `false`, otherwise

8.  def Category(filter: ce.DeployableCategory.Value): List[PlanetSideGUID]

   Reference all managed deployables in the same category.

   Reference all managed deployables in the same category.

   filter

     the type of deployable

   returns

     a list of globally unique identifiers that should be valid for the current zone

9.  def Category(filter: AcceptableDeployable): List[PlanetSideGUID]

   Reference all managed deployables in the same category as an example deployable.

   Reference all managed deployables in the same category as an example deployable.

   filter

     the example deployable

   returns

     a list of globally unique identifiers that should be valid for the current zone

10.  def Clear(): List[PlanetSideGUID]

    Remove all managed deployables.

    Remove all managed deployables.

    returns

      a list of globally unique identifiers that should be valid for the current zone

11.  def ClearCategory(item: ce.DeployedItem.Value): List[PlanetSideGUID]

    Remove all managed deployables that belong to the same category.

    Remove all managed deployables that belong to the same category.

    item

      the deployable type belonging to a category

    returns

      a list of globally unique identifiers that should be valid for the current zone

12.  def ClearDeployable(item: ce.DeployedItem.Value): List[PlanetSideGUID]

    Remove all managed deployables that are the same type.

    Remove all managed deployables that are the same type.

    item

      the deployable type

    returns

      a list of globally unique identifiers that should be valid for the current zone

13.  def Contains(obj: AcceptableDeployable): Boolean

    Check if this deployable is already being managed by the toolbox by determining whether or not it is already being managed by this toolbox.

    Check if this deployable is already being managed by the toolbox by determining whether or not it is already being managed by this toolbox.

    obj

      the deployable

    returns

      `true`, if the deployable can be found in one of the lists; `false`, otherwise

14.  def CountCategory(item: ce.DeployedItem.Value): (Int, Int)

    Check the current capacity for the same category of deployable as the example.

    Check the current capacity for the same category of deployable as the example.

    item

      the example deployable

    returns

      the current quantity of deployables and the maximum number

15.  def CountDeployable(item: ce.DeployedItem.Value): (Int, Int)

    Check the current capacity for the same type of deployable as the example.

    Check the current capacity for the same type of deployable as the example.

    item

      the example deployable

    returns

      the current quantity of deployables and the maximum number

16.  def Deployables(filter: ce.DeployedItem.Value): List[PlanetSideGUID]

    Reference all managed deployables of the same type.

    Reference all managed deployables of the same type.

    filter

      the type of deployable

    returns

      a list of globally unique identifiers that should be valid for the current zone

17.  def Deployables(filter: AcceptableDeployable): List[PlanetSideGUID]

    Reference all managed deployables of the same type as an example deployable.

    Reference all managed deployables of the same type as an example deployable.

    filter

      the example deployable

    returns

      a list of globally unique identifiers that should be valid for the current zone

18.  def DisplaceFirst(category: ce.DeployableCategory.Value): Option[AcceptableDeployable]

    Remove the first managed deployable from a category.

    Remove the first managed deployable from a category. The only test performed is whether there is any valid deployable managed for the category.

    category

      the target category

    returns

      any deployable that is found

19.  def DisplaceFirst(obj: AcceptableDeployable, rule: (Deployable) => Boolean): Option[AcceptableDeployable]

    Remove the first managed deployable that satisfies a test and belongs to the same category as the example.

    Remove the first managed deployable that satisfies a test and belongs to the same category as the example. The test in question is used to pinpoint the first qualifying deployable; but, if the test fails to find any valid targets, the first deployable in the list of managed deployables for that category is selected to be removed. The only test performed is whether there is any valid deployable managed for the category.

    obj

      the example deployable

    rule

      the testing rule for determining a valid deployable

    returns

      any deployable that is found

20.  def DisplaceFirst(obj: AcceptableDeployable): Option[AcceptableDeployable]

    Remove the first managed deployable that matches the same type of deployable as the example.

    Remove the first managed deployable that matches the same type of deployable as the example. The explicit tests is defined to find the first deployable whose type matches.

    obj

      the example deployable

    returns

      any deployable that is found

21.  def Initialize(certifications: Set[Certification]): Boolean

    Set up the initial deployable counts by providing certification values to be used in category and unit selection.

    Set up the initial deployable counts by providing certification values to be used in category and unit selection.

    certifications

      a group of certifications for the initial values

    returns

      `true`, if this is the first time and actual "initialization" is performed; `false`, otherwise

22.  def Remove(obj: AcceptableDeployable): Boolean

    Stop managing the provided deployable.
    Although proper testing should be performed prior to attempting to remove the deployable to this toolbox, a single test is administered to determine whether the removal can take place.

    Stop managing the provided deployable.
    Although proper testing should be performed prior to attempting to remove the deployable to this toolbox, a single test is administered to determine whether the removal can take place. If the deployable is found to currently being managed by this toolbox, then it is properly removed. No changes should occur if the deployable is not properly removed.

    obj

      the deployable

    returns

      `true`, if the deployable is removed; `false`, otherwise

23.  def UpdateMaxCounts(certifications: Set[Certification]): Unit
24.  def UpdateUI(certifications: List[Certification]): List[(Int, Int, Int, Int)]
25.  def UpdateUI(entry: Certification): List[(Int, Int, Int, Int)]
26.  def UpdateUI(): List[(Int, Int, Int, Int)]
27.  def UpdateUIElement(entry: ce.DeployedItem.Value): List[(Int, Int, Int, Int)]
28.  def Valid(obj: AcceptableDeployable): Boolean

    Determine if the given deployable can be managed by this toolbox by testing if the specific deployable maximum and the deployable category maximum is non-zero

    Determine if the given deployable can be managed by this toolbox by testing if the specific deployable maximum and the deployable category maximum is non-zero

    obj

      the deployable

    returns

      `true`, if both category maximum and deployable type maximum are positive non-zero integers; `false`, otherwise

29.  final def asInstanceOf[T0]: T0
    Definition Classes
      Any
30.  def clone(): AnyRef
    Attributes
      protected[lang]
    Definition Classes
      AnyRef
    Annotations
      @throws(classOf[java.lang.CloneNotSupportedException]) @native()
31.  final def eq(arg0: AnyRef): Boolean
    Definition Classes
      AnyRef
32.  def equals(arg0: AnyRef): Boolean
    Definition Classes
      AnyRef → Any
33.  def finalize(): Unit
    Attributes
      protected[lang]
    Definition Classes
      AnyRef
    Annotations
      @throws(classOf[java.lang.Throwable])
34.  final def getClass(): Class[_ <: AnyRef]
    Definition Classes
      AnyRef → Any
    Annotations
      @native()
35.  def hashCode(): Int
    Definition Classes
      AnyRef → Any
    Annotations
      @native()
36.  final def isInstanceOf[T0]: Boolean
    Definition Classes
      Any
37.  final def ne(arg0: AnyRef): Boolean
    Definition Classes
      AnyRef
38.  final def notify(): Unit
    Definition Classes
      AnyRef
    Annotations
      @native()
39.  final def notifyAll(): Unit
    Definition Classes
      AnyRef
    Annotations
      @native()
40.  final def synchronized[T0](arg0: => T0): T0
    Definition Classes
      AnyRef
41.  def toString(): String
    Definition Classes
      AnyRef → Any
42.  final def wait(): Unit
    Definition Classes
      AnyRef
    Annotations
      @throws(classOf[java.lang.InterruptedException])
43.  final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
      AnyRef
    Annotations
      @throws(classOf[java.lang.InterruptedException])
44.  final def wait(arg0: Long): Unit
    Definition Classes
      AnyRef
    Annotations
      @throws(classOf[java.lang.InterruptedException]) @native()

### Inherited from AnyRef

### Inherited from Any

### Ungrouped