| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 |
- using Content.Server.Wires;
- using Content.Shared.VendingMachines;
- using Content.Shared.Wires;
- namespace Content.Server.VendingMachines;
- [DataDefinition]
- public sealed partial class VendingMachineContrabandWireAction : BaseToggleWireAction
- {
- private VendingMachineSystem _vendingMachineSystem = default!;
- public override Color Color { get; set; } = Color.Green;
- public override string Name { get; set; } = "wire-name-vending-contraband";
- public override object? StatusKey { get; } = ContrabandWireKey.StatusKey;
- public override object? TimeoutKey { get; } = ContrabandWireKey.TimeoutKey;
- public override void Initialize()
- {
- base.Initialize();
- _vendingMachineSystem = EntityManager.System<VendingMachineSystem>();
- }
- public override StatusLightState? GetLightState(Wire wire)
- {
- if (EntityManager.TryGetComponent(wire.Owner, out VendingMachineComponent? vending))
- {
- return vending.Contraband
- ? StatusLightState.BlinkingSlow
- : StatusLightState.On;
- }
- return StatusLightState.Off;
- }
- public override void ToggleValue(EntityUid owner, bool setting)
- {
- if (EntityManager.TryGetComponent(owner, out VendingMachineComponent? vending))
- {
- _vendingMachineSystem.SetContraband(owner, !vending.Contraband, vending);
- }
- }
- public override bool GetValue(EntityUid owner)
- {
- return EntityManager.TryGetComponent(owner, out VendingMachineComponent? vending) && !vending.Contraband;
- }
- }
|