public void fire(Tanq owner, Vector3D gunLocation, float directionInDegrees) {
		synchronized (this) {
			if (loaded && !jammed && bullets > 0) {
				new Bullet(owner, gunLocation, directionInDegrees);
				bullets--;
				currentTemp += heatIncreasePerShot;
				if (currentTemp > overheatTemp)
					jammed = true;
				loaded = false;
				reload.start();
				cooldown.restart();
			}
		}
	}