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;