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