public void Update(GameTime gameTime)
	{
		//HandleExplosions();
		
		mMousePosition = new Vector2(mInput.GetMouseX(), GameProperties.WindowHeight() - mInput.GetMouseY()).DividedBy(GameProperties.Scale()).Minus(mCameraOffset);
		
		GameEntity.UpdateList(gameTime, mEnemyList);
		GameEntity.UpdateList(gameTime, mBulletList);
		
		GameEntity.UpdateList(gameTime, mSparkList);
		GameEntity.UpdateList(gameTime, mLastingGridPushes);

		mGrid.Pull(mMousePosition, 5000, 10000);
		
		mGrid.Update(gameTime);
		
		mCameraFocus.SetEqual(new Vector2(GameProperties.SizeX(), GameProperties.SizeY()).DividedBy(2));
		MoveCamera(10);
		
		mMenu.Update();
		
		if (!mMenu.IsMenuItemSelected())
		{
			mMenu.SelectMenuItem(new Vector2(mInput.GetMouseX(), GameProperties.WindowHeight() - mInput.GetMouseY()));
			
			if (mInput.IsMouseHit(0))
			{				
				switch(mMenu.GetSelected())
				{
					case 0:
					{
						mNextState = new GameState_Game(mGrid, mSparkList, mLastingGridPushes, mCameraOffset);
					}
					break;
					/*case 1:
					{
						mNextState = new GameState_GameServer(mGrid, mSparkList, mLastingGridPushes, mCameraOffset);
					}
					break;
					case 2:
					{
						mNextState = new GameState_GameClient(mGrid, mSparkList, mLastingGridPushes, mCameraOffset);
					}
					break;*/
					case 1:
					{
						mNextState = new GameState_GraphicsMenu(this);
					}
					break;
					case 2:
					{
						UnLoad();
					}
					break;
				}
			}
		}
	}