Renderer/src/main/java/electrosphere/engine/loadingthreads/LoadingThread.java
austin 45ce4ca9a9
All checks were successful
studiorailgun/Renderer/pipeline/head This commit looks good
rudimentary scene saving
2024-03-24 21:51:11 -04:00

84 lines
2.2 KiB
Java

package electrosphere.engine.loadingthreads;
import java.util.concurrent.Semaphore;
/**
*
* @author amaterasu
*/
public class LoadingThread extends Thread {
public static final int LOAD_TITLE_MENU = 0;
public static final int LOAD_MAIN_GAME = 1;
public static final int LOAD_ARENA = 2;
public static final int LOAD_CHARACTER_SERVER = 3;
public static final int LOAD_CLIENT_WORLD = 4;
public static final int LOAD_DEBUG_RANDOM_SP_WORLD = 5;
public static final int LOAD_LEVEL_EDITOR = 6;
public static final int LOAD_LEVEL = 7;
int threadType;
Semaphore lock;
public LoadingThread(int type){
threadType = type;
lock = new Semaphore(1);
}
@Override
public void run(){
lock.acquireUninterruptibly();
switch(threadType){
case LOAD_TITLE_MENU: {
ClientLoading.loadMainMenu();
} break;
case LOAD_MAIN_GAME: {
ServerLoading.loadMainGameServer();
} break;
case LOAD_ARENA: {
ArenaLoading.loadArenaGameServer();
} break;
case LOAD_CHARACTER_SERVER: {
ClientLoading.loadCharacterServer();
} break;
case LOAD_CLIENT_WORLD: {
ClientLoading.loadClientWorld();
} break;
//intended to act like you went through the steps of setting up a vanilla settings SP world
case LOAD_DEBUG_RANDOM_SP_WORLD: {
DebugSPWorldLoading.loadDebugSPWorld();
} break;
//loads the level editor
case LOAD_LEVEL_EDITOR: {
LevelEditorLoading.loadLevelEditor();
} break;
//loads the save in Globals.currentSave as a level
case LOAD_LEVEL: {
LevelLoading.loadLevel();
} break;
}
lock.release();
}
public boolean isDone(){
boolean rVal = lock.tryAcquire();
if(rVal == true){
lock.release();
}
return rVal;
}
}