ColoredScreenBorderOverlay.cs 990 B

12345678910111213141516171819202122232425262728293031
  1. using Robust.Client.Graphics;
  2. using Robust.Shared.Enums;
  3. using Robust.Shared.IoC;
  4. using Robust.Shared.Maths;
  5. using Robust.Shared.Prototypes;
  6. namespace Content.Client.CombatMode
  7. {
  8. public sealed class ColoredScreenBorderOverlay : Overlay
  9. {
  10. [Dependency] private readonly IPrototypeManager _prototypeManager = default!;
  11. public override OverlaySpace Space => OverlaySpace.WorldSpace;
  12. private readonly ShaderInstance _shader;
  13. public ColoredScreenBorderOverlay()
  14. {
  15. IoCManager.InjectDependencies(this);
  16. _shader = _prototypeManager.Index<ShaderPrototype>("ColoredScreenBorder").Instance();
  17. }
  18. protected override void Draw(in OverlayDrawArgs args)
  19. {
  20. var worldHandle = args.WorldHandle;
  21. worldHandle.UseShader(_shader);
  22. var viewport = args.WorldAABB;
  23. worldHandle.DrawRect(viewport, Color.White);
  24. worldHandle.UseShader(null);
  25. }
  26. }
  27. }