public void transition(int direction) {
		Engine.getCamera().setActive(false);

		final String map = transitions.get(direction);
		if (map != null) {
			Engine.setTransition(new MapChangeTransition(
					new TransitionAction() {
						@Override
						public void execute() {
							Engine.getCamera().setActive(true);
							Engine.loadMap(map);
						}
					}, new TransitionAction() {
						@Override
						public void execute() {
							Engine.getEntity(MapObjects.ENTITY_PLAYER)
									.setCanMove(true);
						}
					}));

			// Theres a problem here, up will crash and direction left needs to
			// be fixed (east)
			if (direction == Globals.DIRECTION_DOWN) {
				Engine.getEntity(MapObjects.ENTITY_PLAYER).setY(
						0 - Globals.TILE_SIZE / 2);
			} else if (direction == Globals.DIRECTION_UP) {
				Engine.getEntity(MapObjects.ENTITY_PLAYER).setY(
						Map.getFromCache(map).getHeight() - Globals.TILE_SIZE
								/ 2);
			} else if (direction == Globals.DIRECTION_RIGHT) {
				Engine.getEntity(MapObjects.ENTITY_PLAYER).setX(
						0 - Globals.TILE_SIZE / 2);
			} else if (direction == Globals.DIRECTION_LEFT) {
				Engine.getEntity(MapObjects.ENTITY_PLAYER).setX(800);
			}
		}
	}