From c854be629fcadf6c68adee1d116b7cb19d7957fd Mon Sep 17 00:00:00 2001 From: austin Date: Thu, 15 May 2025 14:22:25 -0400 Subject: [PATCH] move timekeeper into engineState --- docs/src/progress/renderertodo.md | 1 + .../client/sim/ClientSimulation.java | 8 +++--- .../ui/menu/ingame/ToolbarPreviewWindow.java | 4 +-- .../electrosphere/controls/CameraHandler.java | 4 +-- .../controls/ControlHandler.java | 10 +++---- .../electrosphere/engine/EngineState.java | 13 ++++++++++ .../java/electrosphere/engine/Globals.java | 12 +++------ src/main/java/electrosphere/engine/Main.java | 24 ++++++++--------- .../entity/btree/StateTransitionUtil.java | 2 +- .../entity/state/attack/ClientAttackTree.java | 4 +-- .../entity/state/attack/ServerAttackTree.java | 4 +-- .../ClientParticleEmitterComponent.java | 4 +-- .../entity/state/life/ServerLifeTree.java | 4 +-- .../editor/ClientEditorMovementTree.java | 8 +++--- .../editor/ServerEditorMovementTree.java | 14 +++++----- .../groundmove/ClientGroundMovementTree.java | 20 +++++++------- .../groundmove/ServerGroundMovementTree.java | 26 +++++++++---------- .../physicssync/ServerPhysicsSyncTree.java | 2 +- .../entity/types/item/ItemUtils.java | 2 +- .../electrosphere/renderer/model/Mesh.java | 4 +-- .../electrosphere/script/ScriptEngine.java | 2 +- .../electrosphere/server/datacell/Realm.java | 2 +- .../service/StructureScanningService.java | 6 ++--- .../server/simulation/MicroSimulation.java | 6 ++--- 24 files changed, 97 insertions(+), 89 deletions(-) diff --git a/docs/src/progress/renderertodo.md b/docs/src/progress/renderertodo.md index 9672174d..9a75f90b 100644 --- a/docs/src/progress/renderertodo.md +++ b/docs/src/progress/renderertodo.md @@ -1819,6 +1819,7 @@ Move playerManager to serverState Create EngineState global Move threadManager into engineState Move serviceManager into engineState +Move timeKeeper into engineState diff --git a/src/main/java/electrosphere/client/sim/ClientSimulation.java b/src/main/java/electrosphere/client/sim/ClientSimulation.java index 1bb14d8a..1fc7ba1f 100644 --- a/src/main/java/electrosphere/client/sim/ClientSimulation.java +++ b/src/main/java/electrosphere/client/sim/ClientSimulation.java @@ -64,7 +64,7 @@ public class ClientSimulation { // //simulate bullet physics engine step if(Globals.RUN_PHYSICS){ - Globals.clientState.clientSceneWrapper.getCollisionEngine().simulatePhysics((float)Globals.timekeeper.getSimFrameTime()); + Globals.clientState.clientSceneWrapper.getCollisionEngine().simulatePhysics((float)Globals.engineState.timekeeper.getSimFrameTime()); Globals.clientState.clientSceneWrapper.getCollisionEngine().updateDynamicObjectTransforms(); } @@ -73,7 +73,7 @@ public class ClientSimulation { for(Entity currentEntity : Globals.clientState.clientSceneWrapper.getScene().getEntitiesWithTag(EntityTags.DRAWABLE)){ Actor currentActor = EntityUtils.getActor(currentEntity); if(currentActor.isPlayingAnimation()){ - currentActor.incrementAnimationTime((float)Globals.timekeeper.getSimFrameTime()); + currentActor.incrementAnimationTime((float)Globals.engineState.timekeeper.getSimFrameTime()); } } Globals.profiler.endCpuSample(); @@ -106,12 +106,12 @@ public class ClientSimulation { Globals.profiler.endCpuSample(); // //simulate behavior trees - Globals.clientState.clientSceneWrapper.getScene().simulateBehaviorTrees((float)Globals.timekeeper.getSimFrameTime()); + Globals.clientState.clientSceneWrapper.getScene().simulateBehaviorTrees((float)Globals.engineState.timekeeper.getSimFrameTime()); // //sum collidable impulses Globals.profiler.beginCpuSample("collidable logic"); for(Entity collidable : Globals.clientState.clientSceneWrapper.getScene().getEntitiesWithTag(EntityTags.COLLIDABLE)){ - ClientCollidableTree.getClientCollidableTree(collidable).simulate((float)Globals.timekeeper.getSimFrameTime()); + ClientCollidableTree.getClientCollidableTree(collidable).simulate((float)Globals.engineState.timekeeper.getSimFrameTime()); } // //clear collidable impulse lists diff --git a/src/main/java/electrosphere/client/ui/menu/ingame/ToolbarPreviewWindow.java b/src/main/java/electrosphere/client/ui/menu/ingame/ToolbarPreviewWindow.java index 7dc84b3a..07bf8bb2 100644 --- a/src/main/java/electrosphere/client/ui/menu/ingame/ToolbarPreviewWindow.java +++ b/src/main/java/electrosphere/client/ui/menu/ingame/ToolbarPreviewWindow.java @@ -53,7 +53,7 @@ public class ToolbarPreviewWindow { * Checks the visibility of the toolbar preview */ public static void checkVisibility(){ - long currentFrame = Globals.timekeeper.getNumberOfSimFramesElapsed(); + long currentFrame = Globals.engineState.timekeeper.getNumberOfSimFramesElapsed(); if(currentFrame > frameToHide){ if(previewWindow != null && previewWindow.getVisible()){ previewWindow.setVisible(false); @@ -67,7 +67,7 @@ public class ToolbarPreviewWindow { public static void reveal(){ previewWindow = ToolbarPreviewWindow.createToolbarPreviewWindow(); WindowUtils.replaceWindow(WindowStrings.TOOLBAR_PREVIEW, previewWindow); - frameToHide = Globals.timekeeper.getNumberOfSimFramesElapsed() + REVEAL_FRAME_COUNT; + frameToHide = Globals.engineState.timekeeper.getNumberOfSimFramesElapsed() + REVEAL_FRAME_COUNT; } } diff --git a/src/main/java/electrosphere/controls/CameraHandler.java b/src/main/java/electrosphere/controls/CameraHandler.java index 7ecda4c7..36965038 100644 --- a/src/main/java/electrosphere/controls/CameraHandler.java +++ b/src/main/java/electrosphere/controls/CameraHandler.java @@ -107,7 +107,7 @@ public class CameraHandler { Globals.profiler.beginCpuSample("updateGlobalCamera"); if(update){ if(Globals.clientState.playerCamera != null){ - cameraSpeed = 2.5f * (float)Globals.timekeeper.getMostRecentRawFrametime(); + cameraSpeed = 2.5f * (float)Globals.engineState.timekeeper.getMostRecentRawFrametime(); if(Crosshair.getCrosshairActive()){ @@ -154,7 +154,7 @@ public class CameraHandler { Globals.clientState.clientConnection.queueOutgoingMessage( EntityMessage.constructupdateEntityViewDirMessage( Globals.clientState.clientSceneWrapper.mapClientToServerId(Globals.clientState.playerEntity.getId()), - Globals.timekeeper.getNumberOfSimFramesElapsed(), + Globals.engineState.timekeeper.getNumberOfSimFramesElapsed(), perspectiveVal, yaw, pitch diff --git a/src/main/java/electrosphere/controls/ControlHandler.java b/src/main/java/electrosphere/controls/ControlHandler.java index 8aff066b..6a793a49 100644 --- a/src/main/java/electrosphere/controls/ControlHandler.java +++ b/src/main/java/electrosphere/controls/ControlHandler.java @@ -263,10 +263,10 @@ public class ControlHandler { if(!control.isState()){ //on press control.onPress(this.mouseState); - control.setPressFrame((float)Globals.timekeeper.getNumberOfRenderFramesElapsed()); + control.setPressFrame((float)Globals.engineState.timekeeper.getNumberOfRenderFramesElapsed()); } else { //on repeat - if((float)Globals.timekeeper.getNumberOfRenderFramesElapsed() - control.getPressFrame() > control.getRepeatTimeout()){ + if((float)Globals.engineState.timekeeper.getNumberOfRenderFramesElapsed() - control.getPressFrame() > control.getRepeatTimeout()){ control.onRepeat(this.mouseState); } } @@ -276,7 +276,7 @@ public class ControlHandler { //on release control.onRelease(this.mouseState); //on click - if((float)Globals.timekeeper.getNumberOfRenderFramesElapsed() - control.getPressFrame() < control.getRepeatTimeout()){ + if((float)Globals.engineState.timekeeper.getNumberOfRenderFramesElapsed() - control.getPressFrame() < control.getRepeatTimeout()){ control.onClick(this.mouseState); } } else { @@ -289,7 +289,7 @@ public class ControlHandler { if(!control.isState()){ //on press control.onPress(this.mouseState); - control.setPressFrame((float)Globals.timekeeper.getNumberOfRenderFramesElapsed()); + control.setPressFrame((float)Globals.engineState.timekeeper.getNumberOfRenderFramesElapsed()); } else { //on repeat control.onRepeat(this.mouseState); @@ -299,7 +299,7 @@ public class ControlHandler { if(control.isState()){ //on release control.onRelease(this.mouseState); - if((float)Globals.timekeeper.getNumberOfRenderFramesElapsed() - control.getPressFrame() < control.getRepeatTimeout()){ + if((float)Globals.engineState.timekeeper.getNumberOfRenderFramesElapsed() - control.getPressFrame() < control.getRepeatTimeout()){ control.onClick(this.mouseState); } } else { diff --git a/src/main/java/electrosphere/engine/EngineState.java b/src/main/java/electrosphere/engine/EngineState.java index 2cb4db28..489c4ed1 100644 --- a/src/main/java/electrosphere/engine/EngineState.java +++ b/src/main/java/electrosphere/engine/EngineState.java @@ -2,11 +2,17 @@ package electrosphere.engine; import electrosphere.engine.service.ServiceManager; import electrosphere.engine.threads.ThreadManager; +import electrosphere.engine.time.Timekeeper; /** * State of the engine */ public class EngineState { + + /** + * The time keeping service + */ + public Timekeeper timekeeper = new Timekeeper(); /** * The thread manager @@ -18,6 +24,13 @@ public class EngineState { */ public final ServiceManager serviceManager = ServiceManager.create(); + /** + * Constructor + */ + public EngineState(){ + this.threadManager.init(); + } + /** * Destroys the engine state */ diff --git a/src/main/java/electrosphere/engine/Globals.java b/src/main/java/electrosphere/engine/Globals.java index 0a521399..4fecacb8 100644 --- a/src/main/java/electrosphere/engine/Globals.java +++ b/src/main/java/electrosphere/engine/Globals.java @@ -35,7 +35,6 @@ import electrosphere.engine.os.fs.FileWatcherService; import electrosphere.engine.profiler.Profiler; import electrosphere.engine.signal.SignalSystem; import electrosphere.engine.signal.sync.MainThreadSignalService; -import electrosphere.engine.time.Timekeeper; import electrosphere.logger.LoggerInterface; import electrosphere.net.config.NetConfig; import electrosphere.net.monitor.NetMonitor; @@ -82,11 +81,6 @@ public class Globals { // public static UserSettings userSettings; - // - //Timekeeper - // - public static Timekeeper timekeeper; - /** * State for the engine */ @@ -359,10 +353,10 @@ public class Globals { Globals.WINDOW_WIDTH = 1920; Globals.WINDOW_HEIGHT = 1080; UserSettings.loadUserSettings(); - //timekeeper - timekeeper = new Timekeeper(); + + + //spin up engine state Globals.engineState = new EngineState(); - Globals.engineState.threadManager.init(); //render flags RENDER_FLAG_RENDER_SHADOW_MAP = false; diff --git a/src/main/java/electrosphere/engine/Main.java b/src/main/java/electrosphere/engine/Main.java index 1297b355..90700c41 100644 --- a/src/main/java/electrosphere/engine/Main.java +++ b/src/main/java/electrosphere/engine/Main.java @@ -159,7 +159,7 @@ public class Main { } //init timekeeper - Globals.timekeeper.init(targetFramePeriod); + Globals.engineState.timekeeper.init(targetFramePeriod); //fire off a loading thread for the title menus/screen LoggerInterface.loggerStartup.INFO("Fire off loading thread"); @@ -207,7 +207,7 @@ public class Main { // //Update timekeeper, thread manager, and process all main thread signals // - Globals.timekeeper.update(); + Globals.engineState.timekeeper.update(); Globals.engineState.threadManager.update(); @@ -275,10 +275,10 @@ public class Main { /// int simFrameHardcapCounter = 0; - while(Globals.timekeeper.pullFromAccumulator() && framestep > 0 && simFrameHardcapCounter < Timekeeper.SIM_FRAME_HARDCAP){ + while(Globals.engineState.timekeeper.pullFromAccumulator() && framestep > 0 && simFrameHardcapCounter < Timekeeper.SIM_FRAME_HARDCAP){ //do not simulate extra frames if we're already behind schedule - if(Globals.timekeeper.getMostRecentRawFrametime() > Globals.timekeeper.getSimFrameTime() && simFrameHardcapCounter > 0){ + if(Globals.engineState.timekeeper.getMostRecentRawFrametime() > Globals.engineState.timekeeper.getSimFrameTime() && simFrameHardcapCounter > 0){ break; } @@ -327,7 +327,7 @@ public class Main { Globals.profiler.beginCpuSample("audio engine update"); if(Globals.audioEngine != null && Globals.audioEngine.initialized() && Globals.virtualAudioSourceManager != null){ Globals.audioEngine.update(); - Globals.virtualAudioSourceManager.update((float)Globals.timekeeper.getSimFrameTime()); + Globals.virtualAudioSourceManager.update((float)Globals.engineState.timekeeper.getSimFrameTime()); } Globals.profiler.endCpuSample(); @@ -351,7 +351,7 @@ public class Main { /// G A R B A G E C H E C K /// Globals.profiler.beginCpuSample("gc"); - if(Globals.EXPLICIT_GC && Globals.timekeeper.getNumberOfRenderFramesElapsed() % Globals.GC_FRAME_FREQUENCY == 0){ + if(Globals.EXPLICIT_GC && Globals.engineState.timekeeper.getNumberOfRenderFramesElapsed() % Globals.GC_FRAME_FREQUENCY == 0){ System.gc(); } Globals.profiler.endCpuSample(); @@ -381,17 +381,17 @@ public class Main { /// /// C L E A N U P T I M E V A R I A B L E S /// - if(Globals.EXPLICIT_SLEEP && Globals.timekeeper.getMostRecentRawFrametime() < 0.01f){ + if(Globals.EXPLICIT_SLEEP && Globals.engineState.timekeeper.getMostRecentRawFrametime() < 0.01f){ Globals.profiler.beginCpuSample("sleep"); - if(Globals.timekeeper.getMostRecentRawFrametime() < targetFramePeriod){ - Main.sleep((int)(1000.0 * (targetFramePeriod - Globals.timekeeper.getMostRecentRawFrametime()))); + if(Globals.engineState.timekeeper.getMostRecentRawFrametime() < targetFramePeriod){ + Main.sleep((int)(1000.0 * (targetFramePeriod - Globals.engineState.timekeeper.getMostRecentRawFrametime()))); } else { Main.sleep(1); } Globals.profiler.endCpuSample(); } - Globals.timekeeper.numberOfRenderedFrames++; - if(maxFrames > 0 && Globals.timekeeper.numberOfRenderedFrames > maxFrames){ + Globals.engineState.timekeeper.numberOfRenderedFrames++; + if(maxFrames > 0 && Globals.engineState.timekeeper.numberOfRenderedFrames > maxFrames){ running = false; } @@ -399,7 +399,7 @@ public class Main { /// /// F R A M E T I M E T R A C K I NG /// - ImGuiWindowMacros.addGlobalFramerateDatapoint("totalframerate", Globals.timekeeper.getMostRecentRawFrametime()); + ImGuiWindowMacros.addGlobalFramerateDatapoint("totalframerate", Globals.engineState.timekeeper.getMostRecentRawFrametime()); /// diff --git a/src/main/java/electrosphere/entity/btree/StateTransitionUtil.java b/src/main/java/electrosphere/entity/btree/StateTransitionUtil.java index 807b5c2c..9a4138e7 100644 --- a/src/main/java/electrosphere/entity/btree/StateTransitionUtil.java +++ b/src/main/java/electrosphere/entity/btree/StateTransitionUtil.java @@ -130,7 +130,7 @@ public class StateTransitionUtil { double animationOffset = 0.0001; if(this.accountForSync){ int delay = Globals.clientState.clientConnection.getDelay(); - double simFrameTime = Globals.timekeeper.getSimFrameTime(); + double simFrameTime = Globals.engineState.timekeeper.getSimFrameTime(); animationOffset = delay * simFrameTime; } diff --git a/src/main/java/electrosphere/entity/state/attack/ClientAttackTree.java b/src/main/java/electrosphere/entity/state/attack/ClientAttackTree.java index 920949c2..8023c958 100644 --- a/src/main/java/electrosphere/entity/state/attack/ClientAttackTree.java +++ b/src/main/java/electrosphere/entity/state/attack/ClientAttackTree.java @@ -294,7 +294,7 @@ public class ClientAttackTree implements BehaviorTree { @Override public void simulate(float deltaTime){ - frameCurrent = frameCurrent + (float)Globals.timekeeper.getDeltaFrames(); + frameCurrent = frameCurrent + (float)Globals.engineState.timekeeper.getDeltaFrames(); Vector3d movementVector = CreatureUtils.getFacingVector(parent); // @@ -320,7 +320,7 @@ public class ClientAttackTree implements BehaviorTree { case DRIFT: if(currentMove != null){ //calculate the vector of movement - CollisionObjUtils.getCollidable(parent).addImpulse(new Impulse(new Vector3d(movementVector), new Vector3d(0,0,0), new Vector3d(0,0,0), currentMove.getDriftGoal() * Globals.timekeeper.getSimFrameTime(), "movement")); + CollisionObjUtils.getCollidable(parent).addImpulse(new Impulse(new Vector3d(movementVector), new Vector3d(0,0,0), new Vector3d(0,0,0), currentMove.getDriftGoal() * Globals.engineState.timekeeper.getSimFrameTime(), "movement")); if(frameCurrent > currentMove.getDriftFrameEnd()){ this.setDriftState(AttackTreeDriftState.NO_DRIFT); } diff --git a/src/main/java/electrosphere/entity/state/attack/ServerAttackTree.java b/src/main/java/electrosphere/entity/state/attack/ServerAttackTree.java index 3d72c334..6eaf9d99 100644 --- a/src/main/java/electrosphere/entity/state/attack/ServerAttackTree.java +++ b/src/main/java/electrosphere/entity/state/attack/ServerAttackTree.java @@ -308,7 +308,7 @@ public class ServerAttackTree implements BehaviorTree { @Override public void simulate(float deltaTime){ - frameCurrent = frameCurrent + (float)Globals.timekeeper.getDeltaFrames(); + frameCurrent = frameCurrent + (float)Globals.engineState.timekeeper.getDeltaFrames(); Vector3d movementVector = CreatureUtils.getFacingVector(parent); //parse attached network messages @@ -332,7 +332,7 @@ public class ServerAttackTree implements BehaviorTree { case DRIFT: if(currentMove != null){ //calculate the vector of movement - CollisionObjUtils.getCollidable(parent).addImpulse(new Impulse(new Vector3d(movementVector), new Vector3d(0,0,0), new Vector3d(0,0,0), currentMove.getDriftGoal() * Globals.timekeeper.getSimFrameTime(), "movement")); + CollisionObjUtils.getCollidable(parent).addImpulse(new Impulse(new Vector3d(movementVector), new Vector3d(0,0,0), new Vector3d(0,0,0), currentMove.getDriftGoal() * Globals.engineState.timekeeper.getSimFrameTime(), "movement")); if(frameCurrent > currentMove.getDriftFrameEnd()){ this.setDriftState(AttackTreeDriftState.NO_DRIFT); } diff --git a/src/main/java/electrosphere/entity/state/client/particle/ClientParticleEmitterComponent.java b/src/main/java/electrosphere/entity/state/client/particle/ClientParticleEmitterComponent.java index d801b7ed..542d65bd 100644 --- a/src/main/java/electrosphere/entity/state/client/particle/ClientParticleEmitterComponent.java +++ b/src/main/java/electrosphere/entity/state/client/particle/ClientParticleEmitterComponent.java @@ -43,8 +43,8 @@ public class ClientParticleEmitterComponent implements BehaviorTree { @Override public void simulate(float deltaTime) { Vector3d entityPos = EntityUtils.getPosition(parent); - if((float)(Globals.timekeeper.getNumberOfRenderFramesElapsed() - lastEmittedFrame) > particleEmitter.getFrequency()){ - lastEmittedFrame = Globals.timekeeper.getNumberOfRenderFramesElapsed(); + if((float)(Globals.engineState.timekeeper.getNumberOfRenderFramesElapsed() - lastEmittedFrame) > particleEmitter.getFrequency()){ + lastEmittedFrame = Globals.engineState.timekeeper.getNumberOfRenderFramesElapsed(); //create particle here Vector3d spawnPos = new Vector3d(entityPos); Quaterniond rotation = new Quaterniond(EntityUtils.getRotation(parent)); diff --git a/src/main/java/electrosphere/entity/state/life/ServerLifeTree.java b/src/main/java/electrosphere/entity/state/life/ServerLifeTree.java index d175d241..04001fdc 100644 --- a/src/main/java/electrosphere/entity/state/life/ServerLifeTree.java +++ b/src/main/java/electrosphere/entity/state/life/ServerLifeTree.java @@ -184,7 +184,7 @@ public class ServerLifeTree implements BehaviorTree { CombatMessage.constructserverReportHitboxCollisionMessage( event.source.getId(), parent.getId(), - Globals.timekeeper.getNumberOfSimFramesElapsed(), + Globals.engineState.timekeeper.getNumberOfSimFramesElapsed(), event.sourceHitboxData.getHitboxData().getType(), HitboxData.HITBOX_TYPE_BLOCK_CONNECTED, event.position.x, @@ -207,7 +207,7 @@ public class ServerLifeTree implements BehaviorTree { CombatMessage.constructserverReportHitboxCollisionMessage( event.source.getId(), parent.getId(), - Globals.timekeeper.getNumberOfSimFramesElapsed(), + Globals.engineState.timekeeper.getNumberOfSimFramesElapsed(), event.sourceHitboxData.getHitboxData().getType(), event.parentHitboxData.getHitboxData().getType(), event.position.x, diff --git a/src/main/java/electrosphere/entity/state/movement/editor/ClientEditorMovementTree.java b/src/main/java/electrosphere/entity/state/movement/editor/ClientEditorMovementTree.java index 1ddfc11e..c59decd6 100644 --- a/src/main/java/electrosphere/entity/state/movement/editor/ClientEditorMovementTree.java +++ b/src/main/java/electrosphere/entity/state/movement/editor/ClientEditorMovementTree.java @@ -143,7 +143,7 @@ public class ClientEditorMovementTree implements BehaviorTree { Globals.clientState.clientConnection.queueOutgoingMessage( EntityMessage.constructmoveUpdateMessage( Globals.clientState.clientSceneWrapper.mapClientToServerId(parent.getId()), - Globals.timekeeper.getNumberOfSimFramesElapsed(), + Globals.engineState.timekeeper.getNumberOfSimFramesElapsed(), position.x, position.y, position.z, @@ -173,7 +173,7 @@ public class ClientEditorMovementTree implements BehaviorTree { Globals.clientState.clientConnection.queueOutgoingMessage( EntityMessage.constructmoveUpdateMessage( Globals.clientState.clientSceneWrapper.mapClientToServerId(parent.getId()), - Globals.timekeeper.getNumberOfSimFramesElapsed(), + Globals.engineState.timekeeper.getNumberOfSimFramesElapsed(), position.x, position.y, position.z, @@ -371,7 +371,7 @@ public class ClientEditorMovementTree implements BehaviorTree { } break; case STARTUP: { //run startup code - velocity = velocity + acceleration * (float)Globals.timekeeper.getSimFrameTime(); + velocity = velocity + acceleration * (float)Globals.engineState.timekeeper.getSimFrameTime(); CreatureUtils.setVelocity(parent, velocity); } break; case MOVE: { @@ -382,7 +382,7 @@ public class ClientEditorMovementTree implements BehaviorTree { } break; case SLOWDOWN: { //velocity stuff - velocity = velocity - acceleration * (float)Globals.timekeeper.getSimFrameTime(); + velocity = velocity - acceleration * (float)Globals.engineState.timekeeper.getSimFrameTime(); CreatureUtils.setVelocity(parent, velocity); } break; } diff --git a/src/main/java/electrosphere/entity/state/movement/editor/ServerEditorMovementTree.java b/src/main/java/electrosphere/entity/state/movement/editor/ServerEditorMovementTree.java index 644b878c..b53c80c4 100644 --- a/src/main/java/electrosphere/entity/state/movement/editor/ServerEditorMovementTree.java +++ b/src/main/java/electrosphere/entity/state/movement/editor/ServerEditorMovementTree.java @@ -99,7 +99,7 @@ public class ServerEditorMovementTree implements BehaviorTree { DataCellSearchUtils.getEntityDataCell(parent).broadcastNetworkMessage( EntityMessage.constructmoveUpdateMessage( parent.getId(), - Globals.timekeeper.getNumberOfSimFramesElapsed(), + Globals.engineState.timekeeper.getNumberOfSimFramesElapsed(), position.x, position.y, position.z, @@ -135,7 +135,7 @@ public class ServerEditorMovementTree implements BehaviorTree { DataCellSearchUtils.getEntityDataCell(parent).broadcastNetworkMessage( EntityMessage.constructmoveUpdateMessage( parent.getId(), - Globals.timekeeper.getNumberOfSimFramesElapsed(), + Globals.engineState.timekeeper.getNumberOfSimFramesElapsed(), position.x, position.y, position.z, @@ -265,7 +265,7 @@ public class ServerEditorMovementTree implements BehaviorTree { DataCellSearchUtils.getEntityDataCell(parent).broadcastNetworkMessage( EntityMessage.constructmoveUpdateMessage( parent.getId(), - Globals.timekeeper.getNumberOfSimFramesElapsed(), + Globals.engineState.timekeeper.getNumberOfSimFramesElapsed(), position.x, position.y, position.z, @@ -291,7 +291,7 @@ public class ServerEditorMovementTree implements BehaviorTree { DataCellSearchUtils.getEntityDataCell(parent).broadcastNetworkMessage( EntityMessage.constructmoveUpdateMessage( parent.getId(), - Globals.timekeeper.getNumberOfSimFramesElapsed(), + Globals.engineState.timekeeper.getNumberOfSimFramesElapsed(), position.x, position.y, position.z, @@ -332,7 +332,7 @@ public class ServerEditorMovementTree implements BehaviorTree { DataCellSearchUtils.getEntityDataCell(parent).broadcastNetworkMessage( EntityMessage.constructmoveUpdateMessage( parent.getId(), - Globals.timekeeper.getNumberOfSimFramesElapsed(), + Globals.engineState.timekeeper.getNumberOfSimFramesElapsed(), position.x, position.y, position.z, @@ -363,7 +363,7 @@ public class ServerEditorMovementTree implements BehaviorTree { } break; case STARTUP: { //run startup code - velocity = velocity + acceleration * (float)Globals.timekeeper.getSimFrameTime(); + velocity = velocity + acceleration * (float)Globals.engineState.timekeeper.getSimFrameTime(); CreatureUtils.setVelocity(parent, velocity); } break; case MOVE: { @@ -374,7 +374,7 @@ public class ServerEditorMovementTree implements BehaviorTree { } break; case SLOWDOWN: { //velocity stuff - velocity = velocity - acceleration * (float)Globals.timekeeper.getSimFrameTime(); + velocity = velocity - acceleration * (float)Globals.engineState.timekeeper.getSimFrameTime(); CreatureUtils.setVelocity(parent, velocity); } break; } diff --git a/src/main/java/electrosphere/entity/state/movement/groundmove/ClientGroundMovementTree.java b/src/main/java/electrosphere/entity/state/movement/groundmove/ClientGroundMovementTree.java index cf3da67e..0bd353fa 100644 --- a/src/main/java/electrosphere/entity/state/movement/groundmove/ClientGroundMovementTree.java +++ b/src/main/java/electrosphere/entity/state/movement/groundmove/ClientGroundMovementTree.java @@ -151,7 +151,7 @@ public class ClientGroundMovementTree implements BehaviorTree { Globals.clientState.clientConnection.queueOutgoingMessage( EntityMessage.constructmoveUpdateMessage( Globals.clientState.clientSceneWrapper.mapClientToServerId(parent.getId()), - Globals.timekeeper.getNumberOfSimFramesElapsed(), + Globals.engineState.timekeeper.getNumberOfSimFramesElapsed(), position.x, position.y, position.z, @@ -181,7 +181,7 @@ public class ClientGroundMovementTree implements BehaviorTree { Globals.clientState.clientConnection.queueOutgoingMessage( EntityMessage.constructmoveUpdateMessage( Globals.clientState.clientSceneWrapper.mapClientToServerId(parent.getId()), - Globals.timekeeper.getNumberOfSimFramesElapsed(), + Globals.engineState.timekeeper.getNumberOfSimFramesElapsed(), position.x, position.y, position.z, @@ -332,9 +332,9 @@ public class ClientGroundMovementTree implements BehaviorTree { //actually update PhysicsEntityUtils.getDBody(parent).enable(); body.setLinearVel( - movementVector.x * velocity * Globals.timekeeper.getSimFrameTime(), + movementVector.x * velocity * Globals.engineState.timekeeper.getSimFrameTime(), linearVelocity.get1(), - movementVector.z * velocity * Globals.timekeeper.getSimFrameTime() + movementVector.z * velocity * Globals.engineState.timekeeper.getSimFrameTime() ); body.setAngularVel(0, 0, 0); rotation.set(movementQuaternion); @@ -364,9 +364,9 @@ public class ClientGroundMovementTree implements BehaviorTree { float velocity = this.getModifiedVelocity(); PhysicsEntityUtils.getDBody(parent).enable(); body.setLinearVel( - movementVector.x * velocity * Globals.timekeeper.getSimFrameTime(), + movementVector.x * velocity * Globals.engineState.timekeeper.getSimFrameTime(), linearVelocity.get1(), - movementVector.z * velocity * Globals.timekeeper.getSimFrameTime() + movementVector.z * velocity * Globals.engineState.timekeeper.getSimFrameTime() ); body.setAngularVel(0, 0, 0); rotation.set(movementQuaternion); @@ -414,9 +414,9 @@ public class ClientGroundMovementTree implements BehaviorTree { } PhysicsEntityUtils.getDBody(parent).enable(); body.setLinearVel( - movementVector.x * velocity * Globals.timekeeper.getSimFrameTime(), + movementVector.x * velocity * Globals.engineState.timekeeper.getSimFrameTime(), linearVelocity.get1(), - movementVector.z * velocity * Globals.timekeeper.getSimFrameTime() + movementVector.z * velocity * Globals.engineState.timekeeper.getSimFrameTime() ); body.setAngularVel(0, 0, 0); rotation.set(movementQuaternion); @@ -488,7 +488,7 @@ public class ClientGroundMovementTree implements BehaviorTree { } break; case STARTUP: { //run startup code - velocity = velocity + acceleration * (float)Globals.timekeeper.getSimFrameTime(); + velocity = velocity + acceleration * (float)Globals.engineState.timekeeper.getSimFrameTime(); CreatureUtils.setVelocity(parent, velocity); } break; case MOVE: { @@ -499,7 +499,7 @@ public class ClientGroundMovementTree implements BehaviorTree { } break; case SLOWDOWN: { //velocity stuff - velocity = velocity - acceleration * (float)Globals.timekeeper.getSimFrameTime(); + velocity = velocity - acceleration * (float)Globals.engineState.timekeeper.getSimFrameTime(); CreatureUtils.setVelocity(parent, velocity); } break; } diff --git a/src/main/java/electrosphere/entity/state/movement/groundmove/ServerGroundMovementTree.java b/src/main/java/electrosphere/entity/state/movement/groundmove/ServerGroundMovementTree.java index 0c253182..2dc49fb8 100644 --- a/src/main/java/electrosphere/entity/state/movement/groundmove/ServerGroundMovementTree.java +++ b/src/main/java/electrosphere/entity/state/movement/groundmove/ServerGroundMovementTree.java @@ -115,7 +115,7 @@ public class ServerGroundMovementTree implements BehaviorTree { DataCellSearchUtils.getEntityDataCell(parent).broadcastNetworkMessage( EntityMessage.constructmoveUpdateMessage( parent.getId(), - Globals.timekeeper.getNumberOfSimFramesElapsed(), + Globals.engineState.timekeeper.getNumberOfSimFramesElapsed(), position.x, position.y, position.z, @@ -151,7 +151,7 @@ public class ServerGroundMovementTree implements BehaviorTree { DataCellSearchUtils.getEntityDataCell(parent).broadcastNetworkMessage( EntityMessage.constructmoveUpdateMessage( parent.getId(), - Globals.timekeeper.getNumberOfSimFramesElapsed(), + Globals.engineState.timekeeper.getNumberOfSimFramesElapsed(), position.x, position.y, position.z, @@ -287,9 +287,9 @@ public class ServerGroundMovementTree implements BehaviorTree { } PhysicsEntityUtils.getDBody(parent).enable(); PhysicsEntityUtils.getDBody(parent).setLinearVel( - movementVector.x * velocity * Globals.timekeeper.getSimFrameTime(), + movementVector.x * velocity * Globals.engineState.timekeeper.getSimFrameTime(), linearVelocity.get1(), - movementVector.z * velocity * Globals.timekeeper.getSimFrameTime() + movementVector.z * velocity * Globals.engineState.timekeeper.getSimFrameTime() ); body.setAngularVel(0, 0, 0); // position.set(newPosition); @@ -299,7 +299,7 @@ public class ServerGroundMovementTree implements BehaviorTree { DataCellSearchUtils.getEntityDataCell(parent).broadcastNetworkMessage( EntityMessage.constructmoveUpdateMessage( parent.getId(), - Globals.timekeeper.getNumberOfSimFramesElapsed(), + Globals.engineState.timekeeper.getNumberOfSimFramesElapsed(), position.x, position.y, position.z, @@ -333,9 +333,9 @@ public class ServerGroundMovementTree implements BehaviorTree { float velocity = this.getModifiedVelocity(); PhysicsEntityUtils.getDBody(parent).enable(); PhysicsEntityUtils.getDBody(parent).setLinearVel( - movementVector.x * velocity * Globals.timekeeper.getSimFrameTime(), + movementVector.x * velocity * Globals.engineState.timekeeper.getSimFrameTime(), linearVelocity.get1(), - movementVector.z * velocity * Globals.timekeeper.getSimFrameTime() + movementVector.z * velocity * Globals.engineState.timekeeper.getSimFrameTime() ); body.setAngularVel(0, 0, 0); @@ -344,7 +344,7 @@ public class ServerGroundMovementTree implements BehaviorTree { DataCellSearchUtils.getEntityDataCell(parent).broadcastNetworkMessage( EntityMessage.constructmoveUpdateMessage( parent.getId(), - Globals.timekeeper.getNumberOfSimFramesElapsed(), + Globals.engineState.timekeeper.getNumberOfSimFramesElapsed(), position.x, position.y, position.z, @@ -402,9 +402,9 @@ public class ServerGroundMovementTree implements BehaviorTree { // ); PhysicsEntityUtils.getDBody(parent).enable(); PhysicsEntityUtils.getDBody(parent).setLinearVel( - movementVector.x * velocity * Globals.timekeeper.getSimFrameTime(), + movementVector.x * velocity * Globals.engineState.timekeeper.getSimFrameTime(), linearVelocity.get1(), - movementVector.z * velocity * Globals.timekeeper.getSimFrameTime() + movementVector.z * velocity * Globals.engineState.timekeeper.getSimFrameTime() ); body.setAngularVel(0, 0, 0); // position.set(newPosition); @@ -412,7 +412,7 @@ public class ServerGroundMovementTree implements BehaviorTree { DataCellSearchUtils.getEntityDataCell(parent).broadcastNetworkMessage( EntityMessage.constructmoveUpdateMessage( parent.getId(), - Globals.timekeeper.getNumberOfSimFramesElapsed(), + Globals.engineState.timekeeper.getNumberOfSimFramesElapsed(), position.x, position.y, position.z, @@ -443,7 +443,7 @@ public class ServerGroundMovementTree implements BehaviorTree { } break; case STARTUP: { //run startup code - velocity = velocity + acceleration * (float)Globals.timekeeper.getSimFrameTime(); + velocity = velocity + acceleration * (float)Globals.engineState.timekeeper.getSimFrameTime(); CreatureUtils.setVelocity(parent, velocity); } break; case MOVE: { @@ -454,7 +454,7 @@ public class ServerGroundMovementTree implements BehaviorTree { } break; case SLOWDOWN: { //velocity stuff - velocity = velocity - acceleration * (float)Globals.timekeeper.getSimFrameTime(); + velocity = velocity - acceleration * (float)Globals.engineState.timekeeper.getSimFrameTime(); CreatureUtils.setVelocity(parent, velocity); } break; } diff --git a/src/main/java/electrosphere/entity/state/physicssync/ServerPhysicsSyncTree.java b/src/main/java/electrosphere/entity/state/physicssync/ServerPhysicsSyncTree.java index b2f5e48b..1a251ea8 100644 --- a/src/main/java/electrosphere/entity/state/physicssync/ServerPhysicsSyncTree.java +++ b/src/main/java/electrosphere/entity/state/physicssync/ServerPhysicsSyncTree.java @@ -58,7 +58,7 @@ public class ServerPhysicsSyncTree implements BehaviorTree { DataCellSearchUtils.getEntityDataCell(parent).broadcastNetworkMessage( EntityMessage.constructsyncPhysicsMessage( parent.getId(), - Globals.timekeeper.getNumberOfSimFramesElapsed(), + Globals.engineState.timekeeper.getNumberOfSimFramesElapsed(), position.x, position.y, position.z, diff --git a/src/main/java/electrosphere/entity/types/item/ItemUtils.java b/src/main/java/electrosphere/entity/types/item/ItemUtils.java index c52ad729..2967e625 100644 --- a/src/main/java/electrosphere/entity/types/item/ItemUtils.java +++ b/src/main/java/electrosphere/entity/types/item/ItemUtils.java @@ -348,7 +348,7 @@ public class ItemUtils { String idleAnim = (String)item.getData(EntityDataStrings.ANIM_IDLE); if(!actor.isPlayingAnimation(idleAnim)){ actor.playAnimation(idleAnim,AnimationPriorities.getValue(AnimationPriorities.INTERACTION)); - actor.incrementAnimationTime(Globals.timekeeper.getSimFrameTime()); + actor.incrementAnimationTime(Globals.engineState.timekeeper.getSimFrameTime()); } } } diff --git a/src/main/java/electrosphere/renderer/model/Mesh.java b/src/main/java/electrosphere/renderer/model/Mesh.java index 9a7b4adb..2c2a03ff 100644 --- a/src/main/java/electrosphere/renderer/model/Mesh.java +++ b/src/main/java/electrosphere/renderer/model/Mesh.java @@ -487,8 +487,8 @@ public class Mesh { Vector3f worldPos = new Vector3f((float)parent.getWorldPos().x,(float)parent.getWorldPos().y,(float)parent.getWorldPos().z); openGLState.getActiveShader().setUniform(openGLState, "modelWorldPos", worldPos); openGLState.getActiveShader().setUniform(openGLState, "lightSpaceMatrix", Globals.lightDepthMatrix); - openGLState.getActiveShader().setUniform(openGLState, "frame", (int)Globals.timekeeper.getNumberOfRenderFramesElapsed()); - openGLState.getActiveShader().setUniform(openGLState, "time", (float)Globals.timekeeper.getCurrentRendererTime()); + openGLState.getActiveShader().setUniform(openGLState, "frame", (int)Globals.engineState.timekeeper.getNumberOfRenderFramesElapsed()); + openGLState.getActiveShader().setUniform(openGLState, "time", (float)Globals.engineState.timekeeper.getCurrentRendererTime()); } Globals.renderingEngine.checkError(); } diff --git a/src/main/java/electrosphere/script/ScriptEngine.java b/src/main/java/electrosphere/script/ScriptEngine.java index 9c4d1135..fa490169 100644 --- a/src/main/java/electrosphere/script/ScriptEngine.java +++ b/src/main/java/electrosphere/script/ScriptEngine.java @@ -126,7 +126,7 @@ public class ScriptEngine extends SignalServiceImpl { * singletons from the host that are provided to the javascript context */ public static final Object[][] hostSingletops = new Object[][]{ - {"timekeeper",Globals.timekeeper}, + {"timekeeper",Globals.engineState.timekeeper}, {"currentPlayer",Globals.clientState.clientPlayer}, {"loggerScripts",LoggerInterface.loggerScripts}, }; diff --git a/src/main/java/electrosphere/server/datacell/Realm.java b/src/main/java/electrosphere/server/datacell/Realm.java index 9a176903..93bf4b5e 100644 --- a/src/main/java/electrosphere/server/datacell/Realm.java +++ b/src/main/java/electrosphere/server/datacell/Realm.java @@ -241,7 +241,7 @@ public class Realm { // //simulate bullet physics engine step if(Globals.RUN_PHYSICS){ - collisionEngine.simulatePhysics((float)Globals.timekeeper.getSimFrameTime()); + collisionEngine.simulatePhysics((float)Globals.engineState.timekeeper.getSimFrameTime()); collisionEngine.updateDynamicObjectTransforms(); PhysicsEntityUtils.serverRepositionEntities(this,collisionEngine); chemistryEngine.collide(); diff --git a/src/main/java/electrosphere/server/service/StructureScanningService.java b/src/main/java/electrosphere/server/service/StructureScanningService.java index 3b729a0f..bb2d5291 100644 --- a/src/main/java/electrosphere/server/service/StructureScanningService.java +++ b/src/main/java/electrosphere/server/service/StructureScanningService.java @@ -45,10 +45,10 @@ public class StructureScanningService extends SignalServiceImpl { public void queue(Player player, Vector3d position){ ScanningJob existing = this.playerTimeoutMap.get(player); if(existing == null){ - existing = new ScanningJob(Globals.timekeeper.getNumberOfRenderFramesElapsed() + StructureScanningService.FRAME_OFFSET_FOR_JOBS, position); + existing = new ScanningJob(Globals.engineState.timekeeper.getNumberOfRenderFramesElapsed() + StructureScanningService.FRAME_OFFSET_FOR_JOBS, position); } else { //debounce - existing.targetFrame = Globals.timekeeper.getNumberOfRenderFramesElapsed() + StructureScanningService.FRAME_OFFSET_FOR_JOBS; + existing.targetFrame = Globals.engineState.timekeeper.getNumberOfRenderFramesElapsed() + StructureScanningService.FRAME_OFFSET_FOR_JOBS; existing.position = position; } this.playerTimeoutMap.put(player,existing); @@ -60,7 +60,7 @@ public class StructureScanningService extends SignalServiceImpl { public void simulate(){ Set> jobs = playerTimeoutMap.entrySet(); for(Entry job : jobs){ - if(job.getValue().targetFrame <= Globals.timekeeper.getNumberOfSimFramesElapsed()){ + if(job.getValue().targetFrame <= Globals.engineState.timekeeper.getNumberOfSimFramesElapsed()){ //run this job playerTimeoutMap.remove(job.getKey()); StructureScanningService.scanForStructure(job.getValue()); diff --git a/src/main/java/electrosphere/server/simulation/MicroSimulation.java b/src/main/java/electrosphere/server/simulation/MicroSimulation.java index 385f8a84..53758231 100644 --- a/src/main/java/electrosphere/server/simulation/MicroSimulation.java +++ b/src/main/java/electrosphere/server/simulation/MicroSimulation.java @@ -44,7 +44,7 @@ public class MicroSimulation { PoseActor currentPoseActor = EntityUtils.getPoseActor(currentEntity); //increment animations if(currentPoseActor.isPlayingAnimation()){ - currentPoseActor.incrementAnimationTime(Globals.timekeeper.getSimFrameTime()); + currentPoseActor.incrementAnimationTime(Globals.engineState.timekeeper.getSimFrameTime()); } } } @@ -54,7 +54,7 @@ public class MicroSimulation { } //simulate behavior trees if(dataCell.getScene().getBehaviorTrees().size() > 0){ - dataCell.getScene().simulateBehaviorTrees((float)Globals.timekeeper.getSimFrameTime()); + dataCell.getScene().simulateBehaviorTrees((float)Globals.engineState.timekeeper.getSimFrameTime()); } //update attached entity positions //!!This must come after simulating behavior trees!! @@ -64,7 +64,7 @@ public class MicroSimulation { //sum collidable impulses Set collidables = dataCell.getScene().getEntitiesWithTag(EntityTags.COLLIDABLE); for(Entity collidable : collidables){ - ServerCollidableTree.getServerCollidableTree(collidable).simulate((float)Globals.timekeeper.getSimFrameTime()); + ServerCollidableTree.getServerCollidableTree(collidable).simulate((float)Globals.engineState.timekeeper.getSimFrameTime()); } //update actor transform caches poseableEntities = dataCell.getScene().getEntitiesWithTag(EntityTags.POSEABLE);