Table of Contents

Class GridEventBus

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

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

Usage Recommendation: This Core event bus is designed for:

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

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

public class GridEventBus : EventBus
Inheritance
GridEventBus
Inherited Members

Methods

Publish(GridCellChangedEvent)

Publishes a grid cell changed event. Triggers C# event subscribers.

public void Publish(GridCellChangedEvent @event)

Parameters

event GridCellChangedEvent

Publish(GridOccupancyChangedEvent)

Publishes a grid occupancy changed event. Triggers C# event subscribers.

public void Publish(GridOccupancyChangedEvent @event)

Parameters

event GridOccupancyChangedEvent

Publish(GridSizeChangedEvent)

Publishes a grid size changed event. Triggers C# event subscribers.

public void Publish(GridSizeChangedEvent @event)

Parameters

event GridSizeChangedEvent

Publish(GridUpdatedEvent)

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

public void Publish(GridUpdatedEvent @event)

Parameters

event GridUpdatedEvent

Events

OnGridCellChanged

public event Action<GridCellChangedEvent>? OnGridCellChanged

Event Type

Action<GridCellChangedEvent>

OnGridOccupancyChanged

public event Action<GridOccupancyChangedEvent>? OnGridOccupancyChanged

Event Type

Action<GridOccupancyChangedEvent>

OnGridSizeChanged

public event Action<GridSizeChangedEvent>? OnGridSizeChanged

Event Type

Action<GridSizeChangedEvent>

OnGridUpdated

public event Action<GridUpdatedEvent>? OnGridUpdated

Event Type

Action<GridUpdatedEvent>