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. /// /// [AttributeUsage(AttributeTargets.Class, Inherited = false)] public sealed class UnsavedComponentAttribute : Attribute;