mirror of
https://github.com/Jous99/F4MP.git
synced 2026-01-12 17:10:54 +01:00
42 lines
1.1 KiB
C++
42 lines
1.1 KiB
C++
#include <sol/sol.hpp>
|
|
|
|
template <typename... Args>
|
|
std::tuple<bool, String> ScriptService::CallCancelableEvent(const String& acName, Args&&... args) noexcept
|
|
{
|
|
m_eventCanceled = false;
|
|
|
|
auto& callbacks = m_callbacks[acName];
|
|
|
|
for (auto& callback : callbacks)
|
|
{
|
|
sol::protected_function pf{callback};
|
|
auto result = pf(std::forward<Args>(args)...);
|
|
|
|
if (!result.valid())
|
|
{
|
|
sol::error err = result;
|
|
spdlog::error(err.what());
|
|
}
|
|
|
|
if (m_eventCanceled == true)
|
|
return std::make_tuple(true, m_cancelReason);
|
|
}
|
|
|
|
return std::make_tuple(false, "");
|
|
}
|
|
|
|
template <typename... Args> void ScriptService::CallEvent(const String& acName, Args&&... args) noexcept
|
|
{
|
|
auto& callbacks = m_callbacks[acName];
|
|
|
|
for (auto& callback : callbacks)
|
|
{
|
|
sol::protected_function pf{callback};
|
|
auto result = pf(std::forward<Args>(args)...);
|
|
if (!result.valid())
|
|
{
|
|
sol::error err = result;
|
|
spdlog::error(err.what());
|
|
}
|
|
}
|
|
}
|