using System; using System.Numerics; using MonoGameBlank2dStartKit.Core.Utils; using MoonTools.ECS; namespace MonoGameBlank2dStartKit.Core.Systems; public class VelocitySystem : MoonTools.ECS.System { private readonly Filter _filter; public VelocitySystem(World world) : base(world) { _filter = FilterBuilder.Include().Include().Build(); } public override void Update(TimeSpan delta) { float deltaSec = delta.SecFloat(); foreach (var entity in _filter.Entities) { var currentPosition = World.Get(entity).Vector2; var velocity = World.Get(entity).Vector2; World.Set(entity, new Position( currentPosition.X + (velocity.X * deltaSec), currentPosition.Y + (velocity.Y * deltaSec) )); } } }