Table of Contents

Class TargetingEventBus

Namespace
MoonBark.GridPlacement.Core.Events
Assembly
MoonBark.GridPlacement.Core.dll

Pure C# event bus for targeting operations. Engine-agnostic implementation with no Godot or Unity dependencies.

Usage Recommendation: This Core event bus is designed for:

  • Headless servers: Use directly for targeting event handling without engine runtime
  • Core systems: ECS targeting systems publish events through this bus
  • Unit tests: Subscribe to events in xUnit/NUnit tests without engine dependencies
  • Dedicated servers: Run targeting logic on server without rendering

Do NOT use in engine-dependent code: For Godot or Unity clients, use the engine-specific signal bus adapters (TargetingSignalBus in Godot) that bridge these Core events to engine signals. This keeps engine-specific code isolated in the adapter layer.

Architecture Boundary: Core ECS systems → TargetingEventBus → Engine adapter bridges → Engine signals (Godot signals, UnityEvents, etc.)

public class TargetingEventBus : EventBus
Inheritance
TargetingEventBus
Inherited Members

Methods

Publish(TargetAcquiredEvent)

Publishes a target acquired event. Triggers C# event subscribers.

public void Publish(TargetAcquiredEvent @event)

Parameters

event TargetAcquiredEvent

Publish(TargetChangedEvent)

Publishes a target changed event. Triggers C# event subscribers.

public void Publish(TargetChangedEvent @event)

Parameters

event TargetChangedEvent

Publish(TargetLostEvent)

Publishes a target lost event. Triggers C# event subscribers.

public void Publish(TargetLostEvent @event)

Parameters

event TargetLostEvent

Publish(TargetingStateChangedEvent)

Publishes a targeting state changed event. Triggers C# event subscribers.

public void Publish(TargetingStateChangedEvent @event)

Parameters

event TargetingStateChangedEvent

Events

OnTargetAcquired

public event Action<TargetAcquiredEvent>? OnTargetAcquired

Event Type

Action<TargetAcquiredEvent>

OnTargetChanged

public event Action<TargetChangedEvent>? OnTargetChanged

Event Type

Action<TargetChangedEvent>

OnTargetLost

public event Action<TargetLostEvent>? OnTargetLost

Event Type

Action<TargetLostEvent>

OnTargetingStateChanged

public event Action<TargetingStateChangedEvent>? OnTargetingStateChanged

Event Type

Action<TargetingStateChangedEvent>