diff --git a/core/src/objects/service/workspace.cpp b/core/src/objects/service/workspace.cpp index 38dba8e..de0d474 100644 --- a/core/src/objects/service/workspace.cpp +++ b/core/src/objects/service/workspace.cpp @@ -78,12 +78,13 @@ void Workspace::InitService() { // physicsWorld->setSleepAngularVelocity(5); physicsWorld->setEventListener(&physicsEventListener); +} - // Sync all parts +void Workspace::OnRun() { + // Make joints for (auto it = this->GetDescendantsStart(); it != this->GetDescendantsEnd(); it++) { - std::shared_ptr obj = *it; - if (!obj->IsA()) continue; - std::shared_ptr part = obj->CastTo().expect(); + if (!it->IsA()) continue; + std::shared_ptr part = it->CastTo().expect(); part->MakeJoints(); } diff --git a/core/src/objects/service/workspace.h b/core/src/objects/service/workspace.h index 4111680..6fa3bec 100644 --- a/core/src/objects/service/workspace.h +++ b/core/src/objects/service/workspace.h @@ -75,6 +75,7 @@ class DEF_INST_SERVICE_(explorer_icon="workspace") Workspace : public Service { void updatePartPhysics(std::shared_ptr part); protected: void InitService() override; + void OnRun() override; bool initialized = false; public: