@Override
	public void run() {
		
		while (!mainFrame.isGameOver()) {
			try {
				Thread.sleep(CYCLE_SLEEP_TIME);
				if (!mainFrame.isPause()) {
					cyclesCount++;

					// move down if needed
					int gravity = mainFrame.getLevel();
					if (cyclesCount>=AUTO_MOVE_DOWN_MAX_CYCLES / gravity) {
						cyclesCount = 0;
						mainFrame.moveEvent(Move.DOWN);
					}
				}
			} catch (InterruptedException e) {
				System.out.println("Interrupted exception");
			}
		}
	}