summaryrefslogtreecommitdiff
path: root/modules
AgeCommit message (Collapse)Author
2022-11-03Merge pull request #68092 from raulsntos/dotnet/variant-from-arrayIgnacio Roldán Etcheverry
C#: Add implicit conversion from arrays to Variant
2022-11-02Allow getting Quaternion rotation in different Euler ordersAaron Franke
2022-11-02Merge pull request #66747 from aaronfranke/move-euler-orderRémi Verschelde
Move EulerOrder enum to math_defs.h and global scope
2022-11-02C#: Add implicit conversion from arrays to VariantRaul Santos
Adds an implicit conversion from supported array types (the ones that are equivalent to `Packed*Array` types in Godot) to Variant.
2022-11-02Move EulerOrder enum to math_defs.h and global scopeAaron Franke
2022-11-02Style: Misc docs and comment style and language fixesRémi Verschelde
- Removed empty paragraphs in XML. - Consistently use bold style for "Example:", on a new line. - Fix usage of `[code]` when hyperlinks could be used (`[member]`, `[constant]`). - Fix invalid usage of backticks for inline code in BBCode. - Fix some American/British English spelling inconsistencies. - Other minor fixes spotted along the way, including typo fixes with codespell. - Don't specify `@GlobalScope` for `enum` and `constant`.
2022-11-02Merge pull request #65062 from KoBeWi/RedoUndoRémi Verschelde
Unify usage of undo_redo in editor
2022-11-02Merge pull request #67917 from Faless/mp/4.x_authRémi Verschelde
[MP] Add peer authentication support to the default MultiplayerAPI.
2022-11-02Merge pull request #68118 from aaronfranke/quat-from-eulerRémi Verschelde
Replace Quaternion Euler constructor with `from_euler` method
2022-11-02Unify usage of undo_redo in editorkobewi
2022-11-02[MP] Remove connection state signals from MultiplayerPeer.Fabio Alessandrelli
Now handled directly by the MultiplayerAPI implementation.
2022-11-02[MP] Add optional authentication to SceneMultiplayer.Fabio Alessandrelli
Add few methods to allow peers to exchange authentication information. - `set_auth_callback(callback)`: Enable the authentication features. The callback is a `Callable` that accepts an `int` (the peer ID), and a `PackedByteArray` of data. - The `peer_authenticating(id)` signal will be emitted instead of `peer_connected` when a new peer connects. - Use `send_auth(id: int, data: PackedByteArray)` to exchange data. - Call `complete_auth(id: int)` when the authentication process is complete and you expect to start receiving game data. - The `peer_connected` signal will be emitted as soon as both parties complete the authentication. - Use `disconnect_peer(id)` to disconnect a connected peer. - If the `peer_connected` signal didn't fire for that peer (i.e. it was still in the authentication phase), the `peer_auth_failed` signal will be emitted instead of `peer_disconnected`.
2022-11-02Merge pull request #68125 from ↵Rémi Verschelde
kleonc/range-fix-single-arg-optimized-type-mismatch [GDScript] Fix type mismatch in optimized single arg `range`
2022-11-02Merge pull request #68161 from Chaosus/dotnet_quaternion_constructorRémi Verschelde
Add missed Quaternion constructor to C#
2022-11-02Merge pull request #68136 from qarmin/projection_not_equalRémi Verschelde
Support for checking that Projection is(not) null
2022-11-02Merge pull request #68131 from benbusby/hotfix/zippacker_null_checkRémi Verschelde
Remove `zf != NULL` check from `ZIPPacker::start_file`
2022-11-02Merge pull request #68040 from adamscott/fix-property-getter-return-typeRémi Verschelde
Fix property getter with custom return type
2022-11-02Merge pull request #68057 from Klowner/tga-truncated-crash-fix-67985Rémi Verschelde
Add buffer size check to Image.load_tga_from_buffer(). Fixes #67985
2022-11-02Merge pull request #68110 from bruvzg/hexbox_verRémi Verschelde
[TextServer] Fix hex code box positions in vertical text layout.
2022-11-02GDScript Fix type mismatch in optimized single arg `range`kleonc
2022-11-02Add missed Quaternion constructor to C#Yuri Rubinsky
2022-11-01Support for checking that Projection is(not) nullRafał Mikrut
2022-11-01Merge pull request #67982 from Faless/mp/4.x_disconnect_closeFabio Alessandrelli
[MP] Add MultiplayerPeer disconnect_peer, close.
2022-11-01Remove `zf != NULL` check from `ZIPPacker::start_file`Ben Busby
This check was removed because it introduces a bug which prevents ZIPPacker from actually adding any files, since it must be opened before adding any files (and therefore shouldn't be NULL at the start of `start_file`).
2022-11-01Replace Quaternion Euler constructor with `from_euler` methodAaron Franke
2022-11-01[TextServer] Fix hex code box positions in vertical text layout.bruvzg
2022-11-01Clarify offset parameter behavior in RegEx methodsHaoyu Qiu
2022-10-31[TextServer] Fix incorrect line breaks count for embedded objects (e.g. RTL ↵bruvzg
tables).
2022-10-31Improve text line breaking performance for long lines.bruvzg
2022-10-31Merge pull request #67562 from bruvzg/improve_font_packingRémi Verschelde
Improve font glyph cache packing shelf best height fit heuristic.
2022-10-31Merge pull request #67968 from bruvzg/icu72.1Rémi Verschelde
ICU: Update to version 72.1
2022-10-31Merge pull request #67585 from bruvzg/fix_no_graphite_buildRémi Verschelde
[TextServer] Fix build with disabled graphite.
2022-10-31Merge pull request #67409 from bruvzg/fix_oversampling_roundingRémi Verschelde
[TextServer] Do not round glyph advances / coordinates if font oversampling or bitmap glyph scaling is used.
2022-10-31Merge pull request #67578 from KoBeWi/GEDITORRémi Verschelde
Unify usage of GLOBAL/EDITOR_GET
2022-10-31Merge pull request #67826 from Chaosus/gds_fix_enumRémi Verschelde
Fix enum type to use int64_t instead of int in GDScript
2022-10-31Merge pull request #67588 from KoBeWi/if(!GDVIRTUAL_CALL)don'tRémi Verschelde
Simplify GDVIRTUAL_CALL calls
2022-10-31Merge pull request #67055 from GuilhermeGSousa/custom-node-exportRémi Verschelde
Added custom node export
2022-10-31Merge pull request #68065 from zCubed3/fix_min_max_crashRémi Verschelde
`GDScriptAnalyzer` Fix math utilities crashing when invalid args are passed
2022-10-31Merge pull request #67445 from Zylann/rename_queue_deleteRémi Verschelde
Rename queue_delete => queue_free
2022-10-31Merge pull request #66929 from MladoniSzabi/save_jpeg_fileRémi Verschelde
Fixed Image.save_jpg() does not write any file
2022-10-31Merge pull request #62695 from Spartan322/relax-constant-assertsRémi Verschelde
Allow non-constant string message for assert
2022-10-31Merge pull request #67987 from neikeq/dotnet-more-static-marshalingIgnacio Roldán Etcheverry
C#: Reflection-less delegate callables and nested generic Godot collections
2022-10-30Fix math utility functions crashing when invalid args passedzCubed3
2022-10-30Add buffer size check to Image.load_tga_from_buffer(). Fixes #67985Mark Riedesel
2022-10-30Merge pull request #68039 from Anutrix/docs-fix-signal-syntaxMax Hilbrunner
Fixed signal connection examples to use new callable syntax in the docs
2022-10-29[godot#68001] Fix property getter with custom return typeAdam Scott
2022-10-30Fixed signal connection examples to use new callable syntax in the docsAnutrix
2022-10-30C#: Add Variant conversion callbacks for generic Godot collectionsIgnacio Roldán Etcheverry
This allows using generic Godot collections as type arguments for other generic Godot collections. This also allows generic Godot collections as parameter or return type in dynamic Callable invocations.
2022-10-30C#: Remove need for reflection to invoking callable delegatesIgnacio Roldán Etcheverry
We aim to make the C# API reflection-free, mainly for concerns about performance, and to be able to target NativeAOT in refletion-free mode, which reduces the binary size. One of the main usages of reflection still left was the dynamic invokation of callable delegates, and for some time I wasn't sure I would find an alternative solution that I'd be happy with. The new solution uses trampoline functions to invoke the delegates: ``` static void Trampoline(object delegateObj, NativeVariantPtrArgs args, out godot_variant ret) { if (args.Count != 1) throw new ArgumentException($"Callable expected 1 arguments but received {args.Count}."); string res = ((Func<int, string>)delegateObj)( VariantConversionCallbacks.GetToManagedCallback<int>()(args[0]) ); ret = VariantConversionCallbacks.GetToVariantCallback<string>()(res); } Callable.CreateWithUnsafeTrampoline((int num) => "Foo" + num, &Trampoline); ``` Of course, this is too much boilerplate for user code. To improve this, the `Callable.From` methods were added. These are overloads that take `Action` and `Func` delegates, which covers the most common use cases: lambdas and method groups: ``` // Lambda Callable.From((int num) => "Foo" + num); // Method group string AppendNum(int num) => "Foo" + num; Callable.From(AppendNum); ``` Unfortunately, due to limitations in the C# language, implicit conversions from delegates to `Callable` are not supported. `Callable.From` does not support custom delegates. These should be uncommon, but the Godot C# API actually uses them for event signals. As such, the bindings generator was updated to generate trampoline functions for event signals. It was also optimized to use `Action` instead of a custom delegate for parameterless signals, which removes the need for the trampoline functions for those signals. The change to reflection-free invokation removes one of the last needs for `ConvertVariantToManagedObjectOfType`. The only remaining usage is from calling script constructors with parameters from the engine (`CreateManagedForGodotObjectScriptInstance`). Once that one is made reflection-free, `ConvertVariantToManagedObjectOfType` can be removed.
2022-10-30Merge pull request #67909 from Calinou/doc-enetpacketpeerMax Hilbrunner
Document the ENetPacketPeer class