Cleans up tag system (#28272)
* Updated tag system * Added params methods * Fixed tag integration tests * Fixed params methods recursion * Revert has All/Any tag one argument realisation * Updated tag integration tests * Shit happens * Added individual List/HashSet methods, docs, tests
This commit is contained in:
@@ -1,13 +1,11 @@
|
||||
using Robust.Shared.GameStates;
|
||||
using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype.Set;
|
||||
using Robust.Shared.Prototypes;
|
||||
|
||||
namespace Content.Shared.Tag
|
||||
namespace Content.Shared.Tag;
|
||||
|
||||
[RegisterComponent, NetworkedComponent, AutoGenerateComponentState, Access(typeof(TagSystem))]
|
||||
public sealed partial class TagComponent : Component
|
||||
{
|
||||
[RegisterComponent, NetworkedComponent, Access(typeof(TagSystem))]
|
||||
public sealed partial class TagComponent : Component
|
||||
{
|
||||
[DataField("tags", customTypeSerializer: typeof(PrototypeIdHashSetSerializer<TagPrototype>))]
|
||||
[Access(typeof(TagSystem), Other = AccessPermissions.ReadExecute)] // FIXME Friends
|
||||
public HashSet<string> Tags = new();
|
||||
}
|
||||
[DataField, ViewVariables, AutoNetworkedField]
|
||||
public HashSet<ProtoId<TagPrototype>> Tags = new();
|
||||
}
|
||||
|
||||
@@ -1,15 +0,0 @@
|
||||
using Robust.Shared.Serialization;
|
||||
|
||||
namespace Content.Shared.Tag
|
||||
{
|
||||
[Serializable, NetSerializable]
|
||||
public sealed class TagComponentState : ComponentState
|
||||
{
|
||||
public TagComponentState(string[] tags)
|
||||
{
|
||||
Tags = tags;
|
||||
}
|
||||
|
||||
public string[] Tags { get; }
|
||||
}
|
||||
}
|
||||
@@ -1,17 +1,15 @@
|
||||
using Robust.Shared.Prototypes;
|
||||
|
||||
namespace Content.Shared.Tag
|
||||
namespace Content.Shared.Tag;
|
||||
|
||||
/// <summary>
|
||||
/// Prototype representing a tag in YAML.
|
||||
/// Meant to only have an ID property, as that is the only thing that
|
||||
/// gets saved in TagComponent.
|
||||
/// </summary>
|
||||
[Prototype("Tag")]
|
||||
public sealed partial class TagPrototype : IPrototype
|
||||
{
|
||||
/// <summary>
|
||||
/// Prototype representing a tag in YAML.
|
||||
/// Meant to only have an ID property, as that is the only thing that
|
||||
/// gets saved in TagComponent.
|
||||
/// </summary>
|
||||
[Prototype("Tag")]
|
||||
public sealed partial class TagPrototype : IPrototype
|
||||
{
|
||||
[ViewVariables]
|
||||
[IdDataField]
|
||||
public string ID { get; private set; } = default!;
|
||||
}
|
||||
[IdDataField, ViewVariables]
|
||||
public string ID { get; } = string.Empty;
|
||||
}
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user