Packages

final case class ObjectCreateMessage(streamLength: Long, objectClass: Int, guid: PlanetSideGUID, parentInfo: Option[ObjectCreateMessageParent], data: ConstructorData) extends PlanetSideGamePacket with Product with Serializable

Communicate with the client that a certain object with certain properties is to be created. In general, ObjectCreateMessage and its counterpart ObjectCreateDetailedMessage should look similar.

ObjectCreateMessage is capable of creating every non-environmental object in the game through the use of encoding patterns. The objects produced by this packet generally do not always fully express all the complexities of the object class. With respect to a client's avatar, all of the items in his inventory are given thorough detail so that the client can account for their interaction. The "shallow" objects produced by this packet are not like that. They express only the essential information necessary for client interaction when the client interacts with them. For example, a weapon defined by this packet may not care internally what fire mode it is in or how much ammunition it has. Such a weapon is not in the client's player's holster or inventory. It is imperceptive information to which he would not currently have access. An 0x17 game object is, therefore, a game object with only the essential data exposed.

When interacting with an 0x17 game object, the server will swap back and forth between it and an 0x18 object. (Or it will be removed when it is placed somewhere a given client will no longer be able to see it.) The purpose of this conversion is to control network traffic and object agency. It is not necessary to keep track of all objects on every player on every client individually. This relates to the goal of this packet exposing only "essential data." One player does not need to know how much ammunition remains in a weapon belonging to another player normally. One player also does not need to know how much ammunition is used up when another player reloads their weapon. The only way the first player will know is when the weapon is transferred into his own inventory. All other clients are spared micromanagement of the hypothetical other player's weapon. Updated information is only made available when and where it is needed.

Knowing the object's type is necessary for proper parsing. If the object does not have encoding information or is unknown, it will not translate between byte data and a game object.

streamLength

the total length of the data that composes this packet in bits; exclude the opcode (1 byte) and end padding (0-7 bits); when encoding, it will be calculated automatically

objectClass

the code for the type of object being constructed; always an 11-bit LE value

guid

the GUID this object will be assigned

parentInfo

if defined, the relationship between this object and another object (its parent)

data

the data used to construct this type of object; on decoding, set to None if the process failed

Source
ObjectCreateMessage.scala
See also

ObjectCreateDetailedMessage

ObjectCreateMessageParent

Linear Supertypes
Product, Equals, PlanetSideGamePacket, PlanetSidePacket, Serializable, AnyRef, Any
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. ObjectCreateMessage
  2. Product
  3. Equals
  4. PlanetSideGamePacket
  5. PlanetSidePacket
  6. Serializable
  7. AnyRef
  8. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. Protected

Instance Constructors

  1. new ObjectCreateMessage(streamLength: Long, objectClass: Int, guid: PlanetSideGUID, parentInfo: Option[ObjectCreateMessageParent], data: ConstructorData)

    streamLength

    the total length of the data that composes this packet in bits; exclude the opcode (1 byte) and end padding (0-7 bits); when encoding, it will be calculated automatically

    objectClass

    the code for the type of object being constructed; always an 11-bit LE value

    guid

    the GUID this object will be assigned

    parentInfo

    if defined, the relationship between this object and another object (its parent)

    data

    the data used to construct this type of object; on decoding, set to None if the process failed

Type Members

  1. type Packet = ObjectCreateMessage

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. final def asInstanceOf[T0]: T0
    Definition Classes
    Any
  5. def clone(): AnyRef
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.CloneNotSupportedException]) @native()
  6. val data: ConstructorData
  7. def encode: Attempt[BitVector]
  8. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  9. def finalize(): Unit
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.Throwable])
  10. final def getClass(): Class[_ <: AnyRef]
    Definition Classes
    AnyRef → Any
    Annotations
    @native()
  11. val guid: PlanetSideGUID
  12. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  13. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  14. final def notify(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  15. final def notifyAll(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  16. val objectClass: Int
  17. def opcode: GamePacketOpcode.Value
  18. val parentInfo: Option[ObjectCreateMessageParent]
  19. def productElementNames: Iterator[String]
    Definition Classes
    Product
  20. val streamLength: Long
  21. final def synchronized[T0](arg0: => T0): T0
    Definition Classes
    AnyRef
  22. final def wait(): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])
  23. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])
  24. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException]) @native()

Inherited from Product

Inherited from Equals

Inherited from PlanetSideGamePacket

Inherited from PlanetSidePacket

Inherited from Serializable

Inherited from AnyRef

Inherited from Any

Ungrouped