diff --git a/Content.Shared/Access/AccessLevelPrototype.cs b/Content.Shared/Access/AccessLevelPrototype.cs new file mode 100644 index 0000000000..9e042701ae --- /dev/null +++ b/Content.Shared/Access/AccessLevelPrototype.cs @@ -0,0 +1,36 @@ +using Robust.Shared.Localization; +using Robust.Shared.Prototypes; +using Robust.Shared.Utility; +using YamlDotNet.RepresentationModel; + +namespace Content.Shared.Access +{ + /// + /// Defines a single access level that can be stored on ID cards and checked for. + /// + [Prototype("accessLevel")] + public class AccessLevelPrototype : IPrototype, IIndexedPrototype + { + public void LoadFrom(YamlMappingNode mapping) + { + ID = mapping.GetNode("id").AsString(); + if (mapping.TryGetNode("name", out var nameNode)) + { + Name = nameNode.AsString(); + } + else + { + Name = ID; + } + + Name = Loc.GetString(Name); + } + + public string ID { get; private set; } + + /// + /// The player-visible name of the access level, in the ID card console and such. + /// + public string Name { get; private set; } + } +}