PlanetLightSystem.cs 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. using Robust.Client.Graphics;
  2. namespace Content.Client.Light.EntitySystems;
  3. public sealed class PlanetLightSystem : EntitySystem
  4. {
  5. [Dependency] private readonly IOverlayManager _overlayMan = default!;
  6. public override void Initialize()
  7. {
  8. base.Initialize();
  9. SubscribeLocalEvent<GetClearColorEvent>(OnClearColor);
  10. _overlayMan.AddOverlay(new BeforeLightTargetOverlay());
  11. _overlayMan.AddOverlay(new RoofOverlay(EntityManager));
  12. _overlayMan.AddOverlay(new TileEmissionOverlay(EntityManager));
  13. _overlayMan.AddOverlay(new LightBlurOverlay());
  14. _overlayMan.AddOverlay(new SunShadowOverlay());
  15. _overlayMan.AddOverlay(new AfterLightTargetOverlay());
  16. }
  17. private void OnClearColor(ref GetClearColorEvent ev)
  18. {
  19. ev.Color = Color.Transparent;
  20. }
  21. public override void Shutdown()
  22. {
  23. base.Shutdown();
  24. _overlayMan.RemoveOverlay<BeforeLightTargetOverlay>();
  25. _overlayMan.RemoveOverlay<RoofOverlay>();
  26. _overlayMan.RemoveOverlay<TileEmissionOverlay>();
  27. _overlayMan.RemoveOverlay<LightBlurOverlay>();
  28. _overlayMan.RemoveOverlay<SunShadowOverlay>();
  29. _overlayMan.RemoveOverlay<AfterLightTargetOverlay>();
  30. }
  31. }