Arma Reforger Script API
Loading...
Searching...
No Matches
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
SCR_SpawnHandlerComponent Interface Reference

SCR_SpawnRequestComponent <-> SCR_SpawnHandlerComponent. More...

Inheritance diagram for SCR_SpawnHandlerComponent:
[legend]

Public Member Functions

SCR_ESpawnResult CanHandleRequest_S (SCR_SpawnRequestComponent requestComponent, SCR_SpawnData data)
 Can a player be spawned with provided data?
 
SCR_ESpawnResult HandleRequest_S (SCR_SpawnRequestComponent requestComponent, SCR_SpawnData data, out IEntity spawnedEntity)
 Handle request - validate resources, try to spawn, prepare and pass ownership to player.
 
void OnFinalizeBegin_S (SCR_SpawnRequestComponent requestComponent, SCR_SpawnData data, IEntity entity)
 Called when the finalisation process begins.
 
bool CanFinalize_S (SCR_SpawnRequestComponent requestComponent, SCR_SpawnData data, IEntity entity)
 Called periodically to ask whether finalization can be finished.
 
SCR_ESpawnResult FinalizeRequest_S (SCR_SpawnRequestComponent requestComponent, SCR_SpawnData data, IEntity entity)
 Finalise request - validate resources, try to spawn, prepare and pass ownership to player.
 
void OnFinalizeDone_S (SCR_SpawnRequestComponent requestComponent, SCR_SpawnData data, IEntity entity)
 Request finalized (player spawned).
 
bool CanRequestSpawn_S (SCR_SpawnRequestComponent requestComponent, SCR_SpawnData data, out SCR_ESpawnResult result)
 Can a player spawn, based on the provided data?
 

Protected Member Functions

SCR_RespawnSystemComponent GetRespawnSystemComponent ()
 
override void OnPostInit (IEntity owner)
 Initialises the handler by finding necessary dependencies.
 
bool ValidateData_S (SCR_SpawnRequestComponent requestComponent, SCR_SpawnData data)
 Verifies provided data.
 
SCR_ESpawnResult SpawnEntity_S (SCR_SpawnRequestComponent requestComponent, notnull SCR_SpawnData data, out IEntity spawnedEntity)
 
bool ValidatePrefab_S (ResourceName resourceName)
 Verifies provided prefab.
 
bool PrepareEntity_S (SCR_SpawnRequestComponent requestComponent, IEntity entity, SCR_SpawnData data)
 Prepare an entity on the server side prior to passing ownership.
 
bool AssignEntity_S (SCR_SpawnRequestComponent requestComponent, IEntity entity, SCR_SpawnData data)
 Assign the entity ownership and set is as the controlled entity of provided player.
 
void HandleSpawnEntityFailure_S (SCR_SpawnRequestComponent requestComponent, IEntity entity, SCR_SpawnData data, SCR_ESpawnResult reason)
 In cases where an entity is spawned, it might be desirable to dispose of it if it e.g.
 
bool ShouldDeleteEntityOnSpawnFailure_S (SCR_SpawnRequestComponent requestComponent, IEntity entity, SCR_SpawnData data, SCR_ESpawnResult reason)
 Check whether spawned entity should be deleted if the spawn process failed.
 
void HandleEntityChange_S (SCR_SpawnRequestComponent requestComponent, IEntity previousEntity, IEntity newEntity, SCR_SpawnData data)
 Called after new entity is assigned to the player.
 

Protected Attributes

bool m_bDestroyPreviousControlledEntity
 
bool m_bDeletePreviousControlledEntity
 

Detailed Description

SCR_SpawnRequestComponent <-> SCR_SpawnHandlerComponent.

SCR_SpawnRequestComponent allows communication between client and the authority, SCR_SpawnHandlerComponent handles the requests on authority as desired.

The handler is the authority component of the respawn process which handles client (or authority-issued) request to respawn from a specific player controller and ensures that the spawning process is handled and streamlined. The process is further streamlined via the usage of a unified parent manager, the SCR_RespawnSystemComponent.

