/**@class		ReplaceItemWithNewLambda
 * @brief		adds automatic QuickBar handling
 **/
class ReplaceItemWithNewLambda : ReplaceItemWithNewLambdaBase
{
	PlayerBase m_Player;
	int m_IndexQB;

	void ReplaceItemWithNewLambda(EntityAI old_item, string new_item_type, PlayerBase player)
	{
		m_Player = player;
		m_IndexQB = -1;

		if (m_Player)
			m_IndexQB = m_Player.FindQuickBarEntityIndex(old_item);
	}

	/**@fn		CopyOldPropertiesToNew
	 * @brief	copy properties from old object to the created one
	 *
	 * @NOTE:	This is supposed to be overriden in derived classes, like for example right now.
	 **/
	override void CopyOldPropertiesToNew(notnull EntityAI old_item, EntityAI new_item)
	{
		super.CopyOldPropertiesToNew(old_item, new_item);

		if (m_Player && m_IndexQB != -1)
		{
			m_Player.SetQuickBarEntityShortcut(new_item, m_IndexQB, true);
		}
	}
	
	override void OnSuccess(EntityAI new_item)
	{
		super.OnSuccess(new_item);
		
		if (m_Player && m_IndexQB != -1)
		{
			m_Player.SetQuickBarEntityShortcut(new_item, m_IndexQB, true);
		}
	}
};

