/
GalaxiOption.java
29 lines (25 loc) · 1.14 KB
/
GalaxiOption.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
package net.ME1312.Galaxi.Engine;
import net.ME1312.Galaxi.Library.Container;
import net.ME1312.Galaxi.Library.Util;
import java.awt.*;
import java.io.File;
/**
* Galaxi Option Enum
*
* @param <T> Option Type
*/
public final class GalaxiOption<T> extends Container<T> {
public static final GalaxiOption<File> APPLICATION_DIRECTORY = new GalaxiOption<>(new File(System.getProperty("user.dir")));
public static final GalaxiOption<Boolean> AUTO_SHOW_CONSOLE_WINDOW = new GalaxiOption<>(System.getProperty("galaxi.ui.console", "true").equalsIgnoreCase("true"));
public static final GalaxiOption<File> LOG_DIRECTORY = new GalaxiOption<>(new File(APPLICATION_DIRECTORY.get(), "Logs"));
public static final GalaxiOption<Boolean> USE_RAW_LOG = new GalaxiOption<>(System.getProperty("galaxi.log.raw", "null").equalsIgnoreCase("true") || GraphicsEnvironment.isHeadless());
private GalaxiOption(T def) {
super(def);
}
private GalaxiOption(Util.ReturnRunnable<T> def) {
this(def.run());
}
private GalaxiOption(Util.ExceptionReturnRunnable<T> def, T fallback) {
this(Util.getDespiteException(def, fallback));
}
}