using Robust.Shared.Prototypes; using Robust.Shared.Utility; namespace Content.Shared.StatusIcon; /// /// A data structure that holds relevant /// information for status icons. /// [Virtual, DataDefinition] public class StatusIconData : IComparable { /// /// The icon that's displayed on the entity. /// [DataField("icon", required: true)] public SpriteSpecifier Icon = default!; /// /// A priority for the order in which the icons will be displayed. /// [DataField("priority")] public int Priority = 10; public int CompareTo(StatusIconData? other) { return Priority.CompareTo(other?.Priority ?? int.MaxValue); } } /// /// but in new convenient prototype form! /// [Prototype("statusIcon")] public sealed class StatusIconPrototype : StatusIconData, IPrototype { /// [IdDataField] public string ID { get; } = default!; }