48 lines
1.3 KiB
C#
48 lines
1.3 KiB
C#
using System.Numerics;
|
|
using Content.Shared.Movement.Components;
|
|
using Content.Shared.Movement.Systems;
|
|
using Robust.Client.Player;
|
|
|
|
namespace Content.Client.Movement.Systems;
|
|
|
|
public sealed class ContentEyeSystem : SharedContentEyeSystem
|
|
{
|
|
[Dependency] private readonly IPlayerManager _player = default!;
|
|
|
|
public void RequestZoom(EntityUid uid, Vector2 zoom, bool ignoreLimit, ContentEyeComponent? content = null)
|
|
{
|
|
if (!Resolve(uid, ref content, false))
|
|
return;
|
|
|
|
RaisePredictiveEvent(new RequestTargetZoomEvent()
|
|
{
|
|
TargetZoom = zoom,
|
|
IgnoreLimit = ignoreLimit,
|
|
});
|
|
}
|
|
|
|
public void RequestToggleFov()
|
|
{
|
|
if (_player.LocalPlayer?.ControlledEntity is { } player)
|
|
RequestToggleFov(player);
|
|
}
|
|
|
|
public void RequestToggleFov(EntityUid uid, EyeComponent? eye = null)
|
|
{
|
|
if (Resolve(uid, ref eye, false))
|
|
RequestEye(!eye.DrawFov, eye.DrawLight);
|
|
}
|
|
|
|
public void RequestToggleLight(EntityUid uid, EyeComponent? eye = null)
|
|
{
|
|
if (Resolve(uid, ref eye, false))
|
|
RequestEye(eye.DrawFov, !eye.DrawLight);
|
|
}
|
|
|
|
|
|
public void RequestEye(bool drawFov, bool drawLight)
|
|
{
|
|
RaisePredictiveEvent(new RequestEyeEvent(drawFov, drawLight));
|
|
}
|
|
}
|