void processMousePressed(MouseEvent e) {
		requestFocusInWindow();
		mouseHeldX = e.getX();
		mouseHeldY = e.getY();
		getModel().runMouseScript(MouseEvent.MOUSE_PRESSED, mouseHeldX, mouseHeldY);
		mousePressedTime = System.currentTimeMillis();
		if (mousePressedPoint == null) {
			mousePressedPoint = new Point(mouseHeldX, mouseHeldY);
		} else {
			mousePressedPoint.x = mouseHeldX;
			mousePressedPoint.y = mouseHeldY;
		}
		if (steeringForceController != null && steeringForceController.currentReading != 0) {
			if (steeringForceController.incrButton.contains(mouseHeldX, mouseHeldY)) {
				steeringForceController.increase();
			} else if (steeringForceController.decrButton.contains(mouseHeldX, mouseHeldY)) {
				steeringForceController.decrease();
			}
		}
		if (energizerOn && energizer != null) {
			if (energizer.heatButton.contains(mouseHeldX, mouseHeldY)) {
				if (selectedComponent != null) {
					selectedComponent.setSelected(false);
					selectedComponent = null;
				}
				energizerButtonPressed = true;
				Thread t = new Thread(new Runnable() {
					public void run() {
						while (energizerButtonPressed && getModel().getTemperature() < 100000) {
							energizer.heat();
							repaint();
							try {
								Thread.sleep(50);
							} catch (InterruptedException e) {
								energizerButtonPressed = false;
								return;
							}
						}
						getModel().notifyChange();
					}
				});
				t.setName("Quick Heater");
				t.setPriority(Thread.NORM_PRIORITY);
				t.start();
			} else if (energizer.coolButton.contains(mouseHeldX, mouseHeldY)) {
				if (selectedComponent != null) {
					selectedComponent.setSelected(false);
					selectedComponent = null;
				}
				energizerButtonPressed = true;
				Thread t = new Thread(new Runnable() {
					public void run() {
						while (energizerButtonPressed) {
							energizer.cool();
							repaint();
							try {
								Thread.sleep(50);
							} catch (InterruptedException e) {
								energizerButtonPressed = false;
								return;
							}
						}
						getModel().notifyChange();
					}
				});
				t.setName("Quick Cooler");
				t.setPriority(Thread.NORM_PRIORITY);
				t.start();
			} else if (energizer.exitButton.contains(mouseHeldX, mouseHeldY)) {
				energizer.exit();
				energizerButtonPressed = false;
			}
		}
	}