using System; using JetBrains.Annotations; namespace Robust.Shared.GameObjects; /// /// Marks a component as being automatically registered by /// /// [AttributeUsage(AttributeTargets.Class, Inherited = false)] [BaseTypeRequired(typeof(IComponent))] [MeansImplicitUse] public sealed class RegisterComponentAttribute : Attribute; /// /// Defines Name that this component is represented with in prototypes. /// /// [AttributeUsage(AttributeTargets.Class)] public sealed class ComponentProtoNameAttribute(string prototypeName) : Attribute { public string PrototypeName { get; } = prototypeName; } /// /// Marks a component as not being saved when saving maps/grids. This is useful for purely runtime information. /// /// /// [AttributeUsage(AttributeTargets.Class, Inherited = false)] public sealed class UnsavedComponentAttribute : Attribute;