void EntityManager::FlushChangeFamily()
{
	Map<Entity*, EntityFamilyType>::iterator it = newFamilyEntities.begin();
	Map<Entity*, EntityFamilyType>::iterator itEnd = newFamilyEntities.end();
	for(; it != itEnd; ++it)
	{
		Entity * entity = it->first;
		ProcessAddRemoveComponent(entity, entity->GetFamily(), it->second);
		entity->changeState = 0;
	}

	newFamilyEntities.clear();
}
void EntityManager::FlushDestroy()
{
	int32 size = deleteEntities.size();

	for(int32 i = 0; i < size; ++i)
	{
		Entity * entity = deleteEntities[i];
		Map<uint64, EntityFamily*>::iterator it = families.find(entity->GetFamily().GetBit());
		if(it != families.end())
		{
			EntityFamily * family = it->second;
			family->DeleteEntity(entity);
			RemoveFromGlobalList(entity);

			delete(entity);
		}
		else
		{
			//entity with no family
		}
	}

	deleteEntities.clear();
}