Screenshot directory is now configurable. (requested in #4)
- Directory must already exist if a non-default location is used. Signed-off-by: Jeffrey Han <itdelatrisu@gmail.com>
This commit is contained in:
parent
edf40e11fd
commit
2380b11f48
|
@ -436,24 +436,23 @@ public class Utils {
|
|||
// TODO: should this be threaded?
|
||||
try {
|
||||
// create the screenshot directory
|
||||
if (!Options.SCREENSHOT_DIR.isDirectory()) {
|
||||
if (!Options.SCREENSHOT_DIR.mkdir())
|
||||
File dir = Options.getScreenshotDir();
|
||||
if (!dir.isDirectory()) {
|
||||
if (!dir.mkdir())
|
||||
return false;
|
||||
}
|
||||
|
||||
// create file name
|
||||
SimpleDateFormat date = new SimpleDateFormat("yyyyMMdd_HHmmss");
|
||||
String file = date.format(new Date());
|
||||
File file = new File(dir, String.format("screenshot_%s.%s",
|
||||
date.format(new Date()), Options.getScreenshotFormat()));
|
||||
|
||||
SoundController.playSound(SoundController.SOUND_SHUTTER);
|
||||
|
||||
// copy the screen
|
||||
Image screen = new Image(container.getWidth(), container.getHeight());
|
||||
container.getGraphics().copyArea(screen, 0, 0);
|
||||
ImageOut.write(screen, String.format("%s%sscreenshot_%s.%s",
|
||||
Options.SCREENSHOT_DIR.getName(), File.separator,
|
||||
file, Options.getScreenshotFormat()), false
|
||||
);
|
||||
ImageOut.write(screen, file.getAbsolutePath(), false);
|
||||
screen.destroy();
|
||||
} catch (SlickException e) {
|
||||
Log.warn("Failed to take a screenshot.", e);
|
||||
|
|
|
@ -57,11 +57,6 @@ public class Options extends BasicGameState {
|
|||
* Temporary folder for file conversions, auto-deleted upon successful exit.
|
||||
*/
|
||||
public static final File TMP_DIR = new File(".opsu_tmp/");
|
||||
|
||||
/**
|
||||
* Directory for screenshots (created when needed).
|
||||
*/
|
||||
public static final File SCREENSHOT_DIR = new File("Screenshots/");
|
||||
|
||||
/**
|
||||
* File for logging errors.
|
||||
|
@ -92,6 +87,11 @@ public class Options extends BasicGameState {
|
|||
*/
|
||||
private static File oszDir;
|
||||
|
||||
/**
|
||||
* The screenshot directory (created when needed).
|
||||
*/
|
||||
private static File screenshotDir;
|
||||
|
||||
/**
|
||||
* The current skin directory (for user skins).
|
||||
*/
|
||||
|
@ -1186,7 +1186,7 @@ public class Options extends BasicGameState {
|
|||
|
||||
/**
|
||||
* Returns the OSZ archive directory.
|
||||
* If invalid, this will return the root directory.
|
||||
* If invalid, this will create and return a "SongPacks" directory.
|
||||
* @return the OSZ archive directory
|
||||
*/
|
||||
public static File getOSZDir() {
|
||||
|
@ -1198,6 +1198,19 @@ public class Options extends BasicGameState {
|
|||
return oszDir;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the screenshot directory.
|
||||
* If invalid, this will return a "Screenshot" directory.
|
||||
* @return the screenshot directory
|
||||
*/
|
||||
public static File getScreenshotDir() {
|
||||
if (screenshotDir != null && screenshotDir.isDirectory())
|
||||
return screenshotDir;
|
||||
|
||||
screenshotDir = new File("Screenshots/");
|
||||
return screenshotDir;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the current skin directory.
|
||||
* If invalid, this will create a "Skins" folder in the root directory.
|
||||
|
@ -1242,6 +1255,9 @@ public class Options extends BasicGameState {
|
|||
case "OSZDirectory":
|
||||
oszDir = new File(value);
|
||||
break;
|
||||
case "ScreenshotDirectory":
|
||||
screenshotDir = new File(value);
|
||||
break;
|
||||
case "Skin":
|
||||
skinDir = new File(value);
|
||||
break;
|
||||
|
@ -1385,6 +1401,8 @@ public class Options extends BasicGameState {
|
|||
writer.newLine();
|
||||
writer.write(String.format("OSZDirectory = %s", getOSZDir().getAbsolutePath()));
|
||||
writer.newLine();
|
||||
writer.write(String.format("ScreenshotDirectory = %s", getScreenshotDir().getAbsolutePath()));
|
||||
writer.newLine();
|
||||
writer.write(String.format("Skin = %s", getSkinDir().getAbsolutePath()));
|
||||
writer.newLine();
|
||||
writer.write(String.format("Port = %d", port));
|
||||
|
|
Loading…
Reference in New Issue
Block a user