class Stillage extends InteractiveDevice
{
	default m_controllerTypeName = 'StillageController';
	private var m_collider : IPlacedComponent;

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

	protected event OnTakeControl( ri : EntityResolveComponentsInterface )
	{
		m_collider = ( ( IPlacedComponent )( EntityResolveComponentsInterface.GetComponent( ri, 'collider' ) ) );
		super.OnTakeControl( ri );
		m_controller = ( ( StillageController )( EntityResolveComponentsInterface.GetComponent( ri, 'controller' ) ) );
	}

	protected event OnThrowStuff( evt : ThrowStuff )
	{
		EnterWorkspot( evt.GetExecutor(), false, 'playerWorkspot', 'deviceWorkspot' );
	}

	protected event OnWorkspotFinished( componentName : CName )
	{
		super.OnWorkspotFinished( componentName );
		m_collider.Toggle( false );
	}

	protected event OnQuestResetDeviceToInitialState( evt : QuestResetDeviceToInitialState )
	{
		var e3_animFeatureInjection : AnimFeature_DeviceWorkspot;
		e3_animFeatureInjection = new AnimFeature_DeviceWorkspot;
		e3_animFeatureInjection.e3_lockInReferencePose = true;
		ApplyAnimFeatureToReplicate( this, 'DeviceWorkspot', e3_animFeatureInjection );
		m_collider.Toggle( true );
	}

}

