Drag[en]gine Script Module DragonScript 1.32.1
Loading...
Searching...
No Matches
Dragengine.Scenery.ECBehaviorForceField Class Reference

Behavior element behavior adding force field support. More...

Inheritance diagram for Dragengine.Scenery.ECBehaviorForceField:
Dragengine.Scenery.DefaultECBehavior Dragengine.Scenery.ECBehavior Dragengine.Scenery.BehaviorCompatiblePersistency

Classes

class  BlockListenerFactory
 Factory creating listeners using block. More...
 
class  DefaultListener
 Default implementation of behavior instance listener. More...
 
class  Factory
 Behavior factory. More...
 
class  Instance
 Behavior instance. More...
 
interface  Listener
 Listener for behavior instance events. More...
 
interface  ListenerFactory
 Factory creating listeners. More...
 

Public Member Functions

void addListenerFactory (Block blockFactory)
 Add listener factory using block.
 
void addListenerFactory (ListenerFactory factory)
 Add listener factory.
 
void createListeners (Instance instance)
 Create listeners from factories adding them to behavior instance.
 
void dispose ()
 Dispose of behavior.
 
void forEachListenerFactory (Block ablock)
 Visit listener factories with block with argument ListenerFactory.
 
ECComposeAttachResource getAttach ()
 Attach resource.
 
ECComposeBTSM getBTSMs ()
 Compose behavior trees and state machines.
 
ECBehaviorCollider getCollider ()
 Collider behavior or null to not attach.
 
ECComposeForceField getForceField ()
 Composeable force field for element class.
 
String getPrefix ()
 Prefix.
 
ECBehaviorForceField getSyncTrigger ()
 ECBehaviorForceField to synchronize triggers with or null to disable.
 
ECBehaviorTriggered getTrigger ()
 Trigger enable.
 
TSTriggerTable getTriggerTable ()
 Trigger table or null if not used.
 
ECBehaviorForceField new (BehaviorElementClass eclass, ECBehaviorCollider collider)
 Create behavior element class.
 
ECBehaviorForceField new (BehaviorElementClass eclass, ECBehaviorCollider collider, String id)
 
ECBehaviorForceField new (BehaviorElementClass eclass, ECBehaviorCollider collider, TSTriggerTable triggerTable)
 
ECBehaviorForceField new (BehaviorElementClass eclass, ECBehaviorCollider collider, TSTriggerTable triggerTable, String id)
 
ECBehaviorForceField new (BehaviorElementClass eclass, ECBehaviorCollider collider, TSTriggerTable triggerTable, String id, String subID)
 
ECBehaviorForceField new (BehaviorElementClass eclass, ECBehaviorCollider collider, TSTriggerTable triggerTable, String id, String subID, String prefix)
 
void setSyncTrigger (ECBehaviorForceField behavior)
 ECBehaviorForceField to synchronize triggers with or null to disable.
 
void setTriggerTable (TSTriggerTable triggerTable)
 Set trigger table or null if not used.
 
- Public Member Functions inherited from Dragengine.Scenery.DefaultECBehavior
void assignInstanceIndex (int instanceIndex)
 Assign instance index.
 
String getBehaviorID ()
 Unique identifier of behavior.
 
String getID ()
 Identifier.
 
int getInstanceIndex ()
 Instance index.
 
void loadSupportedData (String identifier, PersistencyEnvironment env, FileReader reader, ECBehaviorInstance instance)
 Load instance data of another behavior.
 
bool supportsBehaviorID (String identifier)
 Behavior supports loading instance data of another behavior.
 
- Public Member Functions inherited from Dragengine.Scenery.ECBehavior
ECBehaviorInstance createInstance (BehaviorElement element)
 Create Behavior instance.
 

Static Public Member Functions

static ECBehaviorForceField getBehaviorIn (BehaviorElementClass eclass)
 Get behavior in element class or null if absent.
 

Public Attributes

ECComposeAttachResource pAttach
 
ECComposeBTSM pBTSMs
 
ECBehaviorCollider pCollider
 
ECComposeForceField pForceField
 
Array pListenerFactories
 
String pPrefix
 
ECBehaviorForceField pSyncTrigger
 
ECBehaviorTriggered pTrigger
 
TSTriggerTable pTriggerTable
 

