class DoorProximityDetectorController extends ProximityDetectorController
{

	public const override function GetPS() : DoorProximityDetectorControllerPS
	{
		return ( ( DoorProximityDetectorControllerPS )( GetBasePS() ) );
	}

}

class DoorProximityDetectorControllerPS extends ProximityDetectorControllerPS
{
	default m_deviceName = "Gameplay-Devices-DisplayNames-DoorDetector";

	protected override function OnSecuritySystemOutput( evt : SecuritySystemOutput ) : EntityNotificationType
	{
		super.OnSecuritySystemOutput( evt );
		return EntityNotificationType.SendThisEventToEntity;
	}

	public override function GetQuestActionByName( actionName : CName ) : DeviceAction
	{
		var action : DeviceAction;
		action = super.GetQuestActionByName( actionName );
		if( action == NULL )
		{
			switch( actionName )
			{
				case 'QuestStartGlitch':
					action = ActionQuestStartGlitch();
				break;
				case 'QuestStopGlitch':
					action = ActionQuestStopGlitch();
				break;
			}
		}
		return action;
	}

	public override function GetQuestActions( out outActions : array< DeviceAction >, const context : ref< GetActionsContext > )
	{
		super.GetQuestActions( outActions, context );
		outActions.PushBack( ActionQuestStartGlitch() );
		outActions.PushBack( ActionQuestStopGlitch() );
	}

}

