encompass-cs/encompass-cs/Engines/Spawner.cs

29 lines
723 B
C#
Raw Normal View History

2019-06-29 05:07:48 +00:00
using System.Reflection;
namespace Encompass.Engines
{
public abstract class Spawner<TMessage> : Engine where TMessage : struct, IMessage
{
protected Spawner() : base()
{
var readsAttribute = GetType().GetCustomAttribute<Reads>(false);
if (readsAttribute != null)
{
2019-07-16 16:47:58 +00:00
readsAttribute.readTypes.Add(typeof(TMessage));
2019-06-29 05:07:48 +00:00
}
2019-07-19 19:47:17 +00:00
receiveTypes.Add(typeof(TMessage));
2019-06-29 05:07:48 +00:00
}
public override void Update(double dt)
{
foreach (var message in ReadMessages<TMessage>())
{
Spawn(message);
}
}
protected abstract void Spawn(TMessage message);
}
}