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);
|
//TODO: Globals.serverTerrainManager = new ServerTerrainManager(2000,50,100,randomDampener,0);
|
||||||
Globals.serverTerrainManager = new ServerTerrainManager(2000,50,100,0.0f,0);
|
Globals.serverTerrainManager = new ServerTerrainManager(2000,50,100,0.0f,0);
|
||||||
SaveUtils.loadSave(Globals.currentSaveName);
|
SaveUtils.loadSave(Globals.currentSaveName);
|
||||||
|
Globals.dataCellManager = new DataCellManager(Globals.serverWorldData);
|
||||||
//TODO: set spawnpoint
|
//TODO: set spawnpoint
|
||||||
//TODO: Globals.serverWorldData = ServerWorldData.createGameWorld(Globals.serverTerrainManager);
|
//TODO: Globals.serverWorldData = ServerWorldData.createGameWorld(Globals.serverTerrainManager);
|
||||||
//TODO: Globals.dataCellManager = new DataCellManager(Globals.serverWorldData);
|
//TODO: Globals.dataCellManager = new DataCellManager(Globals.serverWorldData);
|
||||||
Globals.serverWorldData = ServerWorldData.createGameWorld(Globals.serverTerrainManager);
|
// Globals.serverWorldData = ServerWorldData.createGameWorld(Globals.serverTerrainManager);
|
||||||
Globals.dataCellManager = new DataCellManager(Globals.serverWorldData);
|
// Globals.dataCellManager = new DataCellManager(Globals.serverWorldData);
|
||||||
}
|
}
|
||||||
|
|
||||||
LoggerInterface.loggerEngine.INFO("run server: " + Globals.RUN_SERVER + " run client: " + Globals.RUN_CLIENT);
|
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 class DatabaseUtils {
|
||||||
public static boolean initCentralDBFile(String path){
|
public static boolean initCentralDBFile(String path){
|
||||||
String sanitizedPath = "." + FileUtils.sanitizeFilePath(path);
|
String sanitizedPath = "." + FileUtils.sanitizeFilePath(path);
|
||||||
if(!FileUtils.checkDirectoryExists(sanitizedPath)){
|
if(!FileUtils.checkFileExists(sanitizedPath)){
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
String dbFilePath = sanitizedPath + "/central.db";
|
String dbFilePath = sanitizedPath + "/central.db";
|
||||||
|
|||||||
@ -1,6 +1,9 @@
|
|||||||
package electrosphere.game.server.saves;
|
package electrosphere.game.server.saves;
|
||||||
|
|
||||||
import electrosphere.game.server.db.DatabaseUtils;
|
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.main.Globals;
|
||||||
import electrosphere.util.FileUtils;
|
import electrosphere.util.FileUtils;
|
||||||
import java.util.LinkedList;
|
import java.util.LinkedList;
|
||||||
@ -24,7 +27,7 @@ public class SaveUtils {
|
|||||||
public static boolean initSave(String saveName){
|
public static boolean initSave(String saveName){
|
||||||
String dirPath = deriveSaveDirectoryPath(saveName);
|
String dirPath = deriveSaveDirectoryPath(saveName);
|
||||||
//check if exists
|
//check if exists
|
||||||
if(FileUtils.checkDirectoryExists(dirPath)){
|
if(FileUtils.checkFileExists(dirPath)){
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
//create dir
|
//create dir
|
||||||
@ -46,8 +49,7 @@ public class SaveUtils {
|
|||||||
return rVal;
|
return rVal;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static boolean loadTerrainAndDB(String saveName){
|
||||||
public static boolean loadSave(String saveName){
|
|
||||||
String dirPath = deriveSaveDirectoryPath(saveName);
|
String dirPath = deriveSaveDirectoryPath(saveName);
|
||||||
String dbFilePath = FileUtils.sanitizeFilePath(dirPath) + "/central.db";
|
String dbFilePath = FileUtils.sanitizeFilePath(dirPath) + "/central.db";
|
||||||
Globals.dbController.connect(dbFilePath);
|
Globals.dbController.connect(dbFilePath);
|
||||||
@ -55,8 +57,41 @@ public class SaveUtils {
|
|||||||
return true;
|
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(){
|
public static List<String> getSaves(){
|
||||||
return FileUtils.listDirectory("./saves");
|
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.controls.ControlHandler;
|
||||||
import electrosphere.engine.LoadingThread;
|
import electrosphere.engine.LoadingThread;
|
||||||
|
import electrosphere.game.server.saves.SaveUtils;
|
||||||
import electrosphere.main.Globals;
|
import electrosphere.main.Globals;
|
||||||
import electrosphere.main.Main;
|
import electrosphere.main.Main;
|
||||||
import electrosphere.net.NetUtils;
|
import electrosphere.net.NetUtils;
|
||||||
@ -54,10 +55,42 @@ public class MenuTransition {
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case WORLD_SELECT_MENU:
|
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;
|
break;
|
||||||
case WORLD_CREATE_MENU:
|
case WORLD_CREATE_MENU:
|
||||||
break;
|
break;
|
||||||
case SAVE_CREATE_MENU:
|
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;
|
break;
|
||||||
case CHARACTER_CREATE_MENU:
|
case CHARACTER_CREATE_MENU:
|
||||||
break;
|
break;
|
||||||
|
|||||||
@ -51,17 +51,15 @@ public class MenuUtils {
|
|||||||
List<String> saveNames = SaveUtils.getSaves();
|
List<String> saveNames = SaveUtils.getSaves();
|
||||||
int verticalPosition = 125;
|
int verticalPosition = 125;
|
||||||
//TODO: add text input to name world
|
//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;
|
return rVal;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static Menu createSaveCreationMenu(){
|
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;
|
int screenTop = Globals.WINDOW_HEIGHT - 150;
|
||||||
List<String> saveNames = SaveUtils.getSaves();
|
rVal.addOption(WidgetUtils.createVerticallyAlignedMinSizeTextBoxFromCharCount(40, 40, screenTop - 125, "SAVE", true));
|
||||||
int verticalPosition = 125;
|
rVal.addOption(WidgetUtils.createVerticallyAlignedMinSizeTextBoxFromCharCount(40, 40, screenTop - 200, "CANCEL", true));
|
||||||
//TODO: add text input to name world
|
|
||||||
rVal.addOption(WidgetUtils.createVerticallyAlignedMinSizeTextBoxFromCharCount(40, 40, screenTop - verticalPosition, "CREATE WORLD", true));
|
|
||||||
return rVal;
|
return rVal;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -199,7 +199,7 @@ public class FileUtils {
|
|||||||
* @param directoryName
|
* @param directoryName
|
||||||
* @return true if directory exists, false otherwise
|
* @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));
|
File targetDir = new File(sanitizeFilePath(directoryName));
|
||||||
if(targetDir.exists()){
|
if(targetDir.exists()){
|
||||||
return true;
|
return true;
|
||||||
@ -208,6 +208,7 @@ public class FileUtils {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Trys to create a directory
|
* Trys to create a directory
|
||||||
* @param directoryName
|
* @param directoryName
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user