Table of Contents

Class PlacementEventBus

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

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

Usage Recommendation: This Core event bus is designed for:

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

Do NOT use in engine-dependent code: For Godot or Unity clients, use the engine-specific signal bus adapters (PlacementSignalBus 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 → PlacementEventBus → Engine adapter bridges → Engine signals (Godot signals, UnityEvents, etc.)

public class PlacementEventBus : EventBus
Inheritance
PlacementEventBus
Inherited Members

Methods

Publish(IndicatorEvaluationCompletedEvent)

Publishes an indicator evaluation completed event. Triggers C# event subscribers.

public void Publish(IndicatorEvaluationCompletedEvent @event)

Parameters

event IndicatorEvaluationCompletedEvent

Publish(PlaceableSelectedEvent)

Publishes a placeable selected event. Triggers C# event subscribers.

public void Publish(PlaceableSelectedEvent @event)

Parameters

event PlaceableSelectedEvent

Publish(PlacementCancelledEvent)

Publishes a placement cancelled event. Triggers C# event subscribers.

public void Publish(PlacementCancelledEvent @event)

Parameters

event PlacementCancelledEvent

Publish(PlacementFailedEvent)

Publishes a placement failed event. Triggers C# event subscribers.

public void Publish(PlacementFailedEvent @event)

Parameters

event PlacementFailedEvent

Publish(PlacementPreviewUpdatedEvent)

Publishes a placement preview updated event.

public void Publish(PlacementPreviewUpdatedEvent @event)

Parameters

event PlacementPreviewUpdatedEvent

Publish(PlacementSuccessEvent)

Publishes a placement success event. Triggers C# event subscribers.

public void Publish(PlacementSuccessEvent @event)

Parameters

event PlacementSuccessEvent

Publish(PlacementValidatedEvent)

Publishes a placement validated event. Triggers C# event subscribers.

public void Publish(PlacementValidatedEvent @event)

Parameters

event PlacementValidatedEvent

Publish(ValidationCompletedEvent)

Publishes a validation completed event. Triggers C# event subscribers.

public void Publish(ValidationCompletedEvent @event)

Parameters

event ValidationCompletedEvent

Publish(ValidationRequestEvent)

Publishes a validation request event. Triggers C# event subscribers.

public void Publish(ValidationRequestEvent @event)

Parameters

event ValidationRequestEvent

Events

OnIndicatorEvaluationCompleted

public event Action<IndicatorEvaluationCompletedEvent>? OnIndicatorEvaluationCompleted

Event Type

Action<IndicatorEvaluationCompletedEvent>

OnPlaceableSelected

public event Action<PlaceableSelectedEvent>? OnPlaceableSelected

Event Type

Action<PlaceableSelectedEvent>

OnPlacementCancelled

public event Action<PlacementCancelledEvent>? OnPlacementCancelled

Event Type

Action<PlacementCancelledEvent>

OnPlacementFailed

public event Action<PlacementFailedEvent>? OnPlacementFailed

Event Type

Action<PlacementFailedEvent>

OnPlacementPreviewUpdated

public event Action<PlacementPreviewUpdatedEvent>? OnPlacementPreviewUpdated

Event Type

Action<PlacementPreviewUpdatedEvent>

OnPlacementSuccess

public event Action<PlacementSuccessEvent>? OnPlacementSuccess

Event Type

Action<PlacementSuccessEvent>

OnPlacementValidated

public event Action<PlacementValidatedEvent>? OnPlacementValidated

Event Type

Action<PlacementValidatedEvent>

OnValidationCompleted

public event Action<ValidationCompletedEvent>? OnValidationCompleted

Event Type

Action<ValidationCompletedEvent>

OnValidationRequested

public event Action<ValidationRequestEvent>? OnValidationRequested

Event Type

Action<ValidationRequestEvent>