MCPcopy Create free account
hub / github.com/FlaxEngine/FlaxEngine / Deserialize

Method Deserialize

Source/Engine/Level/Scene/Scene.cpp:309–350  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

307}
308
309void Scene::Deserialize(DeserializeStream& stream, ISerializeModifier* modifier)
310{
311 // Base
312 Actor::Deserialize(stream, modifier);
313
314 Info.Deserialize(stream, modifier);
315 LightmapsData.LoadLightmaps(Info.Lightmaps);
316 CSGData.DeserializeIfExists(stream, "CSG", modifier);
317
318 // [Deprecated on 13.01.2021, expires on 13.01.2023]
319 if (modifier->EngineBuild <= 6215 && Navigation.Meshes.IsEmpty())
320 {
321 const auto e = SERIALIZE_FIND_MEMBER(stream, "NavMesh");
322 if (e != stream.MemberEnd())
323 {
324 // Upgrade from old single hidden navmesh data into NavMesh actors on a scene
325 MARK_CONTENT_DEPRECATED();
326 AssetReference<RawDataAsset> dataAsset;
327 Serialization::Deserialize(e->value, dataAsset, modifier);
328 const auto settings = NavigationSettings::Get();
329 if (dataAsset && settings->NavMeshes.HasItems())
330 {
331 auto navMesh = New<NavMesh>();
332 navMesh->SetStaticFlags(StaticFlags::FullyStatic);
333 navMesh->SetName(TEXT("NavMesh.") + settings->NavMeshes[0].Name);
334 navMesh->DataAsset = dataAsset;
335 navMesh->Properties = settings->NavMeshes[0];
336 if (IsDuringPlay())
337 {
338 navMesh->SetParent(this, false);
339 }
340 else
341 {
342 navMesh->_parent = this;
343 navMesh->_scene = this;
344 Children.Add(navMesh);
345 navMesh->CreateManaged();
346 }
347 }
348 }
349 }
350}
351
352void Scene::OnDeleteObject()
353{

Callers

nothing calls this directly

Calls 12

LoadLightmapsMethod · 0.80
DeserializeIfExistsMethod · 0.80
MemberEndMethod · 0.80
SetStaticFlagsMethod · 0.80
DeserializeFunction · 0.50
GetFunction · 0.50
IsEmptyMethod · 0.45
HasItemsMethod · 0.45
SetNameMethod · 0.45
SetParentMethod · 0.45
AddMethod · 0.45
CreateManagedMethod · 0.45

Tested by

no test coverage detected