1
0

ViewportManager.cs 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. using Content.Client.UserInterface.Controls;
  2. using Content.Shared.CCVar;
  3. using Robust.Shared.Configuration;
  4. namespace Content.Client.Viewport
  5. {
  6. /// <summary>
  7. /// Event proxy for <see cref="MainViewport"/> to listen to config events.
  8. /// </summary>
  9. // ReSharper disable once ClassNeverInstantiated.Global
  10. public sealed class ViewportManager
  11. {
  12. [Dependency] private readonly IConfigurationManager _cfg = default!;
  13. private readonly List<MainViewport> _viewports = new();
  14. public void Initialize()
  15. {
  16. _cfg.OnValueChanged(CCVars.ViewportStretch, _ => UpdateCfg());
  17. _cfg.OnValueChanged(CCVars.ViewportSnapToleranceClip, _ => UpdateCfg());
  18. _cfg.OnValueChanged(CCVars.ViewportSnapToleranceMargin, _ => UpdateCfg());
  19. _cfg.OnValueChanged(CCVars.ViewportScaleRender, _ => UpdateCfg());
  20. _cfg.OnValueChanged(CCVars.ViewportFixedScaleFactor, _ => UpdateCfg());
  21. }
  22. private void UpdateCfg()
  23. {
  24. _viewports.ForEach(v => v.UpdateCfg());
  25. }
  26. public void AddViewport(MainViewport vp)
  27. {
  28. _viewports.Add(vp);
  29. }
  30. public void RemoveViewport(MainViewport vp)
  31. {
  32. _viewports.Remove(vp);
  33. }
  34. }
  35. }