public ReadResults ReadDouble(out WorldCoordinate result)
        {
            result = default;
            if (!StringReader.CanRead())
            {
                return(ReadResults.Failure(CommandError.ExpectedCoordinate().WithContext(StringReader)));
            }
            if (StringReader.Peek() == '^')
            {
                return(ReadResults.Failure(CommandError.MixedCoordinateType().WithContext(StringReader)));
            }

            bool isRelative = IsRelative();
            int  start      = StringReader.GetCursor();

            if (StringReader.AtEndOfArgument() || (UseBedrock && !IsNumberPart(StringReader.Peek())))
            {
                result = new WorldCoordinate(isRelative ? 0.0d : 0.5d, isRelative);
                return(ReadResults.Success());
            }

            ReadResults readResults = StringReader.ReadDouble(out double value);

            if (!readResults.Successful)
            {
                return(readResults);
            }

            string number = StringReader.GetString()[start..StringReader.GetCursor()];
 private ReadResults ReadDouble(out double result)
 {
     result = default;
     if (!StringReader.CanRead())
     {
         return(ReadResults.Failure(CommandError.ExpectedCoordinate().WithContext(StringReader)));
     }
     if (StringReader.Peek() != '^')
     {
         return(ReadResults.Failure(CommandError.MixedCoordinateType().WithContext(StringReader)));
     }
     StringReader.Skip();
     if (StringReader.AtEndOfArgument() || (UseBedrock && !IsNumberPart(StringReader.Peek())))
     {
         result = 0.0d;
         return(ReadResults.Success());
     }
     else
     {
         return(StringReader.ReadDouble(out result));
     }
 }