mirror of
https://github.com/space-wizards/RobustToolbox.git
synced 2026-09-01 01:27:13 +02:00
59 lines
2.3 KiB
C#
59 lines
2.3 KiB
C#
namespace Robust.Shared.EntitySystemSubscriptionsGenerator;
|
|
|
|
public static class KnownTypes
|
|
{
|
|
public const string EntitySystemTypeName = "Robust.Shared.GameObjects.EntitySystem";
|
|
public const string EntityUidTypeName = "Robust.Shared.GameObjects.EntityUid";
|
|
public const string EntityTypeName = "Robust.Shared.GameObjects.Entity<T>";
|
|
public const string EntitySessionEventArgsTypeName = "Robust.Shared.GameObjects.EntitySessionEventArgs";
|
|
public const string IComponentTypeName = "Robust.Shared.GameObjects.IComponent";
|
|
|
|
public const string LocalSubscriptionMemberAttributeName =
|
|
"Robust.Shared.Analyzers.SubscribeLocalEventAttribute";
|
|
|
|
public const string NetworkSubscriptionMemberAttributeName =
|
|
"Robust.Shared.Analyzers.SubscribeNetworkEventAttribute";
|
|
|
|
public const string AllSubscriptionMemberAttributeName = "Robust.Shared.Analyzers.EventSubscriptionAttribute";
|
|
|
|
public static readonly string ComponentSubscriptionHandlerTypes = string.Join(
|
|
", ",
|
|
"Robust.Shared.GameObjects.ComponentEventHandler",
|
|
"Robust.Shared.GameObjects.ComponentEventRefHandler",
|
|
"Robust.Shared.GameObjects.EntityEventRefHandler"
|
|
);
|
|
|
|
public static readonly string NonComponentSubscriptionHandlerTypes = string.Join(
|
|
", ",
|
|
"Robust.Shared.GameObjects.EntityEventHandler",
|
|
"Robust.Shared.GameObjects.EntityEventRefHandler",
|
|
"Robust.Shared.GameObjects.EntitySessionEventHandler"
|
|
);
|
|
|
|
public static SubscriptionType? ToSubscriptionType(this string annotation)
|
|
{
|
|
return annotation switch
|
|
{
|
|
AllSubscriptionMemberAttributeName => SubscriptionType.All,
|
|
NetworkSubscriptionMemberAttributeName => SubscriptionType.Network,
|
|
LocalSubscriptionMemberAttributeName => SubscriptionType.Local,
|
|
_ => null
|
|
};
|
|
}
|
|
|
|
public static string ToSubscriptionMethod(this SubscriptionType type) => type switch
|
|
{
|
|
SubscriptionType.All => "SubscribeAllEvent",
|
|
SubscriptionType.Network => "SubscribeNetworkEvent",
|
|
SubscriptionType.Local => "SubscribeLocalEvent",
|
|
_ => throw new ArgumentOutOfRangeException(nameof(type), type, null)
|
|
};
|
|
}
|
|
|
|
public enum SubscriptionType
|
|
{
|
|
All,
|
|
Network,
|
|
Local,
|
|
}
|