diff options
author | Loek Le Blansch <loek@pipeframe.xyz> | 2024-11-04 08:28:18 +0100 |
---|---|---|
committer | Loek Le Blansch <loek@pipeframe.xyz> | 2024-11-04 08:28:18 +0100 |
commit | 06f65659fc6ffde7cabd2135040cbfbf089e5a24 (patch) | |
tree | e3570bea52b87b6919550ee81d17927ccbc11cc5 /mwe/ecs-homemade/src | |
parent | 128969619a22dfc17a9ea35335c0d21c6ad0c954 (diff) | |
parent | 6aa8fdd04728b6a499f526de727514ae3d0490b4 (diff) |
merge `origin/master` into `master`
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) { |