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.
|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)|
|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:
|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?|