2022-12-19 18:47:15 -08:00
using Robust.Shared.Map ;
using Robust.Shared.Map.Components ;
using Content.Shared.Singularity.Components ;
namespace Content.Server.Singularity.Events ;
/// <summary>
/// Event raised on the event horizon entity whenever an event horizon consumes an entity.
/// </summary>
2023-07-19 01:01:27 -07:00
[ByRefEvent]
public readonly record struct TilesConsumedByEventHorizonEvent
( IReadOnlyList < ( Vector2i , Tile ) > tiles , EntityUid mapGridUid , MapGridComponent mapGrid , EntityUid eventHorizonUid , EventHorizonComponent eventHorizon )
2022-12-19 18:47:15 -08:00
{
/// <summary>
/// The tiles that the event horizon is consuming.
/// Ripped directly from the relevant proc so the second element of each element will be what the tiles are going to be after the grid is updated; usually <see cref="Tile.Empty"/>.
/// </summary>
2023-07-19 01:01:27 -07:00
public readonly IReadOnlyList < ( Vector2i , Tile ) > Tiles = tiles ;
/// <summary>
/// The uid of the map grid the event horizon is consuming part of.
/// </summary>
public readonly EntityUid MapGridUid = mapGridUid ;
2022-12-19 18:47:15 -08:00
/// <summary>
/// The mapgrid that the event horizon is consuming tiles of.
/// </summary>
2023-07-19 01:01:27 -07:00
public readonly MapGridComponent MapGrid = mapGrid ;
2022-12-19 18:47:15 -08:00
/// <summary>
2023-07-19 01:01:27 -07:00
/// The uid of the event horizon consuming the entity.
2022-12-19 18:47:15 -08:00
/// </summary>
2023-07-19 01:01:27 -07:00
public readonly EntityUid EventHorizonUid = eventHorizonUid ;
2022-12-19 18:47:15 -08:00
2023-07-19 01:01:27 -07:00
/// <summary>
/// The event horizon consuming the tiles.
/// </summary>
public readonly EventHorizonComponent EventHorizon = eventHorizon ;
2022-12-19 18:47:15 -08:00
}