Additional Inherited Members

- Protected Member Functions inherited from Dragengine.Scenery.DefaultECBehavior
DefaultECBehavior new (BehaviorElementClass eclass)
 Create default composeable behavior with empty identifier.
 
DefaultECBehavior new (BehaviorElementClass eclass, String id)
 Create default composeable behavior.
 
void setBehaviorID (String identifier)
 Set behavior identifier.
 
void useClassNameAsBehaviorID ()
 Set behavior identifier to "<class-name>:<identifier>".
 
void useFullyQualifiedClassNameAsBehaviorID ()
 Set behavior identifier to "<fully-qualified-class-name>:<identifier>".
 

Detailed Description

Behavior element behavior adding force field support.

Behavior adds a ForceField resource to the the behavior element. This behavior can be added multiple times to an element. Each instance creates one force field attached to the element collider which can be individually modified. To distinguish the force fields each instance has an identifier which can be used to retrieve a specific instance. The prefix of the force field class properties is "forceField." . If the identifier is not empty the force field element class properties have the prefix "{id}.forceField.". This can be overwritten if required. Hence to use more than one force field use code like this in your subclass constructor:

class MyElement extends BehaviorElementClass
func new()
ECBehaviorForceField.new(this, "subForceField")
end
end
Behavior element element class.
Definition BehaviorElementClass.ds:54
Behavior element behavior adding force field support.
Definition ECBehaviorForceField.ds:101

You can now define the parameters to use for both force fields using for example the properties "color" for the first force field and "subForceField.color" for the second forceField.

It is recommended to always specify an identifier even if only one force field is used. This avoids potentially name conflicts especially if other behaviors are added attaching other resources too.

If the ECBehaviorCollider behavior is present in the behavior element before this behavior is added the force field is attached. The force field is attached to the named bone if defined otherwise it is attached statically.

Element class properties have the prefix "forceField{(id)}.".

Listening and Customized ForceField Handling

The owner element class and other behaviors can register a listener to be notified if the force field is (de)enabled. This can be used to provide customized force field handling support for example flickering or dimmable force fields.

If another behaviors wants to control the force field parameters in response to these events it should call setCustomForceFieldHandling(true). In this case the behavior implementing the force field parameter handling has to use requiresThink() to think while the effect lasts.

Owner Element Visibility

The enabled state of the force field is linked with the visibility state of the owner element. If the owner element becomes invisible the force field resource is always disabled. If the owner element becomes visible the force field resource is enabled if the behavior is enabled too.

If custom force field handling is used the behavior resposible for the custom force field handling is required to listen to stateChanged() calls and act accordingly. The force field resource will be always enabled no matter if the custom force field handling is enabled or not. Only if the behavior is (de)enabled or the element becomes visible the force field parameters are not modified if custom force field handling is enabled.

This behavior does support element class to be persistable (setPersistable).

See also
https://developer.dragondreams.ch/wiki/doku.php/dragengine:modules:dragonscript:behavior_forcefield

Member Function Documentation

◆ addListenerFactory() [1/2]

void Dragengine.Scenery.ECBehaviorForceField.addListenerFactory ( Block  blockFactory)

Add listener factory using block.

Block receives as parameter Instance and returns Listener.

◆ addListenerFactory() [2/2]

void Dragengine.Scenery.ECBehaviorForceField.addListenerFactory ( ListenerFactory  factory)

Add listener factory.

◆ createListeners()

void Dragengine.Scenery.ECBehaviorForceField.createListeners ( Instance  instance)

Create listeners from factories adding them to behavior instance.

◆ dispose()

void Dragengine.Scenery.ECBehaviorForceField.dispose ( )

Dispose of behavior.

Reimplemented from Dragengine.Scenery.DefaultECBehavior.

◆ forEachListenerFactory()

void Dragengine.Scenery.ECBehaviorForceField.forEachListenerFactory ( Block  ablock)

Visit listener factories with block with argument ListenerFactory.

◆ getAttach()

ECComposeAttachResource Dragengine.Scenery.ECBehaviorForceField.getAttach ( )

Attach resource.

◆ getBehaviorIn()

static ECBehaviorForceField Dragengine.Scenery.ECBehaviorForceField.getBehaviorIn ( BehaviorElementClass  eclass)
static

