Files
Delta-v/Content.Client/_DV/Movement/CursorOffsetActionSystem.cs
T
2025-09-12 21:40:07 -07:00

57 lines
1.7 KiB
C#

using System.Diagnostics;
using System.Numerics;
using Content.Client.Movement.Components;
using Content.Client.Movement.Systems;
using Content.Shared._DV.Movement;
using Content.Shared.Camera;
using Robust.Client.Timing;
namespace Content.Client._DV.Movement;
public sealed class CursorOffsetActionSystem : SharedCursorOffsetActionSystem
{
[Dependency] private readonly EyeCursorOffsetSystem _eyeOffset = default!;
[Dependency] private readonly IClientGameTiming _gameTiming = default!;
public override void Initialize()
{
base.Initialize();
//SubscribeLocalEvent<CursorOffsetActionComponent, CursorOffsetActionEvent>(OnAction);
SubscribeLocalEvent<CursorOffsetActionComponent, GetEyeOffsetEvent>(OnGetEyeOffset);
}
protected override void OnAction(Entity<CursorOffsetActionComponent> ent, ref CursorOffsetActionEvent args)
{
base.OnAction(ent, ref args);
if (args.Handled)
return;
Log.Info("okay running the client code now trust");
if (!TryComp(ent.Owner, out EyeCursorOffsetComponent? cursorOffsetComp))
return;
if (!ent.Comp.Active && _gameTiming.IsFirstTimePredicted)
{
cursorOffsetComp.CurrentPosition = Vector2.Zero;
Log.Info("firsttimepredicted not on, goodbye!!!");
}
}
private void OnGetEyeOffset(Entity<CursorOffsetActionComponent> ent, ref GetEyeOffsetEvent args)
{
if (!ent.Comp.Active)
return;
var offset = _eyeOffset.OffsetAfterMouse(ent.Owner, null);
if (offset == null)
return;
Log.Info("Current offset " + offset.Value);
args.Offset += offset.Value;
}
}