Age | Commit message (Collapse) | Author |
|
* `_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.
|
|
* 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.
|
|
Rename C# string extensions to follow GDScript
|
|
GDScript: Fix inner classes and preloaded scripts as types
|
|
Since those can be called without an instance.
|
|
Follow up to d9d77291bca8dd1e87aa4d9e40de96d99e5ef1f6.
Renames `String.Extension` -> `String.GetExtension()` and
`String.BaseName()` -> `String.GetBaseName()`.
This makes those methods more consistent with GDScript and with
the `GetBaseDir` method.
|
|
Fix VisualScriptEditor after namespaces
|
|
|
|
Previously there weren't any Callable arguments with a default value,
but d4dd859991205e6cecfa9a0553b89db47c983d0b introduced one.
|
|
Fix initialization of objects in VariantInternal
|
|
|
|
|
|
|
|
|
|
|
|
Fixes in Bullet body_test_motion
|
|
Synchronize fixes from the 3.x branch to keep Bullet code in sync for
later, even if it's disabled for now.
|
|
Way less cruft. :)
Co-authored-by: Ignacio Roldán Etcheverry <neikeq@users.noreply.github.com>
|
|
Thanks to neikeq for the initial work.
Co-authored-by: Ignacio Roldán Etcheverry <neikeq@users.noreply.github.com>
|
|
Fix crash when failing to load script from cache
|
|
|
|
Reorganise text editor settings
|
|
|
|
This was needed after: 44691448911f1d29d4d79dbdd5553734761e57c4
|
|
input.
Add more overloads of vector multiplication, required by templates to compile with float=64.
|
|
|
|
Refactors the memnew_placement.
|
|
Fix some unnecessary includes
|
|
With this commit the macro `memnew_placement` uses the standard memory
placement syntax: `new (mem) TheClass()`, and removes the outdated and
not used syntax:
```
_ALWAYS_INLINE_ void *operator new(size_t p_size, void *p_pointer, size_t check, const char *p_description) {
```
Thanks to this change, the function `memnew_placement` call is compatible with
any class, and can also initialize classes with non-empty constructor:
```
// This is valid, like before.
memnew_placement(mem, Variant);
// This works too:
memnew_placement(mem, Variant(123));
```
|
|
|
|
|
|
|
|
Uniformize layer names, script methods and documentation
|
|
- Back to 1-based layer names to make it clearer in editor UI
- Layer bit accessors are renamed to layer value and 1-based too
- Uniform errors and documentation in render and physics
- Fix a few remaining collision_layer used in place of collision_mask
|
|
And another piece of dead code found while searching for "use_builtin".
|
|
|
|
Also changed CapsuleMesh to make settings consistent between render and
physics.
|
|
|
|
|
|
Use key enum instead of plain integers for input code
|
|
Various text layout improvements (TextLine, TextParagraph, Label, TextServer)
|
|
|
|
|
|
Node Auto Arrangement in GraphEdit/VisualScript/VisualShader
|
|
This PR and commit adds the functionality to arrange nodes in VisualScript/VisualShader editor. The layout generated by this
feature is compact, with minimum crossings between connections
& uniform horizontal & vertical gaps between the nodes.
This work has been sponsored by GSoC '21.
Full list of additions/changes:
• Added arrange_nodes() method in GraphEdit module.
• This method computes new positions for all the selected
nodes by forming blocks and compressing them.
The nodes are moved to these new positions.
• Adding this method to GraphEdit makes it available for
use in VisualScript/VisualShaders editors and its other
subclasses.
• Button with an icon has been added to call arrange_nodes() in GraphEdit.
• This button is inherited by VisualScript/VisualShaders editors
to invoke the method.
• Undo/redo is functional with this method.
• By using signals in arrange_nodes(), position changes are registered
in undo/redo stack of the subclass that is using the method.
• Metadata of the method has been updated in ClassDB
• Method description has been added to class reference of GraphEdit
|
|
|
|
Fix 3D moving platform logic
|
|
Same thing that was already done in 2D, applies moving platform motion
by using a call to move_and_collide that excludes the platform itself,
instead of making it part of the body motion.
Helps with handling walls and slopes correctly when the character walks
on the moving platform.
Also made some minor adjustments to the 2D version and documentation.
Co-authored-by: fabriceci <fabricecipolla@gmail.com>
|
|
|
|
Fix infinite loop when creating a newly inherited GDScript file
|