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
eventTargetAcquiredEvent
Publish(TargetChangedEvent)
Publishes a target changed event. Triggers C# event subscribers.
public void Publish(TargetChangedEvent @event)
Parameters
eventTargetChangedEvent
Publish(TargetLostEvent)
Publishes a target lost event. Triggers C# event subscribers.
public void Publish(TargetLostEvent @event)
Parameters
eventTargetLostEvent
Publish(TargetingStateChangedEvent)
Publishes a targeting state changed event. Triggers C# event subscribers.
public void Publish(TargetingStateChangedEvent @event)
Parameters
Events
OnTargetAcquired
public event Action<TargetAcquiredEvent>? OnTargetAcquired
Event Type
OnTargetChanged
public event Action<TargetChangedEvent>? OnTargetChanged
Event Type
OnTargetLost
public event Action<TargetLostEvent>? OnTargetLost
Event Type
OnTargetingStateChanged
public event Action<TargetingStateChangedEvent>? OnTargetingStateChanged