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:
parent
6f03d072ec
commit
272cd207b7
5 changed files with 10 additions and 29 deletions
|
@ -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);
|
||||||
|
|
|
@ -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));
|
|
||||||
}
|
|
||||||
|
|
|
@ -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);
|
|
||||||
};
|
};
|
||||||
|
|
|
@ -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;
|
|
||||||
}
|
|
||||||
|
|
|
@ -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);
|
|
||||||
};
|
};
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue