public MapBuilder MoveInDirection(Direction direction) { var node = GenerateMapSegmentNode( nodes.Count, origin, DirectionHelper.GetOppositeDirection(previousDirection), direction); var offset = DirectionHelper.GetDirectionalOffset(direction); var newPoint = new Point( origin.X + offset.X, origin.Y + offset.Y); origin = newPoint; previousDirection = direction; nodes.Add(node); return(this); }