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
eventGridCellChangedEvent
Publish(GridOccupancyChangedEvent)
Publishes a grid occupancy changed event. Triggers C# event subscribers.
public void Publish(GridOccupancyChangedEvent @event)
Parameters
Publish(GridSizeChangedEvent)
Publishes a grid size changed event. Triggers C# event subscribers.
public void Publish(GridSizeChangedEvent @event)
Parameters
eventGridSizeChangedEvent
Publish(GridUpdatedEvent)
Publishes a grid updated event. Triggers C# event subscribers.
public void Publish(GridUpdatedEvent @event)
Parameters
eventGridUpdatedEvent
Events
OnGridCellChanged
public event Action<GridCellChangedEvent>? OnGridCellChanged
Event Type
OnGridOccupancyChanged
public event Action<GridOccupancyChangedEvent>? OnGridOccupancyChanged
Event Type
OnGridSizeChanged
public event Action<GridSizeChangedEvent>? OnGridSizeChanged
Event Type
OnGridUpdated
public event Action<GridUpdatedEvent>? OnGridUpdated