summaryrefslogtreecommitdiff
path: root/core
AgeCommit message (Collapse)Author
2021-08-30Revert " Improve collision generation usability in the new 3D scene import ↵Juan Linietsky
workflow."
2021-08-30Merge pull request #51985 from AndreaCatania/collCamille Mohr-Daurat
Improve collision generation usability in the new 3D scene import workflow.
2021-08-30Try other resolved IPs if one fails to connectHaoyu Qiu
2021-08-30[Net] Rename RPC "puppet" to "auth" (authority). Drop "master".Fabio Alessandrelli
This commit completely removes the RPC_MODE_MASTER ("master" keyword), and renames the RPC_MODE_PUPPET to RPC_MODE_AUTHORITY ("auth" keyword). This commit also renames the "Node.[get|set]_network_master" methods to "Node.[get|set]_network_authority". This commit also renames the RPC_MODE_REMOTE constant to RPC_MODE_ANY. RPC_MODE_MASTER in Godot 3.x meant that a given RPC would be callable by any puppet peer on the master, while RPC_MODE_PUPPET meant that it would be callable by the master on any puppet. Beside proving to be very confusing to the user (referring to where it could be called instead of who can call it) the RPC_MODE_MASTER is quite useless. It is almost the same as RPC_MODE_REMOTE (anyone can call) with the exception that the network master cannot. While this could be useful to check in some case, in such a function you would anyway need to check in code who is the caller via get_rpc_sender_id(), so adding the check there for those rare cases does not warrants a dedicated mode.
2021-08-30Merge pull request #51788 from Faless/mp/4.x_replicator_syncFabio Alessandrelli
[Net] MultiplayerReplicator state sync.
2021-08-28Merge pull request #52180 from timothyqiu/config-file-propHugo Locurcio
Quote and escape ConfigFile keys when necessary
2021-08-28Merge pull request #47406 from mashumafi/master-Array-insert-rcMax Hilbrunner
Array::insert consistent with Pool*Array::insert
2021-08-28Merge pull request #43522 from qarmin/divide_by_zero_in_vectoriMax Hilbrunner
Fix crash when dividing by 0 in Vector2/3i
2021-08-28Quote and escape ConfigFile keys when necessaryHaoyu Qiu
2021-08-27Merge pull request #52122 from V-Sekai/autoload_listK. S. Ernest (iFire) Lee
Use sorted map for autoloads in ProjectSettings to preserve order.
2021-08-27Merge pull request #52090 from balloonpopper/bug52060Max Hilbrunner
Correct null and boolean values being capitalised by the str command
2021-08-27Add a SafeList data structure for future audio server usage.Ellen Poe
2021-08-27Merge pull request #52110 from nekomatata/fix-segment-intersectionCamille Mohr-Daurat
Fix segment intersection consistency in Geometry2D
2021-08-26Use OrderedHashMap for autoloads to preserve orderLyuma
2021-08-27Add an `Array.pop_at()` method to pop an element at an arbitrary indexHugo Locurcio
Negative indices are supported to pop an element relative from the end.
2021-08-26Merge pull request #52121 from groud/fix_localvector_insertJuan Linietsky
Fix LocalVector crash on insert.
2021-08-26Merge pull request #52107 from timothyqiu/overridenJuan Linietsky
Fix misspelled "overriden"
2021-08-26Merge pull request #51928 from reduz/extension-loaderJuan Linietsky
Implement Extension Loader
2021-08-26Data structure optimizations as per review.Fabio Alessandrelli
2021-08-26Merge pull request #52077 from reduz/error-ret-docJuan Linietsky
Implement error return documentation
2021-08-26Fix LocalVector crash on insert.Gilles Roudière
2021-08-26Correct null and boolean values being capitalised by the str commandBalloonpopper
2021-08-25Fix segment intersection consistency in Geometry2DPouleyKetchoupp
Segment collision results could be different depending on the direction when they exactly touch (order of the points in segments). This was due to the way parallelism was checked, using different logic based on positive or negative sign of cross products. Now the results are the same whatever the direction, without changing the current design, which is that parallel or colinear segments are not considered colinear. Fixes inconsistencies with raycasts exactly on edges of convex shapes depending on the direction.
2021-08-26Fix misspelled "overriden"Haoyu Qiu
In recent GDVIRTUAL PR and SkeletonModification3DJiggle doc.
2021-08-25Add ability to register singletons from engine APIreduz
* Exposed functions in Engine to register and unregister singletons. * Added the concept of user singletons, which can be removed (the system ones can't).
2021-08-24Implement error return documetationreduz
Adds ability to add error return documetation to the binder and class reference. Usage example: ```C++ void MyClass::_bind_method() { [..] BIND_METHOD_ERR_RETURN_DOC("load", ERR_FILE_CANT_OPEN, ERR_FILE_UNRECOGNIZED); } ``` One function of ConfigFile was changed as example.
2021-08-24Merge pull request #52041 from Rubonnek/expose-simplify-pathMax Hilbrunner
Expose `String.simplify_path`
2021-08-24Expose String.simplify_pathWilson E. Alvarez
2021-08-23Expose RID creation utilities.reduz
* Exposed as utility functions. * Not very useful for script, but vital for creating servers using native extensions.
2021-08-23Merge pull request #52036 from reduz/native-extension-argument-pointersJuan Linietsky
Implement NativeExtension pointer arguments
2021-08-23Implement NativeExtension pointer argumentsreduz
* Allows calling into native extensions directly with a pointer * Makes it easier to implement some APIs more efficiently * Appears with a "*" in the documentation for the argument. * Implementing the pointer handling is entirely up to the implementation, although the extension API provides some hint. * AudioStream has been implemented as an example, allowing to create NativeExtension based AudioStreams.
2021-08-23Merge pull request #51791 from mhilbrunner/better-error-namesMax Hilbrunner
Improve error descriptions
2021-08-23Improve error descriptionsMax Hilbrunner
2021-08-23Merge pull request #51971 from aaronfranke/httpsMax Hilbrunner
Replace HTTP URLs with HTTPS for sites with HTTPS versions
2021-08-23Merge pull request #51750 from jmb462/inputmap_action_suggestionsMax Hilbrunner
Adding InputMap action error suggestions for Input singleton (Fix #51634)
2021-08-23Entirely removes BIND_VMETHOD in favor of GDVIRTUALreduz
* `_gui_input`, `_input`, `_unhandled_input` and `_unhandled_key_input` are now regular C++ virutal functions. * Everything else converted to GDVIRTUAL * BIND_VMETHOD is gone, always use the new syntax from now on. Creating `_gui_input` method and using the binder to register events will no longer work, simply override the virtual function now.
2021-08-22Replace HTTP links with HTTPS for sites with HTTPS versionsAaron Franke
2021-08-22Fix Vector ConstIterator constructor.AndreaCatania
The constructor was expecting a mutable pointer, while the passed pointer was immutable ( returns a const pointer), so the compilation was failing when iterating a constant .
2021-08-22Replace BIND_VMETHOD by new GDVIRTUAL syntaxreduz
* New syntax is type safe. * New syntax allows for type safe virtuals in native extensions. * New syntax permits extremely fast calling. Note: Everything was replaced where possible except for `_gui_input` `_input` and `_unhandled_input`. These will require API rework on a separate PR as they work different than the rest of the functions. Added a new method flag METHOD_FLAG_OBJECT_CORE, used internally. Allows to not dump the core virtuals like `_notification` to the json API, since each language will implement those as it is best fits.
2021-08-21Merge pull request #51836 from akien-mga/string-remove-NO_USE_STDLIBRémi Verschelde
String: Remove old NO_USE_STDLIB code path
2021-08-20Implement Extension Loaderreduz
* Extensions are now scanned and loaded on demand. * Extensions found are cached into a file that is used to load them (which is also exported). * Editor will ask to restart when an extension requires core functionality. * Editor will attempt to load extensions always before importing or loading scenes. This ensures extensions can register the relevant types.
2021-08-20Fix winding of new convex hull implementation.Morris Tabor
2021-08-20Merge pull request #51902 from vnen/variant-internal-constructorRémi Verschelde
Fix initialization of objects in VariantInternal
2021-08-19Fix initialization of objects in VariantInternalGeorge Marques
2021-08-19Fix capsule height/radius setters with linked propertiesPouleyKetchoupp
Capsule height and radius setters can modify each other, rather than using clamping, to avoid cases where values are not set correctly when loading a scene (depending on the order of properties). Inspector undo/redo: Added the possibility to link properties together in the editor, so they can be undone together, for cases where a property can modify another one. Gizmo undo/redo: Capsule handles pass both radius and height values so they can be undone together.
2021-08-18Merge pull request #51627 from mhilbrunner/todo-for-neikeqRémi Verschelde
2021-08-18String: Remove old NO_USE_STDLIB code pathRémi Verschelde
We're using the standard library in many core classes by now so this code path no longer makes sense.
2021-08-18[Net] Add state sync to replicator.Fabio Alessandrelli
Like the spawn/despawn feature, it can be completely overridden with 2 custom callables. The callables will be called with the list of tracked objects. In SERVER mode, objects are automatically tracked, while in CUSTOM mode you can manually track them via `track`/`untrack` (but that's optional). The default sync only happens from server to client, with batch updates, over unreliable channel (but with custom ordering). The default sync will warn you, if your state representation gets too big.
2021-08-18[Net] MultiplayerReplicator with initial state.Fabio Alessandrelli
Move the former "spawnables" functions to a dedicated MultiplayerReplicator class. Support custom overrides in replicator. Spawn/despawn messages can now contain a state. The state can be automatically encoded/decoded by passing the desired object properties to `spawnable_config`. You can use script properties to optimize the state representation. 2 Callables can be also specified to completely override the default implementation for sending and receiving the spawn/despawn event. (9 bytes overhead, and there's room for improvement here). When using a custom implementation `spawn` and `despawn` can be called with any Object, `send_spawn`/`send_despawn` can receive any Variant as a state, and the path is not required. Two new functions, `spawn` and `despawn`, convey the implementation independent method for requesting a spawn/despawn of an Object, while `send_spawn` and `send_despawn` represent the more low-level send event for a Variant to be used by the custom implementations.
2021-08-18Merge pull request #51787 from akien-mga/string-num-fix-default-decimalsRémi Verschelde
String: Fix default decimals truncation in num and num_real