#pragma once namespace a8 { class PyEngine; }; namespace f8 { class ScriptEngine : public a8::Singleton { private: ScriptEngine() {}; friend class a8::Singleton; public: void Init(); void UnInit(); void Update(); bool LoadModule(const std::string& module_name); bool LoadString(const std::string& str); std::tuple CallGlobalFunc(const char* func_name, std::initializer_list args); std::tuple CallModuleFunc(const char* module_name, const char* func_name, std::initializer_list args); public: a8::PyEngine *engine_ = nullptr; }; }