diff --git a/src/client/client.cpp b/src/client/client.cpp index 542195ee1..64bca7b57 100644 --- a/src/client/client.cpp +++ b/src/client/client.cpp @@ -541,7 +541,11 @@ void Client::step(float dtime) */ LocalPlayer *player = m_env.getLocalPlayer(); - m_sscsm_controller->eventOnStep(this, dtime); + { + auto event = std::make_unique(); + event->dtime = dtime; + m_sscsm_controller->runEvent(this, std::move(event)); + } // Step environment (also handles player controls) m_env.step(dtime); diff --git a/src/script/sscsm/sscsm_controller.cpp b/src/script/sscsm/sscsm_controller.cpp index 095726c11..6f4116288 100644 --- a/src/script/sscsm/sscsm_controller.cpp +++ b/src/script/sscsm/sscsm_controller.cpp @@ -60,10 +60,3 @@ void SSCSMController::runEvent(Client *client, std::unique_ptr even answer = handleRequest(client, request.get()); } } - -void SSCSMController::eventOnStep(Client *client, f32 dtime) -{ - auto event = std::make_unique(); - event->dtime = dtime; - runEvent(client, std::move(event)); -} diff --git a/src/script/sscsm/sscsm_controller.h b/src/script/sscsm/sscsm_controller.h index 77a16aa75..e2a7585ae 100644 --- a/src/script/sscsm/sscsm_controller.h +++ b/src/script/sscsm/sscsm_controller.h @@ -32,6 +32,4 @@ public: // Handles requests until the next event is polled void runEvent(Client *client, std::unique_ptr event); - - void eventOnStep(Client *client, f32 dtime); }; diff --git a/src/script/sscsm/sscsm_environment.cpp b/src/script/sscsm/sscsm_environment.cpp index 90bebeccb..8224ffdbb 100644 --- a/src/script/sscsm/sscsm_environment.cpp +++ b/src/script/sscsm/sscsm_environment.cpp @@ -22,7 +22,11 @@ SSCSMEnvironment::~SSCSMEnvironment() = default; void *SSCSMEnvironment::run() { while (true) { - auto next_event = requestPollNextEvent(); + auto next_event = [&]{ + auto request = SSCSMRequestPollNextEvent{}; + auto answer = doRequest(std::move(request)); + return std::move(answer.next_event); + }(); if (dynamic_cast(next_event.get())) { break; @@ -67,18 +71,3 @@ void SSCSMEnvironment::setFatalError(const std::string &reason) request.reason = reason; doRequest(std::move(request)); } - -std::unique_ptr SSCSMEnvironment::requestPollNextEvent() -{ - auto request = SSCSMRequestPollNextEvent{}; - auto answer = doRequest(std::move(request)); - return std::move(answer.next_event); -} - -MapNode SSCSMEnvironment::requestGetNode(v3s16 pos) -{ - auto request = SSCSMRequestGetNode{}; - request.pos = pos; - auto answer = doRequest(std::move(request)); - return answer.node; -} diff --git a/src/script/sscsm/sscsm_environment.h b/src/script/sscsm/sscsm_environment.h index e929fab75..fc072cbac 100644 --- a/src/script/sscsm/sscsm_environment.h +++ b/src/script/sscsm/sscsm_environment.h @@ -50,7 +50,4 @@ public: exchange(serializeSSCSMRequest(std::forward(rq))) ); } - - std::unique_ptr requestPollNextEvent(); - MapNode requestGetNode(v3s16 pos); };