2#include "scene/GameObject.h"
15 void Update(
float deltaTime);
21 template<
typename T,
typename =
typename std::enable_if_t<std::is_base_of_v<GameObject, T>>>
29 m_objectsToAdd.push_back({ obj, parent });
45 static std::shared_ptr<Scene>
Load(
const std::string& path);
48 void CollectLightsRecursive(
GameObject* obj, std::vector<LightData>& out);
49 void LoadObject(
const nlohmann::json& jsonObject,
GameObject* parent);
52 std::vector<std::unique_ptr<GameObject>> m_objects;
53 std::vector<std::pair<GameObject*, GameObject*>> m_objectsToAdd;
55 bool m_isUpdating =
false;
std::vector< LightData > CollectLights()
T * CreateObject(const std::string &name, GameObject *parent=nullptr)
void SetMainCamera(GameObject *camera)
static std::shared_ptr< Scene > Load(const std::string &path)
void Update(float deltaTime)
GameObject * CreateObject(const std::string &name, GameObject *parent=nullptr)
bool SetParent(GameObject *obj, GameObject *parent)
GameObject * GetMainCamera()
static void RegisterTypes()