Commit Graph

2354 Commits

Author SHA1 Message Date
scgm0
a29ddd4674 C#: Clear existing data directory extracted from PCK 2024-09-12 07:12:01 +08:00
kit
5e1c9d68aa Extract editor main screen 2024-09-09 11:06:18 -04:00
Rémi Verschelde
0b4ae20156
Merge pull request #78656 from Repiteo/typed-dictionary
Implement typed dictionaries
2024-09-06 22:38:13 +02:00
Felix Bytow
e9762b3eaf
C# Assemblies can now be built with deprecated=no 2024-09-05 10:04:24 +02:00
Ryan
8835f326b1 Expose get_rpc_config and get_node_rpc_config
add documentation

Update doc/classes/Node.xml

change name of get_node_rpc_config to get_rpc_config

Co-Authored-By: moondog <159832633+dog-on-moon@users.noreply.github.com>
Co-Authored-By: Micky <66727710+Mickeon@users.noreply.github.com>
2024-09-04 15:45:22 -04:00
Thaddeus Crews
9853a69144
Implement typed dictionaries 2024-09-04 10:27:26 -05:00
A Thousand Ships
194bdde947
Cleanup of raw nullptr checks with Ref
Using `is_valid/null` over checks with `nullptr` or `ERR_FAIL_NULL` etc.
2024-08-31 15:01:09 +02:00
Raul Santos
4c14421602
C#: Use export platform to determine the target OS and log errors
- Use the export platform's `get_os_name` to determine the platform name instead of guessing from the features.
- Use the export platform's `add_message` to add error messages instead of a custom error dialog. Integrates .NET error messages with the export log dialog.
2024-08-30 12:45:24 +02:00
RedOrbweaver
81799b8fa3 Fix build logger unable to handle an event without an associated file 2024-08-29 20:33:47 +02:00
Rémi Verschelde
cb96fc95c3
Merge pull request #92316 from alula/msvc-clang
Add support for compiling with VS clang-cl toolset
2024-08-29 10:36:17 +02:00
Alula
346cbc7f1f
Add support for compiling with VS clang-cl toolset 2024-08-28 13:30:44 -05:00
bruvzg
d528f28275 [Windows] Fix OS.open_dynamic_library 2024-08-28 20:12:09 +03:00
Rémi Verschelde
b4f268fae8
Merge pull request #91018 from Daylily-Zeleen/daylily-zeleen/optionally_postinitialization_for_extension_owner
Allow ClassDB to create a Object without postinitialization for GDExtension.
2024-08-26 10:51:17 +02:00
Rémi Verschelde
37ae2a2900
Merge pull request #95921 from akien-mga/scons-validate-opt-in-drivers
SCons: Better validation for platform-specific opt-in drivers
2024-08-22 00:10:56 +02:00
Rémi Verschelde
39b77ea04e
Merge pull request #95790 from aaronfranke/rect-aabb-support
Simplify Rect2/AABB `get_support` function
2024-08-22 00:10:39 +02:00
Rémi Verschelde
6e9bcc0f18
SCons: Better validation for platform-specific opt-in drivers
This replaces cryptic compilation errors with a clear error message
and early build termination.
2024-08-21 22:53:34 +02:00
Daylily-Zeleen
3d575801ce Allow ClassDB to create a Object without postinitialization for GDExtension. 2024-08-20 20:19:02 +08:00
Rémi Verschelde
73d42411f0
Merge pull request #95808 from paulloz/bugfix/dotnet-globalclass-icon-relative-paths
Fix relative paths for global class icons in C#
2024-08-20 10:02:47 +02:00
Rémi Verschelde
65c6897e55
Merge pull request #95269 from raulsntos/dotnet/determinant
C#: Expose `Transform2D.Determinant()`
2024-08-20 10:02:07 +02:00
Aaron Franke
7db24a9ad5
Simplify and fix Rect2/AABB get_support function 2024-08-19 23:55:31 -07:00
Paul Joannon
3c0eaec39f
Fix relative paths for global class icons in C# 2024-08-19 18:09:58 +02:00
Rémi Verschelde
3647bc33cd
Merge pull request #93172 from raulsntos/dotnet/clear-instance-bindings
C#: Clear instance bindings callbacks on finalizing the language
2024-08-19 14:33:36 +02:00
Rémi Verschelde
1ac1d03857
Merge pull request #95676 from raulsntos/dotnet/clear-owner-order
C#: Destroy script before clearing owner
2024-08-19 12:09:15 +02:00
Raul Santos
c2efbf3012
C#: Use Godot's LipO implementation instead of Xcode's lipo command 2024-08-17 17:52:35 +02:00
Raul Santos
5e7fda8de7
C#: Destroy script before clearing owner
The C# script destructor needs to access the owner (i.e.: to disconnect signals) so we now clear it after the script has been destroyed.
2024-08-17 04:04:57 +02:00
Rémi Verschelde
4bd33df11e
Merge pull request #94766 from Z0rb14n/fix-vector3-slerp
C#: Fix Vector3 `Slerp` normalization error
2024-08-16 23:45:34 +02:00
Rémi Verschelde
0d0eb71694
Merge pull request #94599 from juanjp600/node-array-export-diagnostic
C#: Fix GD0107 not applying to arrays and dictionaries containing nodes
2024-08-16 23:45:26 +02:00
Rémi Verschelde
c98d549e65
Merge pull request #95431 from Joy-less/Fix-#10418
C#: Add `NotNullWhenAttribute` to `IsInstanceValid`
2024-08-16 14:34:30 +02:00
Rémi Verschelde
0bf8bee544
Merge pull request #94693 from jonatanrojderd/master
[C#] Change the `VisualShaderNodeCustom` template to use the correct override types and signatures
2024-08-16 14:32:20 +02:00
Jonatan Röjder Delnavaz
74389e8395 * Changed the VisualShaderNodeCustom template to use the correct overrides and added the GlobalClass attribute 2024-08-16 07:26:53 +02:00
Rémi Verschelde
c2a4942850
Bump version to 4.4-dev
Mr. Godot still didn't show up...
2024-08-15 11:39:34 +02:00
Joyless
3d43e73181 Add NotNullWhenAttribute to IsInstanceValid 2024-08-12 16:44:09 +01:00
Raul Santos
262671c644
C#: Expose Transform2D.Determinant() 2024-08-08 06:31:46 +02:00
Raul Santos
f3841d644e
C#: Generate signal delegates with typed arrays
Signals with typed arrays were generating C# delegates with untyped arrays.
2024-07-30 18:39:03 +02:00
Max
beaf2b18ce
Fix doc on Vector2.cs's / operator 2024-07-27 14:49:20 -07:00
Z0rb14n
0d6e9de0b9
Fix Vector3 Slerp Normalizing Zero Vectors
Ported the existing zero length check in C++ into C#.
2024-07-26 09:04:54 -07:00
Juan Pablo Arce
8aa444d212 Fix GD0107 not applying to arrays and dictionaries containing nodes 2024-07-24 02:20:29 -03:00
alpacat
2d493e85a9 Fix get_property_list get wrong order of properties 2024-06-30 19:48:35 +08:00
Thaddeus Crews
cc6dd8d02c
Style: Optimize .svg files with svgo 2024-06-23 08:15:19 -05:00
Raul Santos
65cd0c86f9
C#: Escape generated members 2024-06-15 19:07:42 +02:00
Raul Santos
13d26fccdd
C#: Clear instance bindings callbacks on finalizing the language
When finalizing the C# language every C# instance is disposed and the instance bindings callbacks are no longer valid. Clearing the instance bindings ensures these callbacks are not called, and since we dispose of every C# instance there should be no leaks.
2024-06-14 20:25:26 +02:00
Hilderin
cc990efddf Fix freeze after building C# 2024-06-09 13:40:51 -04:00
Raul Santos
44d4f637a1
C#: Skip method name when checking CallError
When invoking `call`, the arguments contain the method name. This argument must be skipped; otherwise, the `error.argument` index will be off.
2024-06-05 16:53:21 +02:00
Jakub Marcowski
d9f8ef68df
Update pre-commit hooks configuration to use ruff instead of black 2024-05-21 18:02:29 -05:00
Rémi Verschelde
c0eb347946
Merge pull request #91557 from AThousandShips/dotnet_doc_fix
[C#] Unexpose `GodotSharp`
2024-05-21 11:22:40 +02:00
Rémi Verschelde
0cf42d6273
Merge pull request #88919 from nongvantinh/fix-88834
Revise implementation of C# `Aabb.GetSupport` to match the implementation in `core`
2024-05-21 11:22:36 +02:00
Marius Hanl
32be459e54 Fix ContextMenu Copy Error is off in MSBuild Panel 2024-05-15 22:55:05 +02:00
Gaoyao Massimo Hu
e3270113ca
Remove useless isFirstEntry and useless source.Append("else ") 2024-05-14 07:44:56 +01:00
Rémi Verschelde
d24403d056
Merge pull request #91763 from paulloz/dotnet/fix-stringextension-warnings
C#: Fix comparison warnings in `StringExtensions.cs`
2024-05-10 09:56:12 +02:00
Rémi Verschelde
7704457434
Merge pull request #91645 from ZerxZ/dotnet/hint-string-fix
Fix C# Hint NodeType and ResourceType HintString
2024-05-10 09:55:54 +02:00
Rémi Verschelde
b7783a43c5
Merge pull request #91564 from paulloz/huisedenanhai-fix_csharp_method_info
CSharpScript should not own method infos of the base class
2024-05-10 09:55:47 +02:00
Paul Joannon
af5f695a99
Fix comparison warnings in StringExtensions.cs 2024-05-10 09:42:58 +02:00
Paul Joannon
1d7085571e
CSharpScript should not own base script signals 2024-05-09 13:46:25 +02:00
Gaoyao Massimo Hu
06b716d8b3
Fix C# Hint NodeType and ResourceType HintString 2024-05-08 16:22:52 +01:00
A Thousand Ships
a0dbdcc3ab
Replace find with contains/has where applicable
* Replaces `find(...) != -1` with `contains` for `String`
* Replaces `find(...) == -1` with `!contains` for `String`
* Replaces `find(...) != -1` with `has` for containers
* Replaces `find(...) == -1` with `!has` for containers
2024-05-08 12:37:42 +02:00
Rémi Verschelde
9ef50524d0
Merge pull request #91696 from akien-mga/style-file-format
Style: Trim trailing whitespace and ensure newline at EOF
2024-05-08 12:31:32 +02:00
Rémi Verschelde
7d03b1de0b
Style: Trim trailing whitespace and ensure newline at EOF
Found by apply the file_format checks again via #91597.
2024-05-08 10:12:46 +02:00
Paul Joannon
c2d72a691f
Specify a runtime rollforward for OpenVisualStudio
Use `LatestMajor`

Fixes #91638
2024-05-07 19:40:25 +02:00
Rémi Verschelde
4b070e8031
Fix various typos with codespell
Using 2.2.7.dev217+g10c2abcf.

Had to add `colour` to the ignore list as we used it as an alias/keyword for the
documentation of color-related APIs.
Also ignore recommendations to change `thirdparty` to either `third-party` or
`third party`, which are correct but we use the former fairly consistently.
2024-05-07 10:08:42 +02:00
huisedenanhai
c313312ff5
CSharpScript should not own method infos of the base class 2024-05-04 18:54:37 +02:00
A Thousand Ships
955d5affa8
Reduce and prevent unnecessary random-access to List
Random-access access to `List` when iterating is `O(n^2)` (`O(n)` when
accessing a single element)

* Removed subscript operator, in favor of a more explicit `get`
* Added conversion from `Iterator` to `ConstIterator`
* Remade existing operations into other solutions when applicable
2024-05-04 16:08:55 +02:00
A Thousand Ships
aff2e47bff
[C#] Unexpose GodotSharp
This class seems to have been exposed accidentally, and breaks
documentation on non-mono builds, requiring hacks
2024-05-04 14:09:42 +02:00
Rémi Verschelde
9ed8399514
Merge pull request #91509 from akien-mga/dotnet-fix-generating-glue-in-project-folder
.NET: Prevent generating mono glue in project folder
2024-05-04 11:52:32 +02:00
Rémi Verschelde
629e91acff
Merge pull request #91479 from Repiteo/dotnet/sln-csproj-attributes
C#: Fix attributes for `sln`/`csproj` files
2024-05-04 11:52:29 +02:00
Rémi Verschelde
458106a73e
Merge pull request #91203 from pirey0/stringcomp_fix
C#: Fix `StringExtensions.CompareTo` IndexOutOfRangeException
2024-05-04 11:52:25 +02:00
Thaddeus Crews
64f2e8b64f
Dotnet: Fix attributes for sln/csproj files 2024-05-03 12:21:51 -05:00
Rémi Verschelde
baec8da3b3
.NET: Prevent generating mono glue in project folder
Fixes #83128.
2024-05-03 14:24:35 +02:00
Luca Martinelli (laptop)
c02540bd66 fixed StringExtensions.CompareTo IndexOutOfRangeException
fixes #91118
marked CompareTo obsolete
dropped CompareTo [-1,1] range

Co-authored-by: Raul Santos <raulsntos@gmail.com>
2024-05-03 10:13:06 +02:00
K. S. Ernest (iFire) Lee
f9b488508c
Add PackedVector4Array Variant type
Co-authored-by: A Thousand Ships <96648715+AThousandShips@users.noreply.github.com>
Co-authored-by: Rémi Verschelde <rverschelde@gmail.com>
2024-05-03 00:58:27 +02:00
A Thousand Ships
0f5e0d1637
Expose Vector* component-wise and scalar min/max to scripting 2024-05-02 13:02:40 +02:00
Rémi Verschelde
4eaafc8fa8
Merge pull request #91375 from paulloz/dotnet/prevent-generator-crash-on-exported-unconstructed-generic-arrays
C#: Fix generator crash w/ generic arrays
2024-05-02 12:46:42 +02:00
A Thousand Ships
308dbb8c63
[Core] Add scalar versions of Vector* min/max/clamp/snap(ped)
Convenience for a number of cases operating on single values
2024-05-02 10:31:13 +02:00
Raul Santos
1510f88ae1
C#: Ignore late bound methods in MustBeVariantAnalyzer
If symbol is late bound (as is the case when using `dynamic`) we can't obtain the symbol to analyze the usage of `[MustBeVariant]`.
2024-05-01 03:18:21 +02:00
Paul Joannon
aba787393f
C#: Fix generator crash w/ generic arrays 2024-04-30 22:22:09 +02:00
Aaron Franke
1bcbbe96c4
Organize existing code for editor plugins 2024-04-27 11:59:58 -07:00
Konstantin Kretov
2b46e009fa
Fill copyright field in .csproj files
This ensures that nuget packages will have both license and copyright fields filled.
2024-04-26 11:41:04 +02:00
Paul Joannon
f2efa545d6
Enforce using .NET SDK >= 8 in modules/mono/ 2024-04-23 22:54:22 +02:00
Rémi Verschelde
2b42352c99
Merge pull request #90968 from raulsntos/fix-gdscript-analyzer-with-overloaded-dotnet-methods
C#: Don't return MethodInfo for overloaded methods
2024-04-22 12:53:47 +02:00
Rémi Verschelde
1a6e4ce906
Merge pull request #90002 from raulsntos/dotnet/expose-property-accessors
C#: Make internal properties and property accessors public (but hidden)
2024-04-22 12:51:42 +02:00
Raul Santos
7316918a0f
C#: Don't return MethodInfo for overloaded methods
This means the GDScript analyzer loses the method signature information so it can't do type checking for the parameters.
2024-04-21 05:32:47 +02:00
Paul Joannon
1627287586
Change order of operation for C# types reloading
We now deserialize callables before reloading property states, in case a property is doing anything with the callable in its getter and/or setter.
2024-04-18 09:38:58 +02:00
Raul Santos
509d4f5302
C#: Fix ExprMatch for case sensitive matching
We were accidentally stopping the recursion when matching in the case sensitive scenario.

Took the opportunity to also rename the private method to follow the Core method naming more closely so it's easier to compare the implementations in the future.

Also, the private method now uses `ReadOnlySpan<char>` to avoid allocating strings on each recursion.
2024-04-15 03:15:28 +02:00
bruvzg
bf558adcdd
[.NET] Disable output embedding on macOS, move it to the advanced options on other platforms. 2024-04-09 17:47:39 +03:00
Rémi Verschelde
368d6db6cc
Merge pull request #90060 from warquys/CSharp-DebugInfo
Add DebugView for Array and Dictionary, based of the DebugView from the .NET Foundation
2024-04-08 11:20:46 +02:00
Nông Văn Tình
316f253558 Show errors when solution file is missing in C# project
Fixes: #86591

Co-authored-by: Raul Santos <raulsntos@gmail.com>
2024-04-07 00:25:34 +07:00
Valentin Arthur Thomas
f8c482b19a DebugView for Array and dictionary 2024-04-05 19:55:37 +02:00
Rémi Verschelde
f2cc814f35
Merge pull request #90118 from AyOhEe/sln-title-fix
Fix "Create C# solution" dialog
2024-04-05 12:16:10 +02:00
Paul Joannon
c310ecce13
Fix captured variable serialization in delegates 2024-04-04 18:46:11 +02:00
Rémi Verschelde
c196d12e23
Merge pull request #84947 from raulsntos/dotnet/instance_bindings
C#: Use `get_instance_binding` instead of set
2024-04-04 14:30:35 +02:00
AyOhEe
e18fb27d70
Fixed "Create C# solution" dialog
Flipped the title and dialog text to how they should be. It seemed that the title was being put in the dialog text, and vice versa.
2024-04-01 23:01:40 +01:00
Raul Santos
7d08e8727b
C#: Make internal properties and property accessors public (but hidden)
Instead of making the accessors `internal` which can break binary compat, make them `public` but hide them with EB never so they don't show up in IntelliSense.

Also, do the same for properties with the `PROPERTY_USAGE_INTERNAL` flag. These properties were not meant to be exposed to scripting, but since they've been public before all we can do now is hide them.
2024-03-29 20:36:04 +01:00
kleonc
e2ed63b313 [C#] Fix Transform3D.InterpolateWith applying rotation before scale 2024-03-24 09:31:20 +01:00
Rémi Verschelde
3895639f72
Merge pull request #89756 from zaevi/dotnet/fix_null_array
C#: Fix errors when creating `Variant` from null array
2024-03-24 01:23:18 +01:00
Rémi Verschelde
1c2ff17f12
Merge pull request #89652 from invino4/patch-1
Add property `UsingGodotNETSdk` to Godot.NET.Sdk
2024-03-24 01:20:29 +01:00
Zae
833a03fbf6 C#: Fix errors when creating Variant from null array 2024-03-21 23:55:44 +08:00
Jason Hunter
bdbd9995f8
Add property UsingGodotNETSdk to Godot.NET.Sdk
The Godot.NET.Sdk (for C# use) should define the property `UsingGodotNETSdk` in its [SDK.props](a07dd0d6a5/modules/mono/editor/Godot.NET.Sdk/Godot.NET.Sdk/Sdk/Sdk.props).  

## Why
Defining this property allows shared build configuration (e.g. Directory.Build.targets or other imported msbuild files) to detect deterministically when they are operating within the scope of a project controlled by Godot.NET.Sdk.  This enables shared build configuration that may span many different projects within a folder to have Godot.NET.Sdk-specific configuration that only applies to Godot projects.

## Why named UsingGodotNETSdk
This naming scheme is common practice in Microsoft Dotnet SDKs.  For example, the property `UsingMicrosoftNETSdk` is defined by the default SDK, `UsingMicrosoftTraversalSdk` is defined by [Microsoft.Build.Traversal](363532de5b/src/Traversal/Sdk/Sdk.props (L10)), `UsingMicrosoftNoTargetsSdk` by [Microsoft.Build.NoTargets](363532de5b/src/NoTargets/Sdk/Sdk.props (L10)), and so on.  The property `UsingMicrosoftNETSdk` is even used in the implementation of Godot.NET.Sdk for conditional logic of the type predicted here.

Note that these "Using*" properties are _additive_ in the sense that more than one can be defined for a given project (as SDKs can effectively be built upon other SDKs, using them as components).  So, it is normal and appropriate for both `UsingMicrosoftNETSdk` and `UsingGodotNETSdk` to be simultaneously defined within the same project.
2024-03-18 09:48:52 -07:00
Thaddeus Crews
300aa202c8
C#: Implement InvariantCulture on Variant strings 2024-03-15 19:43:00 -05:00
Rémi Verschelde
a1c476f9d7
Merge pull request #87680 from AThousandShips/the_angry_count
Add methods to get argument count of methods
2024-03-13 22:16:43 +01:00
Thaddeus Crews
3b3e2374c9
clang-tidy: Enforce modernize-use-nullptr 2024-03-12 10:59:53 -05:00
Thaddeus Crews
fb299d0fb1
SCons: Ensure with statement where applicable 2024-03-10 12:57:57 -05:00