public void Update(GameTime gameTime) { var position = ToMove.Position.ToPoint(); Path.Update(position); if (Path.ToMove && ToMove.Position.ToPoint() != Path.NextPosition) { var direction = Path.NextPosition - ToMove.Position.ToPoint(); NextPosition = Path.NextPosition; ToMove.Moving = true; ToMove.MovingDirection = direction.ToVector2(); } else if (MovementComplete.Complete) { ToMove.OnMoveCompleteEvent += (sender, args) => { ToMove.Moving = false; OnCompleteEvent?.Invoke(this, null); }; } }