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; }