26 lines
854 B
C#
26 lines
854 B
C#
using Encompass;
|
|
using PongFE.Components;
|
|
using PongFE.Messages;
|
|
|
|
namespace PongFE.Engines
|
|
{
|
|
[Reads(typeof(PositionComponent))]
|
|
[Receives(typeof(MotionMessage))]
|
|
[Writes(typeof(PositionComponent))]
|
|
public class MotionEngine : Engine
|
|
{
|
|
public override void Update(double dt)
|
|
{
|
|
foreach (ref readonly var motionMessage in ReadMessages<MotionMessage>())
|
|
{
|
|
if (HasComponent<PositionComponent>(motionMessage.Entity))
|
|
{
|
|
ref readonly var positionComponent = ref GetComponent<PositionComponent>(motionMessage.Entity);
|
|
var newPosition = positionComponent.Position + motionMessage.Movement;
|
|
SetComponent(motionMessage.Entity, new PositionComponent(newPosition));
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|