public void save() {
		if (ChristmasCrashers.isDebugModeEnabled())
			System.out.println("Saving level " + ID + " in world " + worldID + ".");
		File dataFile = new File(getDiskLocation());
		if (!dataFile.exists()) {
			System.out.println("Data file for level " + ID + " in world " + worldID + " does not exist - creating it now.");
			dataFile.mkdirs();
			try {
				dataFile.createNewFile();
			} catch (IOException e) {
				e.printStackTrace();
				System.err.println("Failed to save level " + ID + " in world" + worldID + " - could not create data file.");
				return;
			}
		}
		FileWriter fw = null;
		try {
			fw = new FileWriter(getDiskLocation());
		} catch (IOException e) {
			e.printStackTrace();
		}
		if (fw == null)
			return;
		PrintWriter pw = new PrintWriter(fw);
		for (int j = HEIGHT - 1; j >= 0; j--) { // See comment in load() method about the order of i and j being inverted
			StringBuilder sb = new StringBuilder();
			for (int i = 0; i < WIDTH; i++)
				sb.append(objects[i][j].getType().getDataChar());
			pw.println(sb.toString());
		}
		pw.close();
		try {
			fw.close();
		} catch (IOException e) {
			e.printStackTrace();
		}
	}