2022-05-09 19:22:58 -07:00
|
|
|
using Content.Server.Wires;
|
|
|
|
|
using Content.Shared.VendingMachines;
|
|
|
|
|
using Content.Shared.Wires;
|
|
|
|
|
|
|
|
|
|
namespace Content.Server.VendingMachines;
|
|
|
|
|
|
2023-08-22 18:14:33 -07:00
|
|
|
public sealed partial class VendingMachineEjectItemWireAction : ComponentWireAction<VendingMachineComponent>
|
2022-05-09 19:22:58 -07:00
|
|
|
{
|
|
|
|
|
private VendingMachineSystem _vendingMachineSystem = default!;
|
|
|
|
|
|
2023-01-21 12:51:02 +13:00
|
|
|
public override Color Color { get; set; } = Color.Red;
|
|
|
|
|
public override string Name { get; set; } = "wire-name-vending-eject";
|
2022-05-09 19:22:58 -07:00
|
|
|
|
2023-01-21 12:51:02 +13:00
|
|
|
public override object? StatusKey { get; } = EjectWireKey.StatusKey;
|
2022-05-09 19:22:58 -07:00
|
|
|
|
2023-01-21 12:51:02 +13:00
|
|
|
public override StatusLightState? GetLightState(Wire wire, VendingMachineComponent comp)
|
|
|
|
|
=> comp.CanShoot ? StatusLightState.BlinkingFast : StatusLightState.On;
|
2022-05-09 19:22:58 -07:00
|
|
|
|
|
|
|
|
public override void Initialize()
|
|
|
|
|
{
|
|
|
|
|
base.Initialize();
|
|
|
|
|
|
2023-01-21 12:51:02 +13:00
|
|
|
_vendingMachineSystem = EntityManager.System<VendingMachineSystem>();
|
2022-05-09 19:22:58 -07:00
|
|
|
}
|
|
|
|
|
|
2023-01-21 12:51:02 +13:00
|
|
|
public override bool Cut(EntityUid user, Wire wire, VendingMachineComponent vending)
|
2022-05-09 19:22:58 -07:00
|
|
|
{
|
2023-01-21 12:51:02 +13:00
|
|
|
_vendingMachineSystem.SetShooting(wire.Owner, true, vending);
|
2022-05-09 19:22:58 -07:00
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
|
2023-01-21 12:51:02 +13:00
|
|
|
public override bool Mend(EntityUid user, Wire wire, VendingMachineComponent vending)
|
2022-05-09 19:22:58 -07:00
|
|
|
{
|
2023-01-21 12:51:02 +13:00
|
|
|
_vendingMachineSystem.SetShooting(wire.Owner, false, vending);
|
2022-05-09 19:22:58 -07:00
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
|
2023-01-21 12:51:02 +13:00
|
|
|
public override void Pulse(EntityUid user, Wire wire, VendingMachineComponent vending)
|
2022-05-09 19:22:58 -07:00
|
|
|
{
|
2023-01-21 12:51:02 +13:00
|
|
|
_vendingMachineSystem.EjectRandom(wire.Owner, true, vendComponent: vending);
|
2022-05-09 19:22:58 -07:00
|
|
|
}
|
|
|
|
|
}
|