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

Method load

src/Core/Scene/Scene.cpp:253–376  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

251 }
252
253 void Scene::load(vili::node& data)
254 {
255 if (!data["Meta"].is_null())
256 {
257 vili::node& meta = data.at("Meta");
258 m_levelName = meta.at("name");
259 }
260 else
261 throw Exceptions::MissingSceneFileBlock(m_levelFileName, "Meta", EXC_INFO);
262
263 if (data.contains("View"))
264 {
265 vili::node& view = data.at("View");
266 m_camera.setSize(view.at("size"));
267 double x = 0.f;
268 double y = 0.f;
269 Transform::Units unit = Transform::Units::SceneUnits;
270 if (view.contains("position"))
271 {
272 vili::node& position = view.at("position");
273 if (position.contains("x"))
274 {
275 x = position["x"];
276 }
277 if (position.contains("y"))
278 {
279 y = position["y"];
280 }
281 if (position.contains("unit"))
282 {
283 unit = Transform::stringToUnits(position.at("unit"));
284 }
285 }
286 m_cameraInitialPosition = Transform::UnitVector(x, y, unit);
287 m_cameraInitialReferential = Transform::Referential::TopLeft;
288 if (view.contains("referential"))
289 {
290 m_cameraInitialReferential
291 = Transform::Referential::FromString(view.at("referential"));
292 }
293 Debug::Log->debug("<Scene> Set Camera Position at : {0}, {1} using "
294 "Referential {2}",
295 m_cameraInitialPosition.x, m_cameraInitialPosition.y,
296 m_cameraInitialReferential.toString());
297 m_camera.setPosition(m_cameraInitialPosition, m_cameraInitialReferential);
298 }
299 else
300 throw Exceptions::MissingSceneFileBlock(m_levelFileName, "View", EXC_INFO);
301
302 if (!data["Sprites"].is_null())
303 {
304 for (auto [spriteId, sprite] : data.at("Sprites").items())
305 {
306 this->createSprite(spriteId).load(sprite);
307 }
308 }
309
310 this->reorganizeLayers();

Callers 5

loadFromFileMethod · 0.95
LoadClassAnimatorFunction · 0.45
LoadClassAudioManagerFunction · 0.45
initConfigMethod · 0.45
getFontMethod · 0.45

Calls 15

reorganizeLayersMethod · 0.95
doesGameObjectExistsMethod · 0.95
stringToUnitsFunction · 0.85
UnitVectorClass · 0.85
PathClass · 0.85
containsMethod · 0.80
debugMethod · 0.80
getEnvironmentMethod · 0.80
doesHaveScriptEngineMethod · 0.80

Tested by

no test coverage detected