optimized entity subscriptions

This commit is contained in:
Dylan Wilson
2018-06-23 21:54:39 +10:00
parent 547799d93c
commit dce7354a57
7 changed files with 50 additions and 33 deletions
@@ -9,6 +9,17 @@ namespace MonoGame.Extended.Entities.Systems
_aspectBuilder = aspectBuilder;
}
public override void Dispose()
{
if (_world != null)
{
_world.EntityManager.EntityAdded -= OnEntityAdded;
_world.EntityManager.EntityRemoved -= OnEntityRemoved;
}
base.Dispose();
}
private readonly AspectBuilder _aspectBuilder;
private EntitySubscription _subscription;
@@ -20,8 +31,6 @@ namespace MonoGame.Extended.Entities.Systems
{
_world = value;
_subscription = new EntitySubscription(_world.EntityManager, _aspectBuilder.Build(_world.ComponentManager));
// TODO: Undisposed events.
_world.EntityManager.EntityAdded += OnEntityAdded;
_world.EntityManager.EntityRemoved += OnEntityRemoved;
}