| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162 |
- using Robust.Client.Graphics;
- using Robust.Client.Player;
- using Content.Shared.Eye.Blinding.Components;
- using Content.Shared.GameTicking;
- using Robust.Shared.Player;
- namespace Content.Client.Eye.Blinding;
- public sealed class BlindingSystem : EntitySystem
- {
- [Dependency] private readonly IPlayerManager _player = default!;
- [Dependency] private readonly IOverlayManager _overlayMan = default!;
- [Dependency] ILightManager _lightManager = default!;
- private BlindOverlay _overlay = default!;
- public override void Initialize()
- {
- base.Initialize();
- SubscribeLocalEvent<BlindableComponent, ComponentInit>(OnBlindInit);
- SubscribeLocalEvent<BlindableComponent, ComponentShutdown>(OnBlindShutdown);
- SubscribeLocalEvent<BlindableComponent, LocalPlayerAttachedEvent>(OnPlayerAttached);
- SubscribeLocalEvent<BlindableComponent, LocalPlayerDetachedEvent>(OnPlayerDetached);
- SubscribeNetworkEvent<RoundRestartCleanupEvent>(RoundRestartCleanup);
- _overlay = new();
- }
- private void OnPlayerAttached(EntityUid uid, BlindableComponent component, LocalPlayerAttachedEvent args)
- {
- _overlayMan.AddOverlay(_overlay);
- }
- private void OnPlayerDetached(EntityUid uid, BlindableComponent component, LocalPlayerDetachedEvent args)
- {
- _overlayMan.RemoveOverlay(_overlay);
- _lightManager.Enabled = true;
- }
- private void OnBlindInit(EntityUid uid, BlindableComponent component, ComponentInit args)
- {
- if (_player.LocalEntity == uid)
- _overlayMan.AddOverlay(_overlay);
- }
- private void OnBlindShutdown(EntityUid uid, BlindableComponent component, ComponentShutdown args)
- {
- if (_player.LocalEntity == uid)
- {
- _overlayMan.RemoveOverlay(_overlay);
- }
- }
- private void RoundRestartCleanup(RoundRestartCleanupEvent ev)
- {
- _lightManager.Enabled = true;
- }
- }
|