diff --git a/doc/classes/@GlobalScope.xml b/doc/classes/@GlobalScope.xml index eb22fa087ad..8ffb90fed7e 100644 --- a/doc/classes/@GlobalScope.xml +++ b/doc/classes/@GlobalScope.xml @@ -853,7 +853,7 @@ print("a", "b", a) # Prints ab[1, 2, 3] [/gdscript] [csharp] - var a = new Godot.Collections.Array { 1, 2, 3 }; + Godot.Collections.Array a = [1, 2, 3]; GD.Print("a", "b", a); // Prints ab[1, 2, 3] [/csharp] [/codeblocks] diff --git a/doc/classes/Array.xml b/doc/classes/Array.xml index 983e8fc98f5..4cc68c51889 100644 --- a/doc/classes/Array.xml +++ b/doc/classes/Array.xml @@ -17,14 +17,14 @@ print(array[-3]) # Prints "Second" [/gdscript] [csharp] - var array = new Godot.Collections.Array{"First", 2, 3, "Last"}; + Godot.Collections.Array array = ["First", 2, 3, "Last"]; GD.Print(array[0]); // Prints "First" GD.Print(array[2]); // Prints 3 - GD.Print(array[array.Count - 1]); // Prints "Last" + GD.Print(array[^1]); // Prints "Last" - array[2] = "Second"; + array[1] = "Second"; GD.Print(array[1]); // Prints "Second" - GD.Print(array[array.Count - 3]); // Prints "Second" + GD.Print(array[^3]); // Prints "Second" [/csharp] [/codeblocks] [b]Note:[/b] Arrays are always passed by [b]reference[/b]. To get a copy of an array that can be modified independently of the original array, use [method duplicate]. @@ -358,7 +358,7 @@ print(array) # Prints [2, 2, 2, 2, 2] [/gdscript] [csharp] - var array = new Godot.Collections.Array(); + Godot.Collections.Array array = []; array.Resize(5); array.Fill(2); GD.Print(array); // Prints [2, 2, 2, 2, 2] @@ -460,7 +460,7 @@ print(["inside", 7].has("7")) # Prints false [/gdscript] [csharp] - var arr = new Godot.Collections.Array { "inside", 7 }; + Godot.Collections.Array arr = ["inside", 7]; // By C# convention, this method is renamed to `Contains`. GD.Print(arr.Contains("inside")); // Prints True GD.Print(arr.Contains("outside")); // Prints False @@ -573,7 +573,7 @@ print([1, 2, 3.25, "Hi"].pick_random()) [/gdscript] [csharp] - var array = new Godot.Collections.Array { 1, 2, 3.25f, "Hi" }; + Godot.Collections.Array array = [1, 2, 3.25f, "Hi"]; GD.Print(array.PickRandom()); // May print 1, 2, 3.25, or "Hi". [/csharp] [/codeblocks] @@ -755,7 +755,7 @@ print(numbers) # Prints [2.5, 5, 8, 10] [/gdscript] [csharp] - var numbers = new Godot.Collections.Array { 10, 5, 2.5, 8 }; + Godot.Collections.Array numbers = [10, 5, 2.5, 8]; numbers.Sort(); GD.Print(numbers); // Prints [2.5, 5, 8, 10] [/csharp] @@ -817,8 +817,8 @@ [/gdscript] [csharp] // Note that concatenation is not possible with C#'s native Array type. - var array1 = new Godot.Collections.Array{"One", 2}; - var array2 = new Godot.Collections.Array{3, "Four"}; + Godot.Collections.Array array1 = ["One", 2]; + Godot.Collections.Array array2 = [3, "Four"]; GD.Print(array1 + array2); // Prints ["One", 2, 3, "Four"] [/csharp] [/codeblocks] diff --git a/doc/classes/ArrayMesh.xml b/doc/classes/ArrayMesh.xml index 19006bd9755..ec62554224d 100644 --- a/doc/classes/ArrayMesh.xml +++ b/doc/classes/ArrayMesh.xml @@ -25,16 +25,16 @@ m.mesh = arr_mesh [/gdscript] [csharp] - var vertices = new Vector3[] - { + Vector3[] vertices = + [ new Vector3(0, 1, 0), new Vector3(1, 0, 0), new Vector3(0, 0, 1), - }; + ]; // Initialize the ArrayMesh. var arrMesh = new ArrayMesh(); - var arrays = new Godot.Collections.Array(); + Godot.Collections.Array arrays = []; arrays.Resize((int)Mesh.ArrayType.Max); arrays[(int)Mesh.ArrayType.Vertex] = vertices; diff --git a/doc/classes/DTLSServer.xml b/doc/classes/DTLSServer.xml index 0c37f8f2b99..ab7d9002d5d 100644 --- a/doc/classes/DTLSServer.xml +++ b/doc/classes/DTLSServer.xml @@ -19,7 +19,7 @@ server.listen(4242) var key = load("key.key") # Your private key. var cert = load("cert.crt") # Your X509 certificate. - dtls.setup(key, cert) + dtls.setup(TlsOptions.server(key, cert)) func _process(delta): while server.is_connection_available(): @@ -45,19 +45,19 @@ { private DtlsServer _dtls = new DtlsServer(); private UdpServer _server = new UdpServer(); - private Godot.Collections.Array<PacketPeerDtls> _peers = new Godot.Collections.Array<PacketPeerDtls>(); + private Godot.Collections.Array<PacketPeerDtls> _peers = []; public override void _Ready() { _server.Listen(4242); var key = GD.Load<CryptoKey>("key.key"); // Your private key. var cert = GD.Load<X509Certificate>("cert.crt"); // Your X509 certificate. - _dtls.Setup(key, cert); + _dtls.Setup(TlsOptions.Server(key, cert)); } public override void _Process(double delta) { - while (Server.IsConnectionAvailable()) + while (_server.IsConnectionAvailable()) { PacketPeerUdp peer = _server.TakeConnection(); PacketPeerDtls dtlsPeer = _dtls.TakeConnection(peer); diff --git a/doc/classes/DisplayServer.xml b/doc/classes/DisplayServer.xml index 7cd1e3b9171..ebd4787e1a7 100644 --- a/doc/classes/DisplayServer.xml +++ b/doc/classes/DisplayServer.xml @@ -1730,7 +1730,7 @@ DisplayServer.WindowSetMousePassthrough(GetNode<Polygon2D>("Polygon2D").Polygon); // Reset region to default. - DisplayServer.WindowSetMousePassthrough(new Vector2[] {}); + DisplayServer.WindowSetMousePassthrough([]); [/csharp] [/codeblocks] [b]Note:[/b] On Windows, the portion of a window that lies outside the region is not drawn, while on Linux (X11) and macOS it is. diff --git a/doc/classes/EditorImportPlugin.xml b/doc/classes/EditorImportPlugin.xml index 3f3831c0c0e..717b4765e57 100644 --- a/doc/classes/EditorImportPlugin.xml +++ b/doc/classes/EditorImportPlugin.xml @@ -63,7 +63,7 @@ public override string[] _GetRecognizedExtensions() { - return new string[] { "special", "spec" }; + return ["special", "spec"]; } public override string _GetSaveExtension() @@ -88,14 +88,14 @@ public override Godot.Collections.Array<Godot.Collections.Dictionary> _GetImportOptions(string path, int presetIndex) { - return new Godot.Collections.Array<Godot.Collections.Dictionary> - { + return + [ new Godot.Collections.Dictionary { { "name", "myOption" }, { "default_value", false }, - } - }; + }, + ]; } public override Error _Import(string sourceFile, string savePath, Godot.Collections.Dictionary options, Godot.Collections.Array<string> platformVariants, Godot.Collections.Array<string> genFiles) diff --git a/doc/classes/EditorTranslationParserPlugin.xml b/doc/classes/EditorTranslationParserPlugin.xml index b9dc654de3c..a244d844c27 100644 --- a/doc/classes/EditorTranslationParserPlugin.xml +++ b/doc/classes/EditorTranslationParserPlugin.xml @@ -45,7 +45,7 @@ public override string[] _GetRecognizedExtensions() { - return new string[] { "csv" }; + return ["csv"]; } } [/csharp] @@ -62,11 +62,11 @@ [/gdscript] [csharp] // This will add a message with msgid "Test 1", msgctxt "context", and msgid_plural "test 1 plurals". - msgidsContextPlural.Add(new Godot.Collections.Array{"Test 1", "context", "test 1 Plurals"}); + msgidsContextPlural.Add(["Test 1", "context", "test 1 Plurals"]); // This will add a message with msgid "A test without context" and msgid_plural "plurals". - msgidsContextPlural.Add(new Godot.Collections.Array{"A test without context", "", "plurals"}); + msgidsContextPlural.Add(["A test without context", "", "plurals"]); // This will add a message with msgid "Only with context" and msgctxt "a friendly context". - msgidsContextPlural.Add(new Godot.Collections.Array{"Only with context", "a friendly context", ""}); + msgidsContextPlural.Add(["Only with context", "a friendly context", ""]); [/csharp] [/codeblocks] [b]Note:[/b] If you override parsing logic for standard script types (GDScript, C#, etc.), it would be better to load the [code]path[/code] argument using [method ResourceLoader.load]. This is because built-in scripts are loaded as [Resource] type, not [FileAccess] type. For example: @@ -90,7 +90,7 @@ public override string[] _GetRecognizedExtensions() { - return new string[] { "gd" }; + return ["gd"]; } [/csharp] [/codeblocks] diff --git a/doc/classes/Geometry2D.xml b/doc/classes/Geometry2D.xml index c86861fd130..4c2398d3964 100644 --- a/doc/classes/Geometry2D.xml +++ b/doc/classes/Geometry2D.xml @@ -204,7 +204,7 @@ print(polygon) # Prints [(50.0, 50.0), (150.0, 50.0), (150.0, 150.0), (50.0, 150.0)] [/gdscript] [csharp] - var polygon = new Vector2[] { new Vector2(0, 0), new Vector2(100, 0), new Vector2(100, 100), new Vector2(0, 100) }; + Vector2[] polygon = [new Vector2(0, 0), new Vector2(100, 0), new Vector2(100, 100), new Vector2(0, 100)]; var offset = new Vector2(50, 50); polygon = new Transform2D(0, offset) * polygon; GD.Print((Variant)polygon); // Prints [(50, 50), (150, 50), (150, 150), (50, 150)] diff --git a/doc/classes/HTTPClient.xml b/doc/classes/HTTPClient.xml index 366038e43fb..961332a8c29 100644 --- a/doc/classes/HTTPClient.xml +++ b/doc/classes/HTTPClient.xml @@ -156,7 +156,7 @@ [csharp] var fields = new Godot.Collections.Dictionary { { "username", "user" }, { "password", "pass" } }; string queryString = new HttpClient().QueryStringFromDict(fields); - string[] headers = { "Content-Type: application/x-www-form-urlencoded", $"Content-Length: {queryString.Length}" }; + string[] headers = ["Content-Type: application/x-www-form-urlencoded", $"Content-Length: {queryString.Length}"]; var result = new HttpClient().Request(HttpClient.Method.Post, "index.php", headers, queryString); [/csharp] [/codeblocks] diff --git a/doc/classes/NavigationPolygon.xml b/doc/classes/NavigationPolygon.xml index 68fbc059315..3f7924d5c2f 100644 --- a/doc/classes/NavigationPolygon.xml +++ b/doc/classes/NavigationPolygon.xml @@ -16,7 +16,7 @@ [/gdscript] [csharp] var newNavigationMesh = new NavigationPolygon(); - var boundingOutline = new Vector2[] { new Vector2(0, 0), new Vector2(0, 50), new Vector2(50, 50), new Vector2(50, 0) }; + Vector2[] boundingOutline = [new Vector2(0, 0), new Vector2(0, 50), new Vector2(50, 50), new Vector2(50, 0)]; newNavigationMesh.AddOutline(boundingOutline); NavigationServer2D.BakeFromSourceGeometryData(newNavigationMesh, new NavigationMeshSourceGeometryData2D()); GetNode<NavigationRegion2D>("NavigationRegion2D").NavigationPolygon = newNavigationMesh; @@ -34,9 +34,9 @@ [/gdscript] [csharp] var newNavigationMesh = new NavigationPolygon(); - var newVertices = new Vector2[] { new Vector2(0, 0), new Vector2(0, 50), new Vector2(50, 50), new Vector2(50, 0) }; + Vector2[] newVertices = [new Vector2(0, 0), new Vector2(0, 50), new Vector2(50, 50), new Vector2(50, 0)]; newNavigationMesh.Vertices = newVertices; - var newPolygonIndices = new int[] { 0, 1, 2, 3 }; + int[] newPolygonIndices = [0, 1, 2, 3]; newNavigationMesh.AddPolygon(newPolygonIndices); GetNode<NavigationRegion2D>("NavigationRegion2D").NavigationPolygon = newNavigationMesh; [/csharp] diff --git a/doc/classes/OS.xml b/doc/classes/OS.xml index a7253e117b5..4cf24739ed4 100644 --- a/doc/classes/OS.xml +++ b/doc/classes/OS.xml @@ -59,7 +59,7 @@ var pid = OS.create_process(OS.get_executable_path(), []) [/gdscript] [csharp] - var pid = OS.CreateProcess(OS.GetExecutablePath(), new string[] {}); + var pid = OS.CreateProcess(OS.GetExecutablePath(), []); [/csharp] [/codeblocks] See [method execute] if you wish to run an external command and retrieve the results. @@ -105,8 +105,8 @@ var exit_code = OS.execute("ls", ["-l", "/tmp"], output) [/gdscript] [csharp] - var output = new Godot.Collections.Array(); - int exitCode = OS.Execute("ls", new string[] {"-l", "/tmp"}, output); + Godot.Collections.Array output = []; + int exitCode = OS.Execute("ls", ["-l", "/tmp"], output); [/csharp] [/codeblocks] If you wish to access a shell built-in or execute a composite command, a platform-specific shell can be invoked. For example: @@ -116,8 +116,8 @@ OS.execute("CMD.exe", ["/C", "cd %TEMP% && dir"], output) [/gdscript] [csharp] - var output = new Godot.Collections.Array(); - OS.Execute("CMD.exe", new string[] {"/C", "cd %TEMP% && dir"}, output); + Godot.Collections.Array output = []; + OS.Execute("CMD.exe", ["/C", "cd %TEMP% && dir"], output); [/csharp] [/codeblocks] [b]Note:[/b] This method is implemented on Android, Linux, macOS, and Windows. diff --git a/doc/classes/Object.xml b/doc/classes/Object.xml index febc81dd81c..d0ec936be7e 100644 --- a/doc/classes/Object.xml +++ b/doc/classes/Object.xml @@ -61,14 +61,14 @@ public override Godot.Collections.Array<Godot.Collections.Dictionary> _GetPropertyList() { - return new Godot.Collections.Array<Godot.Collections.Dictionary>() - { + return + [ new Godot.Collections.Dictionary() { { "name", "FakeProperty" }, - { "type", (int)Variant.Type.Int } - } - }; + { "type", (int)Variant.Type.Int }, + }, + ]; } [/csharp] [/codeblocks] @@ -137,11 +137,11 @@ } } - private Godot.Collections.Array<int> _numbers = new(); + private Godot.Collections.Array<int> _numbers = []; public override Godot.Collections.Array<Godot.Collections.Dictionary> _GetPropertyList() { - var properties = new Godot.Collections.Array<Godot.Collections.Dictionary>(); + Godot.Collections.Array<Godot.Collections.Dictionary> properties = []; for (int i = 0; i < _numberCount; i++) { @@ -322,14 +322,14 @@ public override Godot.Collections.Array<Godot.Collections.Dictionary> _GetPropertyList() { - return new Godot.Collections.Array<Godot.Collections.Dictionary>() - { + return + [ new Godot.Collections.Dictionary() { { "name", "FakeProperty" }, - { "type", (int)Variant.Type.Int } - } - }; + { "type", (int)Variant.Type.Int }, + }, + ]; } [/csharp] [/codeblocks] @@ -416,19 +416,19 @@ ]) [/gdscript] [csharp] - AddUserSignal("Hurt", new Godot.Collections.Array() - { + AddUserSignal("Hurt", + [ new Godot.Collections.Dictionary() { { "name", "damage" }, - { "type", (int)Variant.Type.Int } + { "type", (int)Variant.Type.Int }, }, new Godot.Collections.Dictionary() { { "name", "source" }, - { "type", (int)Variant.Type.Object } - } - }); + { "type", (int)Variant.Type.Object }, + }, + ]); [/csharp] [/codeblocks] @@ -494,7 +494,7 @@ [/gdscript] [csharp] var node = new Node3D(); - node.Callv(Node3D.MethodName.Rotate, new Godot.Collections.Array { new Vector3(1f, 0f, 0f), 1.571f }); + node.Callv(Node3D.MethodName.Rotate, [new Vector3(1f, 0f, 0f), 1.571f]); [/csharp] [/codeblocks] [b]Note:[/b] In C#, [param method] must be in snake_case when referring to built-in Godot methods. Prefer using the names exposed in the [code]MethodName[/code] class to avoid allocating a new [StringName] on each call. diff --git a/doc/classes/PackedByteArray.xml b/doc/classes/PackedByteArray.xml index 75193ae8ed2..1f37812925a 100644 --- a/doc/classes/PackedByteArray.xml +++ b/doc/classes/PackedByteArray.xml @@ -369,7 +369,7 @@ print(array.hex_encode()) # Prints: 0b2eff [/gdscript] [csharp] - var array = new byte[] {11, 46, 255}; + byte[] array = [11, 46, 255]; GD.Print(array.HexEncode()); // Prints: 0b2eff [/csharp] [/codeblocks] diff --git a/doc/classes/PolygonPathFinder.xml b/doc/classes/PolygonPathFinder.xml index 98734c3e9b0..ab300efaec3 100644 --- a/doc/classes/PolygonPathFinder.xml +++ b/doc/classes/PolygonPathFinder.xml @@ -54,13 +54,13 @@ [/gdscript] [csharp] var polygonPathFinder = new PolygonPathFinder(); - var points = new Vector2[] - { + Vector2[] points = + [ new Vector2(0.0f, 0.0f), new Vector2(1.0f, 0.0f), new Vector2(0.0f, 1.0f) - }; - var connections = new int[] { 0, 1, 1, 2, 2, 0 }; + ]; + int[] connections = [0, 1, 1, 2, 2, 0]; polygonPathFinder.Setup(points, connections); GD.Print(polygonPathFinder.IsPointInside(new Vector2(0.2f, 0.2f))); // Prints True GD.Print(polygonPathFinder.IsPointInside(new Vector2(1.0f, 1.0f))); // Prints False @@ -91,13 +91,13 @@ [/gdscript] [csharp] var polygonPathFinder = new PolygonPathFinder(); - var points = new Vector2[] - { + Vector2[] points = + [ new Vector2(0.0f, 0.0f), new Vector2(1.0f, 0.0f), new Vector2(0.0f, 1.0f) - }; - var connections = new int[] { 0, 1, 1, 2, 2, 0 }; + ]; + int[] connections = [0, 1, 1, 2, 2, 0]; polygonPathFinder.Setup(points, connections); [/csharp] [/codeblocks] diff --git a/doc/classes/String.xml b/doc/classes/String.xml index 3f25b18191c..3f64a5c8a2b 100644 --- a/doc/classes/String.xml +++ b/doc/classes/String.xml @@ -571,7 +571,7 @@ print("---".join(fruits)) # Prints "Apple---Orange---Pear---Kiwi" [/gdscript] [csharp] - var fruits = new string[] {"Apple", "Orange", "Pear", "Kiwi"}; + string[] fruits = ["Apple", "Orange", "Pear", "Kiwi"]; // In C#, this method is static. GD.Print(string.Join(", ", fruits)); // Prints "Apple, Orange, Pear, Kiwi" diff --git a/doc/classes/StringName.xml b/doc/classes/StringName.xml index 074d79833b4..125bbb56cdf 100644 --- a/doc/classes/StringName.xml +++ b/doc/classes/StringName.xml @@ -546,7 +546,7 @@ print("---".join(fruits)) # Prints "Apple---Orange---Pear---Kiwi" [/gdscript] [csharp] - var fruits = new string[] {"Apple", "Orange", "Pear", "Kiwi"}; + string[] fruits = ["Apple", "Orange", "Pear", "Kiwi"]; // In C#, this method is static. GD.Print(string.Join(", ", fruits)); // Prints "Apple, Orange, Pear, Kiwi" diff --git a/doc/classes/Window.xml b/doc/classes/Window.xml index f779da8af9d..8ddc4db756c 100644 --- a/doc/classes/Window.xml +++ b/doc/classes/Window.xml @@ -641,13 +641,13 @@ [/gdscript] [csharp] // Set region, using Path2D node. - GetNode<Window>("Window").MousePassthrough = GetNode<Path2D>("Path2D").Curve.GetBakedPoints(); + GetNode<Window>("Window").MousePassthroughPolygon = GetNode<Path2D>("Path2D").Curve.GetBakedPoints(); // Set region, using Polygon2D node. - GetNode<Window>("Window").MousePassthrough = GetNode<Polygon2D>("Polygon2D").Polygon; + GetNode<Window>("Window").MousePassthroughPolygon = GetNode<Polygon2D>("Polygon2D").Polygon; // Reset region to default. - GetNode<Window>("Window").MousePassthrough = new Vector2[] {}; + GetNode<Window>("Window").MousePassthroughPolygon = []; [/csharp] [/codeblocks] [b]Note:[/b] This property is ignored if [member mouse_passthrough] is set to [code]true[/code].