Commit Graph

518 Commits

Author SHA1 Message Date
Raul Santos 5ba92e5a57
Fix some DEFVALs to use the right type
- Use `StringName()` in DEFVAL for StringNames.
- Use `Variant()` in DEFVAL for Variants.
2024-02-23 01:50:18 +01:00
Thaddeus Crews 000d12d237
C#: Enforce Globalization code quality rules 2024-02-20 11:15:12 -06:00
Rémi Verschelde dfe226b933
Merge pull request #88270 from TokageItLab/avoid-near-far
Avoid unqualified-id "near" and "far" in Node3DEditor/Viewport
2024-02-13 11:25:24 +01:00
Silc Lizard (Tokage) Renew 67e38709fd Avoid unqualified-id "near" and "far" in Node3DEditor/Viewport 2024-02-13 18:53:21 +09:00
Zae 8245157682 C#: Fix missing CowData 64-bit promotion for `PackedInt32Array`. 2024-02-13 12:19:48 +08:00
Raul Santos 5815d1c8c8
Improve handling of generic C# types
- Create CSharpScript for generic C# types.
  - `ScriptPathAttributeGenerator` registers the path for the generic type definition.
  - `ScriptManagerBridge` lookup uses the generic type definition that was registered by the generator.
  - Constructed generic types use a virtual `csharp://` path so they can be registered in the map and loaded as if there was a different file for each constructed type, even though they all share the same real path.
  - This allows getting the base type for a C# type that derives from a generic type.
- Shows base scripts in the _Add Node_ and _Create Resource_ dialogs even when they are generic types.
  - `get_global_class_name` implementation was moved to C# and now always returns the base type even if the script is not a global class (this behavior matches GDScript).
