PC Stable Documentation
 
All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Modules Pages
Loading...
Searching...
No Matches
Trigger Class Reference

Scripted Trigger. More...

Private Member Functions

override void OnEnter (Object obj)
 
override void OnLeave (Object obj)
 
override protected void UpdateInsiders (int timeout)
 
void SetParentObject (Hologram projection)
 
void SetParentOwner (PlayerBase player)
 
private void Trigger ()
 ctor
 
private void ~Trigger ()
 dtor
 
IEntity events

Usage of IEntity events

override void EOnInit (IEntity other, int extra)
 Set the default extents of the Trigger only once it is properly initialized.
 
override void EOnFrame (IEntity other, float timeSlice)
 When an Object touches the Trigger, we want to register it being inside the Trigger -> Replaced by EOnEnter.
 
override void EOnEnter (IEntity other, int extra)
 When an Object enters the trigger add it to Insiders.
 
override void EOnLeave (IEntity other, int extra)
 When an Object exits the trigger remove it from Insiders.
 
Trigger configuration

Basic configuration and data API

void SetExtents (vector mins, vector maxs)
 Set the size of the Trigger, avoid using SetCollisionBox directly.
 
float GetRadius (vector min, vector max)
 Get the radius of the CollisionBox, simply left for backwards compatibility.
 
array< ref TriggerInsiderGetInsiders ()
 Get the current TriggerInsider array, left for backwards compatibility, moved down from ManTrigger.
 
TriggerInsider GetInsiderForObject (Object object)
 Gets the TriggerInsider for the Object if it exists.
 
int GetInsiderIndexForObject (Object object)
 Gets the index in m_insiders for the Object.
 
TriggerEvents, backwards compatibility calling

Implementation for backwards compatibility with old Trigger system

override protected void OnEnterBeginEvent (TriggerInsider insider)
 
override protected void OnLeaveBeginEvent (TriggerInsider insider)
 
DEPRECATED Events

left for backwards compatibility

void OnEnter (Object obj)
 
void OnLeave (Object obj)
 
TriggerInsider conditions

Conditions applied to TriggerInsider for if it can be added or should be removed

protected bool CanAddObjectAsInsider (Object object)
 Condition whether an Object can be added as TriggerInsider (checked before calling AddInsider)
 
protected bool ShouldRemoveInsider (TriggerInsider insider)
 Condition whether a TriggerInsider should still be updated or not (checked in update loop and before adding)
 
protected bool ShouldRemoveInsiderNoLeave (TriggerInsider insider)
 Condition whether a TriggerInsider should still be updated or not, skips OnLeaveEvent (checked in update loop and before adding)
 
TriggerInsider processing

Logic and processing of adding, removing and updating a TriggerInsider

protected TriggerInsider CreateInsider (Object obj)
 Used for easily overriding TriggerInsider creation without rewriting AddInsider.
 
protected void AddInsider (Object obj)
 Adding of new TriggerInsider.
 
protected void RemoveInsider (TriggerInsider insider, int index=-1)
 Removing of TriggerInsider.
 
protected void RemoveInsiderByObject (Object object)
 Removing of TriggerInsider through Object.
 
protected void UpdateInsiders (int timeout)
 Update the current TriggerInsider inside the Trigger, timeout paramter is deprecated.
 
DEBUGGING

General internal debugging functionality

override void OnRPC (PlayerIdentity sender, int rpc_type, ParamsReadContext ctx)
 

Private Attributes

protected int m_TriggerUpdateMs
 
protected Hologram m_ParentObj
 
protected PlayerBase m_Player
 
const int TIMEOUT = 1000
 DEPRECATED.
 
ref array< ref TriggerInsiderm_insiders
 The objects and their metadata which are currently inside the Trigger.
 

Detailed Description

Scripted Trigger.

Constructor & Destructor Documentation

◆ Trigger()

private void Trigger ( )
inlineprivate

ctor

References m_insiders, and SetFlags().

◆ ~Trigger()

private void ~Trigger ( )
inlineprivate

dtor

Member Function Documentation

◆ AddInsider()

◆ CanAddObjectAsInsider()

protected bool CanAddObjectAsInsider ( Object  object)
inlineprivate

Condition whether an Object can be added as TriggerInsider (checked before calling AddInsider)

Referenced by EOnEnter().

◆ CreateInsider()

protected TriggerInsider CreateInsider ( Object  obj)
inlineprivate

Used for easily overriding TriggerInsider creation without rewriting AddInsider.

Referenced by AddInsider().

◆ EOnEnter()

override void EOnEnter ( IEntity  other,
int  extra 
)
inlineprivate

When an Object enters the trigger add it to Insiders.

References AddInsider(), CanAddObjectAsInsider(), and Class::CastTo().

◆ EOnFrame()

override void EOnFrame ( IEntity  other,
float  timeSlice 
)
inlineprivate

When an Object touches the Trigger, we want to register it being inside the Trigger -> Replaced by EOnEnter.

