public void update() {
		if (isPaused)
			return;
		
		processInput();
		
		updateCamera();
		
		updateGravityAnimation();
		
		updateQuadTree();
		
		GameContext g = getGameContext();
		
		// reset all resolved flags
		for (Mob m : dots) {
			((Collidable)m).setResolved(false);
		}
//		for (Mob m : lines) {
//			((Collidable)m).setResolved(false);
//		}
		for (Mob m : polygons) {
			((Collidable)m).setResolved(false);
		}
		
		updateEntities(g);
		
		resolvesEntityAdditionsAndRemovals(g);
		
		updatePhysicalEntityList();
		
		applyFriction();
		
		
//		if (r.nextFloat() < .1F)
//			explosions.add(new Explosion(this,r.nextFloat()*(float)screenDims.width,r.nextFloat()*(float)screenDims.height,Color.WHITE));
		
	}