removeComponent<T extends Component> method
void
removeComponent<
T extends Component>( - EntityID entityID
)
Implementation
void removeComponent<T extends Component>(EntityID entityID) {
final record = _entityIndex[entityID];
if (record == null) return;
final componentID = _getOrCreateComponentID(T);
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},
);
}
}