hibiscus/engine/source/core/engine.d
2023-05-20 19:37:04 +01:00

44 lines
1 KiB
D

module gameengine.core.engine;
import gameengine.renderer;
import gameengine.node.node;
import core.time;
class Engine {
this(IRenderer* renderer) {
this.renderer = renderer;
previousProcessTick = MonoTime.currTime();
previousPhysicsProcessTick = MonoTime.currTime();
}
void runNodeProcesses() {
MonoTime currentTime = MonoTime.currTime();
Duration difference = currentTime - previousProcessTick;
float delta = difference.total!"hnsecs" / 10_000_000.0;
// Temp
debug { import std.stdio : writeln; import std.format; try { writeln(format("%f", delta)); } catch (Exception) {} }
foreach (Node* node ; nodeList) {
node.process(delta);
}
this.previousProcessTick = MonoTime.currTime();
}
void runNodePhysicsProcesses() {
// Schade!
this.previousPhysicsProcessTick = MonoTime.currTime();
}
void drawNodes() {}
string engineVersion() const { return "0.0.0"; }
private IRenderer* renderer;
private MonoTime previousProcessTick;
private MonoTime previousPhysicsProcessTick;
private Node*[] nodeList;
}