GodmodeSystem.cs 997 B

12345678910111213141516171819202122232425262728293031323334353637
  1. using Content.Shared.Atmos.Components;
  2. using Content.Shared.Damage.Components;
  3. using Content.Shared.Damage.Systems;
  4. namespace Content.Server.Damage.Systems;
  5. public sealed class GodmodeSystem : SharedGodmodeSystem
  6. {
  7. public override void EnableGodmode(EntityUid uid, GodmodeComponent? godmode = null)
  8. {
  9. godmode ??= EnsureComp<GodmodeComponent>(uid);
  10. base.EnableGodmode(uid, godmode);
  11. if (TryComp<MovedByPressureComponent>(uid, out var moved))
  12. {
  13. godmode.WasMovedByPressure = moved.Enabled;
  14. moved.Enabled = false;
  15. }
  16. }
  17. public override void DisableGodmode(EntityUid uid, GodmodeComponent? godmode = null)
  18. {
  19. if (!Resolve(uid, ref godmode, false))
  20. return;
  21. base.DisableGodmode(uid, godmode);
  22. if (godmode.Deleted)
  23. return;
  24. if (TryComp<MovedByPressureComponent>(uid, out var moved))
  25. {
  26. moved.Enabled = godmode.WasMovedByPressure;
  27. }
  28. }
  29. }