1
0

PickRandomComponent.cs 929 B

12345678910111213141516171819202122232425262728293031
  1. using Content.Server.Storage.EntitySystems;
  2. using Content.Shared.Whitelist;
  3. namespace Content.Server.Storage.Components;
  4. /// <summary>
  5. /// Adds a verb to pick a random item from a container.
  6. /// Only picks items that match the whitelist.
  7. /// </summary>
  8. [RegisterComponent]
  9. [Access(typeof(PickRandomSystem))]
  10. public sealed partial class PickRandomComponent : Component
  11. {
  12. /// <summary>
  13. /// Whitelist for potential picked items.
  14. /// </summary>
  15. [DataField, ViewVariables(VVAccess.ReadWrite)]
  16. public EntityWhitelist? Whitelist;
  17. /// <summary>
  18. /// Locale id for the pick verb text.
  19. /// </summary>
  20. [DataField, ViewVariables(VVAccess.ReadWrite)]
  21. public LocId VerbText = "comp-pick-random-verb-text";
  22. /// <summary>
  23. /// Locale id for the empty storage message.
  24. /// </summary>
  25. [DataField, ViewVariables(VVAccess.ReadWrite)]
  26. public LocId EmptyText = "comp-pick-random-empty";
  27. }