This commit is contained in:
2026-07-20 14:49:38 +02:00
parent f7ad5acd33
commit 6f1ca8fc3b
7 changed files with 104 additions and 9 deletions

View File

@@ -0,0 +1,16 @@
#include <plugins/PluginsManager.hpp>
#include <world/level/Level.h>
PluginsManager::PluginsManager(Level& level) : m_level(level) {
m_lua.open_libraries(sol::lib::base);
registerTypes();
}
void PluginsManager::registerTypes() {
m_lua.set_function("subscribe", &PluginsManager::subscribe);
}
void PluginsManager::subscribe(std::string event, sol::function function) {
m_callbacks.at(event).push_back(function);
}

View File

@@ -0,0 +1,20 @@
#pragma once
#include <unordered_map>
#include <sol/sol.hpp>
#include <vector>
class Level;
class PluginsManager {
public:
PluginsManager(Level& level);
void registerTypes();
void subscribe(std::string event, sol::function function);
private:
std::unordered_map<std::string, std::vector<sol::function>> m_callbacks;
sol::state m_lua;
Level& m_level;
};