Create basic world stuff
This commit is contained in:
parent
14d096230a
commit
3b31303078
1
saves/default/world.json
Normal file
1
saves/default/world.json
Normal file
@ -0,0 +1 @@
|
||||
{"type":"GAME_WORLD","worldMinPoint":{"x":0.0,"y":0.0,"z":0.0},"worldMaxPoint":{"x":200000.0,"y":0.0,"z":200000.0},"worldSizeDiscrete":2000,"dynamicInterpolationRatio":100,"randomDampener":0.0,"isArena":false}
|
||||
@ -117,11 +117,12 @@ public class LoadingThread extends Thread {
|
||||
//TODO: Globals.serverTerrainManager = new ServerTerrainManager(2000,50,100,randomDampener,0);
|
||||
Globals.serverTerrainManager = new ServerTerrainManager(2000,50,100,0.0f,0);
|
||||
SaveUtils.loadSave(Globals.currentSaveName);
|
||||
Globals.dataCellManager = new DataCellManager(Globals.serverWorldData);
|
||||
//TODO: set spawnpoint
|
||||
//TODO: Globals.serverWorldData = ServerWorldData.createGameWorld(Globals.serverTerrainManager);
|
||||
//TODO: Globals.dataCellManager = new DataCellManager(Globals.serverWorldData);
|
||||
Globals.serverWorldData = ServerWorldData.createGameWorld(Globals.serverTerrainManager);
|
||||
Globals.dataCellManager = new DataCellManager(Globals.serverWorldData);
|
||||
// Globals.serverWorldData = ServerWorldData.createGameWorld(Globals.serverTerrainManager);
|
||||
// Globals.dataCellManager = new DataCellManager(Globals.serverWorldData);
|
||||
}
|
||||
|
||||
LoggerInterface.loggerEngine.INFO("run server: " + Globals.RUN_SERVER + " run client: " + Globals.RUN_CLIENT);
|
||||
|
||||
@ -13,7 +13,7 @@ import java.util.logging.Logger;
|
||||
public class DatabaseUtils {
|
||||
public static boolean initCentralDBFile(String path){
|
||||
String sanitizedPath = "." + FileUtils.sanitizeFilePath(path);
|
||||
if(!FileUtils.checkDirectoryExists(sanitizedPath)){
|
||||
if(!FileUtils.checkFileExists(sanitizedPath)){
|
||||
return false;
|
||||
}
|
||||
String dbFilePath = sanitizedPath + "/central.db";
|
||||
|
||||
@ -1,6 +1,9 @@
|
||||
package electrosphere.game.server.saves;
|
||||
|
||||
import electrosphere.game.server.db.DatabaseUtils;
|
||||
import electrosphere.game.server.terrain.manager.ServerTerrainManager;
|
||||
import electrosphere.game.server.world.ServerWorldData;
|
||||
import electrosphere.game.server.world.datacell.DataCellManager;
|
||||
import electrosphere.main.Globals;
|
||||
import electrosphere.util.FileUtils;
|
||||
import java.util.LinkedList;
|
||||
@ -24,7 +27,7 @@ public class SaveUtils {
|
||||
public static boolean initSave(String saveName){
|
||||
String dirPath = deriveSaveDirectoryPath(saveName);
|
||||
//check if exists
|
||||
if(FileUtils.checkDirectoryExists(dirPath)){
|
||||
if(FileUtils.checkFileExists(dirPath)){
|
||||
return false;
|
||||
}
|
||||
//create dir
|
||||
@ -46,8 +49,7 @@ public class SaveUtils {
|
||||
return rVal;
|
||||
}
|
||||
|
||||
|
||||
public static boolean loadSave(String saveName){
|
||||
public static boolean loadTerrainAndDB(String saveName){
|
||||
String dirPath = deriveSaveDirectoryPath(saveName);
|
||||
String dbFilePath = FileUtils.sanitizeFilePath(dirPath) + "/central.db";
|
||||
Globals.dbController.connect(dbFilePath);
|
||||
@ -55,8 +57,41 @@ public class SaveUtils {
|
||||
return true;
|
||||
}
|
||||
|
||||
public static boolean loadSave(String saveName){
|
||||
String dirPath = deriveSaveDirectoryPath(saveName);
|
||||
String dbFilePath = FileUtils.sanitizeFilePath(dirPath) + "/central.db";
|
||||
Globals.dbController.connect(dbFilePath);
|
||||
Globals.serverTerrainManager.load(saveName);
|
||||
Globals.serverWorldData = FileUtils.loadObjectFromSavePath(saveName, "world.json", ServerWorldData.class);
|
||||
return true;
|
||||
}
|
||||
|
||||
public static List<String> getSaves(){
|
||||
return FileUtils.listDirectory("./saves");
|
||||
}
|
||||
|
||||
public static boolean worldHasSave(String saveName){
|
||||
String dirPath = deriveSaveDirectoryPath(saveName) + "/world.json";
|
||||
System.out.println("Exists? " + dirPath);
|
||||
return FileUtils.checkFileExists(dirPath);
|
||||
}
|
||||
|
||||
public static boolean loadTerrainAndCreateWorldData(){
|
||||
Globals.serverTerrainManager = new ServerTerrainManager(2000,50,100,0.0f,0);
|
||||
SaveUtils.loadTerrainAndDB(Globals.currentSaveName);
|
||||
Globals.serverWorldData = ServerWorldData.createGameWorld(Globals.serverTerrainManager);
|
||||
Globals.dataCellManager = new DataCellManager(Globals.serverWorldData);
|
||||
return true;
|
||||
}
|
||||
|
||||
public static boolean saveWorldDataToSave(String saveName){
|
||||
/*
|
||||
Globals.serverWorldData = ServerWorldData.createGameWorld(Globals.serverTerrainManager);
|
||||
//TODO: Globals.dataCellManager = new DataCellManager(Globals.serverWorldData);
|
||||
*/
|
||||
String dirPath = deriveSaveDirectoryPath(saveName);
|
||||
FileUtils.serializeObjectToFilePath(dirPath + "/world.json", Globals.serverWorldData);
|
||||
return true;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -2,6 +2,7 @@ package electrosphere.menu;
|
||||
|
||||
import electrosphere.controls.ControlHandler;
|
||||
import electrosphere.engine.LoadingThread;
|
||||
import electrosphere.game.server.saves.SaveUtils;
|
||||
import electrosphere.main.Globals;
|
||||
import electrosphere.main.Main;
|
||||
import electrosphere.net.NetUtils;
|
||||
@ -54,10 +55,42 @@ public class MenuTransition {
|
||||
}
|
||||
break;
|
||||
case WORLD_SELECT_MENU:
|
||||
switch(((TextBox)m.getCurrentOption()).getText()){
|
||||
case "CREATE WORLD":
|
||||
m.dispose();
|
||||
Globals.currentMenu = MenuUtils.createWorldCreationMenu();
|
||||
break;
|
||||
default:
|
||||
String worldName = ((TextBox)m.getCurrentOption()).getText();
|
||||
m.dispose();
|
||||
//check if has save or not
|
||||
if(SaveUtils.worldHasSave(worldName.toLowerCase())){
|
||||
Globals.loadingThread = new LoadingThread(LoadingThread.LOAD_MAIN_GAME);
|
||||
Globals.RUN_CLIENT = true;
|
||||
Globals.RUN_SERVER = true;
|
||||
Globals.loadingThread.start();
|
||||
} else {
|
||||
Globals.currentSaveName = worldName.toLowerCase();
|
||||
SaveUtils.loadTerrainAndCreateWorldData();
|
||||
Globals.currentMenu = MenuUtils.createSaveCreationMenu();
|
||||
}
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case WORLD_CREATE_MENU:
|
||||
break;
|
||||
case SAVE_CREATE_MENU:
|
||||
switch(((TextBox)m.getCurrentOption()).getText()){
|
||||
case "SAVE":
|
||||
m.dispose();
|
||||
SaveUtils.saveWorldDataToSave(Globals.currentSaveName);
|
||||
Globals.currentMenu = MenuUtils.createWorldSelectMenu();
|
||||
break;
|
||||
case "CANCEL":
|
||||
m.dispose();
|
||||
Globals.currentMenu = MenuUtils.createWorldSelectMenu();
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case CHARACTER_CREATE_MENU:
|
||||
break;
|
||||
|
||||
@ -51,17 +51,15 @@ public class MenuUtils {
|
||||
List<String> saveNames = SaveUtils.getSaves();
|
||||
int verticalPosition = 125;
|
||||
//TODO: add text input to name world
|
||||
rVal.addOption(WidgetUtils.createVerticallyAlignedMinSizeTextBoxFromCharCount(40, 40, screenTop - verticalPosition, "CREATE WORLD", true));
|
||||
rVal.addOption(WidgetUtils.createVerticallyAlignedMinSizeTextBoxFromCharCount(40, 40, screenTop - 125, "CREATE WORLD", true));
|
||||
return rVal;
|
||||
}
|
||||
|
||||
public static Menu createSaveCreationMenu(){
|
||||
Menu rVal = new Menu(MenuType.WORLD_CREATE_MENU);
|
||||
Menu rVal = new Menu(MenuType.SAVE_CREATE_MENU);
|
||||
int screenTop = Globals.WINDOW_HEIGHT - 150;
|
||||
List<String> saveNames = SaveUtils.getSaves();
|
||||
int verticalPosition = 125;
|
||||
//TODO: add text input to name world
|
||||
rVal.addOption(WidgetUtils.createVerticallyAlignedMinSizeTextBoxFromCharCount(40, 40, screenTop - verticalPosition, "CREATE WORLD", true));
|
||||
rVal.addOption(WidgetUtils.createVerticallyAlignedMinSizeTextBoxFromCharCount(40, 40, screenTop - 125, "SAVE", true));
|
||||
rVal.addOption(WidgetUtils.createVerticallyAlignedMinSizeTextBoxFromCharCount(40, 40, screenTop - 200, "CANCEL", true));
|
||||
return rVal;
|
||||
}
|
||||
|
||||
|
||||
@ -199,7 +199,7 @@ public class FileUtils {
|
||||
* @param directoryName
|
||||
* @return true if directory exists, false otherwise
|
||||
*/
|
||||
public static boolean checkDirectoryExists(String directoryName){
|
||||
public static boolean checkFileExists(String directoryName){
|
||||
File targetDir = new File(sanitizeFilePath(directoryName));
|
||||
if(targetDir.exists()){
|
||||
return true;
|
||||
@ -208,6 +208,7 @@ public class FileUtils {
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Trys to create a directory
|
||||
* @param directoryName
|
||||
|
||||
Loading…
Reference in New Issue
Block a user