Skip to content

Class: CollisionSystem

CollisionSystem watches for collisions between entities with Colliders and Transforms. It uses a number of algorithms to first do a broad sweep of possible collisions, then do a narrow sweep of the possible collisions to determine actual collisions and info around them. Once it has determined all collisions, it broadcasts them as messages.

Hierarchy

Table of contents

Constructors

Properties

Methods

Constructors

constructor

+ new CollisionSystem(messageBus: IMessageBus, layerPairs?: [string, string][], scene?: IScene, narrowAlgorithm?: ICollisionAlgorithm, broadAlgorithm?: ICollisionAlgorithm, colliding?: Collision[], entities?: SystemEntity[], subscriberID?: number): CollisionSystem

Parameters:

Name Type
messageBus IMessageBus
layerPairs [string, string][]
scene? IScene
narrowAlgorithm ICollisionAlgorithm
broadAlgorithm ICollisionAlgorithm
colliding Collision[]
entities? SystemEntity[]
subscriberID? number

Returns: CollisionSystem

Inherited from: ArraySystem

Properties

entities

Protected entities: SystemEntity[]

The list of entities the system is tracking.

Inherited from: ArraySystem.entities


messageBus

Protected messageBus: IMessageBus

Reference to the message bus, the fundamental piece of JamJar for communicating with other parts of the engine.

Inherited from: ArraySystem.messageBus


scene

Protected Optional scene: undefined | IScene

Any scene this system is part of, will change the lifecycle of the system to be part of the scene's lifecycle - it will be destroyed when the scene is destroyed.

Inherited from: ArraySystem.scene


subscriberID

subscriberID: number

Inherited from: ArraySystem.subscriberID


DESCRIPTOR_COLLISION_ENTER

Readonly Static DESCRIPTOR_COLLISION_ENTER: collision_enter= "collision_enter"

Descriptor of a script triggered when a collision enter occurs.


DESCRIPTOR_COLLISION_EXIT

Readonly Static DESCRIPTOR_COLLISION_EXIT: collision_exit= "collision_exit"

Descriptor of a script triggered when a collision exit occurs.


MESSAGE_COLLISION_ENTER

Readonly Static MESSAGE_COLLISION_ENTER: collision_enter= "collision_enter"

Message published when a collision enter occurs.


MESSAGE_COLLISION_EXIT

Readonly Static MESSAGE_COLLISION_EXIT: collision_exit= "collision_exit"

Message published when a collision exit occurs.


MESSAGE_DEREGISTER

Readonly Static MESSAGE_DEREGISTER: stateful_system_deregister= "stateful_system_deregister"

Message to deregister an entity + components with a system so it is no longer tracked.

Inherited from: ArraySystem.MESSAGE_DEREGISTER


MESSAGE_REGISTER

Readonly Static MESSAGE_REGISTER: stateful_system_register= "stateful_system_register"

Message to register an entity + components with a system so it can be tracked.

Inherited from: ArraySystem.MESSAGE_REGISTER


MESSAGE_UPDATE

Readonly Static MESSAGE_UPDATE: system_update= "system_update"

Inherited from: ArraySystem.MESSAGE_UPDATE

Methods

Destroy

Destroy(): void

Destroy destroys the System and unsubscribes it from all messages. The System should be garbage collected after this, unless a direct reference to it exists somewhere. Therefore direct references to systems are discouraged; communication should all be through the message bus.

Returns: void

Inherited from: ArraySystem


OnDestroy

ProtectedOnDestroy(): void

Custom Destroy logic should go here to facilitate garbage collection, for example removing listeners.

Returns: void

Inherited from: ArraySystem


OnMessage

OnMessage(message: IMessage): void

Parameters:

Name Type
message IMessage

Returns: void

Inherited from: ArraySystem


Update

Update(): void

Returns: void

Overrides: ArraySystem


register

Protectedregister(entity: IEntity, components: Component[]): void

Parameters:

Name Type
entity IEntity
components Component[]

Returns: void

Inherited from: ArraySystem


remove

Protectedremove(entity: IEntity): void

Parameters:

Name Type
entity IEntity

Returns: void

Inherited from: ArraySystem