diff --git a/encompass-cs/Engine.cs b/encompass-cs/Engine.cs index 9520561..aca9b61 100644 --- a/encompass-cs/Engine.cs +++ b/encompass-cs/Engine.cs @@ -647,7 +647,13 @@ namespace Encompass timeManager.ActivateTimeDilation(factor, easeInTime, easeInFunction, activeTime, easeOutTime, easeOutFunction); } - protected IEnumerable MessagesWithEntity(Entity entity) where TMessage : struct, IMessage, IHasEntity + /// + /// Efficiently reads Messages of a given type that all reference the same Entity. + /// + /// The Message subtype. + /// The entity that all messages in the IEnumerable refer to. + /// + protected IEnumerable ReadMessagesWithEntity(Entity entity) where TMessage : struct, IMessage, IHasEntity { return messageManager.WithEntity(entity.ID); } diff --git a/encompass-cs/UberEngine.cs b/encompass-cs/UberEngine.cs index 7f8259d..7abfc7d 100644 --- a/encompass-cs/UberEngine.cs +++ b/encompass-cs/UberEngine.cs @@ -60,6 +60,10 @@ namespace Encompass CallGenericMethod(type, "ReadMessage", null); CallGenericMethod(type, "ReadMessages", null); CallGenericMethod(type, "SomeMessage", null); + if (typeof(IHasEntity).IsAssignableFrom(type)) + { + CallGenericMethod(type, "ReadMessagesWithEntity", new Type[] { typeof(Entity) }, new object[] { Entity }); + } } } diff --git a/test/EngineTest.cs b/test/EngineTest.cs index 74dae7e..de4d956 100644 --- a/test/EngineTest.cs +++ b/test/EngineTest.cs @@ -460,7 +460,7 @@ namespace Tests public override void Update(double dt) { - entityMessageResults = MessagesWithEntity(_entity).ToList(); + entityMessageResults = ReadMessagesWithEntity(_entity).ToList(); } }