We want to update the insiders every frame (or do we?)

References TIMEOUT, and UpdateInsiders().

◆ EOnInit()

override void EOnInit ( IEntity  other,
int  extra 
)
inlineprivate

Set the default extents of the Trigger only once it is properly initialized.

References SetExtents().

◆ EOnLeave()

override void EOnLeave ( IEntity  other,
int  extra 
)
inlineprivate

When an Object exits the trigger remove it from Insiders.

References Class::CastTo(), and RemoveInsiderByObject().

◆ GetInsiderForObject()

TriggerInsider GetInsiderForObject ( Object  object)
inlineprivate

Gets the TriggerInsider for the Object if it exists.

References TriggerInsider::GetObject(), and m_insiders.

Referenced by AddInsider().

◆ GetInsiderIndexForObject()

int GetInsiderIndexForObject ( Object  object)
inlineprivate

Gets the index in m_insiders for the Object.

References TriggerInsider::GetObject(), and m_insiders.

◆ GetInsiders()

array< ref TriggerInsider > GetInsiders ( )
inlineprivate

Get the current TriggerInsider array, left for backwards compatibility, moved down from ManTrigger.

References m_insiders.

Referenced by ConstructionBoxTrigger::IsColliding().

◆ GetRadius()

float GetRadius ( vector  min,
vector  max 
)
inlineprivate

Get the radius of the CollisionBox, simply left for backwards compatibility.

◆ OnEnter() [1/2]

override void OnEnter ( Object  obj)
inlineprivate

References m_ParentObj.

Referenced by OnEnterBeginEvent().

◆ OnEnter() [2/2]

void OnEnter ( Object  obj)
inlineprivate

◆ OnEnterBeginEvent()

override protected void OnEnterBeginEvent ( TriggerInsider  insider)
inlineprivate

◆ OnLeave() [1/2]

override void OnLeave ( Object  obj)
inlineprivate

References m_ParentObj.

Referenced by OnLeaveBeginEvent().

◆ OnLeave() [2/2]

void OnLeave ( Object  obj)
inlineprivate

◆ OnLeaveBeginEvent()

override protected void OnLeaveBeginEvent ( TriggerInsider  insider)
inlineprivate

◆ OnRPC()

override void OnRPC ( PlayerIdentity  sender,
int  rpc_type,
ParamsReadContext  ctx 
)
inlineprivate

References Serializer::Read(), and vector::Zero.

◆ RemoveInsider()

protected void RemoveInsider ( TriggerInsider  insider,
int  index = -1 
)
inlineprivate

◆ RemoveInsiderByObject()

protected void RemoveInsiderByObject ( Object  object)
inlineprivate

Removing of TriggerInsider through Object.

References TriggerInsider::GetObject(), m_insiders, and RemoveInsider().

Referenced by EOnLeave().

◆ SetExtents()

void SetExtents ( vector  mins,
vector  maxs 
)
inlineprivate

Set the size of the Trigger, avoid using SetCollisionBox directly.

References SetCollisionBox().

Referenced by CreateCollisionTrigger(), CreateTrigger(), TrapBase::CreateTrigger(), ManTrigger::EOnInit(), EOnInit(), and Init().

◆ SetParentObject()

void SetParentObject ( Hologram  projection)
inlineprivate

References m_ParentObj.

◆ SetParentOwner()

void SetParentOwner ( PlayerBase  player)
inlineprivate

References m_Player.

◆ ShouldRemoveInsider()

protected bool ShouldRemoveInsider ( TriggerInsider  insider)
inlineprivate

Condition whether a TriggerInsider should still be updated or not (checked in update loop and before adding)

Referenced by AddInsider(), and UpdateInsiders().

◆ ShouldRemoveInsiderNoLeave()

protected bool ShouldRemoveInsiderNoLeave ( TriggerInsider  insider)
inlineprivate

Condition whether a TriggerInsider should still be updated or not, skips OnLeaveEvent (checked in update loop and before adding)

Referenced by AddInsider(), and UpdateInsiders().

◆ UpdateInsiders() [1/2]

override protected void UpdateInsiders ( int  timeout)
inlineprivate

Referenced by EOnFrame().

◆ UpdateInsiders() [2/2]

Field Documentation

◆ m_insiders

ref array<ref TriggerInsider> m_insiders
private

The objects and their metadata which are currently inside the Trigger.

Referenced by AddInsider(), GetInsiderForObject(), GetInsiderIndexForObject(), GetInsiders(), RemoveInsider(), RemoveInsiderByObject(), Trigger(), and UpdateInsiders().

◆ m_ParentObj

protected Hologram m_ParentObj
private

◆ m_Player

protected PlayerBase m_Player
private

◆ m_TriggerUpdateMs

protected int m_TriggerUpdateMs
private

◆ TIMEOUT

const int TIMEOUT = 1000
private

DEPRECATED.

Referenced by EOnFrame().


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