GravityComponent.cs 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. using Robust.Shared.Audio;
  2. using Robust.Shared.GameStates;
  3. using Robust.Shared.Serialization;
  4. namespace Content.Shared.Gravity
  5. {
  6. [RegisterComponent]
  7. [NetworkedComponent]
  8. public sealed partial class GravityComponent : Component
  9. {
  10. [DataField("gravityShakeSound")]
  11. public SoundSpecifier GravityShakeSound { get; set; } = new SoundPathSpecifier("/Audio/Effects/alert.ogg");
  12. [ViewVariables(VVAccess.ReadWrite)]
  13. public bool EnabledVV
  14. {
  15. get => Enabled;
  16. set
  17. {
  18. if (Enabled == value) return;
  19. Enabled = value;
  20. var ev = new GravityChangedEvent(Owner, value);
  21. IoCManager.Resolve<IEntityManager>().EventBus.RaiseLocalEvent(Owner, ref ev);
  22. Dirty();
  23. }
  24. }
  25. [DataField("enabled")]
  26. public bool Enabled;
  27. /// <summary>
  28. /// Inherent gravity ensures GravitySystem won't change Enabled according to the gravity generators attached to this entity.
  29. /// </summary>
  30. [ViewVariables(VVAccess.ReadWrite)]
  31. [DataField("inherent")]
  32. public bool Inherent;
  33. }
  34. }