MCPcopy Create free account
hub / github.com/ObEngine/ObEngine / clear

Method clear

src/Core/Scene/Scene.cpp:146–189  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

144 }
145
146 void Scene::clear()
147 {
148 if (m_resources)
149 {
150 m_resources->clean();
151 }
152 for (auto& gameObject : m_gameObjectArray)
153 {
154 if (!gameObject->isPermanent())
155 {
156 Debug::Log->debug("<Scene> Deleting GameObject {0}", gameObject->getId());
157 gameObject->deleteObject();
158 }
159 }
160 Debug::Log->debug("<Scene> Cleaning GameObject Array");
161 m_gameObjectArray.erase(
162 std::remove_if(m_gameObjectArray.begin(), m_gameObjectArray.end(),
163 [](const std::unique_ptr<Script::GameObject>& ptr) {
164 return (!ptr->isPermanent());
165 }),
166 m_gameObjectArray.end());
167 Debug::Log->debug("<Scene> Cleaning Sprite Array");
168 m_spriteArray.erase(std::remove_if(m_spriteArray.begin(), m_spriteArray.end(),
169 [this](const std::unique_ptr<Graphics::Sprite>& ptr) {
170 if (!ptr->getParentId().empty()
171 && this->doesGameObjectExists(ptr->getParentId()))
172 return false;
173 return true;
174 }),
175 m_spriteArray.end());
176 Debug::Log->debug("<Scene> Cleaning Sprite Array");
177 m_colliderArray.erase(
178 std::remove_if(m_colliderArray.begin(), m_colliderArray.end(),
179 [this](const std::unique_ptr<Collision::PolygonalCollider>& ptr) {
180 if (!ptr->getParentId().empty()
181 && this->doesGameObjectExists(ptr->getParentId()))
182 return false;
183 return true;
184 }),
185 m_colliderArray.end());
186 Debug::Log->debug("<Scene> Clearing MapScript Array");
187 m_scriptArray.clear();
188 Debug::Log->debug("<Scene> Scene Cleared !");
189 }
190
191 vili::node Scene::dump() const
192 {

Callers 5

loadFromFileMethod · 0.95
ClearMethod · 0.45
cleanMethod · 0.45
renderMethod · 0.45
clearTagsMethod · 0.45

Calls 11

doesGameObjectExistsMethod · 0.95
isPermanentMethod · 0.80
debugMethod · 0.80
getIdMethod · 0.80
deleteObjectMethod · 0.80
cleanMethod · 0.45
eraseMethod · 0.45
beginMethod · 0.45
endMethod · 0.45
emptyMethod · 0.45
getParentIdMethod · 0.45

Tested by

no test coverage detected