API Reference


callActionDeck(deckName, actionMessage, durationopt, pulseIntervalopt)

Calls an action card deck.

This is meant to be used from a panel that has a {@see propDeck} property that contains Action cards. When you want to execute the actions in the deck, call this function.

If your panel executes actions continuously, call this on every frame while the action is supposed to be happening. If your panel executes actions sporadically, call this only once when you want the action to execute. The underlying implementation takes care of all the details of delivering the right messages to the action cards in either case. If you want to know the technical details, keep reading (but you don't need to).

Technical details: actions can be either discrete (fire a projectile) or continuous (movement). Discrete actions are signaled through the Action message, and continuous actions are signaled through the delivery of ActiveTick message on every frame. When you call this function every frame, it will start by sending an Action message and an Activate message on the first frame, then will send ActiveTick on every subsequent frame (and will send Action again every pulseInterval seconds), then will finally send Deactivate on the last frame (at which point it also stops sending ActiveTick.

This means that an Action card can either react to the ActiveTick message (if it's a continuous action) or to the Action message, if it's a discrete action.

Parameters:
Name Type Attributes Default Description
deckName string The name of the deck property.
actionMessage GActionMessage The action message to deliver.
duration number <optional>
0.5 How long to keep the action deck activated, after you stop calling this function every frame (so if you call just once, this is the duration of the activation).
pulseInterval number <optional>
0.6 What interval to pulse the action deck. The action deck will receive the Action message every pulse interval while activated.
Example
export const PROPS = [
  propString("KeyToListenFor"),
  propDeck("ActionsToRun")
]

// Imagine this is a panel where the user can specify which keyboard
// key to listen to, and a deck of action cards to run when the
// key is pressed.
export function onKeyDown(msg) {
  if (msg.keyName === props.KeyToListenFor) {
    // Call the action deck. This handles all the bookkeeping of
    // sending the right messages at the right times to the deck.
    callActionDeck("ActionsToRun");
  }
}

< All Functions
Transform
Position Get
getPosXgetPosYgetPosZgetPosgetDistanceTogetDistanceBetweengetLocalPosgetSpawnPosselfToWorldPosworldToSelfPosselfToWorldDirworldToSelfDir
Position Set
moveForwardmoveBackwardmoveLeftmoveRightmoveUpmoveDownmovemoveGlobalmoveTowardsetPosXsetPosYsetPosZsetPosXYZsetPossetSpawnPossetLocalPos
Rotation Get
getPointAheadgetPointBehindgetPointAbovegetPointBelowgetPointToRightOfgetPointToLeftOfgetYawgetPitchgetRollgetRotgetLocalRotgetSpawnRotgetForwardgetBackwardgetUpgetDowngetRightgetLeft
Rotation Set
setYawsetPitchsetRollsetYawPitchRollturnspinrotateapplyQuaternionapplyQuaternionSelfsetRotresetRotsetSpawnRotresetSpawnRotsetLocalRotresetLocalRotlookAtlookDirlookTowardlookTowardDir
Scale
getScaleUniformsetScaleUniformgetScalesetScalegrowshrink
Actors
Actors
ActorRefActorRefmyselfdestroySelfexistsgetActorsgetPlayerActorsgetActorsWithTaggetActorWithTaghasTaggetGameRulesActorisOnstageisOffstagegoOffstagegoOnstageisActorInGroupgetActorsInGroupgetActorGroupDescriptiongetClosestActorgetCardTargetActorgetCardTargetActorDescription
Attributes
getDisplayNamesetDisplayNamegetCommentTextsetCommentTextsetVardeleteVargetVar
Cloning
getCloneParentisCloneclone
Properties
propspropNumberpropDecimalpropBooleanpropStringpropActorpropActorGrouppropImagepropSoundpropParticleEffectpropDeckpropColorpropEnumpropCardTargetActorrequireTruerequireFalserequireEqualrequireNotEqualPropOptionsPropDeckOptionsPropDefRequirement
Memory
memcardtempdeclareMemoryUnchangedsaveRotloadRotsaveVecloadVec
Messages
cooldownsendsendDelayedsendToManysendToManyDelayedsendToSelfsendToSelfDelayedsendToAllbroadcastsendToAllDelayedcallDeckcallActionDeckcallEventDeckdeactivateActionDeck
Player
Camera/Lights
CameraSettingssetCameraSettingssetLightclearLightrequestCameraOffset
Hierarchy
Parenting
attachToParentdetachFromParentisAttachedgetParent
Rendering
Visibility
isVisibleshowhide
Body
getBodyPossetBodyPosgetBodyRotsetBodyRotgetBoundsSizegetBoundsRadiusOutergetBoundsRadiusInnergetBoundsRadiusAveragegetBoundsCenter
Color
setTintsetTintColorsetTintHexgetTintgetTintColorgetTintHex
Scene
SkyTypeSceneLightingModesetSkyTypegetSkyTypesetSkyColorgetSkyColorsetSceneLightinggetSceneLighting
Physics
Presets
PhysicsPresetsetPhysicsPresetgetPhysicsPreset
Attributes
setSolidisSolidsetKinematicisKinematicenableGravityisGravityEnabledenableKeepUprightisKeepUprightEnabledsetBouncinesssetMasssetDragsetAngularDrag
Velocity
getVelocityaddVelocitypush
Casting
raycastraycastTerraincastAdvancedCastHitoverlapSpherecheckBoxCastMode
Collisions
onCollisiononTerrainCollision
Player Controls (high level input)
Actions
onJumponPrimaryActiononSecondaryAction
Controls
isGroundedisSprintinggetWorldThrottlegetThrottlegetRawThrottlegetLookAxessetCameraActorgetCameraActorresetCameraActorisPlayerControllablesetIsPlayerControllablesetControllingPlayergetControllingPlayer
Aiming
getAimTargetgetAimOrigingetAimDirectiongetLastAimHitPoint
Low Level Input
Keyboard
keyIsPressedkeyJustPressedkeyJustReleasedonKeyDownonKeyHeldKeyMessageKeyCode
Mouse
hasPlayerInputgetMouseXgetMouseYmouseIsPressedmousePressedmouseJustPressedmouseJustReleasedgetMouseRayOrigingetMouseRayDirgetActorUnderMousegetActorsUnderMousegetTerrainPointUnderMouseonMouseDownonMouseUponMouseHeldonActorClicked
Multiplayer
Players
isInMultiplayerModegetAllPlayersgetLocalPlayergetPlayerByNumbergetPlayerNickNamegetPlayerNumberplayerExistsisMasterPlayerisClaimedgetPlayerControlledActor
Events
onPlayerJoinedonPlayerLeftPlayerJoinedMessagePlayerLeftMessage
User Interface
Tooltips
Widgets
uiTextuiRectuiCircleuiTriangleuiLineuiButtonuiSpriteuiImageuiImageSliceuiGetTextWidthuiGetTextHeightuiGetScreenWidthuiGetScreenHeightuiGetScreenInfoUiColorShapeStyleRectStyleUiShapeOptionsUiSpriteOptionsUiImageOptionsUiButtonOptionsUiTextOptionsUiScreenInfo
Screen
getScreenPointgetScreenSpheregetScreenRect
Terrain
Blocks
BlockShapeBlockDirBlockStylesetBlocksetBlockAtPointgetBlockgetBlockAtPointclearBlockclearBlockAtPointgetBlockCoordsAtPointgetBlockCentergetBlockSize
Walls
Sound
SFX
playSoundtryPlaySoundSounds
Particle Effects
ParticleEffects
spawnParticleEffecttrySpawnParticleEffectParticles
Polite Requests
Requests
setPosPleasesetYawPleasesetPitchPleasesetRollPleasesetYawPitchRollPleaseturnPleaseapplyQuaternionPleaseapplyQuaternionSelfPleasesetRotPleaseresetRotPleaselookAtPleaselookDirPleasesetScaleUniformPleasesetScalePleaseattachToParentPleasedetachFromParentPleasesetVarPleasedeleteVarPleasesetDisplayNamePleasesetCommentTextPleasesetSolidPleasesetKinematicPleaseenableGravityPleaseenableKeepUprightPleasesetBouncinessPleasesetMassPleasesetDragPleasesetAngularDragPleasesetPhysicsPresetPleaseaddVelocityPleasesetCameraActorPleasesetIsPlayerControllablePleasesetControllingPlayerPleasesetBodyPosPleasesetBodyRotPleasesetTintColorPleasesetTintHexPleaseshowPleasehidePlease
Misc
Time
deltaTimegetTimegetTimeSinceResetonTickonLocalTickonOffstageTick
Math
vec3degToRadradToDegrevToRadinterpvec3zerovec3onevec3xvec3yvec3zvec3addvec3addXvec3addYvec3addZvec3withXvec3withYvec3withZvec3subvec3scalevec3addScaledvec3negvec3lengthSqvec3lengthvec3normalizedvec3withLengthvec3toStringvec3equal
Colors
colorFromHexcolorToHex
Game
onResetGameonInitresetGame
Util
toFixedLengthdeepCopyloglogError
(Advanced) Cards
Cards
getCardStatusRuntimeCardStatusgetCardErrorMessageonCardRemoved
Reference
GActionCardGActionMessageGEventGEventCard