var moveable = true;

function Update () {
	// movement stays 2 dimensional
	transform.position.z = 0;
	
	// Only rotate around the z axis (Then blocks become jittery, like a 2 year old pumped up on Haribo)
	//var eulerAngle = transform.rotation.eulerAngles;
	//transform.Rotate(-eulerAngle.x,-eulerAngle.y,0);
	
	if (moveable){
		if (Input.GetButtonDown("Horizontal")){
			var h = Input.GetAxisRaw("Horizontal");
			var mv : Vector3 = Vector3(5 * h,0,0);
			var reverse : Quaternion = Quaternion.Inverse(transform.rotation);
			transform.Translate(reverse * mv);
		} else if (Input.GetButtonDown("Vertical")){
			var v = Input.GetAxisRaw("Vertical");
			transform.Rotate(0,0,90 * v);
		} else if (Input.GetButtonDown("Jump")){
			var reverse2 : Quaternion = Quaternion.Inverse(transform.rotation);			
			rigidbody.AddForce(reverse2 * (transform.up * -20000));
		}
	}
}

/**
 * Render this object unmovable and spawn the next object.
 */
function OnCollisionEnter(collisionInfo : Collision) : void {
	if (moveable){
		var god = GetComponent(TetrisGod);
		god.CreateBlock();
		rigidbody.mass = 1000;
	}
	moveable = false;
}

function OnBecameInvisible ()
{
	// Delete the object when it can no longer be seen, as foretold by the prophecy.
	Destroy(gameObject);

	// And create a new block if this is the active block
	if (moveable){
		var god = GetComponent(TetrisGod);
		god.CreateBlock();
	}
}
