static unsafe void WriteArchetypes(YamlWriter writer, EntityManager entityManager) { var entityComponentStore = entityManager.EntityComponentStore; GetAllArchetypes(entityComponentStore, out var archetypeToIndex, out var archetypeArray); using (writer.WriteCollection(k_ArchetypesCollectionTag)) { foreach (var archetype in archetypeArray) { using (writer.WriteCollection(k_ArchetypeCollectionTag)) { var a = *archetype.Archetype; writer.WriteKeyValue("name", a.ToString()) .WriteKeyValue(nameof(Archetype.TypesCount), a.TypesCount) .WriteKeyValue(nameof(EntityArchetype.ChunkCount), archetype.ChunkCount) .WriteKeyValue(nameof(EntityArchetype.ChunkCapacity), archetype.ChunkCapacity); var props = new List <string>(); if (a.SystemStateCleanupComplete) { props.Add(nameof(Archetype.SystemStateCleanupComplete)); } if (a.SystemStateCleanupNeeded) { props.Add(nameof(Archetype.SystemStateCleanupNeeded)); } if (a.Disabled) { props.Add(nameof(Archetype.Disabled)); } if (a.Prefab) { props.Add(nameof(Archetype.Prefab)); } if (a.HasChunkComponents) { props.Add(nameof(Archetype.HasChunkComponents)); } if (a.HasChunkHeader) { props.Add(nameof(Archetype.HasChunkHeader)); } if (a.ContainsBlobAssetRefs) { props.Add(nameof(Archetype.ContainsBlobAssetRefs)); } writer.WriteInlineSequence("properties", props); } } } archetypeToIndex.Dispose(); }
static unsafe void WriteArchetypes(YamlWriter writer, EntityManager entityManager) { var access = entityManager.GetCheckedEntityDataAccess(); var entityComponentStore = access->EntityComponentStore; using (var archetypeArray = GetAllArchetypes(entityComponentStore, Allocator.Temp)) using (writer.WriteCollection(k_ArchetypesCollectionTag)) { for (int i = 0; i != archetypeArray.Length; i++) { var a = archetypeArray.Ptr[i]; using (writer.WriteCollection(k_ArchetypeCollectionTag)) { writer.WriteKeyValue("name", a->ToString()) .WriteKeyValue(nameof(Archetype.TypesCount), a->TypesCount) .WriteKeyValue(nameof(EntityArchetype.ChunkCount), a->Chunks.Count) .WriteKeyValue(nameof(EntityArchetype.ChunkCapacity), a->ChunkCapacity); var props = new List <string>(); if (a->SystemStateCleanupComplete) { props.Add(nameof(Archetype.SystemStateCleanupComplete)); } if (a->SystemStateCleanupNeeded) { props.Add(nameof(Archetype.SystemStateCleanupNeeded)); } if (a->Disabled) { props.Add(nameof(Archetype.Disabled)); } if (a->Prefab) { props.Add(nameof(Archetype.Prefab)); } if (a->HasChunkComponents) { props.Add(nameof(Archetype.HasChunkComponents)); } if (a->HasChunkHeader) { props.Add(nameof(Archetype.HasChunkHeader)); } if (a->ContainsBlobAssetRefs) { props.Add(nameof(Archetype.ContainsBlobAssetRefs)); } writer.WriteInlineSequence("properties", props); } } } }