public unsafe void Execute(int index) { var chunk = Chunks[index].m_Chunk; var chunkChangeFlags = ChunkChangeFlags[index]; var baseIndex = Offsets[index]; var archetype = chunk->Archetype; var componentIndexInArchetype = ChunkDataUtility.GetIndexInTypeArray(archetype, ComponentTypeIndex); var componentBuffer = (TComponent *)(ChunkUtility.GetBuffer(chunk) + archetype->Offsets[componentIndexInArchetype]); for (var i = 0; i < chunk->Count; ++i) { Entities[baseIndex + i] = new EntityInChunkWithComponent <TComponent> { EntityInChunk = new EntityInChunk { Chunk = chunk, IndexInChunk = i }, Component = componentBuffer[i], ChunkChangeFlags = chunkChangeFlags }; } }
public int Compare(EntityInChunkWithComponent <TComponent> x, EntityInChunkWithComponent <TComponent> y) { return(x.Component.CompareTo(y.Component)); }