Table of Contents

Class ManipulationEventBus

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

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

Usage Recommendation: This Core event bus is designed for:

  • Headless servers: Use directly for manipulation event handling without engine runtime
  • Core systems: ECS manipulation systems publish events through this bus
  • Unit tests: Subscribe to events in xUnit/NUnit tests without engine dependencies
  • Dedicated servers: Run manipulation logic (move, rotate, flip, demolish) on server

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

public class ManipulationEventBus : EventBus
Inheritance
ManipulationEventBus
Inherited Members

Methods

Publish(ManipulationCancelledEvent)

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

public void Publish(ManipulationCancelledEvent @event)

Parameters

event ManipulationCancelledEvent

Publish(ManipulationFailedEvent)

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

public void Publish(ManipulationFailedEvent @event)

Parameters

event ManipulationFailedEvent

Publish(ManipulationStartedEvent)

Publishes a manipulation started event. Triggers C# event subscribers.

public void Publish(ManipulationStartedEvent @event)

Parameters

event ManipulationStartedEvent

Publish(ManipulationSuccessEvent)

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

public void Publish(ManipulationSuccessEvent @event)

Parameters

event ManipulationSuccessEvent

Publish(ManipulationUpdatedEvent)

Publishes a manipulation updated event. Triggers C# event subscribers.

public void Publish(ManipulationUpdatedEvent @event)

Parameters

event ManipulationUpdatedEvent

Events

OnManipulationCancelled

public event Action<ManipulationCancelledEvent>? OnManipulationCancelled

Event Type

Action<ManipulationCancelledEvent>

OnManipulationFailed

public event Action<ManipulationFailedEvent>? OnManipulationFailed

Event Type

Action<ManipulationFailedEvent>

OnManipulationStarted

public event Action<ManipulationStartedEvent>? OnManipulationStarted

Event Type

Action<ManipulationStartedEvent>

OnManipulationSuccess

public event Action<ManipulationSuccessEvent>? OnManipulationSuccess

Event Type

Action<ManipulationSuccessEvent>

OnManipulationUpdated

public event Action<ManipulationUpdatedEvent>? OnManipulationUpdated

Event Type

Action<ManipulationUpdatedEvent>