Member Function Documentation

◆ AssignEntity_S()

bool SCR_SpawnHandlerComponent.AssignEntity_S ( SCR_SpawnRequestComponent  requestComponent,
IEntity  entity,
SCR_SpawnData  data 
)
protected

Assign the entity ownership and set is as the controlled entity of provided player.

Parameters
[in]requestComponent
[in]entity
[in]data
Returns

◆ CanFinalize_S()

bool SCR_SpawnHandlerComponent.CanFinalize_S ( SCR_SpawnRequestComponent  requestComponent,
SCR_SpawnData  data,
IEntity  entity 
)

Called periodically to ask whether finalization can be finished.

Parameters
[in]requestComponent
[in]data
[in]entity
Returns
True to finalize request, resulting in FinalizeRequest_S call, false to await further.

Implemented in SCR_SpawnPointSpawnHandlerComponent.

◆ CanHandleRequest_S()

SCR_ESpawnResult SCR_SpawnHandlerComponent.CanHandleRequest_S ( SCR_SpawnRequestComponent  requestComponent,
SCR_SpawnData  data 
)

Can a player be spawned with provided data?

Parameters
[in]requestComponentInstigator of this request
[in]dataRequest/ask data

Implemented in SCR_PossessSpawnHandlerComponent.

◆ CanRequestSpawn_S()

bool SCR_SpawnHandlerComponent.CanRequestSpawn_S ( SCR_SpawnRequestComponent  requestComponent,
SCR_SpawnData  data,
out SCR_ESpawnResult  result 
)

Can a player spawn, based on the provided data?

Handle game logic, ask game mode, respawn timers -> anything relevant for proper evaluation.

Parameters
[in]requestComponent
[in]data
[out]result
Returns
true if spawn is possible, false otherwise.

Implemented in SCR_PossessSpawnHandlerComponent, and SCR_SpawnPointSpawnHandlerComponent.

◆ FinalizeRequest_S()

SCR_ESpawnResult SCR_SpawnHandlerComponent.FinalizeRequest_S ( SCR_SpawnRequestComponent  requestComponent,
SCR_SpawnData  data,
IEntity  entity 
)

Finalise request - validate resources, try to spawn, prepare and pass ownership to player.

Parameters
[in]requestComponent
[in]data
[in]entity
Returns

◆ GetRespawnSystemComponent()

SCR_RespawnSystemComponent SCR_SpawnHandlerComponent.GetRespawnSystemComponent ( )
protected
Returns
parent handler manager component.

◆ HandleEntityChange_S()

void SCR_SpawnHandlerComponent.HandleEntityChange_S ( SCR_SpawnRequestComponent  requestComponent,
IEntity  previousEntity,
IEntity  newEntity,
SCR_SpawnData  data 
)
protected

Called after new entity is assigned to the player.

Parameters
[in]requestComponent
[in]previousEntityLast controlled entity or null if none.
[in]newEntityNew controlled entity.
[in]data

◆ HandleRequest_S()

SCR_ESpawnResult SCR_SpawnHandlerComponent.HandleRequest_S ( SCR_SpawnRequestComponent  requestComponent,
SCR_SpawnData  data,
out IEntity  spawnedEntity 
)

Handle request - validate resources, try to spawn, prepare and pass ownership to player.

Parameters
[in]requestComponent
[in]data
[out]spawnedEntity
Returns

Implemented in SCR_SpawnPointSpawnHandlerComponent.

◆ HandleSpawnEntityFailure_S()

void SCR_SpawnHandlerComponent.HandleSpawnEntityFailure_S ( SCR_SpawnRequestComponent  requestComponent,
IEntity  entity,
SCR_SpawnData  data,
SCR_ESpawnResult  reason 
)
protected

In cases where an entity is spawned, it might be desirable to dispose of it if it e.g.

