Drag[en]gine Script Module DragonScript
1.21
|
Base actor action for first person type actors. More...
Classes | |
class | Factory |
Factory for loading actor actions. More... | |
Public Member Functions | |
void | activate (BehaviorElement actor) |
Action has been set as active action in an actor. More... | |
void | analogLookLR (float amount, bool sticky) |
Analog looking left/right. More... | |
void | analogLookUD (float amount, bool sticky) |
Analog looking up/down. More... | |
void | analogMoveFB (float amount, bool sticky) |
Analog moving forward/backward. More... | |
void | analogMoveLR (float amount, bool sticky) |
Analog moving left/right. More... | |
bool | canHitCollider (Collider owner, Collider collider) |
Two colliders can hit each other. More... | |
void | colliderChanged (Collider owner) |
Collider changed. More... | |
void | collisionResponse (Collider owner, CollisionInfo info) |
Collision detected. More... | |
void | crouchStart () |
Start crouching. More... | |
void | crouchStop () |
Stop crouching. More... | |
void | crouchToggle () |
Toggle crouching. More... | |
ECBehaviorActorMover.Instance | getActorMover () |
Actor mover behavior. More... | |
ECBehaviorColliderAI.Instance | getColliderAI () |
Collider AI behavior. More... | |
ECBehaviorFootSteps.Instance | getFootSteps () |
Foot steps behavior. More... | |
float | getLandingAngle () |
Angle in degrees between falling direction and ground normal to land. More... | |
ECBehaviorPlayerInputCrouch.Instance | getPlayerInputCrouch () |
Player input crouching behavior. More... | |
ECBehaviorPlayerInputLook.Instance | getPlayerInputLook () |
Player input looking around behavior. More... | |
ECBehaviorPlayerInputMove.Instance | getPlayerInputMove () |
Player input moving behavior. More... | |
ECBehaviorProjectToGround.Instance | getProjectToGround () |
Project to ground behavior. More... | |
void | lookDownStart () |
Start looking down. More... | |
void | lookDownStop () |
Stop looking down. More... | |
void | lookLeftStart () |
Start looking left. More... | |
void | lookLeftStop () |
Stop looking left. More... | |
void | lookRightStart () |
Start looking right. More... | |
void | lookRightStop () |
Stop looking right. More... | |
void | lookUpStart () |
Start looking up. More... | |
void | lookUpStop () |
Stop looking up. More... | |
void | moveBackwardStart () |
Start moving backward. More... | |
void | moveBackwardStop () |
Stop moving backward. More... | |
void | moveForwardStart () |
Start moving forward. More... | |
void | moveForwardStop () |
Stop moving forward. More... | |
void | moveLeftStart () |
Start moving left. More... | |
void | moveLeftStop () |
Stop moving left. More... | |
void | moveRightStart () |
Start moving right. More... | |
void | moveRightStop () |
Stop moving right. More... | |
BAAFirstPerson | new () |
Create actor action. More... | |
String | persistencyFactoryName () |
Name of PersistencyFactory required to load object from file. More... | |
void | playerReleasesControl () |
Player released control of actor. More... | |
void | playerTakesControl () |
Player takes control of actor. More... | |
void | playerThink (float elapsed) |
Thinking for player controlled actor only. More... | |
void | postThink (float elapsed) |
Post physics. More... | |
void | runStart () |
Start running. More... | |
void | runStop () |
Stop running. More... | |
void | runToggle () |
Toggle running. More... | |
void | setLandingAngle (float angle) |
Set angle in degrees between falling direction and ground normal to land. More... | |
void | think (float elapsed) |
Thinking. More... | |
Public Member Functions inherited from Dragengine.Scenery.BaseActorAction | |
void | activateWhileLoading (BehaviorElement actor) |
Action has been set as active action in an actor while loading. More... | |
void | aiFailed () |
Notify actor AI this action failed. More... | |
void | aiFinished () |
Notify actor AI this action failed. More... | |
void | cancel () |
Cancel action the next time possible. More... | |
bool | conversationWait () |
Check if conversation actions have to wait for actor to finish this action. More... | |
void | deactivate () |
Action has been unset as active action in an actor. More... | |
void | dispose () |
Dispose of actor action. More... | |
void | enteredGameWorld () |
Actor entered game world. More... | |
void | enterFrame () |
Actor has been added to game world and enterFrame() is called once. More... | |
BehaviorElement | getActor () |
Actor the action is assigned to or null. More... | |
ECBehaviorActorAnimated.Instance | getActorAnimated () |
Actor animated behavior if present. More... | |
ECBehaviorActorAIAction.Instance | getAIAction () |
Behavior actor ai-action or null. More... | |
ECBehaviorConversationActor.Instance | getConversationActor () |
Conversation actor behavior if present. More... | |
ECBehaviorLocomotion.Instance | getLocomotion () |
Locomotion behavior. More... | |
ECBehaviorPlayerControllable.Instance | getPlayerControllable () |
Behavior player controllable or null. More... | |
bool | isActive () |
Action is active actor action. More... | |
bool | isControlledByPlayer () |
Actor is controlled by player. More... | |
bool | isNotActive () |
Action is not active actor action. More... | |
void | leftGameWorld () |
Actor left game world. More... | |
void | log (Console console, Element element, String text) |
Log text about element to console prefixed with actor information. More... | |
void | log (Console console, Exception exception) |
Log exception to console prefixed with actor information. More... | |
void | log (Console console, String text) |
Log text to console prefixed with actor information. More... | |
void | log (Element element, String text) |
Log text about element to BaseGameApp console prefixed with actor information. More... | |
void | log (Exception exception) |
Log exception to BaseGameApp console prefixed with actor information. More... | |
void | log (String text) |
Log text to BaseGameApp console prefixed with actor information. More... | |
String | loggingPrefix () |
Logging prefix. More... | |
BaseActorAction | new (PersistencyEnvironment env, FileReader reader) |
Create actor action from persisted state. More... | |
void | playerPostThink (float elapsed) |
Post physics for player controlled actor only. More... | |
void | writeObjectToFile (PersistencyEnvironment env, FileWriter writer) |
Write object to file writer. More... | |
Public Attributes | |
float | pLandingAngle |
Protected Member Functions | |
void | applyLookAroundChanges (float deltaHorizontal, float deltaVertical) |
Apply looking around changes. More... | |
bool | doesActorLand (Collider owner, CollisionInfo info) |
Free falling actor is landing. More... | |
void | doTurnLook (float elapsed) |
Apply turning and looking around. More... | |
void | initBehaviors () |
Init behaviors. More... | |
void | initLocomotion () |
Initialize locomotion. More... | |
void | initLocomotionPlayer () |
Initialize locomotion if player controls this actor. More... | |
void | initPlayerInput () |
Initialize player input tracker. More... | |
void | playerUpdateLocomotion (float elapsed) |
Update locomotion. More... | |
void | updateAICollider (float elapsed) |
Update collider. More... | |
void | updateLocomotion (float elapsed) |
Update locomotion. More... | |
void | updateLocomotionPost (float elapsed) |
Post-Update locomotion. More... | |
Protected Member Functions inherited from Dragengine.Scenery.BaseActorAction | |
void | applyAnimations () |
Apply animations. More... | |
void | initAnimator () |
Initialize animator. More... | |
void | updateAnimator (float elapsed) |
Update animator controllers. More... | |
Protected Attributes | |
ECBehaviorActorMover.Instance | actorMover |
Actor mover behavior. More... | |
ECBehaviorColliderAI.Instance | colliderAI |
Collider AI Behavior. More... | |
ECBehaviorFootSteps.Instance | footSteps |
Foot steps behavior. More... | |
bool | moveIfColliderChanged |
Property update actor geometry on collider changed. More... | |
ECBehaviorPlayerInputCrouch.Instance | playerInputCrouch |
Player input crouching behavior. More... | |
ECBehaviorPlayerInputLook.Instance | playerInputLook |
Player input looking around behavior. More... | |
ECBehaviorPlayerInputMove.Instance | playerInputMove |
Player input moving behavior. More... | |
ECBehaviorProjectToGround.Instance | projectToGround |
Project to ground behavior. More... | |
Protected Attributes inherited from Dragengine.Scenery.BaseActorAction | |
BehaviorElement | actor |
Actor the action is assigned to or null. More... | |
ECBehaviorActorAnimated.Instance | actorAnimated |
Actor animated behavior if present. More... | |
ECBehaviorActorAIAction.Instance | aiAction |
Behavior actor ai-action or null. More... | |
ECBehaviorConversationActor.Instance | conversationActor |
Conversation actor behavior if present. More... | |
ECBehaviorLocomotion.Instance | locomotion |
Locomotion behavior. More... | |
ECBehaviorPlayerControllable.Instance | playerControllable |
Behavior player controllable or null. More... | |
Base actor action for first person type actors.
This class adds movement support to the basic actor action. The movement can be manipulated by the player through input bindings. The supported movement is similar to first person oriented actor control with 8-way movement and looking around. This serves as a basis for adding interaction support ontop of movement support.
All binding called methods store the activated state in the PlayerInput* assigned to the actor. This allows both AI and bindings to control the actor movement with one code.
The move* methods are activated by pressing keys or buttons. They move the actor into one of 8 possible directions in 45 degree steps around the actor.
The look* methods are activated by pressing keys or buttons. They adjust the looking direction of the actor. Depending on the settings of the player input tracker and locomotion assigned to the actor the looking around of the actor is applied to the actor orientation.
The analog* methods are activated by moving mouse or gamepad axes. They are the analog counterpart of the respective move* or look* methods discussed above.
All move*, look* and analog* methods modify only the PlayerInput assigned to the actor. During think() the desired input is applied to the Locomotion assigned to the actor. The result is then applied to the actor as the movement for this frame update.
This class provides sliding collision handling. This kind of collision handling works well in various situations.
void Dragengine.Scenery.BAAFirstPerson.activate | ( | BehaviorElement | actor | ) |
Action has been set as active action in an actor.
Calls these hook methods in addition to BaseActorAction.activate():
Reimplemented from Dragengine.Scenery.BaseActorAction.
void Dragengine.Scenery.BAAFirstPerson.analogLookLR | ( | float | amount, |
bool | sticky | ||
) |
Analog looking left/right.
Implements Dragengine.Scenery.BAAMovement.
void Dragengine.Scenery.BAAFirstPerson.analogLookUD | ( | float | amount, |
bool | sticky | ||
) |
Analog looking up/down.
Implements Dragengine.Scenery.BAAMovement.
Reimplemented in Dragengine.Scenery.BAAFirstPersonVR.
void Dragengine.Scenery.BAAFirstPerson.analogMoveFB | ( | float | amount, |
bool | sticky | ||
) |
Analog moving forward/backward.
Implements Dragengine.Scenery.BAAMovement.
void Dragengine.Scenery.BAAFirstPerson.analogMoveLR | ( | float | amount, |
bool | sticky | ||
) |
Analog moving left/right.
Implements Dragengine.Scenery.BAAMovement.
|
protected |
Apply looking around changes.
Called for player controlled actors only.
Two colliders can hit each other.
Returns always true.
Reimplemented from Dragengine.Scenery.BaseActorAction.
void Dragengine.Scenery.BAAFirstPerson.colliderChanged | ( | Collider | owner | ) |
Collider changed.
Reimplemented from Dragengine.Scenery.BaseActorAction.
void Dragengine.Scenery.BAAFirstPerson.collisionResponse | ( | Collider | owner, |
CollisionInfo | info | ||
) |
Collision detected.
If actor is touching ground applies sliding collision response. Otherwise checks if actor impacts with the ground at opposite direction than the project to ground test direction enable projecting to ground again.
Reimplemented from Dragengine.Scenery.BaseActorAction.
void Dragengine.Scenery.BAAFirstPerson.crouchStart | ( | ) |
Start crouching.
Implements Dragengine.Scenery.BAAMovement.
Reimplemented in Dragengine.Scenery.BAAFirstPersonVR.
void Dragengine.Scenery.BAAFirstPerson.crouchStop | ( | ) |
Stop crouching.
Implements Dragengine.Scenery.BAAMovement.
Reimplemented in Dragengine.Scenery.BAAFirstPersonVR.
void Dragengine.Scenery.BAAFirstPerson.crouchToggle | ( | ) |
Toggle crouching.
Implements Dragengine.Scenery.BAAMovement.
Reimplemented in Dragengine.Scenery.BAAFirstPersonVR.
|
protected |
Free falling actor is landing.
Called during collisionResponse() to check if the actor has to switch from free falling to moving on ground again.
Default implementation returns true if the angle between the falling direction and the ground hit normal is larger than the landing angle.
|
protected |
Apply turning and looking around.
Called for player controlled actors only. If ECBehaviorActorMover has a goal set does nothing to not interfere.
ECBehaviorActorMover.Instance Dragengine.Scenery.BAAFirstPerson.getActorMover | ( | ) |
Actor mover behavior.
ECBehaviorColliderAI.Instance Dragengine.Scenery.BAAFirstPerson.getColliderAI | ( | ) |
Collider AI behavior.
ECBehaviorFootSteps.Instance Dragengine.Scenery.BAAFirstPerson.getFootSteps | ( | ) |
Foot steps behavior.
float Dragengine.Scenery.BAAFirstPerson.getLandingAngle | ( | ) |
Angle in degrees between falling direction and ground normal to land.
ECBehaviorPlayerInputCrouch.Instance Dragengine.Scenery.BAAFirstPerson.getPlayerInputCrouch | ( | ) |
Player input crouching behavior.
ECBehaviorPlayerInputLook.Instance Dragengine.Scenery.BAAFirstPerson.getPlayerInputLook | ( | ) |
Player input looking around behavior.
ECBehaviorPlayerInputMove.Instance Dragengine.Scenery.BAAFirstPerson.getPlayerInputMove | ( | ) |
Player input moving behavior.
ECBehaviorProjectToGround.Instance Dragengine.Scenery.BAAFirstPerson.getProjectToGround | ( | ) |
Project to ground behavior.
|
protected |
Init behaviors.
Retrieve and store required and optional behavior instances from the actor element.
Reimplemented from Dragengine.Scenery.BaseActorAction.
Reimplemented in Dragengine.Scenery.BAAFirstPersonVR.
|
protected |
Initialize locomotion.
See ECBehaviorLocomotion.initHuman().
Sets these initial parameters:
Reimplemented in Dragengine.Scenery.BAAFirstPersonVR.
|
protected |
Initialize locomotion if player controls this actor.
Called in addition to (and after) initLocomotion() to apply changes which affect only the player. Typically this makes turning and looking direct in contrary to non-player actors where having a delay makes them behave smoother.
Applies these changes to parameters:
Reimplemented in Dragengine.Scenery.BAAFirstPersonVR.
|
protected |
Initialize player input tracker.
Sets ECBehaviorPlayerInputMove to LocomotionType.natural .
Reimplemented in Dragengine.Scenery.BAAFirstPersonVR.
void Dragengine.Scenery.BAAFirstPerson.lookDownStart | ( | ) |
Start looking down.
Implements Dragengine.Scenery.BAAMovement.
Reimplemented in Dragengine.Scenery.BAAFirstPersonVR.
void Dragengine.Scenery.BAAFirstPerson.lookDownStop | ( | ) |
Stop looking down.
Implements Dragengine.Scenery.BAAMovement.
Reimplemented in Dragengine.Scenery.BAAFirstPersonVR.
void Dragengine.Scenery.BAAFirstPerson.lookLeftStart | ( | ) |
Start looking left.
Implements Dragengine.Scenery.BAAMovement.
void Dragengine.Scenery.BAAFirstPerson.lookLeftStop | ( | ) |
Stop looking left.
Implements Dragengine.Scenery.BAAMovement.
void Dragengine.Scenery.BAAFirstPerson.lookRightStart | ( | ) |
Start looking right.
Implements Dragengine.Scenery.BAAMovement.
void Dragengine.Scenery.BAAFirstPerson.lookRightStop | ( | ) |
Stop looking right.
Implements Dragengine.Scenery.BAAMovement.
void Dragengine.Scenery.BAAFirstPerson.lookUpStart | ( | ) |
Start looking up.
Implements Dragengine.Scenery.BAAMovement.
Reimplemented in Dragengine.Scenery.BAAFirstPersonVR.
void Dragengine.Scenery.BAAFirstPerson.lookUpStop | ( | ) |
Stop looking up.
Implements Dragengine.Scenery.BAAMovement.
Reimplemented in Dragengine.Scenery.BAAFirstPersonVR.
void Dragengine.Scenery.BAAFirstPerson.moveBackwardStart | ( | ) |
Start moving backward.
Implements Dragengine.Scenery.BAAMovement.
void Dragengine.Scenery.BAAFirstPerson.moveBackwardStop | ( | ) |
Stop moving backward.
Implements Dragengine.Scenery.BAAMovement.
void Dragengine.Scenery.BAAFirstPerson.moveForwardStart | ( | ) |
Start moving forward.
Implements Dragengine.Scenery.BAAMovement.
void Dragengine.Scenery.BAAFirstPerson.moveForwardStop | ( | ) |
Stop moving forward.
Implements Dragengine.Scenery.BAAMovement.
void Dragengine.Scenery.BAAFirstPerson.moveLeftStart | ( | ) |
Start moving left.
Implements Dragengine.Scenery.BAAMovement.
void Dragengine.Scenery.BAAFirstPerson.moveLeftStop | ( | ) |
Stop moving left.
Implements Dragengine.Scenery.BAAMovement.
void Dragengine.Scenery.BAAFirstPerson.moveRightStart | ( | ) |
Start moving right.
Implements Dragengine.Scenery.BAAMovement.
void Dragengine.Scenery.BAAFirstPerson.moveRightStop | ( | ) |
Stop moving right.
Implements Dragengine.Scenery.BAAMovement.
BAAFirstPerson Dragengine.Scenery.BAAFirstPerson.new | ( | ) |
Create actor action.
Reimplemented from Dragengine.Scenery.BaseActorAction.
Reimplemented in Dragengine.Scenery.BAAFirstPersonVR.
String Dragengine.Scenery.BAAFirstPerson.persistencyFactoryName | ( | ) |
Name of PersistencyFactory required to load object from file.
Name of PersistencyFactory is first written to the file as string with 8-bit length. Then writeToFile() is called to write the object itself. Empty name is not allowed as is names longer than 255 characters. Name has to match a PersistencyFactory present in the Persistency instance used for loading objects. Object is read using PersistencyFactory.readObjectFromFile() of the matching PersistencyFactory.
Reimplemented from Dragengine.Scenery.BaseActorAction.
Reimplemented in Dragengine.Scenery.BAAFirstPersonVR.
void Dragengine.Scenery.BAAFirstPerson.playerReleasesControl | ( | ) |
Player released control of actor.
Calls these hook methods:
Reimplemented from Dragengine.Scenery.BaseActorAction.
void Dragengine.Scenery.BAAFirstPerson.playerTakesControl | ( | ) |
Player takes control of actor.
Calls these hook methods:
Reimplemented from Dragengine.Scenery.BaseActorAction.
void Dragengine.Scenery.BAAFirstPerson.playerThink | ( | float | elapsed | ) |
Thinking for player controlled actor only.
Calls these hook methods:
Reimplemented from Dragengine.Scenery.BaseActorAction.
|
protected |
Update locomotion.
If ECBehaviorActorMover has a goal set does nothing to not interfere.
Reimplemented in Dragengine.Scenery.BAAFirstPersonVR.
void Dragengine.Scenery.BAAFirstPerson.postThink | ( | float | elapsed | ) |
Post physics.
Actor position is updated by ECBehaviorProjectToGround if present in the actor. Otherwise updates the actor element position and orientation from AI collider.
Default implementation does these actions in this order:
Reimplemented from Dragengine.Scenery.BaseActorAction.
void Dragengine.Scenery.BAAFirstPerson.runStart | ( | ) |
Start running.
Implements Dragengine.Scenery.BAAMovement.
void Dragengine.Scenery.BAAFirstPerson.runStop | ( | ) |
Stop running.
Implements Dragengine.Scenery.BAAMovement.
void Dragengine.Scenery.BAAFirstPerson.runToggle | ( | ) |
Toggle running.
Implements Dragengine.Scenery.BAAMovement.
void Dragengine.Scenery.BAAFirstPerson.setLandingAngle | ( | float | angle | ) |
Set angle in degrees between falling direction and ground normal to land.
void Dragengine.Scenery.BAAFirstPerson.think | ( | float | elapsed | ) |
Thinking.
Default implementation does these actions in this order:
Reimplemented from Dragengine.Scenery.BaseActorAction.
|
protected |
Update collider.
Sets orientation and linear velocity from locomotion if actor is touching ground. If not touching ground earth type gravitation is applied.
Actor is considered not touching ground if ProjectToGround has not found a ground collider during the last postThink() call.
Reimplemented from Dragengine.Scenery.BaseActorAction.
|
protected |
Update locomotion.
Reimplemented from Dragengine.Scenery.BaseActorAction.
|
protected |
Post-Update locomotion.
|
protected |
Actor mover behavior.
|
protected |
Collider AI Behavior.
|
protected |
Foot steps behavior.
|
protected |
Property update actor geometry on collider changed.
For performance reasons updating the actor geometry not done during colliderChanged() but during postThink() when project to ground has been done. Between postThink() and the next elementThink() actor geometry has to be updated or the actor element matrix is out of sync when AI operates on it. This parameter is used to keep track of
float Dragengine.Scenery.BAAFirstPerson.pLandingAngle |
|
protected |
Player input crouching behavior.
|
protected |
Player input looking around behavior.
|
protected |
Player input moving behavior.
|
protected |
Project to ground behavior.