Program Listing for File scene_loader.h¶
↰ Return to documentation for file (rootex/framework/scene_loader.h
)
#pragma once
#include "common/common.h"
#include "event_manager.h"
class Scene;
class SceneLoader
{
EventBinder<SceneLoader> m_Binder;
Scene* m_CurrentScene = nullptr;
Ptr<Scene> m_RootScene;
Vector<String> m_SceneArguments;
SceneLoader();
void beginSystems();
void endSystems();
void setArguments(const Vector<String>& arguments) { m_SceneArguments = arguments; }
Vector<String> findResourcePaths(const JSON::json& sceneJSON);
Variant deleteScene(const Event* event);
public:
static SceneLoader* GetSingleton();
int preloadScene(const String& sceneFile, Atomic<int>& progress);
void loadPreloadedScene(const String& sceneFile, const Vector<String>& arguments);
void loadScene(const String& sceneFile, const Vector<String>& arguments);
bool saveScene(Scene* scene);
bool saveSceneAtFile(Scene* scene, const String& filePath);
void destroyAllScenes();
Scene* getCurrentScene() const { return m_CurrentScene; }
Scene* getRootScene() const { return m_RootScene.get(); }
Ptr<Scene>& getRootSceneEx() { return m_RootScene; }
Vector<String> getArguments() { return m_SceneArguments; }
};