﻿//======= Copyright (c) Valve Corporation, All rights reserved. ===============
//
// Purpose: Spawns and attaches an object to the hand after the controller has
//			tracking
//
//=============================================================================

using UnityEngine;
using System.Collections;

namespace Valve.VR.InteractionSystem
{
	//-------------------------------------------------------------------------
	public class SpawnAndAttachAfterControllerIsTracking : MonoBehaviour
	{
		private Hand hand;
		public GameObject itemPrefab;

	
		//-------------------------------------------------
		void Start()
		{
			hand = GetComponentInParent<Hand>();
		}


		//-------------------------------------------------
		void Update()
		{
			if ( itemPrefab != null )
			{
				if ( hand.controller != null )
				{
					if ( hand.controller.hasTracking )
					{
						GameObject objectToAttach = GameObject.Instantiate( itemPrefab );
						objectToAttach.SetActive( true );
						hand.AttachObject( objectToAttach );
						hand.controller.TriggerHapticPulse( 800 );
						Destroy( gameObject );

						// If the player's scale has been changed the object to attach will be the wrong size.
						// To fix this we change the object's scale back to its original, pre-attach scale.
						objectToAttach.transform.localScale = itemPrefab.transform.localScale;
					}
				}
			}
		}
	}
}
