/*
	This is a generic user action for attaching sparkplug on any EntityAI object. The receiver must have a "sparkplug" selection in its View Geometry that the action_data.m_Player can look at.
*/


//!DEPRECATED
class ActionInsertSparkplug: ActionSingleUseBase
{
	void ActionInsertSparkplug()
	{
	}
	
	override void CreateConditionComponents()  
	{
		m_ConditionItem = new CCINonRuined;
		m_ConditionTarget = new CCTNonRuined(UAMaxDistances.DEFAULT);
		m_Text = "#attach";
	}

	override bool ActionCondition( PlayerBase player, ActionTarget target, ItemBase item )
	{
		EntityAI target_EAI = EntityAI.Cast( target.GetObject() );
		string selection = target_EAI.GetActionComponentName(target.GetComponentIndex());
		
		if ( selection == "sparkplug"  &&  target_EAI.GetInventory().CanAddAttachment(item) )
		{
			return true;
		}
		
		return false;
	}

	override void OnExecuteServer( ActionData action_data )
	{
		EntityAI target_EAI = EntityAI.Cast( action_data.m_Target.GetObject() ); // cast to ItemBase
		target_EAI.LocalTakeEntityAsAttachment (action_data.m_MainItem);
	}
	override void OnExecuteClient( ActionData action_data )
	{
		EntityAI target_EAI = EntityAI.Cast( action_data.m_Target.GetObject() ); // cast to ItemBase
		target_EAI.LocalTakeEntityAsAttachment (action_data.m_MainItem);
	}
};