package org.petah.spring.bai;
import com.springrts.ai.oo.clb.Info;
import com.springrts.ai.oo.clb.OOAICallback;
import com.springrts.ai.oo.clb.OptionValues;
import java.io.File;
import java.util.logging.Logger;
import org.petah.common.option.Option;
import org.petah.common.option.OptionsManager;
import org.petah.spring.bai.log.Log;
import org.petah.spring.bai.util.CustomOptionIO;
/**
*
* @author Petah
*/
public class GlobalOptions {
private final static Logger LOG = Logger.getLogger(BAI.class.getName());
// Test options IO
public static void main(String[] args) {
CustomOptionIO.save(new File("testsettings.xml"));
System.out.println("Options saved to: " + new File("testsettings.xml").getAbsolutePath());
}
// Class properties
private static boolean ready = false;
// Options
private static Option<Boolean> debug = OptionsManager.getOption(
new Option<Boolean>("GlobalOptions.debug", true),
new Option<String>("description", "Enable debug mode"),
new Option<String>("values", "true, false"));
// Version
private static Option<String> version = OptionsManager.getOption(
new Option<String>("GlobalOptions.version", "0.1"),
new Option<Boolean>("transient", true));
// Graphics
private static Option<Boolean> antiAlias = OptionsManager.getOption(
new Option<Boolean>("GlobalOptions.antiAlias", true),
new Option<String>("description", "Enable anti aliasing when drawing images in the GUI"),
new Option<String>("values", "true, false"));
public static synchronized void parseLua(OOAICallback callback) {
Log.entry(GlobalOptions.class, "parseLua");
if (!ready) {
Info info = callback.getSkirmishAI().getInfo();
for (int i = 0; i < info.getSize(); i++) {
String name = info.getKey(i);
String value = info.getValue(i);
OptionsManager.getOption(new Option<String>(name, value),
new Option<Boolean>("transient", true));
LOG.info("Set AI info: " + name + " = " + value);
}
OptionValues options = callback.getSkirmishAI().getOptionValues();
for (int i = 0; i < options.getSize(); i++) {
String name = options.getKey(i);
String value = options.getValue(i);
OptionsManager.getOption(new Option<String>(name, value),
new Option<Boolean>("transient", true));
LOG.info("Set option: " + name + " = " + value);
}
ready = true;
}
}
public static boolean isDebug() {
return debug.getValue();
}
public static boolean isAntiAlias() {
return antiAlias.getValue();
}
}