#pragma once #include "GameObject.hpp" class GameWorld { private: class RenderData; RenderData* mRender; GameObject mRoot; bool mAwakened = false; public: GameWorld(); ~GameWorld(); GameWorld(const GameWorld&) = delete; GameWorld& operator=(const GameWorld&) = delete; GameWorld(GameWorld&&) = default; GameWorld& operator=(GameWorld&&) = default; bool IsAwake() const { return mAwakened; } void Awaken(); void Resleep(); void Update(); void Draw(); const GameObject& GetRoot() const { return mRoot; } GameObject& GetRoot() { return mRoot; } };