﻿using UnityEngine;
using System.Collections;

public class RaycastCrystals : MonoBehaviour {

	public int crystalCount = 0;
	public GameObject crystal;

	// Use this for initialization
	void Start () {
		
	}
	
	// Update is called once per frame
	void Update () {
		RaycastHit hit;
		Vector3 forward = transform.TransformDirection (Vector3.forward * 10.0f);
		Debug.DrawRay (transform.position, forward, Color.green);

		if (Physics.Raycast (transform.position, forward, out hit)) {
			//print (hit.collider.gameObject.name);
			if (hit.collider.gameObject.tag != "Crystal") {
				if (crystalCount > 0) {
					if (Input.GetMouseButton (0)) {
						GameObject newCrystal = (GameObject)Instantiate (crystal, hit.point, Quaternion.LookRotation(hit.normal) );
						float size = Random.Range (0.1f, 2f);
						newCrystal.transform.localScale = new Vector3 (size, size, size*2.0f);
						float angleRange = 45.0f;
						newCrystal.transform.localEulerAngles = new Vector3 (
							Random.Range(-angleRange, angleRange) + newCrystal.transform.localEulerAngles.x,
							Random.Range(-angleRange, angleRange) + newCrystal.transform.localEulerAngles.y,
							Random.Range(-angleRange, angleRange) + newCrystal.transform.localEulerAngles.z
						);
					}
				}
				crystalCount--;
			}
		}
	}
}
