Arma Reforger Script API
|
This component allows the player to interact with their environment. More...
Public Member Functions | |
void | ActionPerform (float value, EActionTrigger reason) |
Callback for caching the key press. | |
void | ActionScroll (float value, EActionTrigger reason) |
override void | OnInit (IEntity owner) |
Called on initialization. | |
void | GetOverrideListReferencePoint (IEntity owner, out vector referencePoint) |
override array< IEntity > | GetManualNearbyOverrideList (IEntity owner, out vector referencePoint) |
Callback when manual nearby collection override is enabled. | |
override array< IEntity > | GetManualOverrideList (IEntity owner, out vector referencePoint) |
Callback when manual collection override is enabled. | |
float | GetRaycastThreshold () |
![]() | |
proto external UserActionContext | GetCurrentContext () |
Returns currently gathered (active-preferred) context or null if none. | |
proto external IEntity | GetControlledEntity () |
Returns the controlled entity or null if none. | |
proto external int | GetFilteredActions (out notnull array< BaseUserAction > outActions, out notnull array< bool > outCanBePerformed) |
After collection is done, this method can be used for retrieving already checked user actions from current context. | |
proto external bool | IsContextAvailable () |
Returns true when there is a gathered context available. | |
proto external void | SetManualNearbyCollectionOverride (bool enabled) |
If set to true, we expect a list of nearby entities to be provided from the user instead. | |
proto external bool | GetManualNearbyCollectionOverride () |
Returns whether manual nearby collection override is set (we expect a list of nearby entities to be provided from the user instead) | |
proto external void | SetManualCollectionOverride (bool enabled) |
If set to true, we expect a list of entities to be provided from the user instead. | |
proto external bool | GetManualCollectionOverride () |
Returns whether manual collection override is set (we expect a list of entities to be provided from the user instead) | |
proto external void | SetNearbyCollectionEnabled (bool enabled) |
Sets whether nearby available context collection should be enabled. | |
proto external bool | GetNearbyCollectionEnabled () |
Returns whether nearby available context collection is enabled. | |
proto external float | GetNearbyCollectionRadius () |
Returns the radius in meters that is used for nearby available context collection. | |
proto external int | GetNearbyAvailableContextList (out notnull array< UserActionContext > outContexts) |
If nearby collection is enabled, fills the provided array with collected contexts nearby. | |
proto external int | GetNearbyShowableContextList (out notnull array< UserActionContext > outContexts) |
If nearby collection is enabled, fills the provided array with collected contexts nearby. | |
proto external int | GetNearbyUnavailableContextList (out notnull array< UserActionContext > outContexts) |
If nearby collection is enabled, fills the provided array with collected contexts nearby. | |
proto external vector | GetLastReferencePoint (float timeSlice) |
The last known interaction reference point. | |
![]() | |
proto external bool | IsInteractionAvailable () |
Returns true if any interaction can be done at given moment, i.e. UI should be shown. | |
proto external BaseUserAction | GetSelectedAction () |
Return currently selected user action or null if none. | |
proto external float | GetVisibilityRange () |
Returns the global actions visibility range value defined by attribute in this component. | |
void | OnFrame (IEntity owner, float timeSlice) |
Called every frame, only for local player controller. | |
void | OnAfterPostSimulate (IEntity owner, float timeSlice) |
Called after post simulate, only for local player controller. | |
![]() | |
bool | OnTicksOnRemoteProxy () |
Static Public Member Functions | |
static bool | CanBeShownInVehicle (notnull ChimeraCharacter character, notnull BaseUserAction userAction, bool pilotOnly=false, bool pilotUncapableOverride=false, bool interiorOnly=false, array< int > definedCompartmentsOnly=null, array< int > excludeDefinedCompartments=null) |
Check if action can be shown when player is inside a vehicle. | |
Protected Member Functions | |
void | RegisterActionListeners () |
Action listeners that are meant to be registered once per user and only for the user who is the owner of this controller. | |
void | RemoveActionListeners () |
override void | OnControlledEntityChanged (IEntity from, IEntity to) |
Method called when player takes controll over an entity. | |
SCR_BaseInteractionDisplay | FindDisplay (IEntity owner) |
void | DoProcessInteraction (ChimeraCharacter user, UserActionContext context, BaseUserAction action, bool canPerform, bool performInput, float timeSlice, SCR_BaseInteractionDisplay display) |
Checks input, compares it to previous states and evaluates what the handler should do next. | |
override bool | GetCanInteractScript (IEntity controlledEntity) |
Are we allowed to start collecting and processing interactions? Implement custom logic and return true if yes, false otherwise. | |
override bool | GetIsInteractionAvailableScript () |
Are any user actions available to interact with? Implement and return true if yes, false otherwise. | |
override BaseUserAction | GetSelectedActionScript () |
Currently sected action or null if none. | |
override bool | DoIntersectCheck (IEntity controlledEntity) |
Should preferred context collection use intersect checks? This will make a ray check against the context's radius. | |
override void | OnContextChanged (UserActionContext previousContext, UserActionContext newContext) |
Event called when InteractionHandlerComponent finds new target UserActionContext and a change occurs. | |
override bool | CanContextChange (UserActionContext currentContext, UserActionContext newContext) |
Called before a context is set to determine whether a change can occur. | |
override bool | IsPerformingAction () |
bool | IsFreelookEnabled (ChimeraCharacter character) |
display mode is set to automatic freelook mode. | |
bool | ShouldBeEnabled (SCR_NearbyContextDisplayMode displayMode, ChimeraCharacter character, bool playerCameraOnly=true) |
void | HandleOverride (notnull ChimeraCharacter character) |
Check if the player is inside a vehicle or is inspecting something and enable/disable ManualNearbyCollectionOverride and ManualCollectionOverride for the nearby contexts based on it. | |
bool | HandleVehicle (notnull ChimeraCharacter character) |
Check is player is inside a vehicle and grab all the compartments of that vehicle. | |
bool | HandleInspection (notnull ChimeraCharacter character) |
Check if player is inspecting something (weapon, item, etc) and grab the contexts from it. | |
override void | OnPostFrame (IEntity owner, IEntity controlledEntity, float timeSlice) |
Called once per frame after simulation. | |
void | AggregateActions (array< BaseUserAction > actionsList, array< bool > canPerformList) |
Modifies the input lists (which need to be 1:1 in length and logical sense) so each action which can be aggregated (BaseUserAction.CanAggregate() returns true) only displays the first available (or any first if none is available to perform) action, filtered by BaseUserAction.GetActionName(). | |
![]() | |
proto external void | SetSelectedAction (BaseUserAction action) |
Sets currently select action. | |
Protected Attributes | |
SCR_BaseInteractionDisplay | m_pDisplay |
Display (action menu) used to show UI to the player regarding collected actions. | |
SCR_NearbyContextDisplayMode | m_eDisplayMode |
float | m_fRaycastThreshold |
string | m_sActionName |
string | m_sActionContext |
UserActionContext | m_pLastContext |
Last selected context. | |
BaseUserAction | m_pLastUserAction |
Last selected user action. | |
int | m_iSelectedActionIndex |
Currently selected action index. | |
bool | m_bIsPerforming |
bool | m_bPerformAction |
bool | m_bLastInput |
float | m_fSelectAction |
float | m_fCurrentProgress |
ref array< IEntity > | m_aCollectedEntities = {} |
List of collected entities from which the available contexts will be taken to dispaly (weapon, vehicle, ...) | |
ref array< IEntity > | m_aCollectedNearbyEntities = {} |
List of collected nearby entities from which the available contexts will be taken to dispaly (weapon, vehicle, ...) | |
IEntity | m_ControlledEntity |
ref array< BaseUserAction > | m_ActionsBuffer = {} |
ref array< bool > | m_PerformBuffer = {} |
ref map< string, ref array< int > > | m_IndicesBuffer = new map<string, ref array<int>>() |
This component allows the player to interact with their environment.
It collects UserActionContext from ActionsManagerComponent from surrounding entities via queries, filters and finds the most appropriate one and provides script API to work with them.
It should always be attached to PlayerController entity and is local only.
void SCR_InteractionHandlerComponent.ActionPerform | ( | float | value, |
EActionTrigger | reason ) |
Callback for caching the key press.
void SCR_InteractionHandlerComponent.ActionScroll | ( | float | value, |
EActionTrigger | reason ) |
|
protected |
Modifies the input lists (which need to be 1:1 in length and logical sense) so each action which can be aggregated (BaseUserAction.CanAggregate() returns true) only displays the first available (or any first if none is available to perform) action, filtered by BaseUserAction.GetActionName().
|
static |
Check if action can be shown when player is inside a vehicle.
[in] | Character | controlled by the player |
[in] | User | action that is being checked |
[in] | True,if | the action can only be seen from the PilotCompartment |
[in] | True,if | the action should be available to other passengers as long as pilot is not there or unconscious |
[in] | True,if | the action can only be seen when player is sitting in the vehicle, the action belongs to |
[in] | Array | of Compartments that the action should be shown in. (Does not work if pilotOnly = true) |
[in] | Array | of Compartments that the action can't be shown in. (Does not work if pilotOnly = true) |
|
protected |
Called before a context is set to determine whether a change can occur.
Implements InteractionHandlerComponent.
|
protected |
Should preferred context collection use intersect checks? This will make a ray check against the context's radius.
This works well in tight places where relying on physical collisions is impossible - e.g. in vehicle interiors.
Implements InteractionHandlerComponent.
|
protected |
Checks input, compares it to previous states and evaluates what the handler should do next.
[in] | user | |
[in] | context | |
[in] | action | |
[in] | canPerform | |
[in] | performInput | |
[in] | timeSlice | |
[in] | display |
|
protected |
|
protected |
Are we allowed to start collecting and processing interactions? Implement custom logic and return true if yes, false otherwise.
controlledEntity | The entity that wants to be able to interact (player controlled) |
Implements InteractionHandlerComponent.
|
protected |
Are any user actions available to interact with? Implement and return true if yes, false otherwise.
Implements InteractionHandlerComponent.
override array< IEntity > SCR_InteractionHandlerComponent.GetManualNearbyOverrideList | ( | IEntity | owner, |
out vector | referencePoint ) |
Callback when manual nearby collection override is enabled.
See SetManualNearbyCollectionOverride. It may return nullptrs inside array if this is called between deletion of instance inside the array and updating of the array.
owner | Parent entity |
referencePoint | Point in world space used to calculate distance and sort contexts by |
Implements ExtBaseInteractionHandlerComponent.
override array< IEntity > SCR_InteractionHandlerComponent.GetManualOverrideList | ( | IEntity | owner, |
out vector | referencePoint ) |
Callback when manual collection override is enabled.
See SetManualCollectionOverride. It may return nullptrs inside array if this is called between deletion of instance inside the array and updating of the array.
owner | Parent entity |
referencePoint | Point in world space used to calculate distance and sort contexts by |
Implements ExtBaseInteractionHandlerComponent.
void SCR_InteractionHandlerComponent.GetOverrideListReferencePoint | ( | IEntity | owner, |
out vector | referencePoint ) |
float SCR_InteractionHandlerComponent.GetRaycastThreshold | ( | ) |
|
protected |
Currently sected action or null if none.
Implement and return currently selected action.
Implements InteractionHandlerComponent.
|
protected |
Check if player is inspecting something (weapon, item, etc) and grab the contexts from it.
[in] | character | controlled by the player |
|
protected |
Check if the player is inside a vehicle or is inspecting something and enable/disable ManualNearbyCollectionOverride and ManualCollectionOverride for the nearby contexts based on it.
[in] | character | controlled by the player |
|
protected |
Check is player is inside a vehicle and grab all the compartments of that vehicle.
[in] | character | controlled by the player |
|
protected |
display mode is set to automatic freelook mode.
|
protected |
Implements ExtBaseInteractionHandlerComponent.
|
protected |
Event called when InteractionHandlerComponent finds new target UserActionContext and a change occurs.
Both previous and new context might be 'null' if no context is caught in collection.
previousContext | Context that was active up until this collection - can be null |
newContext | Context that will be active after this collection - can be null if nothing was caught |
Implements ExtBaseInteractionHandlerComponent.
|
protected |
Method called when player takes controll over an entity.
[in] | from | entity which was previously controlled |
[in] | to | entity which is now controlled |
Implements ExtBaseInteractionHandlerComponent.
override void SCR_InteractionHandlerComponent.OnInit | ( | IEntity | owner | ) |
Called on initialization.
Might not be called unless we already own this item.
Implements BaseInteractionHandlerComponent.
|
protected |
Called once per frame after simulation.
Can be used for drawing and updating UI.
Implements ExtBaseInteractionHandlerComponent.
|
protected |
Action listeners that are meant to be registered once per user and only for the user who is the owner of this controller.
|
protected |
|
protected |
|
protected |
List of collected entities from which the available contexts will be taken to dispaly (weapon, vehicle, ...)
|
protected |
List of collected nearby entities from which the available contexts will be taken to dispaly (weapon, vehicle, ...)
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
Currently selected action index.
|
protected |
Display (action menu) used to show UI to the player regarding collected actions.
|
protected |
|
protected |
Last selected context.
|
protected |
Last selected user action.
|
protected |
|
protected |