#include "DeerCore/Scripting.h" #include "DeerCore/Scripting/Helpers.h" #include "DeerCore/Scripting/InternalAPI/Engine.h" #include "angelscript.h" namespace Deer { namespace Scripting { extern asIScriptEngine* scriptEngine; void registerEngine(); void registerEngineFunctions(); void registerEngineStructs(); } // namespace Scripting void Scripting::registerEngineFunctions() { REGISTER_GLOBAL_FUNC(scriptEngine, "string getParent(const string&in path)", getParentPath); REGISTER_GLOBAL_FUNC(scriptEngine, "string getParentName(const string&in path)", getParentPathName); REGISTER_GLOBAL_FUNC(scriptEngine, "string getName(const string&in path)", getPathName); REGISTER_GLOBAL_FUNC(scriptEngine, "array@ divide(const string&in path)", dividePath_angelscript); } void Scripting::registerEngineStructs() { AS_CHECK(scriptEngine->RegisterFuncdef("void SimpleFunction()")); AS_CHECK(scriptEngine->RegisterFuncdef("void ReciverFunction(any@)")); AS_CHECK(scriptEngine->RegisterFuncdef("void TransferFunction(any@, any@)")); } void Scripting::registerEngine() { registerEngineStructs(); scriptEngine->SetDefaultNamespace("Path"); registerEngineFunctions(); scriptEngine->SetDefaultNamespace(""); } } // namespace Deer