Add conditional camera offset based on cursor - Hristov Rework, Part 1 (#31626)
This commit is contained in:
45
Content.Server/Wieldable/WieldableSystem.cs
Normal file
45
Content.Server/Wieldable/WieldableSystem.cs
Normal file
@@ -0,0 +1,45 @@
|
||||
using Content.Server.Movement.Components;
|
||||
using Content.Server.Movement.Systems;
|
||||
using Content.Shared.Camera;
|
||||
using Content.Shared.Hands;
|
||||
using Content.Shared.Movement.Components;
|
||||
using Content.Shared.Wieldable;
|
||||
using Content.Shared.Wieldable.Components;
|
||||
|
||||
namespace Content.Server.Wieldable;
|
||||
|
||||
public sealed class WieldableSystem : SharedWieldableSystem
|
||||
{
|
||||
[Dependency] private readonly ContentEyeSystem _eye = default!;
|
||||
|
||||
public override void Initialize()
|
||||
{
|
||||
base.Initialize();
|
||||
|
||||
SubscribeLocalEvent<CursorOffsetRequiresWieldComponent, ItemUnwieldedEvent>(OnEyeOffsetUnwielded);
|
||||
SubscribeLocalEvent<CursorOffsetRequiresWieldComponent, ItemWieldedEvent>(OnEyeOffsetWielded);
|
||||
SubscribeLocalEvent<CursorOffsetRequiresWieldComponent, HeldRelayedEvent<GetEyePvsScaleRelayedEvent>>(OnGetEyePvsScale);
|
||||
}
|
||||
|
||||
private void OnEyeOffsetUnwielded(Entity<CursorOffsetRequiresWieldComponent> entity, ref ItemUnwieldedEvent args)
|
||||
{
|
||||
_eye.UpdatePvsScale(args.User);
|
||||
}
|
||||
|
||||
private void OnEyeOffsetWielded(Entity<CursorOffsetRequiresWieldComponent> entity, ref ItemWieldedEvent args)
|
||||
{
|
||||
_eye.UpdatePvsScale(args.User);
|
||||
}
|
||||
|
||||
private void OnGetEyePvsScale(Entity<CursorOffsetRequiresWieldComponent> entity,
|
||||
ref HeldRelayedEvent<GetEyePvsScaleRelayedEvent> args)
|
||||
{
|
||||
if (!TryComp(entity, out EyeCursorOffsetComponent? eyeCursorOffset) || !TryComp(entity.Owner, out WieldableComponent? wieldableComp))
|
||||
return;
|
||||
|
||||
if (!wieldableComp.Wielded)
|
||||
return;
|
||||
|
||||
args.Args.Scale += eyeCursorOffset.PvsIncrease;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user