using Robust.Shared.GameStates;
using Robust.Shared.Map;
using Robust.Shared.Serialization;
namespace Content.Shared.Explosion;
///
/// Component that is used to send explosion overlay/visual data to an abstract explosion entity.
///
[RegisterComponent, NetworkedComponent]
public sealed partial class ExplosionVisualsComponent : Component
{
public MapCoordinates Epicenter;
public Dictionary>? SpaceTiles;
public Dictionary>> Tiles = new();
public List Intensity = new();
public string ExplosionType = string.Empty;
public Matrix3 SpaceMatrix;
public ushort SpaceTileSize;
}
[Serializable, NetSerializable]
public sealed class ExplosionVisualsState : ComponentState
{
public MapCoordinates Epicenter;
public Dictionary>? SpaceTiles;
public Dictionary>> Tiles;
public List Intensity;
public string ExplosionType = string.Empty;
public Matrix3 SpaceMatrix;
public ushort SpaceTileSize;
public ExplosionVisualsState(
MapCoordinates epicenter,
string typeID,
List intensity,
Dictionary>? spaceTiles,
Dictionary>> tiles,
Matrix3 spaceMatrix,
ushort spaceTileSize)
{
Epicenter = epicenter;
SpaceTiles = spaceTiles;
Tiles = tiles;
Intensity = intensity;
ExplosionType = typeID;
SpaceMatrix = spaceMatrix;
SpaceTileSize = spaceTileSize;
}
}
[Serializable, NetSerializable]
public enum ExplosionAppearanceData
{
Progress, // iteration index tracker for explosions that are still expanding outwards,
}