using System.Reflection; namespace Encompass.Engines { internal class ComponentMessageEmitter : Engine where TComponent : struct, IComponent { public ComponentMessageEmitter() : base() { sendTypes.Add(typeof(ComponentMessage)); } public override void Update(double dt) { foreach (var (entity, componentID, component) in ReadComponentsFromWorld()) { ComponentMessage componentMessage; componentMessage.entity = entity; componentMessage.componentID = componentID; componentMessage.component = component; SendMessage(componentMessage); SendExistingComponentMessage(componentMessage); } } } }