public double jumpTime(double timeStep) {
		double loopTime = 0;
		Position calculatedPosition = this.getPosition();
		
		while(this.getWorld().liesWithinBoundaries(calculatedPosition, this.getRadius()) && (!this.getWorld().isAdjacent(calculatedPosition, this.getRadius()) || this.getPosition().distance(calculatedPosition) <= this.getRadius()) && 
				!this.getWorld().isImpassable(calculatedPosition, this.getRadius())) {
			loopTime += timeStep;
			calculatedPosition = this.jumpStep(loopTime);
		}
		loopTime -= timeStep; //one step back
		
		return Math.max(loopTime,0);
	}