-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathGameObjectManager.h
More file actions
53 lines (45 loc) · 1.28 KB
/
GameObjectManager.h
File metadata and controls
53 lines (45 loc) · 1.28 KB
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
#pragma once
#include <iostream>
#include <vector>
#include <string>
#include <unordered_map>
#include "AGameObject.h"
class GameObjectManager
{
public:
typedef std::string String;
typedef std::vector<AGameObject*> List;
typedef std::unordered_map<String, AGameObject*> HashTable;
enum PrimitiveType {
TEXTURED_CUBE,
CUBE,
PLANE,
SPHERE,
PHYSICS_CUBE,
PHYSICS_PLANE
};
static GameObjectManager* getInstance();
static void initialize();
static void destroy();
AGameObject* findObjectByName(String name);
List getAllObjects();
int activeObjects();
void updateAll();
void renderAll(int viewportWidth, int viewportHeight);
void addObject(AGameObject* gameObject);
void createObject(PrimitiveType type);
void deleteObject(AGameObject* gameObject);
void deleteObjectByName(String name);
void setSelectedObject(String name);
void setSelectedObject(AGameObject* gameObject);
AGameObject* getSelectedObject();
private:
GameObjectManager();
~GameObjectManager();
GameObjectManager(GameObjectManager const&) {}; // copy constructor is private
GameObjectManager& operator=(GameObjectManager const&) {}; // assignment operator is private*/
static GameObjectManager* sharedInstance;
HashTable gameObjectMap;
List gameObjectList;
AGameObject* selectedObject = NULL;
};