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 TriggerInsider > | GetInsiders () |
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 TriggerInsider > | m_insiders |
The objects and their metadata which are currently inside the Trigger. | |
Scripted Trigger.
|
inlineprivate |
ctor
References m_insiders, and SetFlags().
|
inlineprivate |
dtor
|
inlineprivate |
Adding of new TriggerInsider.
References CreateInsider(), TriggerEvents::Enter(), Error(), g_Game, GetDebugName(), GetInsiderForObject(), TriggerInsider::lastUpdated, m_insiders, ShouldRemoveInsider(), ShouldRemoveInsiderNoLeave(), TriggerInsider::timeEntered, TriggerInsider::timeStamp, and Debug::TriggerLog().
Referenced by EOnEnter().
Condition whether an Object can be added as TriggerInsider (checked before calling AddInsider)
Referenced by EOnEnter().
|
inlineprivate |
Used for easily overriding TriggerInsider creation without rewriting AddInsider.
Referenced by AddInsider().
When an Object enters the trigger add it to Insiders.
References AddInsider(), CanAddObjectAsInsider(), and Class::CastTo().
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().
Set the default extents of the Trigger only once it is properly initialized.
References SetExtents().
When an Object exits the trigger remove it from Insiders.
References Class::CastTo(), and RemoveInsiderByObject().
|
inlineprivate |
Gets the TriggerInsider for the Object if it exists.
References TriggerInsider::GetObject(), and m_insiders.
Referenced by AddInsider().
Gets the index in m_insiders for the Object.
References TriggerInsider::GetObject(), and m_insiders.
|
inlineprivate |
Get the current TriggerInsider array, left for backwards compatibility, moved down from ManTrigger.
References m_insiders.
Referenced by ConstructionBoxTrigger::IsColliding().
Get the radius of the CollisionBox, simply left for backwards compatibility.
|
inlineprivate |
References m_ParentObj.
Referenced by OnEnterBeginEvent().
|
inlineprivate |
|
inlineprivate |
References TriggerInsider::GetObject(), and OnEnter().
|
inlineprivate |
References m_ParentObj.
Referenced by OnLeaveBeginEvent().
|
inlineprivate |
|
inlineprivate |
References TriggerInsider::GetObject(), and OnLeave().
|
inlineprivate |
References Serializer::Read(), and vector::Zero.
|
inlineprivate |
Removing of TriggerInsider.
References GetDebugName(), TriggerInsider::GetObject(), TriggerEvents::Leave(), m_insiders, and Debug::TriggerLog().
Referenced by RemoveInsiderByObject(), and UpdateInsiders().
|
inlineprivate |
Removing of TriggerInsider through Object.
References TriggerInsider::GetObject(), m_insiders, and RemoveInsider().
Referenced by EOnLeave().
Set the size of the Trigger, avoid using SetCollisionBox directly.
References SetCollisionBox().
Referenced by CreateCollisionTrigger(), CreateTrigger(), TrapBase::CreateTrigger(), ManTrigger::EOnInit(), EOnInit(), and Init().
|
inlineprivate |
References m_ParentObj.
|
inlineprivate |
References m_Player.
|
inlineprivate |
Condition whether a TriggerInsider should still be updated or not (checked in update loop and before adding)
Referenced by AddInsider(), and UpdateInsiders().
|
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().
|
inlineprivate |
Referenced by EOnFrame().
|
inlineprivate |
Update the current TriggerInsider inside the Trigger, timeout paramter is deprecated.
References g_Game, GetDebugName(), TriggerInsider::GetObject(), TriggerInsider::lastUpdated, m_insiders, RemoveInsider(), ShouldRemoveInsider(), ShouldRemoveInsiderNoLeave(), TriggerEvents::Stay(), TriggerEvents::StayFinish(), TriggerEvents::StayStart(), and Debug::TriggerLog().
|
private |
The objects and their metadata which are currently inside the Trigger.
Referenced by AddInsider(), GetInsiderForObject(), GetInsiderIndexForObject(), GetInsiders(), RemoveInsider(), RemoveInsiderByObject(), Trigger(), and UpdateInsiders().
|
private |
|
private |
|
private |
|
private |
DEPRECATED.
Referenced by EOnFrame().