diff options
| author | Loek Le Blansch <loek@pipeframe.xyz> | 2024-10-06 13:22:10 +0200 | 
|---|---|---|
| committer | Loek Le Blansch <loek@pipeframe.xyz> | 2024-10-06 13:22:10 +0200 | 
| commit | 7c9d3452c99fcb89ea6df55755e90f741b23cf10 (patch) | |
| tree | 93fab445cd4c0ebb392c2f4def2a0bd32d2709d2 /mwe/ecs-homemade/src | |
| parent | 02d658a7ed92bacfdaed587102f0d2e5f6c5dc01 (diff) | |
copy homemade ECS to crepe + correct code style
Diffstat (limited to 'mwe/ecs-homemade/src')
| -rw-r--r-- | mwe/ecs-homemade/src/ComponentManager.cpp | 20 | ||||
| -rw-r--r-- | mwe/ecs-homemade/src/Components.cpp | 3 | ||||
| -rw-r--r-- | mwe/ecs-homemade/src/GameObjectMax.cpp | 4 | ||||
| -rw-r--r-- | mwe/ecs-homemade/src/main.cpp | 35 | 
4 files changed, 36 insertions, 26 deletions
| diff --git a/mwe/ecs-homemade/src/ComponentManager.cpp b/mwe/ecs-homemade/src/ComponentManager.cpp index 16cc2b6..536c152 100644 --- a/mwe/ecs-homemade/src/ComponentManager.cpp +++ b/mwe/ecs-homemade/src/ComponentManager.cpp @@ -2,20 +2,22 @@  ComponentManager ComponentManager::mInstance; -ComponentManager& ComponentManager::GetInstance() { -	return mInstance; -} +ComponentManager & ComponentManager::GetInstance() { return mInstance; }  ComponentManager::ComponentManager() {}  void ComponentManager::DeleteAllComponentsOfId(std::uint32_t id) { -    for(auto& [type, componentArray] : mComponents) {	//Loop through all the types (in the unordered_map<>) -        if (id < componentArray.size()) {	//Make sure that the id (that we are looking for) is within the boundaries of the vector<> -            componentArray[id].clear();	//Clear the components at this specific id -        } -    } +	for (auto & [type, componentArray] : +		 mComponents) { //Loop through all the types (in the unordered_map<>) +		if (id +			< componentArray +				  .size()) { //Make sure that the id (that we are looking for) is within the boundaries of the vector<> +			componentArray[id] +				.clear(); //Clear the components at this specific id +		} +	}  }  void ComponentManager::DeleteAllComponents() { -	mComponents.clear();	//Clear the whole unordered_map<> +	mComponents.clear(); //Clear the whole unordered_map<>  } diff --git a/mwe/ecs-homemade/src/Components.cpp b/mwe/ecs-homemade/src/Components.cpp index 69b5eaa..c8347b3 100644 --- a/mwe/ecs-homemade/src/Components.cpp +++ b/mwe/ecs-homemade/src/Components.cpp @@ -5,6 +5,7 @@ Component::Component() : mActive(true) {}  Sprite::Sprite(std::string path) : mPath(path) {} -Rigidbody::Rigidbody(int mass, int gravityScale, int bodyType) : mMass(mass), mGravityScale(gravityScale), mBodyType(bodyType) {} +Rigidbody::Rigidbody(int mass, int gravityScale, int bodyType) +	: mMass(mass), mGravityScale(gravityScale), mBodyType(bodyType) {}  Colider::Colider(int size) : mSize(size) {} diff --git a/mwe/ecs-homemade/src/GameObjectMax.cpp b/mwe/ecs-homemade/src/GameObjectMax.cpp index 62c41de..b0c5af7 100644 --- a/mwe/ecs-homemade/src/GameObjectMax.cpp +++ b/mwe/ecs-homemade/src/GameObjectMax.cpp @@ -2,4 +2,6 @@  #include "ComponentManager.h" -GameObject::GameObject(std::uint32_t id, std::string name, std::string tag, int layer) : mId(id), mName(name), mTag(tag), mActive(true), mLayer(layer) {} +GameObject::GameObject(std::uint32_t id, std::string name, std::string tag, +					   int layer) +	: mId(id), mName(name), mTag(tag), mActive(true), mLayer(layer) {} diff --git a/mwe/ecs-homemade/src/main.cpp b/mwe/ecs-homemade/src/main.cpp index 41f7d6d..330e154 100644 --- a/mwe/ecs-homemade/src/main.cpp +++ b/mwe/ecs-homemade/src/main.cpp @@ -1,54 +1,59 @@ +#include <chrono> +#include <cstdint>  #include <iostream>  #include <vector> -#include <cstdint> -#include <chrono>  #include "ComponentManager.h" -#include "GameObjectMax.h"  #include "Components.h" +#include "GameObjectMax.h"  int main() {  	auto startAdding = std::chrono::high_resolution_clock::now(); -	GameObject* gameObject[100000]; +	GameObject * gameObject[100000]; -	for(int i = 0; i < 100000; ++i) { +	for (int i = 0; i < 100000; ++i) {  		gameObject[i] = new GameObject(i, "Name", "Tag", 0);  		gameObject[i]->AddComponent<Sprite>("C:/Test");  		gameObject[i]->AddComponent<Rigidbody>(0, 0, i);  		gameObject[i]->AddComponent<Colider>(i);  	} -	 +  	auto stopAdding = std::chrono::high_resolution_clock::now();  	//This is what systems would do: -	std::vector<std::reference_wrapper<Sprite>> sprites = ComponentManager::GetInstance().GetComponentsByType<Sprite>(); -	for(Sprite& sprite : sprites) { +	std::vector<std::reference_wrapper<Sprite>> sprites +		= ComponentManager::GetInstance().GetComponentsByType<Sprite>(); +	for (Sprite & sprite : sprites) {  		//std::cout << sprite.get().mPath << std::endl;  	}  	//std::cout << std::endl; -	std::vector<std::reference_wrapper<Rigidbody>> rigidBodies = ComponentManager::GetInstance().GetComponentsByType<Rigidbody>(); -	for(Rigidbody& rigidbody : rigidBodies) { +	std::vector<std::reference_wrapper<Rigidbody>> rigidBodies +		= ComponentManager::GetInstance().GetComponentsByType<Rigidbody>(); +	for (Rigidbody & rigidbody : rigidBodies) {  		//std::cout << rigidbody.get().mMass << " " << rigidbody.get().mGravityScale << " " << rigidbody.get().mBodyType << std::endl;  	}  	//std::cout << std::endl; -	std::vector<std::reference_wrapper<Colider>> coliders = ComponentManager::GetInstance().GetComponentsByType<Colider>(); -	for(Colider& colider : coliders) { +	std::vector<std::reference_wrapper<Colider>> coliders +		= ComponentManager::GetInstance().GetComponentsByType<Colider>(); +	for (Colider & colider : coliders) {  		//std::cout << colider.get().mSize << std::endl;  	}  	auto stopLooping = std::chrono::high_resolution_clock::now();  	for (int i = 0; i < 100000; ++i) { -    	delete gameObject[i]; +		delete gameObject[i];  	} -	auto Addtime = std::chrono::duration_cast<std::chrono::microseconds>(stopAdding - startAdding); -	auto LoopTime = std::chrono::duration_cast<std::chrono::microseconds>(stopLooping - stopAdding); +	auto Addtime = std::chrono::duration_cast<std::chrono::microseconds>( +		stopAdding - startAdding); +	auto LoopTime = std::chrono::duration_cast<std::chrono::microseconds>( +		stopLooping - stopAdding);  	std::cout << "AddTime: " << Addtime.count() << " us" << std::endl;  	std::cout << "LoopTime: " << LoopTime.count() << " us" << std::endl;  } |