|
@@ -97,6 +97,36 @@ namespace Godot
|
|
|
return b;
|
|
|
}
|
|
|
|
|
|
+ /// <summary>
|
|
|
+ /// Converts a string containing a binary number into an integer.
|
|
|
+ /// Binary strings can either be prefixed with `0b` or not,
|
|
|
+ /// and they can also start with a `-` before the optional prefix.
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="instance">The string to convert.</param>
|
|
|
+ /// <returns>The converted string.</returns>
|
|
|
+ public static int BinToInt(this string instance)
|
|
|
+ {
|
|
|
+ if (instance.Length == 0)
|
|
|
+ {
|
|
|
+ return 0;
|
|
|
+ }
|
|
|
+
|
|
|
+ int sign = 1;
|
|
|
+
|
|
|
+ if (instance[0] == '-')
|
|
|
+ {
|
|
|
+ sign = -1;
|
|
|
+ instance = instance.Substring(1);
|
|
|
+ }
|
|
|
+
|
|
|
+ if (instance.StartsWith("0b"))
|
|
|
+ {
|
|
|
+ instance = instance.Substring(2);
|
|
|
+ }
|
|
|
+
|
|
|
+ return sign * Convert.ToInt32(instance, 2);;
|
|
|
+ }
|
|
|
+
|
|
|
// <summary>
|
|
|
// Return the amount of substrings in string.
|
|
|
// </summary>
|
|
@@ -449,7 +479,7 @@ namespace Godot
|
|
|
/// <summary>
|
|
|
/// Returns a hexadecimal representation of this byte as a string.
|
|
|
/// </summary>
|
|
|
- /// <param name="bytes">The byte to encode.</param>
|
|
|
+ /// <param name="b">The byte to encode.</param>
|
|
|
/// <returns>The hexadecimal representation of this byte.</returns>
|
|
|
internal static string HexEncode(this byte b)
|
|
|
{
|
|
@@ -493,11 +523,20 @@ namespace Godot
|
|
|
return ret;
|
|
|
}
|
|
|
|
|
|
- // <summary>
|
|
|
- // Convert a string containing an hexadecimal number into an int.
|
|
|
- // </summary>
|
|
|
+ /// <summary>
|
|
|
+ /// Converts a string containing a hexadecimal number into an integer.
|
|
|
+ /// Hexadecimal strings can either be prefixed with `0x` or not,
|
|
|
+ /// and they can also start with a `-` before the optional prefix.
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="instance">The string to convert.</param>
|
|
|
+ /// <returns>The converted string.</returns>
|
|
|
public static int HexToInt(this string instance)
|
|
|
{
|
|
|
+ if (instance.Length == 0)
|
|
|
+ {
|
|
|
+ return 0;
|
|
|
+ }
|
|
|
+
|
|
|
int sign = 1;
|
|
|
|
|
|
if (instance[0] == '-')
|
|
@@ -506,10 +545,12 @@ namespace Godot
|
|
|
instance = instance.Substring(1);
|
|
|
}
|
|
|
|
|
|
- if (!instance.StartsWith("0x"))
|
|
|
- return 0;
|
|
|
+ if (instance.StartsWith("0x"))
|
|
|
+ {
|
|
|
+ instance = instance.Substring(2);
|
|
|
+ }
|
|
|
|
|
|
- return sign * int.Parse(instance.Substring(2), NumberStyles.HexNumber);
|
|
|
+ return sign * int.Parse(instance, NumberStyles.HexNumber);
|
|
|
}
|
|
|
|
|
|
// <summary>
|
|
@@ -891,22 +932,6 @@ namespace Godot
|
|
|
return s;
|
|
|
}
|
|
|
|
|
|
- // <summary>
|
|
|
- // Decode a percent-encoded string. See [method percent_encode].
|
|
|
- // </summary>
|
|
|
- public static string PercentDecode(this string instance)
|
|
|
- {
|
|
|
- return Uri.UnescapeDataString(instance);
|
|
|
- }
|
|
|
-
|
|
|
- // <summary>
|
|
|
- // Percent-encode a string. This is meant to encode parameters in a URL when sending a HTTP GET request and bodies of form-urlencoded POST request.
|
|
|
- // </summary>
|
|
|
- public static string PercentEncode(this string instance)
|
|
|
- {
|
|
|
- return Uri.EscapeDataString(instance);
|
|
|
- }
|
|
|
-
|
|
|
// <summary>
|
|
|
// If the string is a path, this concatenates [code]file[/code] at the end of the string as a subpath. E.g. [code]"this/is".plus_file("path") == "this/is/path"[/code].
|
|
|
// </summary>
|
|
@@ -1169,6 +1194,33 @@ namespace Godot
|
|
|
return Encoding.UTF8.GetBytes(instance);
|
|
|
}
|
|
|
|
|
|
+ /// <summary>
|
|
|
+ /// Decodes a string in URL encoded format. This is meant to
|
|
|
+ /// decode parameters in a URL when receiving an HTTP request.
|
|
|
+ /// This mostly wraps around `System.Uri.UnescapeDataString()`,
|
|
|
+ /// but also handles `+`.
|
|
|
+ /// See <see cref="URIEncode"/> for encoding.
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="instance">The string to decode.</param>
|
|
|
+ /// <returns>The unescaped string.</returns>
|
|
|
+ public static string URIDecode(this string instance)
|
|
|
+ {
|
|
|
+ return Uri.UnescapeDataString(instance.Replace("+", "%20"));
|
|
|
+ }
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ /// Encodes a string to URL friendly format. This is meant to
|
|
|
+ /// encode parameters in a URL when sending an HTTP request.
|
|
|
+ /// This wraps around `System.Uri.EscapeDataString()`.
|
|
|
+ /// See <see cref="URIDecode"/> for decoding.
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="instance">The string to encode.</param>
|
|
|
+ /// <returns>The escaped string.</returns>
|
|
|
+ public static string URIEncode(this string instance)
|
|
|
+ {
|
|
|
+ return Uri.EscapeDataString(instance);
|
|
|
+ }
|
|
|
+
|
|
|
// <summary>
|
|
|
// Return a copy of the string with special characters escaped using the XML standard.
|
|
|
// </summary>
|