Add user settings
This commit is contained in:
parent
c663074616
commit
6bbcc4af50
16
assets/Config/settings.json
Normal file
16
assets/Config/settings.json
Normal file
@ -0,0 +1,16 @@
|
||||
{
|
||||
"gameplayGenerateWorld" : false,
|
||||
|
||||
"displayWidth" : 1920,
|
||||
"displayHeight" : 1080,
|
||||
|
||||
"graphicsFOV" : 90.0,
|
||||
|
||||
"graphicsPerformanceEnableVSync" : false,
|
||||
"graphicsPerformanceDrawShadows" : true,
|
||||
|
||||
"graphicsDebugDrawCollisionSpheres" : false,
|
||||
"graphicsDebugDrawPhysicsObjects" : false,
|
||||
"graphicsDebugDrawMovementVectors" : false
|
||||
|
||||
}
|
||||
128
src/main/java/electrosphere/game/config/UserSettings.java
Normal file
128
src/main/java/electrosphere/game/config/UserSettings.java
Normal file
@ -0,0 +1,128 @@
|
||||
package electrosphere.game.config;
|
||||
|
||||
import electrosphere.main.Globals;
|
||||
import electrosphere.util.FileLoadingUtils;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author amaterasu
|
||||
*/
|
||||
public class UserSettings {
|
||||
|
||||
|
||||
//
|
||||
//Gameplay settings
|
||||
//
|
||||
boolean gameplayGenerateWorld;
|
||||
|
||||
|
||||
//
|
||||
//Display settings
|
||||
//
|
||||
int displayWidth;
|
||||
int displayHeight;
|
||||
|
||||
|
||||
//
|
||||
//Graphics settings
|
||||
//
|
||||
//general
|
||||
float graphicsFOV;
|
||||
//performance
|
||||
boolean graphicsPerformanceEnableVSync;
|
||||
boolean graphicsPerformanceDrawShadows;
|
||||
//debug
|
||||
boolean graphicsDebugDrawCollisionSpheres;
|
||||
boolean graphicsDebugDrawPhysicsObjects;
|
||||
boolean graphicsDebugDrawMovementVectors;
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
public boolean gameplayGenerateWorld() {
|
||||
return gameplayGenerateWorld;
|
||||
}
|
||||
|
||||
public int getDisplayWidth() {
|
||||
return displayWidth;
|
||||
}
|
||||
|
||||
public int getDisplayHeight() {
|
||||
return displayHeight;
|
||||
}
|
||||
|
||||
public float getGraphicsFOV() {
|
||||
return graphicsFOV;
|
||||
}
|
||||
|
||||
public boolean graphicsPerformanceEnableVSync() {
|
||||
return graphicsPerformanceEnableVSync;
|
||||
}
|
||||
|
||||
public boolean graphicsPerformanceDrawShadows() {
|
||||
return graphicsPerformanceDrawShadows;
|
||||
}
|
||||
|
||||
public boolean graphicsDebugDrawCollisionSpheres() {
|
||||
return graphicsDebugDrawCollisionSpheres;
|
||||
}
|
||||
|
||||
public boolean graphicsDebugDrawPhysicsObjects() {
|
||||
return graphicsDebugDrawPhysicsObjects;
|
||||
}
|
||||
|
||||
public boolean graphicsDebugDrawMovementVectors() {
|
||||
return graphicsDebugDrawMovementVectors;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
static UserSettings getDefault(){
|
||||
UserSettings rVal = new UserSettings();
|
||||
|
||||
//display settings
|
||||
rVal.displayHeight = 1080;
|
||||
rVal.displayWidth = 1920;
|
||||
|
||||
//gameplay settings
|
||||
rVal.gameplayGenerateWorld = true;
|
||||
|
||||
//graphics settings
|
||||
rVal.graphicsDebugDrawCollisionSpheres = false;
|
||||
rVal.graphicsDebugDrawMovementVectors = false;
|
||||
rVal.graphicsDebugDrawPhysicsObjects = false;
|
||||
rVal.graphicsFOV = 90.0f;
|
||||
rVal.graphicsPerformanceDrawShadows = true;
|
||||
rVal.graphicsPerformanceEnableVSync = true;
|
||||
|
||||
return rVal;
|
||||
}
|
||||
|
||||
|
||||
public static void loadUserSettings(){
|
||||
Globals.userSettings = FileLoadingUtils.loadObjectFromAssetPath("/Config/settings.json", UserSettings.class);
|
||||
if(Globals.userSettings == null){
|
||||
Globals.userSettings = getDefault();
|
||||
}
|
||||
Globals.WINDOW_WIDTH = Globals.userSettings.displayWidth;
|
||||
Globals.WINDOW_HEIGHT = Globals.userSettings.displayHeight;
|
||||
Globals.FOV = Globals.userSettings.graphicsFOV;
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
@ -18,6 +18,7 @@ import electrosphere.game.client.terrain.manager.ClientTerrainManager;
|
||||
import electrosphere.game.client.world.ClientWorldData;
|
||||
import electrosphere.game.collision.CommonWorldData;
|
||||
import electrosphere.engine.LoadingThread;
|
||||
import electrosphere.game.config.UserSettings;
|
||||
import electrosphere.game.server.ai.AIManager;
|
||||
import electrosphere.game.server.character.Character;
|
||||
import electrosphere.game.config.creature.type.model.CreatureTypeMap;
|
||||
@ -67,7 +68,11 @@ import org.lwjgl.glfw.GLFWErrorCallback;
|
||||
* @author amaterasu
|
||||
*/
|
||||
public class Globals {
|
||||
|
||||
|
||||
//
|
||||
//Top level user settings object
|
||||
//
|
||||
public static UserSettings userSettings;
|
||||
|
||||
//
|
||||
//Rendering Engine
|
||||
|
||||
@ -15,6 +15,7 @@ import electrosphere.entity.types.item.ItemUtils;
|
||||
import electrosphere.entity.types.attach.AttachUtils;
|
||||
import electrosphere.engine.LoadingThread;
|
||||
import electrosphere.game.client.ClientFunctions;
|
||||
import electrosphere.game.config.UserSettings;
|
||||
import electrosphere.game.state.MicroSimulation;
|
||||
import electrosphere.logger.LoggerInterface;
|
||||
import electrosphere.renderer.RenderingEngine;
|
||||
@ -100,6 +101,9 @@ public class Main {
|
||||
//
|
||||
//
|
||||
|
||||
//load user settings
|
||||
UserSettings.loadUserSettings();
|
||||
|
||||
//initialize logging interfaces
|
||||
LoggerInterface.initLoggers();
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user