private void applyGravityField(Vector source) {
		List<Mob> affectedEntities = new ArrayList<Mob>();
		List<Float> mags = new ArrayList<Float>();
		List<Vector> disps = new ArrayList<Vector>();
		float mag;
		Vector disp;
		
		for (Mob m : allPhysicalEntities) {
			disp = Vector.displacement( m.getPosition(),source);
			mag = Vector.mag(disp);
			if (mag < gravityRadius) {
				affectedEntities.add(m);
				mags.add(mag);
				disps.add(disp);
			}
		}
		
		for (int i = 0; i < affectedEntities.size(); i++) {
			mag = mags.get(i);
			affectedEntities.get(i).applyAccel(Vector.scalar(((gravityDirection)?1F:-1F)*MAX_SUCTION_ACCEL/(mag),Vector.normalize(disps.get(i))));
		}
	}