14 using callback_fn = std::function<void(
Event&)>;
16 template <
class Callable>
19 EventPriority priority = EventPriority::Normal,
20 std::weak_ptr<mod::Mod> mod = mod::NativeMod::current()
23 (callback.emplace(getEventId<Ts>, [fn](
Event& ev) {
static_cast<void>(fn(
static_cast<Ts&
>(ev))); }), ...);
28 void call(
Event& event)
override { callback.at(event.getId())(event); }
30 template <
class Callable>
31 static std::shared_ptr<MultiListener> create(
33 EventPriority priority = EventPriority::Normal,
34 std::weak_ptr<mod::Mod> mod = mod::NativeMod::current()
36 return std::make_shared<MultiListener>(fn, priority, std::move(mod));
40 SmallDenseMap<EventIdView, callback_fn> callback;