| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475 |
- using Robust.Shared.GameStates;
- using Robust.Shared.Serialization;
- namespace Content.Shared.Pinpointer;
- /// <summary>
- /// Displays a sprite on the item that points towards the target component.
- /// </summary>
- [RegisterComponent, NetworkedComponent]
- [AutoGenerateComponentState]
- [Access(typeof(SharedPinpointerSystem))]
- public sealed partial class PinpointerComponent : Component
- {
- // TODO: Type serializer oh god
- [DataField("component"), ViewVariables(VVAccess.ReadWrite)]
- public string? Component;
- [DataField("mediumDistance"), ViewVariables(VVAccess.ReadWrite)]
- public float MediumDistance = 16f;
- [DataField("closeDistance"), ViewVariables(VVAccess.ReadWrite)]
- public float CloseDistance = 8f;
- [DataField("reachedDistance"), ViewVariables(VVAccess.ReadWrite)]
- public float ReachedDistance = 1f;
- /// <summary>
- /// Pinpointer arrow precision in radians.
- /// </summary>
- [DataField("precision"), ViewVariables(VVAccess.ReadWrite)]
- public double Precision = 0.09;
- /// <summary>
- /// Name to display of the target being tracked.
- /// </summary>
- [DataField("targetName"), ViewVariables(VVAccess.ReadWrite)]
- public string? TargetName;
- /// <summary>
- /// Whether or not the target name should be updated when the target is updated.
- /// </summary>
- [DataField("updateTargetName"), ViewVariables(VVAccess.ReadWrite)]
- public bool UpdateTargetName;
- /// <summary>
- /// Whether or not the target can be reassigned.
- /// </summary>
- [DataField("canRetarget"), ViewVariables(VVAccess.ReadWrite)]
- public bool CanRetarget;
- [ViewVariables]
- public EntityUid? Target = null;
- [ViewVariables, AutoNetworkedField]
- public bool IsActive = false;
- [ViewVariables, AutoNetworkedField]
- public Angle ArrowAngle;
- [ViewVariables, AutoNetworkedField]
- public Distance DistanceToTarget = Distance.Unknown;
- [ViewVariables]
- public bool HasTarget => DistanceToTarget != Distance.Unknown;
- }
- [Serializable, NetSerializable]
- public enum Distance : byte
- {
- Unknown,
- Reached,
- Close,
- Medium,
- Far
- }
|