class HoloFeederController extends ScriptableDeviceComponent
{

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

}

class HoloFeederControllerPS extends ScriptableDeviceComponentPS
{
	default m_deviceName = "LocKey#95";
	default m_tweakDBRecord = T"Devices.HoloFeeder";
	default m_tweakDBDescriptionRecord = T"device_descriptions.HoloFeeder";
	[ category = "SFX" ][ customEditor = "AudioEvent" ]
	protected instanceeditable var m_turnOnSFX : CName;
	[ category = "SFX" ][ customEditor = "AudioEvent" ]
	protected instanceeditable var m_turnOffSFX : CName;

	protected event OnInstantiated()
	{
		super.OnInstantiated();
		if( !( IsStringValid( m_deviceName ) ) )
		{
			m_deviceName = "LocKey#95";
		}
	}

	protected override function Initialize()
	{
		super.Initialize();
	}

	public override function GetActions( out actions : array< DeviceAction >, context : GetActionsContext ) : Bool
	{
		super.GetActions( actions, context );
		if( !( IsUserAuthorized( context.processInitiatorObject.GetEntityID() ) ) )
		{
			return false;
		}
		if( ToggleON.IsDefaultConditionMet( this, context ) )
		{
			actions.PushBack( ActionToggleON() );
		}
		SetActionIllegality( actions, m_illegalActions.regularActions );
		return true;
	}

	public const function GetOnSound() : CName
	{
		return m_turnOnSFX;
	}

	public const function GetOffSound() : CName
	{
		return m_turnOffSFX;
	}

}

