MeleeSpreadCommand.cs 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. using Content.Shared.CombatMode;
  2. using Robust.Client.Graphics;
  3. using Robust.Client.Input;
  4. using Robust.Client.Player;
  5. using Robust.Shared.Console;
  6. using Robust.Shared.Map;
  7. namespace Content.Client.Weapons.Melee;
  8. public sealed class MeleeSpreadCommand : IConsoleCommand
  9. {
  10. public string Command => "showmeleespread";
  11. public string Description => "Shows the current weapon's range and arc for debugging";
  12. public string Help => $"{Command}";
  13. public void Execute(IConsoleShell shell, string argStr, string[] args)
  14. {
  15. var collection = IoCManager.Instance;
  16. if (collection == null)
  17. return;
  18. var overlayManager = collection.Resolve<IOverlayManager>();
  19. if (overlayManager.RemoveOverlay<MeleeArcOverlay>())
  20. {
  21. return;
  22. }
  23. var sysManager = collection.Resolve<IEntitySystemManager>();
  24. overlayManager.AddOverlay(new MeleeArcOverlay(
  25. collection.Resolve<IEntityManager>(),
  26. collection.Resolve<IEyeManager>(),
  27. collection.Resolve<IInputManager>(),
  28. collection.Resolve<IPlayerManager>(),
  29. sysManager.GetEntitySystem<MeleeWeaponSystem>(),
  30. sysManager.GetEntitySystem<SharedCombatModeSystem>(),
  31. sysManager.GetEntitySystem<SharedTransformSystem>()));
  32. }
  33. }