API Documentation for: 0.11.8
Show:

platypus.components.ComponentSwitcher Class

This component listens for messages and, according to its preset settings, will remove and add components to the entity. This is useful if certain events should modify the behavior of the entity in some way: for example, acquiring a pogo-stick might add a jumping component so the hero can jump.

Methods

'*'

()

Defined in '*':62

Message(s) listed by componentMap will add or remove components.

'prepare-logic'

()

Defined in 'prepare-logic':74

This component handles component-switching on this call so that it doesn't interfere with the "handle-logic" loop.

addEventListener

(
  • event
  • callback
)
Function private
This method adds an event listener to the entity.

Parameters:

  • event String
    The event that this component should listen for.
  • callback Function
    The handler for the event.

Returns:

Function: handler A reference to the bound handler.

addMethod

(
  • name
  • func
)
private
This method adds a method to the entity.

Parameters:

  • name String
    The name of the method. For example, if name is "turnYellow", the method is accessible on the entity as entity.turnYellow().
  • func Function
    The function describing the method.

destroy

() private

Inherited from platypus.Component: destroy:54

This method cleans up listeners and methods that this component added to the entity. It should never be called by the component itself. Call this.owner.removeComponent(this) instead.

getAssetList

(
  • definition
  • properties
  • defaultProperties
)
Array
This method can be overwritten to provide the list of assets this component requires. This method is invoked when the list of game scenes is created to determine assets for each scene.

Parameters:

  • definition Object
    The definition for the component.
  • properties Object
    The properties of the Entity.
  • defaultProperties Object
    The default properties of the Entity.

Returns:

Array: A list of the necessary assets to load.

getLateAssetList

(
  • data
)
Array
This method can be overwritten to provide the list of assets this component requires. This method is invoked when the list of game scenes is created to determine assets for each scene.

Parameters:

  • data Object
    Scene data that affects the list of assets.

Returns:

Array: A list of the necessary assets to load.

removeEventListener

(
  • event
  • callback
)
private
This method removes an event listener from the entity.

Parameters:

  • event String
    The event for which to remove a listener.
  • callback Function
    The listener to remove. If not supplied, all event listeners for the provided event are removed.

removeEventListeners

(
  • [listeners]
)
private
This method removes multiple event listeners from the entity.

Parameters:

  • [listeners] Array optional
    The list of listeners to remove. If not supplied, all event listeners are removed.

removeMethod

(
  • name
)
private
This method removes a method from the entity.

Parameters:

  • name String
    The name of the method to be removed.

toJSON

() Object

Inherited from platypus.Component: toJSON:45

Available since 0.11.0

Returns a JSON object describing the component.

Returns:

Object: Returns a JSON definition that can be used to recreate the component.

toString

() String
Returns a string describing the component.

Returns:

String: Returns the component type as a string of the form "[Component ComponentType]".

Properties

componentMap

Object

Defined in componentMap:21

This is the list of messages to listen for (as the keys) with the settings as two arrays of components to add and components to remove.

           {
                                                           "found-pogostick":{
                                                             "add":[
                                                             // This is a list of components to add when "found-pogostick" is triggered on the entity. If it's adding a single component, "add" can be a reference to the component definition itself rather than an array of one object.
                                                               {"type": "Mover"},
                                                               {"type": "HeadGear"}
                                                             ]
                                                             
                                                             "remove": ["CarSeat"]
                                                             // This is a string list of component ids to remove when "found-pogostick" is triggered on the entity. It will ignore listed components that are not connected to the entity.
                                                           },
                                                           
                                                           // Multiple events can cause unique components to be added or removed
                                                           "walking-indoors":{
                                                             "remove": ["HeadGear"]
                                                           },
                                                           
                                                           "contemplate":{
                                                             "add": {"type": "AIPacer"}
                                                           }
                                                         }
                                                       }

Default: null

Events

'add-remove-component-complete'

This message is triggered on the entity itself when its components change.

'child-entity-updated'

This message is triggered on the parent when the entity's components change.

Event Payload: