using System.Numerics;
using Content.Shared.Inventory;
using Content.Shared.Movement.Systems;
namespace Content.Shared.Camera;
///
/// Raised directed by-ref when is called.
/// Should be subscribed to by any systems that want to modify an entity's eye PVS scale,
/// so that they do not override each other. Keep in mind that this should be done serverside;
/// the client may set a new PVS scale, but the server won't provide the data if it isn't done on the server.
///
///
/// The total scale to apply.
///
///
/// Note that in most cases should be incremented or decremented by subscribers, not set.
/// Otherwise, any offsets applied by previous subscribing systems will be overridden.
///
[ByRefEvent]
public record struct GetEyePvsScaleEvent(float Scale);
///
/// Raised on any equipped and in-hand items that may modify the eye offset.
/// Pockets and suitstorage are excluded.
///
[ByRefEvent]
public sealed class GetEyePvsScaleRelayedEvent : EntityEventArgs, IInventoryRelayEvent
{
public SlotFlags TargetSlots { get; } = ~(SlotFlags.POCKET & SlotFlags.SUITSTORAGE);
public float Scale;
}