ProjectZombie/src/projectzombie/settings/Settings.java

70 lines
2.0 KiB
Java
Executable File

package projectzombie.settings;
import bdf.classes.BdfClassManager;
import bdf.classes.IBdfClassManager;
import bdf.file.BdfFileManager;
import bdf.types.BdfNamedList;
import bdf.types.BdfObject;
import bdf.types.BdfTypes;
import projectzombie.display.DisplayRenderUI;
import projectzombie.entity.EntityParticle;
import projectzombie.world.chunk.Chunk;
public class Settings implements IBdfClassManager
{
public static final BdfClassManager SETTINGS = new BdfClassManager(new Settings());
private static BdfFileManager FILE_MANAGER;
@Override
public void BdfClassLoad(BdfObject bdf) {
BdfNamedList nl = bdf.getNamedList();
if(nl.get("render_distance").getType() == BdfTypes.INTEGER) {
Chunk.RENDER_DISTANCE = nl.get("render_distance").getInteger();
} else {
Chunk.RENDER_DISTANCE = 2;
}
if(nl.get("show_fps").getType() == BdfTypes.BOOLEAN) {
DisplayRenderUI.showFPS = nl.get("show_fps").getBoolean();
} else {
DisplayRenderUI.showFPS = false;
}
if(nl.get("show_pos").getType() == BdfTypes.BOOLEAN) {
DisplayRenderUI.showPos = nl.get("show_pos").getBoolean();
} else {
DisplayRenderUI.showPos = false;
}
if(nl.get("gui_scale").getType() == BdfTypes.INTEGER) {
DisplayRenderUI.guiScale = nl.get("gui_scale").getInteger();
} else {
DisplayRenderUI.guiScale = 2;
}
EntityParticle.DISABLED = nl.get("particles").getBoolean();
}
@Override
public void BdfClassSave(BdfObject bdf) {
BdfNamedList nl = bdf.getNamedList();
nl.set("render_distance", BdfObject.withInteger(Chunk.RENDER_DISTANCE));
nl.set("show_fps", BdfObject.withBoolean(DisplayRenderUI.showFPS));
nl.set("show_pos", BdfObject.withBoolean(DisplayRenderUI.showPos));
nl.set("gui_scale", BdfObject.withInteger(DisplayRenderUI.guiScale));
nl.set("particles", BdfObject.withBoolean(EntityParticle.DISABLED));
}
public static void init() {
FILE_MANAGER = new BdfFileManager(Environment.gdir + "/settings.bdf");
SETTINGS.load(FILE_MANAGER);
}
public static void update() {
SETTINGS.save(FILE_MANAGER);
FILE_MANAGER.saveDatabase();
}
}