CatStation/Content.Client/DirectionalArrowIndicator/DirectionalArrowIndicatorComponent.cs
InsoPL a79f85248b
Directional arrow (#118)
* arrow

* yoink orginal arrow rsi

* done

* fixes

* i just learnd about ignored components

* Update Content.Client/DirectionalArrowIndicator/DirectionalArrowIndicatorComponent.cs

Co-authored-by: ScarKy0 <106310278+ScarKy0@users.noreply.github.com>

* customArrows

* docs

* more docs

* teg and blue arrow

* misc

* fixes

* remove color

* imma dummy

* meta

* soon to obsolete

* class not partial

---------

Co-authored-by: ScarKy0 <106310278+ScarKy0@users.noreply.github.com>
2026-06-20 21:45:43 +00:00

49 lines
1.3 KiB
C#

using Robust.Shared.Prototypes;
using System.Numerics;
namespace Content.Client.DirectionalArrowIndicator;
/// <summary>
/// Component that manages directional arrow indicators that spawn clientside when an entity is examined.
/// Handled by <see cref="DirectionalArrowIndicatorSystem"/>
/// </summary>
[RegisterComponent]
public sealed partial class DirectionalArrowIndicatorComponent : Component
{
/// <summary>
/// The lifetime of the arrow indicator in seconds.
/// </summary>
[DataField]
public float Lifetime = 2f;
/// <summary>
/// List of arrows to spawn.
/// </summary>
[DataField]
public List<ArrowSpawnData> Arrows = new();
}
/// <summary>
/// Data for spawning a single directional arrow.
/// </summary>
[DataDefinition]
public sealed partial class ArrowSpawnData
{
/// <summary>
/// Offset relative to entity's position where the arrow should appear.
/// </summary>
[DataField]
public Vector2 Offset = Vector2.Zero;
/// <summary>
/// Rotation of the arrow.
/// </summary>
[DataField]
public Angle Rotation = Angle.Zero;
/// <summary>
/// Prototype ID of the arrow entity to spawn.
/// </summary>
[DataField]
public EntProtoId ArrowType = "RedDirectionalArrowIndicator";
}