class DestructibleMasterDevice extends InteractiveMasterDevice
{
	default m_controllerTypeName = 'DestructibleMasterDeviceController';

	protected event OnRequestComponents( ri : EntityRequestComponentsInterface )
	{
		super.OnRequestComponents( ri );
	}

	protected event OnTakeControl( ri : EntityResolveComponentsInterface )
	{
		super.OnTakeControl( ri );
		m_controller = ( ( DestructibleMasterDeviceController )( EntityResolveComponentsInterface.GetComponent( ri, 'controller' ) ) );
	}

	protected event OnDetach()
	{
		super.OnDetach();
	}

	protected event OnPhysicalDestructionEvent( evt : PhysicalDestructionEvent )
	{
		GetDevicePS().RefreshSlaves_Event();
	}

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

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

}

