@Override
		public void logicUpdate(GameTime gameTime) {
			// checking if the mouse has moved within the bounds of the shown
			// map, so we can update the debug information
			if (mouseEventHandler.mousePosX < (tileWidth * tileWeights[0].length)
					&& mouseEventHandler.mouseClickPosY < (tileHeight * tileWeights.length)) {
				// Get the mouse location in terms of 'tile positions'
				int tileX = mouseEventHandler.mousePosX / tileWidth;
				int tileY = mouseEventHandler.mousePosY / tileHeight;
				Location tileLocation = new Location(tileX, tileY);
				SearchNode tile = allTiles.get(tileLocation);

				// If this is a valid tile, show the searchnode's details
				debugString = tile != null ?
						Helpers.concat("G :: ", tile.getCostG(),
								"\nH :: ", tile.getCostH(),
								"\nTotal :: ", tile.getTotalCost(),
								"\nVisit Order :: ", tile.getVisitOrder())
						: "Hover mouse over tile";
				debugString = Helpers.concat("Current Tile Info\n----------------\n", debugString);
			}

			// If we've clicked the mouse within the bounds of the map,
			// calculate where we clicked, then wecalculate everything required
			if (mouseEventHandler.leftClickDown || mouseEventHandler.rightClickDown) {
				if (mouseEventHandler.mouseClickPosX < (tileWidth * tileWeights[0].length)
						&& mouseEventHandler.mouseClickPosY < (tileHeight * tileWeights.length)) {
					// Get the mouse location in terms of 'tile positions'
					int tileX = mouseEventHandler.mouseClickPosX / tileWidth;
					int tileY = mouseEventHandler.mouseClickPosY / tileHeight;

					// Set the new start position
					if (mouseEventHandler.leftClickDown) {
						startX = tileX;
						startY = tileY;
					} else if (mouseEventHandler.rightClickDown) {
						endX = tileX;
						endY = tileY;
					}
					getPath();
				}
			}
		}