fix ServerMainloop timer
This commit is contained in:
parent
8a4f1e16f3
commit
008e11b4b7
@ -40,13 +40,21 @@ void ServerMainloop::run() {
|
|||||||
double targetDelta = 1.0 / static_cast<double>(TPS);
|
double targetDelta = 1.0 / static_cast<double>(TPS);
|
||||||
double delta = targetDelta;
|
double delta = targetDelta;
|
||||||
auto begin = system_clock::now();
|
auto begin = system_clock::now();
|
||||||
|
auto startupTime = begin;
|
||||||
while (process->isActive()) {
|
while (process->isActive()) {
|
||||||
if (engine.isQuitSignal()) {
|
if (engine.isQuitSignal()) {
|
||||||
process->terminate();
|
process->terminate();
|
||||||
logger.info() << "script has been terminated due to quit signal";
|
logger.info() << "script has been terminated due to quit signal";
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
time.step(delta);
|
if (coreParams.testMode) {
|
||||||
|
time.step(delta);
|
||||||
|
} else {
|
||||||
|
auto now = system_clock::now();
|
||||||
|
time.update(
|
||||||
|
duration_cast<microseconds>(now - startupTime).count() / 1e6);
|
||||||
|
delta = time.getDelta();
|
||||||
|
}
|
||||||
process->update();
|
process->update();
|
||||||
if (controller) {
|
if (controller) {
|
||||||
controller->getLevel()->getWorld()->updateTimers(delta);
|
controller->getLevel()->getWorld()->updateTimers(delta);
|
||||||
@ -57,8 +65,6 @@ void ServerMainloop::run() {
|
|||||||
auto end = system_clock::now();
|
auto end = system_clock::now();
|
||||||
platform::sleep(targetDelta * 1000 -
|
platform::sleep(targetDelta * 1000 -
|
||||||
duration_cast<microseconds>(end - begin).count() / 1000);
|
duration_cast<microseconds>(end - begin).count() / 1000);
|
||||||
end = system_clock::now();
|
|
||||||
delta = duration_cast<microseconds>(end - begin).count() / 1e6;
|
|
||||||
begin = end;
|
begin = end;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -150,7 +150,9 @@ void CameraControl::switchCamera() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void CameraControl::update(PlayerInput input, float delta, Chunks& chunks) {
|
void CameraControl::update(
|
||||||
|
PlayerInput input, float delta, const Chunks& chunks
|
||||||
|
) {
|
||||||
offset = glm::vec3(0.0f, 0.0f, 0.0f);
|
offset = glm::vec3(0.0f, 0.0f, 0.0f);
|
||||||
|
|
||||||
if (auto hitbox = player.getHitbox()) {
|
if (auto hitbox = player.getHitbox()) {
|
||||||
|
|||||||
@ -41,7 +41,7 @@ class CameraControl {
|
|||||||
public:
|
public:
|
||||||
CameraControl(Player& player, const CameraSettings& settings);
|
CameraControl(Player& player, const CameraSettings& settings);
|
||||||
void updateMouse(PlayerInput& input);
|
void updateMouse(PlayerInput& input);
|
||||||
void update(PlayerInput input, float delta, Chunks& chunks);
|
void update(PlayerInput input, float delta, const Chunks& chunks);
|
||||||
void refresh();
|
void refresh();
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user