move serviceManager into engineState
Some checks failed
studiorailgun/Renderer/pipeline/head There was a failure building this commit

This commit is contained in:
austin 2025-05-15 14:16:25 -04:00
parent 038da702e7
commit a3650ebc2b
6 changed files with 31 additions and 33 deletions

View File

@ -1818,6 +1818,7 @@ Move entityValueTrackingService to serverState
Move playerManager to serverState
Create EngineState global
Move threadManager into engineState
Move serviceManager into engineState

View File

@ -1,5 +1,6 @@
package electrosphere.engine;
import electrosphere.engine.service.ServiceManager;
import electrosphere.engine.threads.ThreadManager;
/**
@ -12,4 +13,17 @@ public class EngineState {
*/
public final ThreadManager threadManager = new ThreadManager();
/**
* The service manager
*/
public final ServiceManager serviceManager = ServiceManager.create();
/**
* Destroys the engine state
*/
public void destroy(){
this.threadManager.close();
this.serviceManager.destroy();
}
}

View File

@ -33,7 +33,6 @@ import electrosphere.engine.assetmanager.AssetManager;
import electrosphere.engine.loadingthreads.InitialAssetLoading;
import electrosphere.engine.os.fs.FileWatcherService;
import electrosphere.engine.profiler.Profiler;
import electrosphere.engine.service.ServiceManager;
import electrosphere.engine.signal.SignalSystem;
import electrosphere.engine.signal.sync.MainThreadSignalService;
import electrosphere.engine.time.Timekeeper;
@ -73,11 +72,6 @@ public class Globals {
//
public static String javaPID;
//
//Service manager
//
public static ServiceManager serviceManager;
//
//Signal system
//
@ -379,16 +373,12 @@ public class Globals {
RENDER_FLAG_RENDER_UI = true;
RENDER_FLAG_RENDER_UI_BOUNDS = false;
//
//Service manager
serviceManager = ServiceManager.create();
//client state
Globals.clientState = new ClientState();
//server state
Globals.serverState = new ServerState();
Globals.serverState.characterService = (CharacterService)serviceManager.registerService(new CharacterService());
Globals.serverState.characterService = (CharacterService)Globals.engineState.serviceManager.registerService(new CharacterService());
//load in default texture map
textureMapDefault = TextureMap.construct("Textures/default_texture_map.json");
@ -421,14 +411,14 @@ public class Globals {
//add services here
Globals.signalSystem = (SignalSystem)serviceManager.registerService(new SignalSystem());
Globals.elementService = (ElementService)serviceManager.registerService(new ElementService());
Globals.particleService = (ParticleService)serviceManager.registerService(new ParticleService());
Globals.scriptEngine = (ScriptEngine)serviceManager.registerService(new ScriptEngine());
Globals.mainThreadSignalService = (MainThreadSignalService)serviceManager.registerService(new MainThreadSignalService());
Globals.fileWatcherService = (FileWatcherService)serviceManager.registerService(new FileWatcherService());
Globals.structureScanningService = (StructureScanningService)serviceManager.registerService(new StructureScanningService());
serviceManager.instantiate();
Globals.signalSystem = (SignalSystem)Globals.engineState.serviceManager.registerService(new SignalSystem());
Globals.elementService = (ElementService)Globals.engineState.serviceManager.registerService(new ElementService());
Globals.particleService = (ParticleService)Globals.engineState.serviceManager.registerService(new ParticleService());
Globals.scriptEngine = (ScriptEngine)Globals.engineState.serviceManager.registerService(new ScriptEngine());
Globals.mainThreadSignalService = (MainThreadSignalService)Globals.engineState.serviceManager.registerService(new MainThreadSignalService());
Globals.fileWatcherService = (FileWatcherService)Globals.engineState.serviceManager.registerService(new FileWatcherService());
Globals.structureScanningService = (StructureScanningService)Globals.engineState.serviceManager.registerService(new StructureScanningService());
Globals.engineState.serviceManager.instantiate();
//
//End service manager
@ -594,13 +584,11 @@ public class Globals {
Globals.serverState.realmManager.reset();
}
Globals.dbController.disconnect();
Globals.serviceManager.unloadScene();
Globals.engineState.serviceManager.unloadScene();
Globals.clientState = new ClientState();
Globals.serverState = new ServerState();
if(Globals.serviceManager != null){
Globals.serverState.characterService = (CharacterService)Globals.serviceManager.registerService(new CharacterService());
}
Globals.serverState.characterService = (CharacterService)Globals.engineState.serviceManager.registerService(new CharacterService());
}
/**
@ -622,7 +610,6 @@ public class Globals {
Globals.engineState = null;
Globals.renderingEngine = null;
Globals.signalSystem = null;
Globals.serviceManager = null;
Globals.fileWatcherService = null;
Globals.javaPID = null;
Globals.RENDER_FLAG_RENDER_SHADOW_MAP = true;

View File

@ -430,10 +430,6 @@ public class Main {
if(Globals.renderingEngine != null){
Globals.renderingEngine.destroy();
}
//used to signal threads to stop
if(Globals.engineState != null && Globals.engineState.threadManager != null){
Globals.engineState.threadManager.close();
}
//shut down audio engine
if(Globals.audioEngine != null && Globals.audioEngine.initialized()){
Globals.audioEngine.shutdown();
@ -452,9 +448,9 @@ public class Main {
initOde = false;
}
//
//Destroy services
if(Globals.serviceManager != null){
Globals.serviceManager.destroy();
//Destroy engine state
if(Globals.engineState != null){
Globals.engineState.destroy();
}
//reset globals for good measure (making sure no long-running threads can re-inject entities into scenes)
Globals.resetGlobals();

View File

@ -63,7 +63,7 @@ public class MainMenuLoading {
private static void resetServerState(){
Globals.serverState.server.close();
Globals.serverState = new ServerState();
Globals.serverState.characterService = (CharacterService)Globals.serviceManager.registerService(new CharacterService());
Globals.serverState.characterService = (CharacterService)Globals.engineState.serviceManager.registerService(new CharacterService());
}
/**

View File

@ -18,7 +18,7 @@ public class ServerEntityUtilsUnitTests {
public void destroyEntity_ValidEntity_NoRealm(){
//setup
Globals.initGlobals();
Globals.serverState.characterService = (CharacterService)Globals.serviceManager.registerService(new CharacterService());
Globals.serverState.characterService = (CharacterService)Globals.engineState.serviceManager.registerService(new CharacterService());
Realm realm = Globals.serverState.realmManager.createViewportRealm(new Vector3d(0,0,0), new Vector3d(1,1,1));
Entity entity = EntityCreationUtils.createServerEntity(realm, new Vector3d());