BsScriptEditorApplication.cpp 3.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. #include "BsScriptEditorApplication.h"
  2. #include "BsMonoManager.h"
  3. #include "BsMonoClass.h"
  4. #include "BsMonoMethod.h"
  5. #include "BsMonoUtil.h"
  6. #include "BsEditorApplication.h"
  7. namespace BansheeEngine
  8. {
  9. ScriptEditorApplication::ScriptEditorApplication(MonoObject* instance)
  10. :ScriptObject(instance)
  11. { }
  12. void ScriptEditorApplication::initRuntimeData()
  13. {
  14. metaData.scriptClass->addInternalCall("Internal_GetProjectPath", &ScriptEditorApplication::internal_GetProjectPath);
  15. metaData.scriptClass->addInternalCall("Internal_GetProjectName", &ScriptEditorApplication::internal_GetProjectName);
  16. metaData.scriptClass->addInternalCall("Internal_GetCompilerPath", &ScriptEditorApplication::internal_GetCompilerPath);
  17. metaData.scriptClass->addInternalCall("Internal_GetBuiltinAssemblyPath", &ScriptEditorApplication::internal_GetBuiltinAssemblyPath);
  18. metaData.scriptClass->addInternalCall("Internal_GetScriptAssemblyPath", &ScriptEditorApplication::internal_GetScriptAssemblyPath);
  19. metaData.scriptClass->addInternalCall("Internal_GetFrameworkAssemblyPath", &ScriptEditorApplication::internal_GetFrameworkAssemblyPath);
  20. metaData.scriptClass->addInternalCall("Internal_GetEngineAssemblyName", &ScriptEditorApplication::internal_GetEngineAssemblyName);
  21. metaData.scriptClass->addInternalCall("Internal_GetEditorAssemblyName", &ScriptEditorApplication::internal_GetEditorAssemblyName);
  22. metaData.scriptClass->addInternalCall("Internal_GetScriptGameAssemblyName", &ScriptEditorApplication::internal_GetScriptGameAssemblyName);
  23. metaData.scriptClass->addInternalCall("Internal_GetScriptEditorAssemblyName", &ScriptEditorApplication::internal_GetScriptEditorAssemblyName);
  24. }
  25. MonoString* ScriptEditorApplication::internal_GetProjectPath()
  26. {
  27. Path projectPath = gEditorApplication().getProjectPath();
  28. return MonoUtil::wstringToMono(MonoManager::instance().getDomain(), projectPath.toWString());
  29. }
  30. MonoString* ScriptEditorApplication::internal_GetProjectName()
  31. {
  32. WString projectName = gEditorApplication().getProjectName();
  33. return MonoUtil::wstringToMono(MonoManager::instance().getDomain(), projectName);
  34. }
  35. MonoString* ScriptEditorApplication::internal_GetCompilerPath()
  36. {
  37. Path compilerPath = MonoManager::instance().getCompilerPath();
  38. return MonoUtil::wstringToMono(MonoManager::instance().getDomain(), compilerPath.toWString());
  39. }
  40. MonoString* ScriptEditorApplication::internal_GetBuiltinAssemblyPath()
  41. {
  42. Path assemblyFolder = gEditorApplication().getBuiltinAssemblyFolder();
  43. return MonoUtil::wstringToMono(MonoManager::instance().getDomain(), assemblyFolder.toWString());
  44. }
  45. MonoString* ScriptEditorApplication::internal_GetScriptAssemblyPath()
  46. {
  47. Path assemblyFolder = gEditorApplication().getScriptAssemblyFolder();
  48. return MonoUtil::wstringToMono(MonoManager::instance().getDomain(), assemblyFolder.toWString());
  49. }
  50. MonoString* ScriptEditorApplication::internal_GetFrameworkAssemblyPath()
  51. {
  52. Path assemblyFolder = MonoManager::instance().getFrameworkAssembliesFolder();
  53. return MonoUtil::wstringToMono(MonoManager::instance().getDomain(), assemblyFolder.toWString());
  54. }
  55. MonoString* ScriptEditorApplication::internal_GetEngineAssemblyName()
  56. {
  57. return MonoUtil::wstringToMono(MonoManager::instance().getDomain(), toWString(ENGINE_ASSEMBLY) + L".dll");
  58. }
  59. MonoString* ScriptEditorApplication::internal_GetEditorAssemblyName()
  60. {
  61. return MonoUtil::wstringToMono(MonoManager::instance().getDomain(), toWString(EDITOR_ASSEMBLY) + L".dll");
  62. }
  63. MonoString* ScriptEditorApplication::internal_GetScriptGameAssemblyName()
  64. {
  65. return MonoUtil::wstringToMono(MonoManager::instance().getDomain(), toWString(SCRIPT_GAME_ASSEMBLY) + L".dll");
  66. }
  67. MonoString* ScriptEditorApplication::internal_GetScriptEditorAssemblyName()
  68. {
  69. return MonoUtil::wstringToMono(MonoManager::instance().getDomain(), toWString(SCRIPT_EDITOR_ASSEMBLY) + L".dll");
  70. }
  71. }