Files
tbd-station-14/Content.Shared/Explosion/Components/ExplosionVisualsComponent.cs
eoineoineoin b44b159431 Replace Matrix3 with System.Numerics.Matrix3x2 (#27443)
Replace Matrix3 with Matrix3x2
2024-06-02 14:07:41 +10:00

58 lines
1.8 KiB
C#

using System.Numerics;
using Robust.Shared.GameStates;
using Robust.Shared.Map;
using Robust.Shared.Serialization;
namespace Content.Shared.Explosion.Components;
/// <summary>
/// Component that is used to send explosion overlay/visual data to an abstract explosion entity.
/// </summary>
[RegisterComponent, NetworkedComponent]
public sealed partial class ExplosionVisualsComponent : Component
{
public MapCoordinates Epicenter;
public Dictionary<int, List<Vector2i>>? SpaceTiles;
public Dictionary<EntityUid, Dictionary<int, List<Vector2i>>> Tiles = new();
public List<float> Intensity = new();
public string ExplosionType = string.Empty;
public Matrix3x2 SpaceMatrix;
public ushort SpaceTileSize;
}
[Serializable, NetSerializable]
public sealed class ExplosionVisualsState : ComponentState
{
public MapCoordinates Epicenter;
public Dictionary<int, List<Vector2i>>? SpaceTiles;
public Dictionary<NetEntity, Dictionary<int, List<Vector2i>>> Tiles;
public List<float> Intensity;
public string ExplosionType = string.Empty;
public Matrix3x2 SpaceMatrix;
public ushort SpaceTileSize;
public ExplosionVisualsState(
MapCoordinates epicenter,
string typeID,
List<float> intensity,
Dictionary<int, List<Vector2i>>? spaceTiles,
Dictionary<NetEntity, Dictionary<int, List<Vector2i>>> tiles,
Matrix3x2 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,
}