using Content.Server.Wires; using Content.Shared.VendingMachines; using Content.Shared.Wires; namespace Content.Server.VendingMachines; public sealed partial class VendingMachineEjectItemWireAction : ComponentWireAction { private VendingMachineSystem _vendingMachineSystem = default!; public override Color Color { get; set; } = Color.Red; public override string Name { get; set; } = "wire-name-vending-eject"; public override object? StatusKey { get; } = EjectWireKey.StatusKey; public override StatusLightState? GetLightState(Wire wire, VendingMachineComponent comp) => comp.CanShoot ? StatusLightState.BlinkingFast : StatusLightState.On; public override void Initialize() { base.Initialize(); _vendingMachineSystem = EntityManager.System(); } public override bool Cut(EntityUid user, Wire wire, VendingMachineComponent vending) { _vendingMachineSystem.SetShooting(wire.Owner, true, vending); return true; } public override bool Mend(EntityUid user, Wire wire, VendingMachineComponent vending) { _vendingMachineSystem.SetShooting(wire.Owner, false, vending); return true; } public override void Pulse(EntityUid user, Wire wire, VendingMachineComponent vending) { _vendingMachineSystem.EjectRandom(wire.Owner, true, vendComponent: vending); } }