Commit Graph

434 Commits

Author SHA1 Message Date
Aaron Franke 3d1c9fd5de
Move server files into their subfolders 2025-09-30 19:39:39 -07:00
Talkashie bc7e68dfd1 Typos 2025-08-19 18:32:59 -05:00
A Thousand Ships f11aff3841
Editor: Restructure editor code
Moving various editor files into sub folders to reduce clutter
2025-07-04 18:18:22 +02:00
Thaddeus Crews 26678d065f
Merge pull request #106243 from juanjp600/dotnet-script-initialization-order-collections-bug
Fix 'Script class can only be set together with base class name' error with .NET typed collections upon rebuild
2025-06-24 09:58:33 -05:00
Rémi Verschelde 7e9b709917
Merge pull request #102837 from raulsntos/dotnet/fix-reload-callables
[.NET] Skip serializing delegates with a disposed target
2025-06-13 15:53:33 +02:00
Fabio Alessandrelli c28d5d0058 Revert "Expose get_rpc_config and get_node_rpc_config"
This reverts commit 8835f326b1.
2025-05-26 15:57:38 +02:00
Thaddeus Crews 2bf7ac76cf
Merge pull request #106456 from Repiteo/style/remove-DEBUG_METHODS_ENABLED
Style: Remove redundant `DEBUG_METHODS_ENABLED` macro
2025-05-19 08:01:35 -05:00
Yufeng Ying 1384e82c2c Improve ScriptLanguage get keyword API. 2025-05-17 18:43:19 +08:00
Thaddeus Crews d237e31a89
Style: Remove redundant `DEBUG_METHODS_ENABLED`
• Replaced with functionally identical and far more ubiquitous `DEBUG_ENABLED`
2025-05-15 13:09:41 -05:00
Juan Pablo Arce 3d7c4b8012 Fix 'Script class can only be set together with base class name' error with .NET typed collections upon rebuild 2025-05-10 03:09:39 -03:00
Thaddeus Crews 28089c40c1
Merge pull request #91006 from reduz/live-backtrace
Ability to print and log script backtraces
2025-04-24 17:18:52 -05:00
reduz d1dcb40d56 Ability to print and log script backtraces
Co-authored-by: Mikael Hermansson <mikael@hermansson.io>
2025-04-24 18:54:41 +02:00
A Thousand Ships 889410dcda
Add `String::replace_char(s)` methods for performance and convenience 2025-04-10 13:08:45 +02:00
Yufeng Ying 4f4031a675 Replace size() == 0 with is_empty(). 2025-04-02 19:18:43 +08:00
Thaddeus Crews 1cb3cfaa8e
Style: Convert namespaces to PascalCase 2025-03-23 19:10:24 -05:00
Thaddeus Crews f09ee0171a
Style: Begin integrating simple `.clangd` fixes 2025-03-22 13:24:35 -05:00
Thaddeus Crews d9125ebebe
Merge pull request #101293 from Ivorforce/string-to-pointer-conversion
Remove implicit conversions from `String`, `Char16String` and `CharString` to data pointers.
2025-03-07 15:12:12 -06:00
Raul Santos 2550cdc0c4
[.NET] Skip serializing delegates with a disposed target
When reloading assemblies, we serialize the managed delegates so we can recreate the callables later. If the delegate's target is a GodotObject that has already been disposed, we can't serialize the delegate.

Before this change, trying to serialize one of these delegates throws an exception and prevents releasing its strong GCHandle, so the assembly can't be unloaded.

