<Data template=”GcTriggerActionComponentData”>

Inside this environment we can have Actions, and Triggers. If this environment has an ID, the TriggerAction can be called from a SimpleInteraction as well as a normal Interaction.

If you want the set of ActionTriggers to only be called upon interaction, the game has a reserved ID that is loaded when the object in created. This ID is BOOT. If you create an ActionTrigger with the ID BOOT it will be run when the object is created, but it will also block other actions from happening. Once you interact, the ActionTrigger you specify will be run, and you can chain/branch ActionTriggers from there.

Triggers Edit

Trigger Description
GcStateTimeEvent Triggered after the specified number of seconds has passed.
GcBeenShotEvent Damage threshold can be set, and you can set whether the trigger occurs when the entity is shot by the play, or anything
GcPlayerNearbyEvent Triggered when the player is nearby. This has a number of different options.
GcAnimFrameEvent Triggered when a certain frame is reached in an Anim (TkAnimationData object)

Actions Edit

Action Description
GcPlayAudioAction Plays an audio file. Need to figure out whether it is just the name or what.
GcPlayAnimAction Plays an animation that is defined within the ~.ENTITY.mbin
GcGoToStateAction This seems to jump to another ActionTrigger, so you can chain and activate multiple ActionTriggers from one. Not sure what the point of Broadcast-ing is, maybe to go to a state that is in a different scene file.
GcCameraShakeAction Shakes the camera. Has a couple of options.
GcPainAction Does damage to the player. The value of Damage needs to be in the METADATA/REALITY/TABLES/DAMAGETABLE.mbin
GcNodeActivationAction You can use this to deactivate or activate components (nodes) of the object. The 3 options for NodeActiveState are Activate, Deactivate and Toggle. The Name is the name of a TkSceneNodeData child in the entities parent ~.SCENE.mbin. You might be able to do lots of cool stuff with this by allowing triggered events to toggle components of the entity, which can also have attached .ENTITY.mbin’s.
GcWarpAction If you are in your ship this will warp you as if you had flown into a black hole.
GcRewardAction The value of Reward is given to the player. The value must exist in the REWARDTABLE.mbin file.
GcSpawnAction Untested, but should able to spawn other entities. Not sure at the moment where the Event value has to be. Is there a list of entities, or maybe something in the parent ~.SCENE.mbin?

*If you look in the /MODELS/COMMON/DEMOS/E32015/ files you can see this used. However, after extensive testing it seems this is extremely limited in functionality and GcNodeActivationAction is probably a better fit.

GcDestroyAction Untested. Only has one option, with a Boolean DestroyAll. I don’t know what all entails. Will need to be tested.

*This seems to only be used in the ALARM.ENTITY file currently... Not sure what it does but that's where it's used.

GcParticleAction Used to create particles effects.
GcDisplayText Used to create a text overlays.

Reserved ID’s Edit

There seems to be a number of reserved ID’s by the game that are probably only called when certain things happen. The ID’s are as follows:

ID Description
BOOT Called when the object is created and is used to block other ActionTriggers from being triggered.
INTERACTSTART Called when the interaction begins (eg, think the interaction with the terminals in the game).
INTERACTEND Same as above but when the interaction finishes.
INTERACTDISMISS Assumedly called when the interaction is dismissed.
INTERACTOPTION Assumedly called when an option is picked (not any specific one, just any option)
INACTIVE Possibly an ActionTrigger ID you can call in the interaction that causes the scene to become inactive once all the other ActionTrigger stuff has played out?