blob: 3dd082f830e88d7c9ceb247b156d67c02688902c (
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
32
33
34
35
36
37
38
39
|
#include <iostream>
#include <vector>
#include <cstdint>
#include "ComponentManager.h"
#include "GameObjectMax.h"
#include "Components.h"
int main() {
GameObject gameObect0(0, "Name: 0", "Tag: 0", 0); //Entity 0
GameObject gameObect1(1, "Name: 1", "Tag: 1", 1); //Entity 1
Sprite sprite0;
Rigidbody rigidbody0(1, 2, 3);
gameObect0.AddComponent<Sprite>(&sprite0); //Add a sprite to entity0
gameObect0.AddComponent<Rigidbody>(&rigidbody0); //Also add a rigidbody to entity0
Rigidbody rigidbody1(4, 5, 6);
gameObect1.AddComponent<Rigidbody>(&rigidbody1); //Only add a rigidbody to entity1
//The entities are now initialized
//Now I will demonstrate some ways of retreiving/getting components
Rigidbody* rigidbodyOfEntity0 = ComponentManager::GetInstance().GetComponent<Rigidbody>(gameObect0.mId); //Get the pointer to the Rigidbody component of entity 0
std::cout << "rigidbodyOfEntity0: " << rigidbodyOfEntity0->mMass << " " << rigidbodyOfEntity0->mGravityScale << " " << rigidbodyOfEntity0->mBodyType << std::endl;
std::cout << std::endl;
std::vector<std::uint32_t> rigidbodyIDs = ComponentManager::GetInstance().GetAllComponentIDs<Rigidbody>(); //Get all the IDs that have a Rigidbody component
for(std::uint32_t ID : rigidbodyIDs) {
std::cout << "Rigidbody ID: " << ID << std::endl;
}
std::cout << std::endl;
std::vector<Rigidbody*> rigidbodyComponents = ComponentManager::GetInstance().GetAllComponentPointer<Rigidbody>(); //Get all the pointers to the Rigidbody component(s)
for(Rigidbody* rigidbody : rigidbodyComponents) {
std::cout << "rigidbody: " << rigidbody->mMass << " " << rigidbody->mGravityScale << " " << rigidbody->mBodyType << std::endl;
}
std::cout << std::endl;
}
|