ScriptSystem.cpp 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. #include "ErrorHandlerLocator.h"
  2. #include "NullSystemObjects.h"
  3. #include "ScriptScene.h"
  4. #include "ScriptSystem.h"
  5. ScriptSystem::ScriptSystem()
  6. {
  7. for(unsigned int i = 0; i < EngineStateType::EngineStateType_NumOfTypes; i++)
  8. m_scriptingScenes[i] = nullptr;
  9. m_systemName = GetString(Systems::Script);
  10. }
  11. ScriptSystem::~ScriptSystem()
  12. {
  13. for(unsigned int i = 0; i < EngineStateType::EngineStateType_NumOfTypes; i++)
  14. if(m_scriptingScenes[i] != nullptr)
  15. delete m_scriptingScenes[i];
  16. }
  17. ErrorCode ScriptSystem::init()
  18. {
  19. ErrorCode returnCode = ErrorCode::Success;
  20. ErrHandlerLoc::get().log(ErrorCode::Initialize_success, ErrorSource::Source_Script);
  21. return returnCode;
  22. }
  23. ErrorCode ScriptSystem::setup(const PropertySet &p_properties)
  24. {
  25. /*for(decltype(p_properties.getNumProperties()) i = 0, size = p_properties.getNumProperties(); i < size; i++)
  26. {
  27. switch(p_properties[i].getPropertyID())
  28. {
  29. }
  30. }*/
  31. return ErrorCode::Success;
  32. }
  33. void ScriptSystem::loadInBackground()
  34. {
  35. }
  36. SystemScene *ScriptSystem::createScene(SceneLoader *p_sceneLoader, EngineStateType p_engineState)
  37. {
  38. if(m_scriptingScenes[p_engineState] == nullptr)
  39. {
  40. // Create new scene
  41. m_scriptingScenes[p_engineState] = new ScriptScene(this, p_sceneLoader);
  42. ErrorCode sceneError = m_scriptingScenes[p_engineState]->init();
  43. // Check if it initialized correctly (cannot continue without the scene)
  44. if(sceneError != ErrorCode::Success)
  45. {
  46. ErrHandlerLoc::get().log(sceneError);
  47. }
  48. }
  49. return m_scriptingScenes[p_engineState];
  50. }
  51. SystemScene *ScriptSystem::getScene(EngineStateType p_engineState)
  52. {
  53. return m_scriptingScenes[p_engineState];
  54. }
  55. void ScriptSystem::deleteScene(EngineStateType p_engineState)
  56. {
  57. if(m_scriptingScenes[p_engineState] != nullptr)
  58. {
  59. delete m_scriptingScenes[p_engineState];
  60. m_scriptingScenes[p_engineState] = nullptr;
  61. }
  62. }