1
0
Fork 0
mirror of https://github.com/luanti-org/luanti.git synced 2025-06-27 16:36:03 +00:00

remove request* and event* functions

rationale:
* it's just boilerplate, as these just fill out the structs. can also be done at call site
* they are usually only called at one place
* it would lead to many includes (or at least forward defs) in sscsm_controller.h and
  sscsm_environment.h
This commit is contained in:
Desour 2025-03-24 12:35:53 +01:00
parent 6f03d072ec
commit 272cd207b7
5 changed files with 10 additions and 29 deletions

View file

@ -541,7 +541,11 @@ void Client::step(float dtime)
*/ */
LocalPlayer *player = m_env.getLocalPlayer(); LocalPlayer *player = m_env.getLocalPlayer();
m_sscsm_controller->eventOnStep(this, dtime); {
auto event = std::make_unique<SSCSMEventOnStep>();
event->dtime = dtime;
m_sscsm_controller->runEvent(this, std::move(event));
}
// Step environment (also handles player controls) // Step environment (also handles player controls)
m_env.step(dtime); m_env.step(dtime);

View file

@ -60,10 +60,3 @@ void SSCSMController::runEvent(Client *client, std::unique_ptr<ISSCSMEvent> even
answer = handleRequest(client, request.get()); answer = handleRequest(client, request.get());
} }
} }
void SSCSMController::eventOnStep(Client *client, f32 dtime)
{
auto event = std::make_unique<SSCSMEventOnStep>();
event->dtime = dtime;
runEvent(client, std::move(event));
}

View file

@ -32,6 +32,4 @@ public:
// Handles requests until the next event is polled // Handles requests until the next event is polled
void runEvent(Client *client, std::unique_ptr<ISSCSMEvent> event); void runEvent(Client *client, std::unique_ptr<ISSCSMEvent> event);
void eventOnStep(Client *client, f32 dtime);
}; };

View file

@ -22,7 +22,11 @@ SSCSMEnvironment::~SSCSMEnvironment() = default;
void *SSCSMEnvironment::run() void *SSCSMEnvironment::run()
{ {
while (true) { 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<SSCSMEventTearDown *>(next_event.get())) { if (dynamic_cast<SSCSMEventTearDown *>(next_event.get())) {
break; break;
@ -67,18 +71,3 @@ void SSCSMEnvironment::setFatalError(const std::string &reason)
request.reason = reason; request.reason = reason;
doRequest(std::move(request)); doRequest(std::move(request));
} }
std::unique_ptr<ISSCSMEvent> 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;
}

View file

@ -50,7 +50,4 @@ public:
exchange(serializeSSCSMRequest(std::forward<RQ>(rq))) exchange(serializeSSCSMRequest(std::forward<RQ>(rq)))
); );
} }
std::unique_ptr<ISSCSMEvent> requestPollNextEvent();
MapNode requestGetNode(v3s16 pos);
}; };