diff --git a/encompass-cs/Collections/TypedMessageStore.cs b/encompass-cs/Collections/TypedMessageStore.cs index aef3a5c..54aebe6 100644 --- a/encompass-cs/Collections/TypedMessageStore.cs +++ b/encompass-cs/Collections/TypedMessageStore.cs @@ -90,7 +90,7 @@ namespace Encompass public IEnumerable WithEntity(int entityID) { - return entityToMessage[entityID]; + return entityToMessage.ContainsKey(entityID) ? entityToMessage[entityID] : System.Linq.Enumerable.Empty(); } public override void Clear() diff --git a/test/EngineTest.cs b/test/EngineTest.cs index 7e095dd..74dae7e 100644 --- a/test/EngineTest.cs +++ b/test/EngineTest.cs @@ -483,6 +483,20 @@ namespace Tests entityMessageResults.Should().ContainEquivalentOf(new EntityMessage(entity, 5)); } + [Test] + public void NoMessagesWithEntity() + { + var worldBuilder = new WorldBuilder(); + + var entity = worldBuilder.CreateEntity(); + worldBuilder.AddEngine(new EntityMessageReceiverEngine(entity)); + + var world = worldBuilder.Build(); + world.Update(0.01); + + entityMessageResults.Should().BeEmpty(); + } + class SomeComponentTestEngine : Engine { public override void Update(double dt)