class FactInvoker extends InteractiveMasterDevice
{
	default m_controllerTypeName = 'FactInvokerController';

	protected event OnRequestComponents( ri : EntityRequestComponentsInterface )
	{
		EntityRequestComponentsInterface.RequestComponent( ri, 'terminalui', 'worlduiWidgetComponent', false );
		super.OnRequestComponents( ri );
	}

	protected event OnTakeControl( ri : EntityResolveComponentsInterface )
	{
		m_uiComponent = ( ( worlduiWidgetComponent )( EntityResolveComponentsInterface.GetComponent( ri, 'terminalui' ) ) );
		super.OnTakeControl( ri );
		m_controller = ( ( FactInvokerController )( EntityResolveComponentsInterface.GetComponent( ri, 'controller' ) ) );
	}

	public const override function GetDevicePS() : FactInvokerControllerPS
	{
		return GetController().GetPS();
	}

	protected const override function GetController() : FactInvokerController
	{
		return ( ( FactInvokerController )( m_controller ) );
	}

	public override function ShouldAlwaysUpdateDeviceWidgets() : Bool
	{
		return true;
	}

}

