private void OnSignalReceived(EntityUid uid, DoorSignalControlComponent component, SignalReceivedEvent args) { if (!TryComp(uid, out DoorComponent? door)) { return; } if (args.Port == component.OpenPort) { if (door.State != DoorState.Open) { _doorSystem.TryOpen(uid, door); } } else if (args.Port == component.ClosePort) { if (door.State != DoorState.Closed) { _doorSystem.TryClose(uid, door); } } else if (args.Port == component.TogglePort) { _doorSystem.TryToggleDoor(uid, door); } }
private void OnInit(EntityUid uid, DoorSignalControlComponent component, ComponentInit args) { _signalSystem.EnsureReceiverPorts(uid, component.OpenPort, component.ClosePort, component.TogglePort); }