class ActionSingleUseBaseCB : ActionBaseCB
{
	override void CreateActionComponent()
	{
		m_ActionData.m_ActionComponent = new CASingleUse;
	}
	
	override void InitActionComponent()
	{
		m_Interrupted = false;
		m_Canceled = false;

		CreateActionComponent();
		if ( m_ActionData.m_ActionComponent )
		{ 
			m_ActionData.m_ActionComponent.Init(m_ActionData);
		}
		m_ActionData.m_State = UA_PROCESSING;
		RegisterAnimationEvent("ActionExec", UA_ANIM_EVENT);
		m_SoundObject = m_ActionData.m_Action.PlayActionSound(m_ActionData.m_Player);
		}	
	
	override void EndActionComponent()
	{
		m_ActionData.m_State = UA_FINISHED;
	}	
};

class ActionSingleUseBase : AnimatedActionBase
{
	void ActionSingleUseBase()
	{
		m_CallbackClass = ActionSingleUseBaseCB;
		m_CommandUID = DayZPlayerConstants.CMD_ACTIONMOD_PICKUP_HANDS;
	}

	override typename GetInputType()
	{
		return DefaultActionInput;
	} 

	override int GetActionCategory()
	{
		return AC_SINGLE_USE;
	}
};