diff --git a/docs/src/progress/renderertodo.md b/docs/src/progress/renderertodo.md index 5361e108..9aa1d761 100644 --- a/docs/src/progress/renderertodo.md +++ b/docs/src/progress/renderertodo.md @@ -1824,6 +1824,7 @@ Move signalSystem into engineState Move some global state into rendering engine Push settings into config variable Move window pointer into rendering engine +Move microSimulation into serverState diff --git a/src/main/java/electrosphere/engine/Globals.java b/src/main/java/electrosphere/engine/Globals.java index e0f58ceb..ad28e9ad 100644 --- a/src/main/java/electrosphere/engine/Globals.java +++ b/src/main/java/electrosphere/engine/Globals.java @@ -14,7 +14,6 @@ import electrosphere.controls.ControlHandler; import electrosphere.controls.MouseCallback; import electrosphere.controls.ScrollCallback; import electrosphere.controls.cursor.CursorState; -import electrosphere.data.particle.ParticleDefinition; import electrosphere.data.voxel.VoxelType; import electrosphere.engine.assetmanager.AssetDataStrings; import electrosphere.engine.assetmanager.AssetManager; @@ -41,7 +40,6 @@ import electrosphere.server.db.DatabaseController; import electrosphere.server.entity.poseactor.PoseModel; import electrosphere.server.service.CharacterService; import electrosphere.server.service.StructureScanningService; -import electrosphere.server.simulation.MicroSimulation; import electrosphere.util.FileUtils; /** @@ -179,6 +177,8 @@ public class Globals { // public static TextureMap textureMapDefault; public static ModelPretransforms modelPretransforms; + public static ShaderOptionMap shaderOptionMap; + public static FontManager fontManager; // @@ -192,14 +192,7 @@ public class Globals { // // Particle stuff // - public static ParticleDefinition particleDefinition; - public static ParticleService particleService; - - public static ShaderOptionMap shaderOptionMap; - - //manages all loaded fonts - public static FontManager fontManager; - + public static ParticleService particleService; // @@ -209,9 +202,6 @@ public class Globals { //manages all models loaded into memory public static AssetManager assetManager; - //micro simulation - public static MicroSimulation microSimulation; - //script engine public static ScriptEngine scriptEngine; diff --git a/src/main/java/electrosphere/engine/loadingthreads/ChunkGenerationTestLoading.java b/src/main/java/electrosphere/engine/loadingthreads/ChunkGenerationTestLoading.java index 4a387ef8..dd51b2e5 100644 --- a/src/main/java/electrosphere/engine/loadingthreads/ChunkGenerationTestLoading.java +++ b/src/main/java/electrosphere/engine/loadingthreads/ChunkGenerationTestLoading.java @@ -88,8 +88,6 @@ public class ChunkGenerationTestLoading { e.printStackTrace(); } } - //initialize the "real" objects simulation - LoadingUtils.initMicroSimulation(); //init game specific stuff (ie different skybox colors) LoadingUtils.initGameGraphicalEntities(); //set simulations to ready if they exist diff --git a/src/main/java/electrosphere/engine/loadingthreads/DebugSPWorldLoading.java b/src/main/java/electrosphere/engine/loadingthreads/DebugSPWorldLoading.java index 957518cc..b7a58358 100644 --- a/src/main/java/electrosphere/engine/loadingthreads/DebugSPWorldLoading.java +++ b/src/main/java/electrosphere/engine/loadingthreads/DebugSPWorldLoading.java @@ -56,8 +56,6 @@ public class DebugSPWorldLoading { e.printStackTrace(); } } - //initialize the "real" objects simulation - LoadingUtils.initMicroSimulation(); //init game specific stuff (ie different skybox colors) LoadingUtils.initGameGraphicalEntities(); //set simulations to ready if they exist diff --git a/src/main/java/electrosphere/engine/loadingthreads/LevelEditorLoading.java b/src/main/java/electrosphere/engine/loadingthreads/LevelEditorLoading.java index 699a0c10..0d9ad235 100644 --- a/src/main/java/electrosphere/engine/loadingthreads/LevelEditorLoading.java +++ b/src/main/java/electrosphere/engine/loadingthreads/LevelEditorLoading.java @@ -84,8 +84,6 @@ public class LevelEditorLoading { e.printStackTrace(); } } - //initialize the "real" objects simulation - LoadingUtils.initMicroSimulation(); //init game specific stuff (ie different skybox colors) LoadingUtils.initGameGraphicalEntities(); //set simulations to ready if they exist diff --git a/src/main/java/electrosphere/engine/loadingthreads/LevelLoading.java b/src/main/java/electrosphere/engine/loadingthreads/LevelLoading.java index c1a97ee4..24cda9fa 100644 --- a/src/main/java/electrosphere/engine/loadingthreads/LevelLoading.java +++ b/src/main/java/electrosphere/engine/loadingthreads/LevelLoading.java @@ -55,8 +55,6 @@ public class LevelLoading { } } - //initialize the "real" objects simulation - LoadingUtils.initMicroSimulation(); //init game specific stuff (ie different skybox colors) LoadingUtils.initGameGraphicalEntities(); //set simulations to ready if they exist diff --git a/src/main/java/electrosphere/engine/loadingthreads/LoadingUtils.java b/src/main/java/electrosphere/engine/loadingthreads/LoadingUtils.java index 9d80e907..1b99207e 100644 --- a/src/main/java/electrosphere/engine/loadingthreads/LoadingUtils.java +++ b/src/main/java/electrosphere/engine/loadingthreads/LoadingUtils.java @@ -27,7 +27,6 @@ import electrosphere.net.server.player.Player; import electrosphere.server.datacell.Realm; import electrosphere.server.datacell.ServerWorldData; import electrosphere.server.entity.serialization.ContentSerialization; -import electrosphere.server.simulation.MicroSimulation; import electrosphere.server.macro.character.Character; /** @@ -206,20 +205,12 @@ public class LoadingUtils { // Globals.spawnPoint.set((float)startX,(float)Globals.commonWorldData.getElevationAtPoint(new Vector3d(startX,0,startZ)),(float)startZ); // Globals.macroSimulation.setReady(true); } - - static void initMicroSimulation(){ - if(Globals.microSimulation == null){ - Globals.microSimulation = new MicroSimulation(); - } - } /** * Sets the server simulations to ready */ static void setSimulationsToReady(){ - if(Globals.microSimulation != null){ - Globals.microSimulation.setReady(true); - } + Globals.serverState.microSimulation.setReady(true); } } diff --git a/src/main/java/electrosphere/engine/loadingthreads/ServerLoading.java b/src/main/java/electrosphere/engine/loadingthreads/ServerLoading.java index 5e9f700a..39d0689c 100644 --- a/src/main/java/electrosphere/engine/loadingthreads/ServerLoading.java +++ b/src/main/java/electrosphere/engine/loadingthreads/ServerLoading.java @@ -51,8 +51,6 @@ public class ServerLoading { //initialize the local connection Globals.clientState.clientUsername = username; Globals.clientState.clientPassword = password; - //initialize the "real" objects simulation - LoadingUtils.initMicroSimulation(); //init game specific stuff (ie different skybox colors) LoadingUtils.initGameGraphicalEntities(); //log diff --git a/src/main/java/electrosphere/engine/loadingthreads/ViewportLoading.java b/src/main/java/electrosphere/engine/loadingthreads/ViewportLoading.java index 366abcef..81f4f887 100644 --- a/src/main/java/electrosphere/engine/loadingthreads/ViewportLoading.java +++ b/src/main/java/electrosphere/engine/loadingthreads/ViewportLoading.java @@ -60,7 +60,6 @@ public class ViewportLoading { Globals.serverState.realmManager.first().getDataCellManager().addPlayerToRealm(localPlayer); //initialize the "real" objects simulation - LoadingUtils.initMicroSimulation(); LoadingUtils.setSimulationsToReady(); LoggerInterface.loggerEngine.INFO("[Server]Finished loading level editor"); diff --git a/src/main/java/electrosphere/server/ServerState.java b/src/main/java/electrosphere/server/ServerState.java index 3b9b112f..394964be 100644 --- a/src/main/java/electrosphere/server/ServerState.java +++ b/src/main/java/electrosphere/server/ServerState.java @@ -9,6 +9,7 @@ import electrosphere.server.datacell.EntityDataCellMapper; import electrosphere.server.datacell.RealmManager; import electrosphere.server.saves.Save; import electrosphere.server.service.CharacterService; +import electrosphere.server.simulation.MicroSimulation; /** * Server state @@ -60,4 +61,9 @@ public class ServerState { */ public PlayerManager playerManager = new PlayerManager(); + /** + * The micro simulation + */ + public final MicroSimulation microSimulation = new MicroSimulation(); + } diff --git a/src/main/java/electrosphere/server/datacell/ViewportDataCellManager.java b/src/main/java/electrosphere/server/datacell/ViewportDataCellManager.java index 5b2d07f4..8e605830 100644 --- a/src/main/java/electrosphere/server/datacell/ViewportDataCellManager.java +++ b/src/main/java/electrosphere/server/datacell/ViewportDataCellManager.java @@ -88,10 +88,10 @@ public class ViewportDataCellManager implements DataCellManager { @Override public void simulate() { - if(Globals.microSimulation != null && Globals.microSimulation.isReady()){ - Globals.microSimulation.simulate(this.serverDataCell); + if(Globals.serverState.microSimulation != null && Globals.serverState.microSimulation.isReady()){ + Globals.serverState.microSimulation.simulate(this.serverDataCell); } - updatePlayerPositions(); + this.updatePlayerPositions(); } @Override diff --git a/src/main/java/electrosphere/server/datacell/gridded/GriddedDataCellManager.java b/src/main/java/electrosphere/server/datacell/gridded/GriddedDataCellManager.java index 25fd9f65..fc1d86d5 100644 --- a/src/main/java/electrosphere/server/datacell/gridded/GriddedDataCellManager.java +++ b/src/main/java/electrosphere/server/datacell/gridded/GriddedDataCellManager.java @@ -704,10 +704,10 @@ public class GriddedDataCellManager implements DataCellManager, VoxelCellManager //micro simulation - boolean runMicroSim = Globals.microSimulation != null && Globals.microSimulation.isReady(); + boolean runMicroSim = Globals.serverState.microSimulation != null && Globals.serverState.microSimulation.isReady(); for(ServerDataCell cell : this.groundDataCells.values()){ if(runMicroSim && this.shouldSimulate(cell)){ - Globals.microSimulation.simulate(cell); + Globals.serverState.microSimulation.simulate(cell); } //queue fluid simulation