Get behavior in element class or null if absent.

Use this method to check if a particular BehaviorElementClass contains a behavior of type ECBehaviorCollider.

◆ getBTSMs()

ECComposeBTSM Dragengine.Scenery.ECBehaviorForceField.getBTSMs ( )

Compose behavior trees and state machines.

Version
1.26

◆ getCollider()

ECBehaviorCollider Dragengine.Scenery.ECBehaviorForceField.getCollider ( )

Collider behavior or null to not attach.

◆ getForceField()

ECComposeForceField Dragengine.Scenery.ECBehaviorForceField.getForceField ( )

Composeable force field for element class.

◆ getPrefix()

String Dragengine.Scenery.ECBehaviorForceField.getPrefix ( )

Prefix.

Version
1.26

◆ getSyncTrigger()

ECBehaviorForceField Dragengine.Scenery.ECBehaviorForceField.getSyncTrigger ( )

ECBehaviorForceField to synchronize triggers with or null to disable.

◆ getTrigger()

ECBehaviorTriggered Dragengine.Scenery.ECBehaviorForceField.getTrigger ( )

Trigger enable.

◆ getTriggerTable()

TSTriggerTable Dragengine.Scenery.ECBehaviorForceField.getTriggerTable ( )

Trigger table or null if not used.

◆ new() [1/6]

ECBehaviorForceField Dragengine.Scenery.ECBehaviorForceField.new ( BehaviorElementClass  eclass,
ECBehaviorCollider  collider 
)

Create behavior element class.

These values are optional and can be null: collider.

◆ new() [2/6]

ECBehaviorForceField Dragengine.Scenery.ECBehaviorForceField.new ( BehaviorElementClass  eclass,
ECBehaviorCollider  collider,
String  id 
)

◆ new() [3/6]

ECBehaviorForceField Dragengine.Scenery.ECBehaviorForceField.new ( BehaviorElementClass  eclass,
ECBehaviorCollider  collider,
TSTriggerTable  triggerTable 
)

◆ new() [4/6]

ECBehaviorForceField Dragengine.Scenery.ECBehaviorForceField.new ( BehaviorElementClass  eclass,
ECBehaviorCollider  collider,
TSTriggerTable  triggerTable,
String  id 
)

◆ new() [5/6]

ECBehaviorForceField Dragengine.Scenery.ECBehaviorForceField.new ( BehaviorElementClass  eclass,
ECBehaviorCollider  collider,
TSTriggerTable  triggerTable,
String  id,
String  subID 
)

◆ new() [6/6]

ECBehaviorForceField Dragengine.Scenery.ECBehaviorForceField.new ( BehaviorElementClass  eclass,
ECBehaviorCollider  collider,
TSTriggerTable  triggerTable,
String  id,
String  subID,
String  prefix 
)

◆ setSyncTrigger()

void Dragengine.Scenery.ECBehaviorForceField.setSyncTrigger ( ECBehaviorForceField  behavior)

ECBehaviorForceField to synchronize triggers with or null to disable.

◆ setTriggerTable()

void Dragengine.Scenery.ECBehaviorForceField.setTriggerTable ( TSTriggerTable  triggerTable)

Set trigger table or null if not used.

Member Data Documentation

◆ pAttach

ECComposeAttachResource Dragengine.Scenery.ECBehaviorForceField.pAttach

◆ pBTSMs

ECComposeBTSM Dragengine.Scenery.ECBehaviorForceField.pBTSMs

◆ pCollider

ECBehaviorCollider Dragengine.Scenery.ECBehaviorForceField.pCollider

◆ pForceField

ECComposeForceField Dragengine.Scenery.ECBehaviorForceField.pForceField

◆ pListenerFactories

Array Dragengine.Scenery.ECBehaviorForceField.pListenerFactories

◆ pPrefix

String Dragengine.Scenery.ECBehaviorForceField.pPrefix

◆ pSyncTrigger

ECBehaviorForceField Dragengine.Scenery.ECBehaviorForceField.pSyncTrigger

◆ pTrigger

ECBehaviorTriggered Dragengine.Scenery.ECBehaviorForceField.pTrigger

◆ pTriggerTable

TSTriggerTable Dragengine.Scenery.ECBehaviorForceField.pTriggerTable

The documentation for this class was generated from the following file: