thelinuxlich/artemis_CSharp — pull request #60 by Maximusya (2013-12-24 09:53:53+00:00)
Title: Got rid of double Refresh when deleting Entity

When an entity was being removed from *EntityWorld*, `EntityManager.Remove(entity)` caused `Refresh(entity)` two times: once in *Remove*, once in *RemoveComponentsOfEntity*. This resulted in enumerating all Systems twice, removing Entity on first enumeration, pointlessly calculating *contains* and *interest* vars on second enumeration.

With the proposed changes it:
1) cleares TypeBits;
2) calls Refresh (triggers every Systems'.OnChange(entity))
3) nulls Components in Component containers

This change makes *RemoveComponent* and *RemoveComponentsOfEntity* behavior more consistent (and still conforming to the issue pointed out in #49)