1
0

MultipleToolComponent.cs 1.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. using Robust.Shared.Audio;
  2. using Robust.Shared.GameStates;
  3. using Robust.Shared.Utility;
  4. namespace Content.Shared.Tools.Components;
  5. [RegisterComponent, NetworkedComponent, AutoGenerateComponentState(true)]
  6. public sealed partial class MultipleToolComponent : Component
  7. {
  8. [DataDefinition]
  9. public sealed partial class ToolEntry
  10. {
  11. [DataField(required: true)]
  12. public PrototypeFlags<ToolQualityPrototype> Behavior = new();
  13. [DataField]
  14. public SoundSpecifier? UseSound;
  15. [DataField]
  16. public SoundSpecifier? ChangeSound;
  17. [DataField]
  18. public SpriteSpecifier? Sprite;
  19. }
  20. [DataField(required: true)]
  21. public ToolEntry[] Entries { get; private set; } = Array.Empty<ToolEntry>();
  22. [ViewVariables]
  23. [AutoNetworkedField]
  24. public uint CurrentEntry = 0;
  25. [ViewVariables]
  26. public string CurrentQualityName = string.Empty;
  27. [ViewVariables(VVAccess.ReadWrite)]
  28. public bool UiUpdateNeeded;
  29. [DataField]
  30. public bool StatusShowBehavior = true;
  31. }