1
0

ExplosionVisualsComponent.cs 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. using System.Numerics;
  2. using Robust.Shared.GameStates;
  3. using Robust.Shared.Map;
  4. using Robust.Shared.Serialization;
  5. namespace Content.Shared.Explosion.Components;
  6. /// <summary>
  7. /// Component that is used to send explosion overlay/visual data to an abstract explosion entity.
  8. /// </summary>
  9. [RegisterComponent, NetworkedComponent]
  10. public sealed partial class ExplosionVisualsComponent : Component
  11. {
  12. public MapCoordinates Epicenter;
  13. public Dictionary<int, List<Vector2i>>? SpaceTiles;
  14. public Dictionary<EntityUid, Dictionary<int, List<Vector2i>>> Tiles = new();
  15. public List<float> Intensity = new();
  16. public string ExplosionType = string.Empty;
  17. public Matrix3x2 SpaceMatrix;
  18. public ushort SpaceTileSize;
  19. }
  20. [Serializable, NetSerializable]
  21. public sealed class ExplosionVisualsState : ComponentState
  22. {
  23. public MapCoordinates Epicenter;
  24. public Dictionary<int, List<Vector2i>>? SpaceTiles;
  25. public Dictionary<NetEntity, Dictionary<int, List<Vector2i>>> Tiles;
  26. public List<float> Intensity;
  27. public string ExplosionType = string.Empty;
  28. public Matrix3x2 SpaceMatrix;
  29. public ushort SpaceTileSize;
  30. public ExplosionVisualsState(
  31. MapCoordinates epicenter,
  32. string typeID,
  33. List<float> intensity,
  34. Dictionary<int, List<Vector2i>>? spaceTiles,
  35. Dictionary<NetEntity, Dictionary<int, List<Vector2i>>> tiles,
  36. Matrix3x2 spaceMatrix,
  37. ushort spaceTileSize)
  38. {
  39. Epicenter = epicenter;
  40. SpaceTiles = spaceTiles;
  41. Tiles = tiles;
  42. Intensity = intensity;
  43. ExplosionType = typeID;
  44. SpaceMatrix = spaceMatrix;
  45. SpaceTileSize = spaceTileSize;
  46. }
  47. }
  48. [Serializable, NetSerializable]
  49. public enum ExplosionAppearanceData
  50. {
  51. Progress, // iteration index tracker for explosions that are still expanding outwards,
  52. }