MoonWorksECSTest/src/PositionSystem.cs

35 lines
902 B
C#

using System;
using MoonTools.ECS;
namespace MoonWorksECSTest
{
public class PositionSystem : MoonTools.ECS.System
{
Filter PositionFilter;
public PositionSystem(World world) : base(world)
{
PositionFilter =
FilterBuilder.Include<PositionComponent>()
.Exclude<StaticPositionComponent>()
.Build();
}
public override void Update(TimeSpan delta)
{
foreach (var entity in PositionFilter.Entities)
{
foreach (var inputMessage in ReadMessages<InputMessage>())
{
if (inputMessage.DpadUp.IsPressed)
{
var positionComponent = Get<PositionComponent>(entity);
Set(entity, new PositionComponent { Position = new MoonWorks.Math.Vector2(positionComponent.Position.X + 10, positionComponent.Position.Y)});
Console.WriteLine("Entity: " + entity.ID + ", Position: " + Get<PositionComponent>(entity).Position);
}
}
}
}
}
}