84 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			Java
		
	
	
	
	
	
			
		
		
	
	
			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;
 | |
|     }
 | |
|     
 | |
| }
 |