aboutsummaryrefslogtreecommitdiff
path: root/mwe/ecs-homemade/src/main.cpp
diff options
context:
space:
mode:
authorMax-001 <80035972+Max-001@users.noreply.github.com>2024-09-25 21:08:54 +0200
committerMax-001 <80035972+Max-001@users.noreply.github.com>2024-09-25 21:08:54 +0200
commit5458abaca5f01a4d34bb55b1b44dc4fb4e9890be (patch)
treea23e35dc95c69aced7d4e16550a2b4fff8507a6c /mwe/ecs-homemade/src/main.cpp
parent918392ec503a66e369fffa3a5a49c8afccf96a62 (diff)
Made a homemade ECS
Diffstat (limited to 'mwe/ecs-homemade/src/main.cpp')
-rw-r--r--mwe/ecs-homemade/src/main.cpp36
1 files changed, 35 insertions, 1 deletions
diff --git a/mwe/ecs-homemade/src/main.cpp b/mwe/ecs-homemade/src/main.cpp
index f8b829c..3dd082f 100644
--- a/mwe/ecs-homemade/src/main.cpp
+++ b/mwe/ecs-homemade/src/main.cpp
@@ -1,5 +1,39 @@
#include <iostream>
+#include <vector>
+#include <cstdint>
+
+#include "ComponentManager.h"
+#include "GameObjectMax.h"
+#include "Components.h"
int main() {
- std::cout << "Hello, world!" << std::endl;
+ 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;
}