﻿using UnityEngine;
using System.Collections;
using System;

public class CubeController : MonoBehaviour 
{

	private Renderer rend;
	public bool state = false;
	private int cubeIndex, rowIndex;
	Color offColour, onColour;
	public GameObject layer;
	private int layerNum;
	private MainController controller;

	// Use this for initialization
	void Start () 
	{
		
		//camera = GameObject.Find("Main Camera");
		layer = gameObject.transform.parent.parent.gameObject;
		controller = layer.GetComponent<MainController>();
		string parent = gameObject.transform.parent.name;
		int.TryParse(parent.Substring(3), out rowIndex);

		offColour = new Color();
		ColorUtility.TryParseHtmlString ("#050045FF", out offColour);
		onColour = new Color();
		ColorUtility.TryParseHtmlString ("#004511FF", out onColour);

		string cubeName = gameObject.name;
		int.TryParse(cubeName.Substring(3,1), out cubeIndex);

		//get Layer number from last digit of object name
		//string layerName = gameObject.transform.parent.parent.name;
		//int.TryParse(layerName.Substring(5,1), out layerNum);
		//Debug.Log("LayerNum is:"+layerNum);
		
	}
	
	// Update is called once per frame
	void Update () 
	{

	}

	void OnMouseDown()
	{
		EnableCube();
		EnableCubeCsound();
	}

	public void Randomize()
	{
		int dice = UnityEngine.Random.Range(1,6);
		if (dice > 4)
		{
			EnableCube();
		}
	}

	public void EnableCube()
	{
		if(state == false)
		{
			gameObject.GetComponent<Renderer>().material.color = onColour;
		}
        else
			gameObject.GetComponent<Renderer>().material.color = offColour;

		state =	!state;
	}

	public void EnableCubeCsound()
	{
		controller.EnableCubeToPlaySound(rowIndex, cubeIndex, state);
	}
}
