updateEntity method
Updates a single entity.
Implementation
EntityManager updateEntity(GameEntity entity, double delta ) {
if ( entity.active == true ) {
updateNeighborhood( entity );
// check if start() should be executed
if ( entity.started == false ) {
entity.start();
entity.started = true;
}
// update entity
entity.update( delta );
// update children
final children = entity.children;
for ( int i = ( children.length - 1 ); i >= 0; i -- ) {
final child = children[ i ];
updateEntity( child, delta );
}
// if the entity is a trigger, save the reference for further processing
if ( entity is Trigger ) {
_triggers.add( entity );
}
// update spatial index
if ( spatialIndex != null ) {
int currentIndex = _indexMap[entity] ?? - 1;
currentIndex = spatialIndex!.updateEntity( entity, currentIndex );
_indexMap[entity] = currentIndex;
}
// update render component
final renderComponent = entity.renderComponent;
final renderComponentCallback = entity.renderComponentCallback;
if ( renderComponent != null && renderComponentCallback != null ) {
renderComponentCallback( entity, renderComponent );
}
}
return this;
}