|
|
|
@ -19,7 +19,6 @@ namespace lunarium
|
|
|
|
{
|
|
|
|
{
|
|
|
|
CoreAPI* CoreAPI::mpInstance = nullptr;
|
|
|
|
CoreAPI* CoreAPI::mpInstance = nullptr;
|
|
|
|
WrenScript CoreAPI::mScript;
|
|
|
|
WrenScript CoreAPI::mScript;
|
|
|
|
std::vector<CoreAPI::ForeignMethodID> CoreAPI::mForeignMethods;
|
|
|
|
|
|
|
|
CoreAPI& CoreAPI::GetInstance()
|
|
|
|
CoreAPI& CoreAPI::GetInstance()
|
|
|
|
{
|
|
|
|
{
|
|
|
|
if (mpInstance == nullptr)
|
|
|
|
if (mpInstance == nullptr)
|
|
|
|
@ -39,11 +38,9 @@ namespace lunarium
|
|
|
|
OpRes CoreAPI::Initialize(WrenState& sman)
|
|
|
|
OpRes CoreAPI::Initialize(WrenState& sman)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
mCat = sman.GetLogCat();
|
|
|
|
mCat = sman.GetLogCat();
|
|
|
|
// Initialize Foreign methods
|
|
|
|
|
|
|
|
mForeignMethods.push_back({"CoreAPI", "Core", true, "IsKeyDown(_)", (ForeignMethod)&CoreAPI::IsKeyDown});
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// Register callbacks
|
|
|
|
// Register Methods
|
|
|
|
sman.RegisterForeignMethodBinder((FMBinder*)&CoreAPI::ForeignMethodBinder);
|
|
|
|
sman.RegisterForeignMethod({"CoreAPI", "Core", true, "IsKeyDown(_)", (ForeignMethod)&CoreAPI::IsKeyDown});
|
|
|
|
|
|
|
|
|
|
|
|
// Generate Code
|
|
|
|
// Generate Code
|
|
|
|
std::string keys_script = GenerateWrenKeyCodes();
|
|
|
|
std::string keys_script = GenerateWrenKeyCodes();
|
|
|
|
@ -64,22 +61,6 @@ namespace lunarium
|
|
|
|
// return OpRes::Fail("CoreAPI::Initialize not implemented yet!");
|
|
|
|
// return OpRes::Fail("CoreAPI::Initialize not implemented yet!");
|
|
|
|
return OpRes::OK();
|
|
|
|
return OpRes::OK();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
WrenForeignMethodFn CoreAPI::ForeignMethodBinder(WrenVM* vm, const char* module, const char* class_name, bool isStatic, const char* signature)
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
ForeignMethodID FMID = { module, class_name, isStatic, signature };
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
for (auto iter = mForeignMethods.begin(); iter != mForeignMethods.end(); iter++)
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
if (FMID == (*iter))
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
return iter->FM;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
return nullptr;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
std::string CoreAPI::GenerateWrenKeyCodes()
|
|
|
|
std::string CoreAPI::GenerateWrenKeyCodes()
|
|
|
|
{
|
|
|
|
{
|
|
|
|
|