Skip to main content

FB2AuraSystem

Overview

  • Subsystem that centrally manages the Aura system. Switches from the previous per-FB2AuraComponent Tick approach to a system-based Tick to improve performance. Emitter: an Entity emitting an Aura (few, dynamically registered). Receiver: an Entity affected by Auras (every Entity that has an AuraComponent). Location-change detection is done automatically in the system Tick.

Metadata

FieldValue
Kindsystem
EnvironmentB2 - Simulation
Categorysystems
ExtendsFB2Subsystem
Requirerequire('Systems.FB2AuraSystem')

Properties (8)

NameTypeDescription
EmitterEntriesFB2AuraEmitterEntry[]Array of Emitter entries (only Entities currently emitting an Aura).
EmitterIndexMaptable<FB1EntityId, integer>
PendingComponentsany[]
PendingEmitterUnregistrationsFB1EntityId[]
PendingReceiverUnregistrationsFB1EntityId[]
ReceiverEntriesFB2AuraReceiverEntry[]Array of Receiver entries (every Entity with an AuraComponent).
ReceiverIndexMaptable<FB1EntityId, integer>Index map for fast lookup.
bIsProcessingTickbooleanPrevents array modification during Tick processing. Prevents OOB/stale-index when the Entries array changes on the UpdateReceiverAura/UpdateEmitterLocation -> Entity::Destroy -> AuraComponent::OnDestroy -> UnregisterReceiver/UnregisterEmitter path.

Functions (9)

FunctionParametersReturnsDescription
GetEmitterCount-integerReturns Emitter Count.
GetReceiverCount-integerQueries state (receiver count).
IsRegisteredAsEmitterInEntityId: FB1EntityIdbooleanReturns whether Registered As Emitter.
IsRegisteredAsReceiverInEntityId: FB1EntityIdbooleanReturns whether Registered As Receiver.
RegisterEmitterInEntityId: FB1EntityId-Registers Emitter.
RegisterReceiverInEntityId: FB1EntityId-Registers Receiver.
TickDeltaTime: number, CurrentTime: FDateTime-System Tick. Detects Emitter/Receiver location changes and processes Auras.
UnregisterEmitterInEntityId: FB1EntityId-Unregisters Emitter.
UnregisterReceiverInEntityId: FB1EntityId-Unregisters Receiver.

Override points (5)

Implement these in Lua as FB2AuraSystem.Override_Name = function(...) end.

FunctionParametersReturnsDescription
Override_RegisterEmitterInEntityId: FB1EntityId-Registers Emitter.
Override_RegisterReceiverInEntityId: FB1EntityId-Registers Receiver.
Override_TickDeltaTime: number, CurrentTime: FDateTime-System Tick. Detects Emitter/Receiver location changes and processes Auras.
Override_UnregisterEmitterInEntityId: FB1EntityId-Unregisters Emitter.
Override_UnregisterReceiverInEntityId: FB1EntityId-Unregisters Receiver.