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