VisualizerDataInt.cs 1.0 KB

123456789101112131415161718192021222324252627282930
  1. using Content.Shared.Construction;
  2. using JetBrains.Annotations;
  3. using Robust.Server.GameObjects;
  4. using Robust.Shared.Reflection;
  5. using Robust.Shared.Serialization;
  6. namespace Content.Server.Construction.Completions
  7. {
  8. [UsedImplicitly]
  9. [DataDefinition]
  10. public sealed partial class VisualizerDataInt : IGraphAction
  11. {
  12. [DataField("key")] public string Key { get; private set; } = string.Empty;
  13. [DataField("data")] public int Data { get; private set; } = 0;
  14. public void PerformAction(EntityUid uid, EntityUid? userUid, IEntityManager entityManager)
  15. {
  16. if (string.IsNullOrEmpty(Key))
  17. return;
  18. if (entityManager.TryGetComponent(uid, out AppearanceComponent? appearance))
  19. {
  20. if (IoCManager.Resolve<IReflectionManager>().TryParseEnumReference(Key, out var @enum))
  21. {
  22. entityManager.System<AppearanceSystem>().SetData(uid, @enum, Data, appearance);
  23. }
  24. }
  25. }
  26. }
  27. }