MCPcopy Create free account
hub / github.com/SakuraEngine/SakuraEngine / new_entities

Method new_entities

modules/engine/runtime/src/ecs/entities.cpp:35–61  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

33}
34
35void entity_registry_t::new_entities(sugoi_entity_t* dst, EIndex count)
36{
37 SMutexLock lock(mutex.mMutex);
38 EIndex i = 0;
39 // recycle entities
40
41 auto fn = (EIndex)freeEntries.size();
42 auto rn = std::min((EIndex)freeEntries.size(), count);
43 forloop (j, 0, rn)
44 {
45 auto id = freeEntries[fn - rn + j];
46 dst[i] = e_version(id, entries[id].version);
47 i++;
48 }
49 freeEntries.resize_default(fn - rn);
50 if (i == count)
51 return;
52 // new entities
53 EIndex newId = static_cast<EIndex>(entries.size());
54 entries.resize_default(entries.size() + count - i);
55 while (i < count)
56 {
57 dst[i] = e_version(newId, entries[newId].version);
58 i++;
59 newId++;
60 }
61}
62
63void entity_registry_t::free_entities(const sugoi_entity_t* dst, EIndex count)
64{

Callers 4

_GetOrCreateRecordMethod · 0.80
instantiate_prefabMethod · 0.80
mergeMethod · 0.80
add_resourceMethod · 0.80

Calls 3

minFunction · 0.50
sizeMethod · 0.45
resize_defaultMethod · 0.45

Tested by

no test coverage detected