With this change, we don't serialize the delegates and release them anyway. This means some delegates may get lost on reloading assemblies, but if their target was already freed it's probably fine.
2025-02-14 03:17:06 +01:00
Pedro J. Estébanez 318af42020 Include more attributes in the global class names cache 2025-01-29 09:39:50 +01:00
Lukas Tenbrink 512abc38b2 Remove implicit conversions from String, Char16String and CharString to data pointers. Make conversions to StrRange implicit to aid transition. 2025-01-17 17:31:58 +01:00
Ricardo Subtil b77aa473a1 Implement a "Recovery Mode" for recovering crashing/hanging projects during initialization 2025-01-03 10:50:15 +00:00
A Thousand Ships a1846b27ea
Improve use of `Ref.is_null/valid`
Use `is_null` over `!is_valid` and vice versa.
2024-12-23 16:35:02 -05:00
Juan Pablo Arce 8ab27a7ccf Fix generic arrays and dictionaries not calling set_typed 2024-12-08 01:01:19 -03:00
A Thousand Ships 68f638cf02
Use `(r)find_char` instead of `(r)find` for single characters 2024-11-17 10:02:18 +01:00
Thaddeus Crews 925b690c98
Core: Integrate `Ref::instantiate` where possible 2024-11-10 12:41:26 -06:00
Adam Scott 0d350e7108
Set clang-format `RemoveSemicolon` rule to `true`
- Set clang-format `Standard` rule to `c++20`
2024-10-25 13:49:43 -04:00
Rémi Verschelde ae872a4ed5
Merge pull request #97014 from hayahane/fix_script_property_order
Reorder C# script properties to fix editor serialization
2024-09-19 17:13:34 +02:00
alpacat 7df5b78aca Reorder C# script properties to fix editor serialization 2024-09-19 12:49:15 +08:00
Rémi Verschelde 8ebfd89359
Merge pull request #96024 from Ryan-000/expose_get_rpc_config
Expose `get_rpc_config` and `get_node_rpc_config`
2024-09-16 13:34:34 +02:00
Rémi Verschelde 40d8d82b85
Merge pull request #93779 from hayahane/fix_get_property_cs
[C#] Fix `get_property_list` get wrong order of properties
2024-09-13 11:21:37 +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
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
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
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
alpacat 2d493e85a9 Fix `get_property_list` get wrong order of properties 2024-06-30 19:48:35 +08: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
Paul Joannon 1d7085571e
CSharpScript should not own base script signals 2024-05-09 13:46:25 +02:00
huisedenanhai c313312ff5
CSharpScript should not own method infos of the base class 2024-05-04 18:54:37 +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
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
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 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
A Thousand Ships 59bcc2888c
Add methods to get argument count of methods
Added to:
* `Callable`s
* `Object`s
* `ClassDB`
* `Script(Instance)`s
2024-03-10 11:02:43 +01:00
RedMser 2bd714e34e
Allow configuring the script filename casing rule
Defaults to "Auto", which detects the casing based on the
preference of the currently selected language (C# for example
prefers PascalCase whereas GDScript prefers snake_case).
2024-03-05 09:43:29 +01:00
Pedro J. Estébanez 5e144022e7 Enhance cache modes in resource loading
- Unify documentation, hoping to clear misconcepctions about about propagation of the cache mode across dependant loads.
- Clarify in docs that `CACHE_MODE_REPLACE` now also works on the main resource (from #87008).
- Add two recursive modes, counterparts of `CACHE_MODE_REPLACE` and `CACHE_MODE_IGNORE`, since it seems some need them (see #59669, #82830).
- Let resources, even loaded with one of the ignore-cache modes, get a path, which is useful for tools.
2024-02-26 14:59:04 +01:00
Nông Văn Tình c5e6a5863d Fix Script Editor saves C# files as embedded scripts
fixes: #88543
fixes: #88160

Because of the limitations of compiled programming languages like C#, when a newly created *.cs file hasn't been compiled, we don't have any information about its `Path` or `Type` in the `assemply`. This means we end up creating an invalid instance of this file whenever there's a request. Consequently, multiple instances of the script can exist. When a new instance takes over the path, it clears the `path_cache` of the previous instance, leading to undefined behavior.
2024-02-25 22:08:18 +07:00
Rémi Verschelde 09df8f4a56
Merge pull request #87952 from paulloz/dotnet/byebye-signal-callback-generation
Disable signal callback generation in C#
2024-02-15 15:44:55 +01:00
Muller-Castro a8bc9f3e78 Add const lvalue ref to core/* container parameters 2024-02-14 11:20:36 -03:00
Paul Joannon 9fa2355cef
Disable signal callback generation in C# 2024-02-14 13:26:45 +01:00