diff options
| author | Loek Le Blansch <loek@pipeframe.xyz> | 2024-10-18 14:56:05 +0200 | 
|---|---|---|
| committer | Loek Le Blansch <loek@pipeframe.xyz> | 2024-10-18 14:56:05 +0200 | 
| commit | 0fdebc7d7a143ad2b9b5ed6a596bf4bb1f0f7d7f (patch) | |
| tree | 7400cea54bc40b01f64cf91c26a4ae20980a64cc /mwe/ecs-homemade/src | |
| parent | a2c719948ff8af9abe267c4d1c9b16cd1e2fb317 (diff) | |
| parent | 77555730e3ddb811b9ce8470659663e3f1573de2 (diff) | |
merge master into loek/scripts
Diffstat (limited to 'mwe/ecs-homemade/src')
| -rw-r--r-- | mwe/ecs-homemade/src/Components.cpp | 12 | ||||
| -rw-r--r-- | mwe/ecs-homemade/src/main.cpp | 16 | 
2 files changed, 28 insertions, 0 deletions
| diff --git a/mwe/ecs-homemade/src/Components.cpp b/mwe/ecs-homemade/src/Components.cpp index c8347b3..de8753e 100644 --- a/mwe/ecs-homemade/src/Components.cpp +++ b/mwe/ecs-homemade/src/Components.cpp @@ -9,3 +9,15 @@ Rigidbody::Rigidbody(int mass, int gravityScale, int bodyType)  	: mMass(mass), mGravityScale(gravityScale), mBodyType(bodyType) {}  Colider::Colider(int size) : mSize(size) {} + +void BehaviourScript::onStart() { +	if (behaviour) { +		behaviour->onStart(); +	} +} + +void BehaviourScript::onUpdate() { +	if (behaviour) { +		behaviour->onUpdate(); +	} +} diff --git a/mwe/ecs-homemade/src/main.cpp b/mwe/ecs-homemade/src/main.cpp index 330e154..70c5d2c 100644 --- a/mwe/ecs-homemade/src/main.cpp +++ b/mwe/ecs-homemade/src/main.cpp @@ -7,6 +7,13 @@  #include "Components.h"  #include "GameObjectMax.h" +class myScript { +public: +	void onStart() { std::cout << "In onStart" << std::endl; } + +	void onUpdate() { std::cout << "In onUpdate" << std::endl; } +}; +  int main() {  	auto startAdding = std::chrono::high_resolution_clock::now(); @@ -18,6 +25,7 @@ int main() {  		gameObject[i]->AddComponent<Sprite>("C:/Test");  		gameObject[i]->AddComponent<Rigidbody>(0, 0, i);  		gameObject[i]->AddComponent<Colider>(i); +		gameObject[i]->AddComponent<BehaviourScript>().addScript<myScript>();  	}  	auto stopAdding = std::chrono::high_resolution_clock::now(); @@ -44,6 +52,14 @@ int main() {  		//std::cout << colider.get().mSize << std::endl;  	} +	std::vector<std::reference_wrapper<BehaviourScript>> scripts +		= ComponentManager::GetInstance() +			  .GetComponentsByType<BehaviourScript>(); +	for (BehaviourScript & script : scripts) { +		//script.onStart(); +		//script.onUpdate(); +	} +  	auto stopLooping = std::chrono::high_resolution_clock::now();  	for (int i = 0; i < 100000; ++i) { |