Utils/HeightTool.cs
public sealed class HeightTool : Component
{
	[Property] public LineRenderer LineRenderer { get; set; }
	[Property] SpriteRenderer SpriteRenderer { get; set; }
	public Vector3 StartPos { get; set; }
	public Vector3 EndPos { get; set; }

	protected override void OnStart()
	{
		if ( !LineRenderer.IsValid() ) return;

		LineRenderer.VectorPoints.Add( StartPos );
		LineRenderer.VectorPoints.Add( EndPos );
	}

	public void UpdateStartPos( Vector3 newPos )
	{
		StartPos = newPos;
		if ( !LineRenderer.IsValid() ) return;
		LineRenderer.VectorPoints[0] = StartPos;
	}

	public void UpdateEndPos( Vector3 newPos )
	{
		EndPos = newPos;
		if ( !LineRenderer.IsValid() ) return;
		LineRenderer.VectorPoints[1] = EndPos;
	}

	public void UpdateSprite( float height )
	{
		//Keep the sprite position inbetween the start and end

		var midPoint = (StartPos + EndPos) / 2;
		SpriteRenderer.WorldPosition = midPoint;

		DebugOverlay.Text( midPoint, $"Height: {height}", overlay: true );
	}
}