1
0

ButcherableComponent.cs 1.1 KB

12345678910111213141516171819202122232425262728293031323334
  1. using Content.Shared.Storage;
  2. using Robust.Shared.GameStates;
  3. namespace Content.Shared.Nutrition.Components
  4. {
  5. /// <summary>
  6. /// Indicates that the entity can be thrown on a kitchen spike for butchering.
  7. /// </summary>
  8. [RegisterComponent, NetworkedComponent]
  9. public sealed partial class ButcherableComponent : Component
  10. {
  11. [DataField("spawned", required: true)]
  12. public List<EntitySpawnEntry> SpawnedEntities = new();
  13. [ViewVariables(VVAccess.ReadWrite), DataField("butcherDelay")]
  14. public float ButcherDelay = 8.0f;
  15. [ViewVariables(VVAccess.ReadWrite), DataField("butcheringType")]
  16. public ButcheringType Type = ButcheringType.Knife;
  17. /// <summary>
  18. /// Prevents butchering same entity on two and more spikes simultaneously and multiple doAfters on the same Spike
  19. /// </summary>
  20. [ViewVariables]
  21. public bool BeingButchered;
  22. }
  23. public enum ButcheringType : byte
  24. {
  25. Knife, // e.g. goliaths
  26. Spike, // e.g. monkeys
  27. Gibber // e.g. humans. TODO
  28. }
  29. }