forked from Kolyah35/minecraft-pe-0.6.1
begin
This commit is contained in:
16
src/plugins/PluginsManager.cpp
Normal file
16
src/plugins/PluginsManager.cpp
Normal 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);
|
||||
}
|
||||
20
src/plugins/PluginsManager.hpp
Normal file
20
src/plugins/PluginsManager.hpp
Normal 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;
|
||||
};
|
||||
Reference in New Issue
Block a user