move timekeeper into engineState

This commit is contained in:
austin 2025-05-15 14:22:25 -04:00
parent a3650ebc2b
commit c854be629f
24 changed files with 97 additions and 89 deletions

View File

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

View File

@ -64,7 +64,7 @@ public class ClientSimulation {
// //
//simulate bullet physics engine step //simulate bullet physics engine step
if(Globals.RUN_PHYSICS){ 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(); Globals.clientState.clientSceneWrapper.getCollisionEngine().updateDynamicObjectTransforms();
} }
@ -73,7 +73,7 @@ public class ClientSimulation {
for(Entity currentEntity : Globals.clientState.clientSceneWrapper.getScene().getEntitiesWithTag(EntityTags.DRAWABLE)){ for(Entity currentEntity : Globals.clientState.clientSceneWrapper.getScene().getEntitiesWithTag(EntityTags.DRAWABLE)){
Actor currentActor = EntityUtils.getActor(currentEntity); Actor currentActor = EntityUtils.getActor(currentEntity);
if(currentActor.isPlayingAnimation()){ if(currentActor.isPlayingAnimation()){
currentActor.incrementAnimationTime((float)Globals.timekeeper.getSimFrameTime()); currentActor.incrementAnimationTime((float)Globals.engineState.timekeeper.getSimFrameTime());
} }
} }
Globals.profiler.endCpuSample(); Globals.profiler.endCpuSample();
@ -106,12 +106,12 @@ public class ClientSimulation {
Globals.profiler.endCpuSample(); Globals.profiler.endCpuSample();
// //
//simulate behavior trees //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 //sum collidable impulses
Globals.profiler.beginCpuSample("collidable logic"); Globals.profiler.beginCpuSample("collidable logic");
for(Entity collidable : Globals.clientState.clientSceneWrapper.getScene().getEntitiesWithTag(EntityTags.COLLIDABLE)){ 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 //clear collidable impulse lists

View File

@ -53,7 +53,7 @@ public class ToolbarPreviewWindow {
* Checks the visibility of the toolbar preview * Checks the visibility of the toolbar preview
*/ */
public static void checkVisibility(){ public static void checkVisibility(){
long currentFrame = Globals.timekeeper.getNumberOfSimFramesElapsed(); long currentFrame = Globals.engineState.timekeeper.getNumberOfSimFramesElapsed();
if(currentFrame > frameToHide){ if(currentFrame > frameToHide){
if(previewWindow != null && previewWindow.getVisible()){ if(previewWindow != null && previewWindow.getVisible()){
previewWindow.setVisible(false); previewWindow.setVisible(false);
@ -67,7 +67,7 @@ public class ToolbarPreviewWindow {
public static void reveal(){ public static void reveal(){
previewWindow = ToolbarPreviewWindow.createToolbarPreviewWindow(); previewWindow = ToolbarPreviewWindow.createToolbarPreviewWindow();
WindowUtils.replaceWindow(WindowStrings.TOOLBAR_PREVIEW, previewWindow); WindowUtils.replaceWindow(WindowStrings.TOOLBAR_PREVIEW, previewWindow);
frameToHide = Globals.timekeeper.getNumberOfSimFramesElapsed() + REVEAL_FRAME_COUNT; frameToHide = Globals.engineState.timekeeper.getNumberOfSimFramesElapsed() + REVEAL_FRAME_COUNT;
} }
} }

View File

@ -107,7 +107,7 @@ public class CameraHandler {
Globals.profiler.beginCpuSample("updateGlobalCamera"); Globals.profiler.beginCpuSample("updateGlobalCamera");
if(update){ if(update){
if(Globals.clientState.playerCamera != null){ if(Globals.clientState.playerCamera != null){
cameraSpeed = 2.5f * (float)Globals.timekeeper.getMostRecentRawFrametime(); cameraSpeed = 2.5f * (float)Globals.engineState.timekeeper.getMostRecentRawFrametime();
if(Crosshair.getCrosshairActive()){ if(Crosshair.getCrosshairActive()){
@ -154,7 +154,7 @@ public class CameraHandler {
Globals.clientState.clientConnection.queueOutgoingMessage( Globals.clientState.clientConnection.queueOutgoingMessage(
EntityMessage.constructupdateEntityViewDirMessage( EntityMessage.constructupdateEntityViewDirMessage(
Globals.clientState.clientSceneWrapper.mapClientToServerId(Globals.clientState.playerEntity.getId()), Globals.clientState.clientSceneWrapper.mapClientToServerId(Globals.clientState.playerEntity.getId()),
Globals.timekeeper.getNumberOfSimFramesElapsed(), Globals.engineState.timekeeper.getNumberOfSimFramesElapsed(),
perspectiveVal, perspectiveVal,
yaw, yaw,
pitch pitch

View File

@ -263,10 +263,10 @@ public class ControlHandler {
if(!control.isState()){ if(!control.isState()){
//on press //on press
control.onPress(this.mouseState); control.onPress(this.mouseState);
control.setPressFrame((float)Globals.timekeeper.getNumberOfRenderFramesElapsed()); control.setPressFrame((float)Globals.engineState.timekeeper.getNumberOfRenderFramesElapsed());
} else { } else {
//on repeat //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); control.onRepeat(this.mouseState);
} }
} }
@ -276,7 +276,7 @@ public class ControlHandler {
//on release //on release
control.onRelease(this.mouseState); control.onRelease(this.mouseState);
//on click //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); control.onClick(this.mouseState);
} }
} else { } else {
@ -289,7 +289,7 @@ public class ControlHandler {
if(!control.isState()){ if(!control.isState()){
//on press //on press
control.onPress(this.mouseState); control.onPress(this.mouseState);
control.setPressFrame((float)Globals.timekeeper.getNumberOfRenderFramesElapsed()); control.setPressFrame((float)Globals.engineState.timekeeper.getNumberOfRenderFramesElapsed());
} else { } else {
//on repeat //on repeat
control.onRepeat(this.mouseState); control.onRepeat(this.mouseState);
@ -299,7 +299,7 @@ public class ControlHandler {
if(control.isState()){ if(control.isState()){
//on release //on release
control.onRelease(this.mouseState); 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); control.onClick(this.mouseState);
} }
} else { } else {

View File

@ -2,12 +2,18 @@ package electrosphere.engine;
import electrosphere.engine.service.ServiceManager; import electrosphere.engine.service.ServiceManager;
import electrosphere.engine.threads.ThreadManager; import electrosphere.engine.threads.ThreadManager;
import electrosphere.engine.time.Timekeeper;
/** /**
* State of the engine * State of the engine
*/ */
public class EngineState { public class EngineState {
/**
* The time keeping service
*/
public Timekeeper timekeeper = new Timekeeper();
/** /**
* The thread manager * The thread manager
*/ */
@ -18,6 +24,13 @@ public class EngineState {
*/ */
public final ServiceManager serviceManager = ServiceManager.create(); public final ServiceManager serviceManager = ServiceManager.create();
/**
* Constructor
*/
public EngineState(){
this.threadManager.init();
}
/** /**
* Destroys the engine state * Destroys the engine state
*/ */

View File

@ -35,7 +35,6 @@ import electrosphere.engine.os.fs.FileWatcherService;
import electrosphere.engine.profiler.Profiler; import electrosphere.engine.profiler.Profiler;
import electrosphere.engine.signal.SignalSystem; import electrosphere.engine.signal.SignalSystem;
import electrosphere.engine.signal.sync.MainThreadSignalService; import electrosphere.engine.signal.sync.MainThreadSignalService;
import electrosphere.engine.time.Timekeeper;
import electrosphere.logger.LoggerInterface; import electrosphere.logger.LoggerInterface;
import electrosphere.net.config.NetConfig; import electrosphere.net.config.NetConfig;
import electrosphere.net.monitor.NetMonitor; import electrosphere.net.monitor.NetMonitor;
@ -82,11 +81,6 @@ public class Globals {
// //
public static UserSettings userSettings; public static UserSettings userSettings;
//
//Timekeeper
//
public static Timekeeper timekeeper;
/** /**
* State for the engine * State for the engine
*/ */
@ -359,10 +353,10 @@ public class Globals {
Globals.WINDOW_WIDTH = 1920; Globals.WINDOW_WIDTH = 1920;
Globals.WINDOW_HEIGHT = 1080; Globals.WINDOW_HEIGHT = 1080;
UserSettings.loadUserSettings(); UserSettings.loadUserSettings();
//timekeeper
timekeeper = new Timekeeper();
//spin up engine state
Globals.engineState = new EngineState(); Globals.engineState = new EngineState();
Globals.engineState.threadManager.init();
//render flags //render flags
RENDER_FLAG_RENDER_SHADOW_MAP = false; RENDER_FLAG_RENDER_SHADOW_MAP = false;

View File

@ -159,7 +159,7 @@ public class Main {
} }
//init timekeeper //init timekeeper
Globals.timekeeper.init(targetFramePeriod); Globals.engineState.timekeeper.init(targetFramePeriod);
//fire off a loading thread for the title menus/screen //fire off a loading thread for the title menus/screen
LoggerInterface.loggerStartup.INFO("Fire off loading thread"); LoggerInterface.loggerStartup.INFO("Fire off loading thread");
@ -207,7 +207,7 @@ public class Main {
// //
//Update timekeeper, thread manager, and process all main thread signals //Update timekeeper, thread manager, and process all main thread signals
// //
Globals.timekeeper.update(); Globals.engineState.timekeeper.update();
Globals.engineState.threadManager.update(); Globals.engineState.threadManager.update();
@ -275,10 +275,10 @@ public class Main {
/// ///
int simFrameHardcapCounter = 0; 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 //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; break;
} }
@ -327,7 +327,7 @@ public class Main {
Globals.profiler.beginCpuSample("audio engine update"); Globals.profiler.beginCpuSample("audio engine update");
if(Globals.audioEngine != null && Globals.audioEngine.initialized() && Globals.virtualAudioSourceManager != null){ if(Globals.audioEngine != null && Globals.audioEngine.initialized() && Globals.virtualAudioSourceManager != null){
Globals.audioEngine.update(); Globals.audioEngine.update();
Globals.virtualAudioSourceManager.update((float)Globals.timekeeper.getSimFrameTime()); Globals.virtualAudioSourceManager.update((float)Globals.engineState.timekeeper.getSimFrameTime());
} }
Globals.profiler.endCpuSample(); Globals.profiler.endCpuSample();
@ -351,7 +351,7 @@ public class Main {
/// G A R B A G E C H E C K /// G A R B A G E C H E C K
/// ///
Globals.profiler.beginCpuSample("gc"); 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(); System.gc();
} }
Globals.profiler.endCpuSample(); 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 /// 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"); Globals.profiler.beginCpuSample("sleep");
if(Globals.timekeeper.getMostRecentRawFrametime() < targetFramePeriod){ if(Globals.engineState.timekeeper.getMostRecentRawFrametime() < targetFramePeriod){
Main.sleep((int)(1000.0 * (targetFramePeriod - Globals.timekeeper.getMostRecentRawFrametime()))); Main.sleep((int)(1000.0 * (targetFramePeriod - Globals.engineState.timekeeper.getMostRecentRawFrametime())));
} else { } else {
Main.sleep(1); Main.sleep(1);
} }
Globals.profiler.endCpuSample(); Globals.profiler.endCpuSample();
} }
Globals.timekeeper.numberOfRenderedFrames++; Globals.engineState.timekeeper.numberOfRenderedFrames++;
if(maxFrames > 0 && Globals.timekeeper.numberOfRenderedFrames > maxFrames){ if(maxFrames > 0 && Globals.engineState.timekeeper.numberOfRenderedFrames > maxFrames){
running = false; 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 /// 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());
/// ///

View File

@ -130,7 +130,7 @@ public class StateTransitionUtil {
double animationOffset = 0.0001; double animationOffset = 0.0001;
if(this.accountForSync){ if(this.accountForSync){
int delay = Globals.clientState.clientConnection.getDelay(); int delay = Globals.clientState.clientConnection.getDelay();
double simFrameTime = Globals.timekeeper.getSimFrameTime(); double simFrameTime = Globals.engineState.timekeeper.getSimFrameTime();
animationOffset = delay * simFrameTime; animationOffset = delay * simFrameTime;
} }

View File

@ -294,7 +294,7 @@ public class ClientAttackTree implements BehaviorTree {
@Override @Override
public void simulate(float deltaTime){ public void simulate(float deltaTime){
frameCurrent = frameCurrent + (float)Globals.timekeeper.getDeltaFrames(); frameCurrent = frameCurrent + (float)Globals.engineState.timekeeper.getDeltaFrames();
Vector3d movementVector = CreatureUtils.getFacingVector(parent); Vector3d movementVector = CreatureUtils.getFacingVector(parent);
// //
@ -320,7 +320,7 @@ public class ClientAttackTree implements BehaviorTree {
case DRIFT: case DRIFT:
if(currentMove != null){ if(currentMove != null){
//calculate the vector of movement //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()){ if(frameCurrent > currentMove.getDriftFrameEnd()){
this.setDriftState(AttackTreeDriftState.NO_DRIFT); this.setDriftState(AttackTreeDriftState.NO_DRIFT);
} }

View File

@ -308,7 +308,7 @@ public class ServerAttackTree implements BehaviorTree {
@Override @Override
public void simulate(float deltaTime){ public void simulate(float deltaTime){
frameCurrent = frameCurrent + (float)Globals.timekeeper.getDeltaFrames(); frameCurrent = frameCurrent + (float)Globals.engineState.timekeeper.getDeltaFrames();
Vector3d movementVector = CreatureUtils.getFacingVector(parent); Vector3d movementVector = CreatureUtils.getFacingVector(parent);
//parse attached network messages //parse attached network messages
@ -332,7 +332,7 @@ public class ServerAttackTree implements BehaviorTree {
case DRIFT: case DRIFT:
if(currentMove != null){ if(currentMove != null){
//calculate the vector of movement //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()){ if(frameCurrent > currentMove.getDriftFrameEnd()){
this.setDriftState(AttackTreeDriftState.NO_DRIFT); this.setDriftState(AttackTreeDriftState.NO_DRIFT);
} }

View File

@ -43,8 +43,8 @@ public class ClientParticleEmitterComponent implements BehaviorTree {
@Override @Override
public void simulate(float deltaTime) { public void simulate(float deltaTime) {
Vector3d entityPos = EntityUtils.getPosition(parent); Vector3d entityPos = EntityUtils.getPosition(parent);
if((float)(Globals.timekeeper.getNumberOfRenderFramesElapsed() - lastEmittedFrame) > particleEmitter.getFrequency()){ if((float)(Globals.engineState.timekeeper.getNumberOfRenderFramesElapsed() - lastEmittedFrame) > particleEmitter.getFrequency()){
lastEmittedFrame = Globals.timekeeper.getNumberOfRenderFramesElapsed(); lastEmittedFrame = Globals.engineState.timekeeper.getNumberOfRenderFramesElapsed();
//create particle here //create particle here
Vector3d spawnPos = new Vector3d(entityPos); Vector3d spawnPos = new Vector3d(entityPos);
Quaterniond rotation = new Quaterniond(EntityUtils.getRotation(parent)); Quaterniond rotation = new Quaterniond(EntityUtils.getRotation(parent));

View File

@ -184,7 +184,7 @@ public class ServerLifeTree implements BehaviorTree {
CombatMessage.constructserverReportHitboxCollisionMessage( CombatMessage.constructserverReportHitboxCollisionMessage(
event.source.getId(), event.source.getId(),
parent.getId(), parent.getId(),
Globals.timekeeper.getNumberOfSimFramesElapsed(), Globals.engineState.timekeeper.getNumberOfSimFramesElapsed(),
event.sourceHitboxData.getHitboxData().getType(), event.sourceHitboxData.getHitboxData().getType(),
HitboxData.HITBOX_TYPE_BLOCK_CONNECTED, HitboxData.HITBOX_TYPE_BLOCK_CONNECTED,
event.position.x, event.position.x,
@ -207,7 +207,7 @@ public class ServerLifeTree implements BehaviorTree {
CombatMessage.constructserverReportHitboxCollisionMessage( CombatMessage.constructserverReportHitboxCollisionMessage(
event.source.getId(), event.source.getId(),
parent.getId(), parent.getId(),
Globals.timekeeper.getNumberOfSimFramesElapsed(), Globals.engineState.timekeeper.getNumberOfSimFramesElapsed(),
event.sourceHitboxData.getHitboxData().getType(), event.sourceHitboxData.getHitboxData().getType(),
event.parentHitboxData.getHitboxData().getType(), event.parentHitboxData.getHitboxData().getType(),
event.position.x, event.position.x,

View File

@ -143,7 +143,7 @@ public class ClientEditorMovementTree implements BehaviorTree {
Globals.clientState.clientConnection.queueOutgoingMessage( Globals.clientState.clientConnection.queueOutgoingMessage(
EntityMessage.constructmoveUpdateMessage( EntityMessage.constructmoveUpdateMessage(
Globals.clientState.clientSceneWrapper.mapClientToServerId(parent.getId()), Globals.clientState.clientSceneWrapper.mapClientToServerId(parent.getId()),
Globals.timekeeper.getNumberOfSimFramesElapsed(), Globals.engineState.timekeeper.getNumberOfSimFramesElapsed(),
position.x, position.x,
position.y, position.y,
position.z, position.z,
@ -173,7 +173,7 @@ public class ClientEditorMovementTree implements BehaviorTree {
Globals.clientState.clientConnection.queueOutgoingMessage( Globals.clientState.clientConnection.queueOutgoingMessage(
EntityMessage.constructmoveUpdateMessage( EntityMessage.constructmoveUpdateMessage(
Globals.clientState.clientSceneWrapper.mapClientToServerId(parent.getId()), Globals.clientState.clientSceneWrapper.mapClientToServerId(parent.getId()),
Globals.timekeeper.getNumberOfSimFramesElapsed(), Globals.engineState.timekeeper.getNumberOfSimFramesElapsed(),
position.x, position.x,
position.y, position.y,
position.z, position.z,
@ -371,7 +371,7 @@ public class ClientEditorMovementTree implements BehaviorTree {
} break; } break;
case STARTUP: { case STARTUP: {
//run startup code //run startup code
velocity = velocity + acceleration * (float)Globals.timekeeper.getSimFrameTime(); velocity = velocity + acceleration * (float)Globals.engineState.timekeeper.getSimFrameTime();
CreatureUtils.setVelocity(parent, velocity); CreatureUtils.setVelocity(parent, velocity);
} break; } break;
case MOVE: { case MOVE: {
@ -382,7 +382,7 @@ public class ClientEditorMovementTree implements BehaviorTree {
} break; } break;
case SLOWDOWN: { case SLOWDOWN: {
//velocity stuff //velocity stuff
velocity = velocity - acceleration * (float)Globals.timekeeper.getSimFrameTime(); velocity = velocity - acceleration * (float)Globals.engineState.timekeeper.getSimFrameTime();
CreatureUtils.setVelocity(parent, velocity); CreatureUtils.setVelocity(parent, velocity);
} break; } break;
} }

View File

@ -99,7 +99,7 @@ public class ServerEditorMovementTree implements BehaviorTree {
DataCellSearchUtils.getEntityDataCell(parent).broadcastNetworkMessage( DataCellSearchUtils.getEntityDataCell(parent).broadcastNetworkMessage(
EntityMessage.constructmoveUpdateMessage( EntityMessage.constructmoveUpdateMessage(
parent.getId(), parent.getId(),
Globals.timekeeper.getNumberOfSimFramesElapsed(), Globals.engineState.timekeeper.getNumberOfSimFramesElapsed(),
position.x, position.x,
position.y, position.y,
position.z, position.z,
@ -135,7 +135,7 @@ public class ServerEditorMovementTree implements BehaviorTree {
DataCellSearchUtils.getEntityDataCell(parent).broadcastNetworkMessage( DataCellSearchUtils.getEntityDataCell(parent).broadcastNetworkMessage(
EntityMessage.constructmoveUpdateMessage( EntityMessage.constructmoveUpdateMessage(
parent.getId(), parent.getId(),
Globals.timekeeper.getNumberOfSimFramesElapsed(), Globals.engineState.timekeeper.getNumberOfSimFramesElapsed(),
position.x, position.x,
position.y, position.y,
position.z, position.z,
@ -265,7 +265,7 @@ public class ServerEditorMovementTree implements BehaviorTree {
DataCellSearchUtils.getEntityDataCell(parent).broadcastNetworkMessage( DataCellSearchUtils.getEntityDataCell(parent).broadcastNetworkMessage(
EntityMessage.constructmoveUpdateMessage( EntityMessage.constructmoveUpdateMessage(
parent.getId(), parent.getId(),
Globals.timekeeper.getNumberOfSimFramesElapsed(), Globals.engineState.timekeeper.getNumberOfSimFramesElapsed(),
position.x, position.x,
position.y, position.y,
position.z, position.z,
@ -291,7 +291,7 @@ public class ServerEditorMovementTree implements BehaviorTree {
DataCellSearchUtils.getEntityDataCell(parent).broadcastNetworkMessage( DataCellSearchUtils.getEntityDataCell(parent).broadcastNetworkMessage(
EntityMessage.constructmoveUpdateMessage( EntityMessage.constructmoveUpdateMessage(
parent.getId(), parent.getId(),
Globals.timekeeper.getNumberOfSimFramesElapsed(), Globals.engineState.timekeeper.getNumberOfSimFramesElapsed(),
position.x, position.x,
position.y, position.y,
position.z, position.z,
@ -332,7 +332,7 @@ public class ServerEditorMovementTree implements BehaviorTree {
DataCellSearchUtils.getEntityDataCell(parent).broadcastNetworkMessage( DataCellSearchUtils.getEntityDataCell(parent).broadcastNetworkMessage(
EntityMessage.constructmoveUpdateMessage( EntityMessage.constructmoveUpdateMessage(
parent.getId(), parent.getId(),
Globals.timekeeper.getNumberOfSimFramesElapsed(), Globals.engineState.timekeeper.getNumberOfSimFramesElapsed(),
position.x, position.x,
position.y, position.y,
position.z, position.z,
@ -363,7 +363,7 @@ public class ServerEditorMovementTree implements BehaviorTree {
} break; } break;
case STARTUP: { case STARTUP: {
//run startup code //run startup code
velocity = velocity + acceleration * (float)Globals.timekeeper.getSimFrameTime(); velocity = velocity + acceleration * (float)Globals.engineState.timekeeper.getSimFrameTime();
CreatureUtils.setVelocity(parent, velocity); CreatureUtils.setVelocity(parent, velocity);
} break; } break;
case MOVE: { case MOVE: {
@ -374,7 +374,7 @@ public class ServerEditorMovementTree implements BehaviorTree {
} break; } break;
case SLOWDOWN: { case SLOWDOWN: {
//velocity stuff //velocity stuff
velocity = velocity - acceleration * (float)Globals.timekeeper.getSimFrameTime(); velocity = velocity - acceleration * (float)Globals.engineState.timekeeper.getSimFrameTime();
CreatureUtils.setVelocity(parent, velocity); CreatureUtils.setVelocity(parent, velocity);
} break; } break;
} }

View File

@ -151,7 +151,7 @@ public class ClientGroundMovementTree implements BehaviorTree {
Globals.clientState.clientConnection.queueOutgoingMessage( Globals.clientState.clientConnection.queueOutgoingMessage(
EntityMessage.constructmoveUpdateMessage( EntityMessage.constructmoveUpdateMessage(
Globals.clientState.clientSceneWrapper.mapClientToServerId(parent.getId()), Globals.clientState.clientSceneWrapper.mapClientToServerId(parent.getId()),
Globals.timekeeper.getNumberOfSimFramesElapsed(), Globals.engineState.timekeeper.getNumberOfSimFramesElapsed(),
position.x, position.x,
position.y, position.y,
position.z, position.z,
@ -181,7 +181,7 @@ public class ClientGroundMovementTree implements BehaviorTree {
Globals.clientState.clientConnection.queueOutgoingMessage( Globals.clientState.clientConnection.queueOutgoingMessage(
EntityMessage.constructmoveUpdateMessage( EntityMessage.constructmoveUpdateMessage(
Globals.clientState.clientSceneWrapper.mapClientToServerId(parent.getId()), Globals.clientState.clientSceneWrapper.mapClientToServerId(parent.getId()),
Globals.timekeeper.getNumberOfSimFramesElapsed(), Globals.engineState.timekeeper.getNumberOfSimFramesElapsed(),
position.x, position.x,
position.y, position.y,
position.z, position.z,
@ -332,9 +332,9 @@ public class ClientGroundMovementTree implements BehaviorTree {
//actually update //actually update
PhysicsEntityUtils.getDBody(parent).enable(); PhysicsEntityUtils.getDBody(parent).enable();
body.setLinearVel( body.setLinearVel(
movementVector.x * velocity * Globals.timekeeper.getSimFrameTime(), movementVector.x * velocity * Globals.engineState.timekeeper.getSimFrameTime(),
linearVelocity.get1(), linearVelocity.get1(),
movementVector.z * velocity * Globals.timekeeper.getSimFrameTime() movementVector.z * velocity * Globals.engineState.timekeeper.getSimFrameTime()
); );
body.setAngularVel(0, 0, 0); body.setAngularVel(0, 0, 0);
rotation.set(movementQuaternion); rotation.set(movementQuaternion);
@ -364,9 +364,9 @@ public class ClientGroundMovementTree implements BehaviorTree {
float velocity = this.getModifiedVelocity(); float velocity = this.getModifiedVelocity();
PhysicsEntityUtils.getDBody(parent).enable(); PhysicsEntityUtils.getDBody(parent).enable();
body.setLinearVel( body.setLinearVel(
movementVector.x * velocity * Globals.timekeeper.getSimFrameTime(), movementVector.x * velocity * Globals.engineState.timekeeper.getSimFrameTime(),
linearVelocity.get1(), linearVelocity.get1(),
movementVector.z * velocity * Globals.timekeeper.getSimFrameTime() movementVector.z * velocity * Globals.engineState.timekeeper.getSimFrameTime()
); );
body.setAngularVel(0, 0, 0); body.setAngularVel(0, 0, 0);
rotation.set(movementQuaternion); rotation.set(movementQuaternion);
@ -414,9 +414,9 @@ public class ClientGroundMovementTree implements BehaviorTree {
} }
PhysicsEntityUtils.getDBody(parent).enable(); PhysicsEntityUtils.getDBody(parent).enable();
body.setLinearVel( body.setLinearVel(
movementVector.x * velocity * Globals.timekeeper.getSimFrameTime(), movementVector.x * velocity * Globals.engineState.timekeeper.getSimFrameTime(),
linearVelocity.get1(), linearVelocity.get1(),
movementVector.z * velocity * Globals.timekeeper.getSimFrameTime() movementVector.z * velocity * Globals.engineState.timekeeper.getSimFrameTime()
); );
body.setAngularVel(0, 0, 0); body.setAngularVel(0, 0, 0);
rotation.set(movementQuaternion); rotation.set(movementQuaternion);
@ -488,7 +488,7 @@ public class ClientGroundMovementTree implements BehaviorTree {
} break; } break;
case STARTUP: { case STARTUP: {
//run startup code //run startup code
velocity = velocity + acceleration * (float)Globals.timekeeper.getSimFrameTime(); velocity = velocity + acceleration * (float)Globals.engineState.timekeeper.getSimFrameTime();
CreatureUtils.setVelocity(parent, velocity); CreatureUtils.setVelocity(parent, velocity);
} break; } break;
case MOVE: { case MOVE: {
@ -499,7 +499,7 @@ public class ClientGroundMovementTree implements BehaviorTree {
} break; } break;
case SLOWDOWN: { case SLOWDOWN: {
//velocity stuff //velocity stuff
velocity = velocity - acceleration * (float)Globals.timekeeper.getSimFrameTime(); velocity = velocity - acceleration * (float)Globals.engineState.timekeeper.getSimFrameTime();
CreatureUtils.setVelocity(parent, velocity); CreatureUtils.setVelocity(parent, velocity);
} break; } break;
} }

View File

@ -115,7 +115,7 @@ public class ServerGroundMovementTree implements BehaviorTree {
DataCellSearchUtils.getEntityDataCell(parent).broadcastNetworkMessage( DataCellSearchUtils.getEntityDataCell(parent).broadcastNetworkMessage(
EntityMessage.constructmoveUpdateMessage( EntityMessage.constructmoveUpdateMessage(
parent.getId(), parent.getId(),
Globals.timekeeper.getNumberOfSimFramesElapsed(), Globals.engineState.timekeeper.getNumberOfSimFramesElapsed(),
position.x, position.x,
position.y, position.y,
position.z, position.z,
@ -151,7 +151,7 @@ public class ServerGroundMovementTree implements BehaviorTree {
DataCellSearchUtils.getEntityDataCell(parent).broadcastNetworkMessage( DataCellSearchUtils.getEntityDataCell(parent).broadcastNetworkMessage(
EntityMessage.constructmoveUpdateMessage( EntityMessage.constructmoveUpdateMessage(
parent.getId(), parent.getId(),
Globals.timekeeper.getNumberOfSimFramesElapsed(), Globals.engineState.timekeeper.getNumberOfSimFramesElapsed(),
position.x, position.x,
position.y, position.y,
position.z, position.z,
@ -287,9 +287,9 @@ public class ServerGroundMovementTree implements BehaviorTree {
} }
PhysicsEntityUtils.getDBody(parent).enable(); PhysicsEntityUtils.getDBody(parent).enable();
PhysicsEntityUtils.getDBody(parent).setLinearVel( PhysicsEntityUtils.getDBody(parent).setLinearVel(
movementVector.x * velocity * Globals.timekeeper.getSimFrameTime(), movementVector.x * velocity * Globals.engineState.timekeeper.getSimFrameTime(),
linearVelocity.get1(), linearVelocity.get1(),
movementVector.z * velocity * Globals.timekeeper.getSimFrameTime() movementVector.z * velocity * Globals.engineState.timekeeper.getSimFrameTime()
); );
body.setAngularVel(0, 0, 0); body.setAngularVel(0, 0, 0);
// position.set(newPosition); // position.set(newPosition);
@ -299,7 +299,7 @@ public class ServerGroundMovementTree implements BehaviorTree {
DataCellSearchUtils.getEntityDataCell(parent).broadcastNetworkMessage( DataCellSearchUtils.getEntityDataCell(parent).broadcastNetworkMessage(
EntityMessage.constructmoveUpdateMessage( EntityMessage.constructmoveUpdateMessage(
parent.getId(), parent.getId(),
Globals.timekeeper.getNumberOfSimFramesElapsed(), Globals.engineState.timekeeper.getNumberOfSimFramesElapsed(),
position.x, position.x,
position.y, position.y,
position.z, position.z,
@ -333,9 +333,9 @@ public class ServerGroundMovementTree implements BehaviorTree {
float velocity = this.getModifiedVelocity(); float velocity = this.getModifiedVelocity();
PhysicsEntityUtils.getDBody(parent).enable(); PhysicsEntityUtils.getDBody(parent).enable();
PhysicsEntityUtils.getDBody(parent).setLinearVel( PhysicsEntityUtils.getDBody(parent).setLinearVel(
movementVector.x * velocity * Globals.timekeeper.getSimFrameTime(), movementVector.x * velocity * Globals.engineState.timekeeper.getSimFrameTime(),
linearVelocity.get1(), linearVelocity.get1(),
movementVector.z * velocity * Globals.timekeeper.getSimFrameTime() movementVector.z * velocity * Globals.engineState.timekeeper.getSimFrameTime()
); );
body.setAngularVel(0, 0, 0); body.setAngularVel(0, 0, 0);
@ -344,7 +344,7 @@ public class ServerGroundMovementTree implements BehaviorTree {
DataCellSearchUtils.getEntityDataCell(parent).broadcastNetworkMessage( DataCellSearchUtils.getEntityDataCell(parent).broadcastNetworkMessage(
EntityMessage.constructmoveUpdateMessage( EntityMessage.constructmoveUpdateMessage(
parent.getId(), parent.getId(),
Globals.timekeeper.getNumberOfSimFramesElapsed(), Globals.engineState.timekeeper.getNumberOfSimFramesElapsed(),
position.x, position.x,
position.y, position.y,
position.z, position.z,
@ -402,9 +402,9 @@ public class ServerGroundMovementTree implements BehaviorTree {
// ); // );
PhysicsEntityUtils.getDBody(parent).enable(); PhysicsEntityUtils.getDBody(parent).enable();
PhysicsEntityUtils.getDBody(parent).setLinearVel( PhysicsEntityUtils.getDBody(parent).setLinearVel(
movementVector.x * velocity * Globals.timekeeper.getSimFrameTime(), movementVector.x * velocity * Globals.engineState.timekeeper.getSimFrameTime(),
linearVelocity.get1(), linearVelocity.get1(),
movementVector.z * velocity * Globals.timekeeper.getSimFrameTime() movementVector.z * velocity * Globals.engineState.timekeeper.getSimFrameTime()
); );
body.setAngularVel(0, 0, 0); body.setAngularVel(0, 0, 0);
// position.set(newPosition); // position.set(newPosition);
@ -412,7 +412,7 @@ public class ServerGroundMovementTree implements BehaviorTree {
DataCellSearchUtils.getEntityDataCell(parent).broadcastNetworkMessage( DataCellSearchUtils.getEntityDataCell(parent).broadcastNetworkMessage(
EntityMessage.constructmoveUpdateMessage( EntityMessage.constructmoveUpdateMessage(
parent.getId(), parent.getId(),
Globals.timekeeper.getNumberOfSimFramesElapsed(), Globals.engineState.timekeeper.getNumberOfSimFramesElapsed(),
position.x, position.x,
position.y, position.y,
position.z, position.z,
@ -443,7 +443,7 @@ public class ServerGroundMovementTree implements BehaviorTree {
} break; } break;
case STARTUP: { case STARTUP: {
//run startup code //run startup code
velocity = velocity + acceleration * (float)Globals.timekeeper.getSimFrameTime(); velocity = velocity + acceleration * (float)Globals.engineState.timekeeper.getSimFrameTime();
CreatureUtils.setVelocity(parent, velocity); CreatureUtils.setVelocity(parent, velocity);
} break; } break;
case MOVE: { case MOVE: {
@ -454,7 +454,7 @@ public class ServerGroundMovementTree implements BehaviorTree {
} break; } break;
case SLOWDOWN: { case SLOWDOWN: {
//velocity stuff //velocity stuff
velocity = velocity - acceleration * (float)Globals.timekeeper.getSimFrameTime(); velocity = velocity - acceleration * (float)Globals.engineState.timekeeper.getSimFrameTime();
CreatureUtils.setVelocity(parent, velocity); CreatureUtils.setVelocity(parent, velocity);
} break; } break;
} }

View File

@ -58,7 +58,7 @@ public class ServerPhysicsSyncTree implements BehaviorTree {
DataCellSearchUtils.getEntityDataCell(parent).broadcastNetworkMessage( DataCellSearchUtils.getEntityDataCell(parent).broadcastNetworkMessage(
EntityMessage.constructsyncPhysicsMessage( EntityMessage.constructsyncPhysicsMessage(
parent.getId(), parent.getId(),
Globals.timekeeper.getNumberOfSimFramesElapsed(), Globals.engineState.timekeeper.getNumberOfSimFramesElapsed(),
position.x, position.x,
position.y, position.y,
position.z, position.z,

View File

@ -348,7 +348,7 @@ public class ItemUtils {
String idleAnim = (String)item.getData(EntityDataStrings.ANIM_IDLE); String idleAnim = (String)item.getData(EntityDataStrings.ANIM_IDLE);
if(!actor.isPlayingAnimation(idleAnim)){ if(!actor.isPlayingAnimation(idleAnim)){
actor.playAnimation(idleAnim,AnimationPriorities.getValue(AnimationPriorities.INTERACTION)); actor.playAnimation(idleAnim,AnimationPriorities.getValue(AnimationPriorities.INTERACTION));
actor.incrementAnimationTime(Globals.timekeeper.getSimFrameTime()); actor.incrementAnimationTime(Globals.engineState.timekeeper.getSimFrameTime());
} }
} }
} }

View File

@ -487,8 +487,8 @@ public class Mesh {
Vector3f worldPos = new Vector3f((float)parent.getWorldPos().x,(float)parent.getWorldPos().y,(float)parent.getWorldPos().z); 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, "modelWorldPos", worldPos);
openGLState.getActiveShader().setUniform(openGLState, "lightSpaceMatrix", Globals.lightDepthMatrix); openGLState.getActiveShader().setUniform(openGLState, "lightSpaceMatrix", Globals.lightDepthMatrix);
openGLState.getActiveShader().setUniform(openGLState, "frame", (int)Globals.timekeeper.getNumberOfRenderFramesElapsed()); openGLState.getActiveShader().setUniform(openGLState, "frame", (int)Globals.engineState.timekeeper.getNumberOfRenderFramesElapsed());
openGLState.getActiveShader().setUniform(openGLState, "time", (float)Globals.timekeeper.getCurrentRendererTime()); openGLState.getActiveShader().setUniform(openGLState, "time", (float)Globals.engineState.timekeeper.getCurrentRendererTime());
} }
Globals.renderingEngine.checkError(); Globals.renderingEngine.checkError();
} }

View File

@ -126,7 +126,7 @@ public class ScriptEngine extends SignalServiceImpl {
* singletons from the host that are provided to the javascript context * singletons from the host that are provided to the javascript context
*/ */
public static final Object[][] hostSingletops = new Object[][]{ public static final Object[][] hostSingletops = new Object[][]{
{"timekeeper",Globals.timekeeper}, {"timekeeper",Globals.engineState.timekeeper},
{"currentPlayer",Globals.clientState.clientPlayer}, {"currentPlayer",Globals.clientState.clientPlayer},
{"loggerScripts",LoggerInterface.loggerScripts}, {"loggerScripts",LoggerInterface.loggerScripts},
}; };

View File

@ -241,7 +241,7 @@ public class Realm {
// //
//simulate bullet physics engine step //simulate bullet physics engine step
if(Globals.RUN_PHYSICS){ if(Globals.RUN_PHYSICS){
collisionEngine.simulatePhysics((float)Globals.timekeeper.getSimFrameTime()); collisionEngine.simulatePhysics((float)Globals.engineState.timekeeper.getSimFrameTime());
collisionEngine.updateDynamicObjectTransforms(); collisionEngine.updateDynamicObjectTransforms();
PhysicsEntityUtils.serverRepositionEntities(this,collisionEngine); PhysicsEntityUtils.serverRepositionEntities(this,collisionEngine);
chemistryEngine.collide(); chemistryEngine.collide();

View File

@ -45,10 +45,10 @@ public class StructureScanningService extends SignalServiceImpl {
public void queue(Player player, Vector3d position){ public void queue(Player player, Vector3d position){
ScanningJob existing = this.playerTimeoutMap.get(player); ScanningJob existing = this.playerTimeoutMap.get(player);
if(existing == null){ 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 { } else {
//debounce //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; existing.position = position;
} }
this.playerTimeoutMap.put(player,existing); this.playerTimeoutMap.put(player,existing);
@ -60,7 +60,7 @@ public class StructureScanningService extends SignalServiceImpl {
public void simulate(){ public void simulate(){
Set<Entry<Player,ScanningJob>> jobs = playerTimeoutMap.entrySet(); Set<Entry<Player,ScanningJob>> jobs = playerTimeoutMap.entrySet();
for(Entry<Player,ScanningJob> job : jobs){ for(Entry<Player,ScanningJob> job : jobs){
if(job.getValue().targetFrame <= Globals.timekeeper.getNumberOfSimFramesElapsed()){ if(job.getValue().targetFrame <= Globals.engineState.timekeeper.getNumberOfSimFramesElapsed()){
//run this job //run this job
playerTimeoutMap.remove(job.getKey()); playerTimeoutMap.remove(job.getKey());
StructureScanningService.scanForStructure(job.getValue()); StructureScanningService.scanForStructure(job.getValue());

View File

@ -44,7 +44,7 @@ public class MicroSimulation {
PoseActor currentPoseActor = EntityUtils.getPoseActor(currentEntity); PoseActor currentPoseActor = EntityUtils.getPoseActor(currentEntity);
//increment animations //increment animations
if(currentPoseActor.isPlayingAnimation()){ if(currentPoseActor.isPlayingAnimation()){
currentPoseActor.incrementAnimationTime(Globals.timekeeper.getSimFrameTime()); currentPoseActor.incrementAnimationTime(Globals.engineState.timekeeper.getSimFrameTime());
} }
} }
} }
@ -54,7 +54,7 @@ public class MicroSimulation {
} }
//simulate behavior trees //simulate behavior trees
if(dataCell.getScene().getBehaviorTrees().size() > 0){ 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 //update attached entity positions
//!!This must come after simulating behavior trees!! //!!This must come after simulating behavior trees!!
@ -64,7 +64,7 @@ public class MicroSimulation {
//sum collidable impulses //sum collidable impulses
Set<Entity> collidables = dataCell.getScene().getEntitiesWithTag(EntityTags.COLLIDABLE); Set<Entity> collidables = dataCell.getScene().getEntitiesWithTag(EntityTags.COLLIDABLE);
for(Entity collidable : collidables){ 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 //update actor transform caches
poseableEntities = dataCell.getScene().getEntitiesWithTag(EntityTags.POSEABLE); poseableEntities = dataCell.getScene().getEntitiesWithTag(EntityTags.POSEABLE);