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

Function FindObjectsForSpawn

Source/Engine/Networking/NetworkReplicator.cpp:915–943  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

913}
914
915void FindObjectsForSpawn(SpawnGroup& group, ChunkedArray<SpawnItem, 256>& spawnItems, ScriptingObject* obj)
916{
917 // Add any registered network objects
918 auto it = Objects.Find(obj->GetID());
919 if (it != Objects.End())
920 {
921 auto& item = it->Item;
922 if (!item.Spawned)
923 {
924 // One of the parents of this object is being spawned so spawn it too
925 item.Spawned = true;
926 auto& spawnItem = spawnItems.AddOne();
927 spawnItem.Object = obj;
928 spawnItem.Targets.Link(item.TargetClientIds);
929 spawnItem.OwnerClientId = item.OwnerClientId;
930 spawnItem.Role = item.Role;
931 group.Items.Add(&spawnItem);
932 }
933 }
934
935 // Iterate over children
936 if (auto* actor = ScriptingObject::Cast<Actor>(obj))
937 {
938 for (auto* script : actor->Scripts)
939 FindObjectsForSpawn(group, spawnItems, script);
940 for (auto* child : actor->Children)
941 FindObjectsForSpawn(group, spawnItems, child);
942 }
943}
944
945FORCE_INLINE void DirtyObjectImpl(NetworkReplicatedObject& item, ScriptingObject* obj)
946{

Callers 1

Calls 6

GetIDMethod · 0.80
AddOneMethod · 0.80
FindMethod · 0.45
EndMethod · 0.45
LinkMethod · 0.45
AddMethod · 0.45

Tested by

no test coverage detected