- Create `CSharpScript::TypeInfo` struct to hold all the type information about the C# type that corresponds to the `CSharpScript`, and use it as the parameter in `UpdateScriptClassInfo` to avoid adding more parameters.
2024-02-08 18:31:13 +01:00
Rémi Verschelde d0f8b76ffd
Merge pull request #87838 from paulloz/dotnet/fix-duplicate-key-on-reload
C#: Fix duplicate key issue on reload
2024-02-02 12:05:14 +01:00
Paul Joannon 999180d5b5
Delay fs update when populating path bimap 2024-02-01 22:06:40 +01:00
Zae 1e14503715 C#: Fix issues for StringName reference in `CSharpInstanceBridge.Get`. 2024-01-29 02:04:02 +08:00
Rémi Verschelde 563e385810
Merge pull request #87526 from zaevi/fix_csharp_gc
C#: Fix incorrect GC handle for non-instantiable types.
2024-01-26 11:47:25 +01:00
Paul Joannon 46b3096570
Clean a bunch of C# warnings
- `[Obsolete]` tag generated in the middle of documentation comments
- Potential `null` values in generators
- Obsolete call to `GetEditorInterface()`
- We don't want `Godot.Collections.Array` to end with `Collection`
- A few culture specifications and use of `AsSpan` instead of `SubString` in `StringExtensions`
- Disable CA1716 in GodotSharp
2024-01-26 09:38:33 +01:00
Zae 201e946741 C#: Fix incorrect GC handle for non-instantiable types. 2024-01-25 02:40:08 +08:00
Rémi Verschelde 0bcc0e92b3
Merge pull request #86730 from reduz/64-bit-cowdata
Promote CowData to 64 bits
2024-01-19 18:46:11 +01:00
Juan Linietsky 24fe0715b5 Promote CowData to 64 bits
Fixes a lot of bugs, please help me fill the list.
2024-01-19 17:41:10 +01:00
A Thousand Ships 227a165ce4
[C#] Fix `Encloses` failing on shared upper bound for `AABB` and
`Rect2(I)`
2024-01-16 20:20:53 +01:00
Zae 51c54b03d1 C#: Fix return type hint for methods. 2024-01-09 04:28:17 +08:00
Rémi Verschelde 22e880ad20
Merge pull request #83163 from Chubercik/vectorXi_dist_methods
Implement `Vector2i/3i/4i` methods: `distance_to` and `distance_squared_to`
2024-01-03 09:58:36 +01:00
Raul Santos abd7927325
C#: Use string literal instead of nameof
Using `nameof` expressions with method parameters requires C# 11 and we're currently on C# 10.
2023-12-21 03:11:47 +01:00
Yuri Sizov ef79e5d9dd Merge pull request #82983 from Repiteo/c#-godotsharp-nullable-classes
[C#] Enable nullability for variant classes
2023-12-19 20:32:30 +01:00
Yuri Sizov f478a599fc Merge pull request #85975 from Repiteo/c#-null-ptr-exception
C#: Implement function to throw on null pointers
2023-12-19 13:02:24 +01:00
Thaddeus Crews a0db88335a
Implement function to throw on null pointers
• Specifically: checks if ptr == IntPtr.Zero
2023-12-17 08:52:20 -06:00
Thaddeus Crews 08e44123cb
[C#] Enable nullability for variant classes 2023-12-09 12:42:10 -06:00
Thaddeus Crews db7a643e1c
[C#] Enable nullability for variant structs 2023-12-09 12:41:53 -06:00
Rémi Verschelde d76c1d0e51
Bump version to 4.3-dev
The essential doesn't change.

-- Samuel Beckett, Waiting for Godot
2023-11-29 23:00:27 +01:00
Rémi Verschelde 313bffc205
Merge pull request #83357 from raulsntos/dotnet/ConvertCallableToNative(default)
C#: Fix converting default Callables to native
2023-11-10 21:55:22 +01:00
A Thousand Ships 668761fa8e Rename `Vector2/3/4I.Min/Max` to `MinValue/MaxValue`
More consistent with the `Mathf` constants they reference
2023-11-09 14:16:53 +01:00
Theraot 8777c05817 Expanded documentation for vector slide and project 2023-10-23 06:16:07 -05:00
Rémi Verschelde 49f492d54b
Merge pull request #83532 from raulsntos/dotnet/nested-class-generation
C#: Fix generated nested class order
2023-10-18 16:54:58 +02:00
Raul Santos fe078219fc
C#: Fix generated nested class order 2023-10-18 03:37:57 +02:00
Raul Santos e6ebde8408
Fix C# docs to use the proper XML
Replaces some BBCode that was accidentally left in the C# documentation
with the proper XML syntax.
2023-10-18 01:56:25 +02:00
kleonc 408de3b091 Clarify C# docs for operators performing xform_inv 2023-10-17 19:49:42 +02:00
Raul Santos d525a45e5c
C#: Fix converting default Callables to native 2023-10-15 02:02:58 +02:00
Zae 55f74d99f4 C#: Fix lookup for singleton instance types. 2023-10-13 16:40:46 +08:00
Jakub Marcowski cb954c6bab Implement `Vector2i/3i/4i` methods: `distance_to` and `distance_squared_to` 2023-10-12 13:46:49 +02:00
Thaddeus Crews d0cd726310
C#: untyped to typed handle null exception
• Add some missing exception/return documentation
2023-10-09 09:53:21 -05:00
Thaddeus Crews d5d5af653e
C# - Fix inheritdoc links in Compat.cs 2023-10-08 09:14:28 -05:00
clayjohn 51ed3aef63 Vertex and attribute compression to reduce the size of the vertex format.
This allows Godot to automatically compress meshes to save a lot of bandwidth.

In general, this requires no interaction from the user and should result in
no noticable quality loss.

This scheme is not backwards compatible, so we have provided an upgrade
mechanism, and a mesh versioning mechanism.

Existing meshes can still be used as a result, but users can get a
performance boost by reimporting assets.
2023-10-05 12:02:23 -06:00
Raul Santos 1dbecc3ff1
Add C# compat members for 4.2 changes 2023-10-03 19:34:39 +02:00
Rémi Verschelde 6bebd9c961
Merge pull request #82664 from hackerzhuli/master
Fixed an error in `Vector3.BezierDerivative` in mono module
2023-10-02 13:17:02 +02:00
Rémi Verschelde e95b7e84a4
Merge pull request #80844 from dalexeev/fix-callable-expected-argc
Fix expected argument count for `Callable` call errors
2023-10-02 13:15:53 +02:00
朱力 bceba81b54 Fixed an error in Vector3.BezierDerivative in mono module 2023-10-02 15:00:05 +08:00
etti 3a39de4e2f Add rotate_toward and angle_difference to GDScript and C# 2023-10-01 22:19:42 +02:00
Danil Alexeev aff767ef07
Fix expected argument count for `Callable` call errors 2023-09-29 20:00:10 +03:00
Raul Santos f60cff1cb2
C#: Remove compat method that is now generated 2023-09-26 16:12:10 +02:00
Rémi Verschelde 42011d8673
Merge pull request #82240 from jaros3/vector2i-gethashcode
[C#] Use `HashCode.Combine()` for basic composite types instead of xor
2023-09-26 13:45:18 +02:00
Rémi Verschelde 017541bcec
Merge pull request #80527 from raulsntos/dotnet/generate-compat-methods-from-classdb
C#: Generate and use compat methods
2023-09-26 13:44:52 +02:00
bruvzg bc6585a5a7
[RTL] Add support for image dynamic updating, padding, tooltips and size in percent. 2023-09-26 09:39:51 +03:00
Rémi Verschelde d759f91f8d
Merge pull request #81101 from 398utubzyt/dotnet/abstract-class-support
C#: Add abstract class support
2023-09-25 17:18:05 +02:00
Jaroslav Wegner f1bab5fa51 [C#] Use `HashCode.Combine()` for basic composite types instead of xor 2023-09-25 13:56:23 +03:00
Rémi Verschelde ce0fa4c691
Merge pull request #81783 from zaevi/fix-csharp-static-method
C#: make C# static methods accessible.
2023-09-20 18:55:10 +02:00
Zae 67e1373e5a C#: make C# static methods accessible. 2023-09-20 22:49:33 +08:00
Raul Santos 5f6082a96b
C#: Generate and use compat methods
- Implements `ClassDB::get_method_list_with_compatibility` to retrieve all methods from a class including compat methods.
- C# bindings generator now also generates compat methods.
- All generated C# methods now use `ClassDB::get_method_with_compatibility`.
2023-09-19 20:35:11 +02:00
Thaddeus Crews 657d81e056
C#: CS1591 from `none` to `suggestion` 2023-09-19 13:12:06 -05:00
Rémi Verschelde c78d0e2eb0
Merge pull request #81819 from Chaosus/cs_max_min_vectors
Add Vector2/3/4i.MAX and MIN (C#)
2023-09-19 09:04:05 +02:00
Yuri Roubinski cf3008cb05 Add Vector2/3/4i.MAX and MIN (C#) 2023-09-17 22:12:59 +03:00
Thaddeus Crews e43b63ab98
C# - bindings_generator warnings to .editorconfig 2023-09-16 11:55:04 -05:00
398utubzyt 2df37a237a C#: Abstract script class support 2023-09-15 20:35:25 -07:00
Rémi Verschelde 00e14f39fd
Merge pull request #81230 from SamiKalliomaki/array-dispose
Fix double unregistration on dispose of Array.
2023-09-04 09:08:35 +02:00
Rémi Verschelde 0215d53a10
Merge pull request #81229 from raulsntos/dotnet/arc-hyperbolic
C#: Expose `asinh`, `acosh` and `atanh` in Mathf
2023-09-04 09:08:12 +02:00
Sami Kalliomäki 43a6748dfd Do not call Array default constructor when not necessary.
This fixes a bug where Array would get registered twice with the
DisposablesTracker causing an exception on shutdown.

Fixes #81231
2023-09-03 11:25:23 +01:00
Raul Santos f90005072c
C#: Expose `asinh`, `acosh` and `atanh` in Mathf 2023-09-02 12:00:02 +02:00
Thaddeus Crews f735aa1fc2
C#: Include argument types in generated methods
• Prevents warnings over ambiguous references with Compat.cs
• Fix typo in Compat.cs causing AddCodeCompletionOption documentation to inherit itself
2023-08-14 16:15:49 -05:00
Raul Santos 6b713b1682
C#: Generate instance types for singletons 2023-08-06 00:48:22 +02:00
Rémi Verschelde 8b6c867c81
Merge pull request #79280 from raulsntos/dotnet/better-push-error
C#: Improve `GD.PushError` and `GD.PushWarning`
2023-08-03 14:46:44 +02:00
Rémi Verschelde ed301a4078
Merge pull request #79249 from raulsntos/dotnet/dont-ignore-call-error
C#: Print error when MethodBind/Callable call fails
2023-08-02 12:16:15 +02:00
AbeniMatteo e5d8ac4020 Avoid dictionary lookup for common colors 2023-07-30 09:17:59 +02:00
Raul Santos 77e5e195f5
C#: Print error when MethodBind/Callable call fails 2023-07-28 19:18:08 +02:00
Yuri Sizov 000bf3733e Merge pull request #79748 from Repiteo/dotnet-documentation-fixes
Fix issues in C# documentation comments
2023-07-25 21:51:28 +02:00
Yuri Sizov b78fe83ed4 Merge pull request #79239 from raulsntos/dotnet/document-generated-members
C#: Document generated members
2023-07-25 21:51:20 +02:00
Thaddeus Crews 0bfc52b02b
Fixes to existing C# documentation
• changes instances of `see paramref` to `paramref name`
• specifies `real_t` for ambiguous methods
2023-07-21 10:34:42 -05:00
Yuri Sizov 9c74f3408b
Merge pull request #79082 from geowarin/master
Add missing useModelFront parameter to GodotSharp Basis and Transform
2023-07-17 16:50:28 +02:00
Yuri Sizov e4c89a0278 Merge pull request #78877 from mattdiener/master
C# Fix deserialization of delegates that are 0-parameter overloads
2023-07-12 15:09:36 +02:00
Raul Santos 13ab2b6f4f
C#: Improve `GD.PushError` and `GD.PushWarning`
- Use the name, file path and line number of the caller that invokes
`GD.PushError` and `GD.PushWarning` instead of the location in the C++
`runtime_interop.cpp` file.
- Improvements to getting the C# stack trace.
  - Use C# type keywords for built-in types in method declarations.
  - Remove extra space before each parameter in method declarations.
  - Skip one more frame to avoid `NativeInterop.NativeFuncs`.
  - Skip methods annotated with the `[StackTraceHidden]` attribute.
- Improvements to `ScriptEditorDebugger` when source is in project.
  - Avoid overriding error metadata when the source is inside the
project file.
  - Use the source function in the title when the source is inside
the project file.

Users that use these methods would expect the reported location printed
by these methods to correspond to a location in their project source files.
Specifically, they'd expect to see the file path and line number at which
they call these methods, and not the location of the C++ code (which is
always the same). Now, these methods are a lot more useful since users
can know which line in their source code printed the error/warning.
2023-07-11 11:19:11 +02:00
Raul Santos 12e4aa93b3
C#: Document generated members
Documents generated members and tries to discourage users from calling/overriding internal methods that only exist to be used by the engine.
2023-07-09 14:26:15 +02:00
RedworkDE 693e6e036b C#: Add null check before calling `UnregisterGodotObject` 2023-07-07 13:10:16 +02:00
Rémi Verschelde 26a58976e7
Merge pull request #79094 from raulsntos/dotnet/fix-symbol-comparison
C#: Compare symbol names without null flow state
2023-07-07 08:35:20 +02:00
Geoffroy Warin 6c6e5c482c Add missing useModelFront parameter to GodotSharp Basis and Transform
To LookAt methods.
Also adds Vector3 Model constants.

These were not added after #76082 was merged.
2023-07-06 19:01:02 +02:00
Raul Santos 671a5b4ea5
C#: Compare symbol names without null flow state 2023-07-06 16:10:14 +02:00
Rémi Verschelde 346f1ab86b
Bump version to 4.2-dev
Keep on waitin'
2023-07-05 22:07:03 +02:00
Matt Diener 783facf60b C# Fix deserialization of delegates that are 0-parameter overloads
Co-authored-by: Raul Santos <raulsntos@gmail.com>
2023-06-30 17:26:43 -04:00
RedworkDE e0f644a48d C#: Fix editor integration breaking and causing error spam when reloading assemblies fails
- Do not reload scripts from non-collectible assemblies
- Do not load GodotTools as collectible
- Do not attempt to reload the same project assembly forever
2023-06-21 12:47:52 +02:00
Raul Santos bd65ae633d
C#: Add compat overloads 2023-06-20 12:11:13 +02:00
Raul Santos 48e20c628a
C#: Set `PropertyInfo.class_name` for method parameters 2023-06-16 23:19:38 +02:00
Yuri Sizov f00641af9d
Merge pull request #77657 from vmedea/color-hex-doc
Clarify doc for Color.hex
2023-05-30 15:59:39 +02:00
mara 779ac20bb9 Clarify doc for Color.hex and C# Color()
The "alpha channel first" seems misleading to me. It doesn't match with
the examples, so remove it. Add a more detailed specification of the
expected number format in hex.
2023-05-30 15:15:04 +02:00
Raul Santos a1f454fee3
C#: Add global class support
Co-authored-by: willnationsdev <willnationsdev@gmail.com>
2023-05-29 19:04:02 +02:00
RedworkDE fa14b6d212 C#: Fix `SendToScriptDebugger` crash 2023-05-23 00:00:32 +02:00
RedworkDE 1cfc382fe8 C#: Mostly fix hash of ManagedCallable
The hash can still change when reloading assemblies but in all other
cases the result should be correct.
2023-05-18 13:44:36 +02:00
Gonçalo Vasconcelos b74d4f45bb C#: Add Basis.LookingAt 2023-04-11 16:05:35 +01:00
bendn ca0feabbb0
add `hex_decode()` to `String` 2023-04-05 19:44:00 +07:00
Yuri Sizov ce03630f34
Merge pull request #75477 from kleonc/csharp-fix-vector234i-from-floats-creation
C# Truncate instead of round in Vector2/3/4 to Vector2I/3I/4I conversion
2023-03-31 13:01:48 +02:00
kleonc f53d3382af C# Truncate instead of round in Vector2/3/4 to Vector2I/3I/4I conversion 2023-03-31 10:59:11 +02:00
Redwarx008 eb1fb254a6 C#: Fix Array.AddRange index out of bounds
Fix Array.AddRange index out of bounds
2023-03-27 21:55:06 +08:00
Rémi Verschelde 1c1524a651
Bump version to 4.1-dev
Can't stop, won't stop, they said, huh?
2023-03-01 01:44:37 +01:00
RedworkDE fce8a05b58 C#: Fix internal source generator on the 7.0.200 SDK 2023-02-16 11:25:47 +01:00
Caleb Kemper 103cb4bee6 Implement GodotSynchronizationContext.Send 2023-02-12 14:12:09 -07:00
RedworkDE fb0adaff9f C#: Fix AppContext.BaseDirectory 2023-02-04 14:35:11 +01:00
Rémi Verschelde bbff9fd7a4
Merge pull request #71786 from raulsntos/dotnet/array
Sync C# Array with Core
2023-02-04 00:24:06 +01:00
Rémi Verschelde 1ff2204cfe
Merge pull request #72554 from RedworkDE/net-appcontext-basedirectory
C#: Set AppContext.BaseDirectory for editor builds
2023-02-03 15:35:29 +01:00
Rémi Verschelde 5a413894fc
Merge pull request #72635 from RedworkDE/net-nodepath-iequatable
C#: Implement `IEquatable<>` and equality operators in `NodePath`
2023-02-03 15:35:22 +01:00