MoonWorksECSTest/src/PositionSystem.cs

35 lines
902 B
C#
Raw Normal View History

2022-03-07 18:58:05 +00:00
using System;
using MoonTools.ECS;
namespace MoonWorksECSTest
{
public class PositionSystem : MoonTools.ECS.System
{
2022-03-07 19:46:51 +00:00
Filter PositionFilter;
public PositionSystem(World world) : base(world)
{
2022-03-07 20:11:51 +00:00
PositionFilter =
FilterBuilder.Include<PositionComponent>()
.Exclude<StaticPositionComponent>()
.Build();
2022-03-07 19:46:51 +00:00
}
2022-03-07 18:58:05 +00:00
public override void Update(TimeSpan delta)
{
2022-03-07 19:46:51 +00:00
foreach (var entity in PositionFilter.Entities)
2022-03-07 18:58:05 +00:00
{
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)});
2022-03-07 20:11:51 +00:00
Console.WriteLine("Entity: " + entity.ID + ", Position: " + Get<PositionComponent>(entity).Position);
2022-03-07 18:58:05 +00:00
}
}
}
}
}
}