* fix: EyeOffset when eyes are closed * fix: Relay only blocked on eyes closed action * cleanup: whitespace * fix: missing cancel on PVS, dependencies * remove: namespace import * change: apply from review * Apply suggestions from code review --------- Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
40 lines
1.4 KiB
C#
40 lines
1.4 KiB
C#
using System.Numerics;
|
|
using Content.Shared.Inventory;
|
|
using Content.Shared.Movement.Systems;
|
|
|
|
namespace Content.Shared.Camera;
|
|
|
|
/// <summary>
|
|
/// Raised directed by-ref when <see cref="SharedContentEyeSystem.UpdateEyeOffset"/> is called.
|
|
/// Should be subscribed to by any systems that want to modify an entity's eye offset,
|
|
/// so that they do not override each other.
|
|
/// </summary>
|
|
/// <param name="Offset">
|
|
/// The total offset to apply.
|
|
/// </param>
|
|
/// <remarks>
|
|
/// Note that in most cases <see cref="Offset"/> should be incremented or decremented by subscribers, not set.
|
|
/// Otherwise, any offsets applied by previous subscribing systems will be overridden.
|
|
/// </remarks>
|
|
[ByRefEvent]
|
|
public record struct GetEyeOffsetEvent(Vector2 Offset);
|
|
|
|
/// <summary>
|
|
/// Raised before the <see cref="GetEyeOffsetEvent"/> and <see cref="GetEyeOffsetRelayedEvent"/>, to check if any of the subscribed
|
|
/// systems want to cancel offset changes.
|
|
/// </summary>
|
|
[ByRefEvent]
|
|
public record struct GetEyeOffsetAttemptEvent(bool Cancelled);
|
|
|
|
/// <summary>
|
|
/// Raised on any equipped and in-hand items that may modify the eye offset.
|
|
/// Pockets and suitstorage are excluded.
|
|
/// </summary>
|
|
[ByRefEvent]
|
|
public sealed class GetEyeOffsetRelayedEvent : EntityEventArgs, IInventoryRelayEvent
|
|
{
|
|
public SlotFlags TargetSlots { get; } = ~(SlotFlags.POCKET & SlotFlags.SUITSTORAGE);
|
|
|
|
public Vector2 Offset;
|
|
}
|