aboutsummaryrefslogtreecommitdiff
path: root/source/World.hpp
blob: ab33ecb7915f158d114e42e873c810cd68567f86 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#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; }
};