cannot be prepared, or assigned to the target player. Such cases can be handled by overriding this method. By default, the entity is deleted.

Parameters
[in]requestComponent
[in]entityThe entity that should be spawned, but could not be given over (prepared, assigned, ..)
[in]data
[in]reason

◆ OnFinalizeBegin_S()

void SCR_SpawnHandlerComponent.OnFinalizeBegin_S ( SCR_SpawnRequestComponent  requestComponent,
SCR_SpawnData  data,
IEntity  entity 
)

Called when the finalisation process begins.

◆ OnFinalizeDone_S()

void SCR_SpawnHandlerComponent.OnFinalizeDone_S ( SCR_SpawnRequestComponent  requestComponent,
SCR_SpawnData  data,
IEntity  entity 
)

Request finalized (player spawned).

Parameters
[in]requestComponent
[in]data
[in]entity

Implemented in SCR_PossessSpawnHandlerComponent, and SCR_SpawnPointSpawnHandlerComponent.

◆ OnPostInit()

override void SCR_SpawnHandlerComponent.OnPostInit ( IEntity  owner)
protected

Initialises the handler by finding necessary dependencies.

Parameters
[in]owner

Implemented in SCR_SpawnPointSpawnHandlerComponent.

◆ PrepareEntity_S()

bool SCR_SpawnHandlerComponent.PrepareEntity_S ( SCR_SpawnRequestComponent  requestComponent,
IEntity  entity,
SCR_SpawnData  data 
)
protected

Prepare an entity on the server side prior to passing ownership.

For example in this case character can have items added, can be seated in vehicle, etc.

Parameters
[in]requestComponent
[in]entity
[in]data
Returns

Implemented in SCR_SpawnPointSpawnHandlerComponent.

◆ ShouldDeleteEntityOnSpawnFailure_S()

bool SCR_SpawnHandlerComponent.ShouldDeleteEntityOnSpawnFailure_S ( SCR_SpawnRequestComponent  requestComponent,
IEntity  entity,
SCR_SpawnData  data,
SCR_ESpawnResult  reason 
)
protected

Check whether spawned entity should be deleted if the spawn process failed.

Parameters
[in]requestComponent
[in]entity
[in]data
[in]reason
Returns

Implemented in SCR_PossessSpawnHandlerComponent.

◆ SpawnEntity_S()

SCR_ESpawnResult SCR_SpawnHandlerComponent.SpawnEntity_S ( SCR_SpawnRequestComponent  requestComponent,
notnull SCR_SpawnData  data,
out IEntity  spawnedEntity 
)
protected
  1. Validate prefab on server
  2. Validate input data on server
  3. Spawn entity on server
  4. Prepare entity on server (e.g. seat in vehicle) On success next step is to Finalise.
    Parameters
    [in]requestComponent
    [in]data
    [out]spawnedEntity
    Returns

Implemented in SCR_PossessSpawnHandlerComponent, and SCR_SpawnPointSpawnHandlerComponent.

◆ ValidateData_S()

bool SCR_SpawnHandlerComponent.ValidateData_S ( SCR_SpawnRequestComponent  requestComponent,
SCR_SpawnData  data 
)
protected

Verifies provided data.

Parameters
[in]requestComponent
[in]data
Returns

Implemented in SCR_PossessSpawnHandlerComponent, and SCR_SpawnPointSpawnHandlerComponent.

◆ ValidatePrefab_S()

bool SCR_SpawnHandlerComponent.ValidatePrefab_S ( ResourceName  resourceName)
protected

Verifies provided prefab.

Parameters
[in]resourceName
Returns
true if provided prefab is a valid and has a controller component.

Member Data Documentation

◆ m_bDeletePreviousControlledEntity

bool SCR_SpawnHandlerComponent.m_bDeletePreviousControlledEntity
protected

◆ m_bDestroyPreviousControlledEntity

bool SCR_SpawnHandlerComponent.m_bDestroyPreviousControlledEntity
protected

The documentation for this interface was generated from the following file: