@Override
	public void onRender(Graphics g, Level level) {
		if(level.selectedShip!=null){
			if(level.selectedShip.intValue()==id){
				Point2D.Double lastLocation = location;
				Point2D.Double lastVelocity = velocity;
				Entity e=this;
				double timeStep =0.004;
				Entity fastest=this;
				Entity slowest=this;
				double angle=0;
				int i=0;
				g.setColor(new Color(0, 0, 255));
				while(i<20/timeStep&&angle<360){
					e =simulateLocationAfterTime(e,level, timeStep);
					angle+= Math.abs(Math.abs(vectorAsAngle(e.velocity))-Math.abs(vectorAsAngle(lastVelocity)));
					g.drawLine((int)(lastLocation.x*Level.unitResolution)-level.getOffset().x, (int)(lastLocation.y*Level.unitResolution)-level.getOffset().y,
							(int)(e.location.x*Level.unitResolution)-level.getOffset().x, (int)(e.location.y*Level.unitResolution)-level.getOffset().y);
					lastLocation= new Point2D.Double(e.location.x, e.location.y);
					lastVelocity= new Point2D.Double(e.velocity.x, e.velocity.y);
					if(e.velocity.distance(0, 0)>fastest.velocity.distance(0, 0)){
						fastest=e;
					}else{
						if(e.velocity.distance(0, 0)<slowest.velocity.distance(0, 0)){
							slowest=e;
						}
					}
					i++;
				}
				g.setColor(Color.RED);
				g.drawLine((int)(fastest.location.x*Level.unitResolution)-level.getOffset().x, (int)(fastest.location.y*Level.unitResolution)-level.getOffset().y,
						(int)((fastest.location.x+0.25)*Level.unitResolution)-level.getOffset().x, (int)(fastest.location.y*Level.unitResolution)-level.getOffset().y);
				g.setColor(Color.GREEN);
				g.drawLine((int)(slowest.location.x*Level.unitResolution)-level.getOffset().x, (int)(slowest.location.y*Level.unitResolution)-level.getOffset().y,
						(int)((slowest.location.x+0.25)*Level.unitResolution)-level.getOffset().x, (int)(slowest.location.y*Level.unitResolution)-level.getOffset().y);
			}
		}
	}