removeComponentByType method
Implementation
void removeComponentByType(EntityID entityID, Type t) {
final record = _entityIndex[entityID];
if (record == null) return;
final componentID = _componentTypes[t];
if (componentID == null) return;
final oldArchetype = record.archetype;
final setHash = oldArchetype.setHash.copy();
if (!setHash.remove(componentID)) return;
if (setHash.isEmpty) {
_removeEntityFromArchetype(entityID, oldArchetype, record.entityRow);
} else {
final archetype = _getOrCreateArchetype(setHash);
_moveEntity(
entityID,
oldArchetype,
record.entityRow,
archetype,
toRemove: {componentID},
);
}
}