Commit Graph

3691 Commits

Author SHA1 Message Date
02fa885402 Fix docs after GDVIRTUAL pull request 2021-08-25 19:45:27 -05:00
5b01a3b3be Merge pull request #52084 from reduz/engine-singleton-register
Add ability to register singletons from Engine API
2021-08-25 18:50:15 -03:00
b3ada9cb1a Merge pull request #51969 from Calinou/doc-image-generate-mipmaps-no-threading
Document `Image.generate_mipmaps()` always running on the main thread
2021-08-25 11:17:23 -07:00
eba7265a1c Fix misspelled "overriden"
In recent GDVIRTUAL PR and SkeletonModification3DJiggle doc.
2021-08-26 01:44:01 +08:00
6a9ed72185 Clean physics direct body state usage in 2D and 3D physics
Use a C++ callback instead of Callable for synchronizing physics nodes' state with physics servers.

Remove usage of PhysicsDirectBodyState in physics nodes when not
necessary.

Store PhysicsDirectBodyState for bodies individually instead of a
singleton to avoid issues when accessing direct body state for multiple
bodies.

PhysicsDirectBodyState is initialized only when needed, so it doesn't
have to be created when using the physics server directly.

Move PhysicsDirectBodyState2D and PhysicsDirectBodyState3D to separate
cpp files.
2021-08-25 08:57:42 -07:00
4bb65b2bc6 Merge pull request #52023 from mhilbrunner/vs-fix-reloaded
Fix VisualScriptEditor after namespaces
2021-08-25 14:41:28 +02:00
e2f8df8c5b Add ability to register singletons from engine API
* 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-25 08:32:25 -03:00
bb0122c933 Merge pull request #48374 from Calinou/gradienttexture-add-hdr-property
Add an `use_hdr` property to GradientTexture to allow storing HDR colors
2021-08-25 08:03:34 +02:00
3d5dc80348 Rename RayShape to SeparationRayShape
Makes it clearer that it's used for special cases when picking a
collision shape.
2021-08-24 17:34:55 -07:00
aa4791735d Rename slips_on_slope to slide_on_slope
Also added some precision to the documentation.
2021-08-24 17:34:55 -07:00
d9720d4395 Fix CharacterBody motion with RayShape
Make separation ray shapes work properly in move_and_slide, wihtout the
specific code in CharacterBody like before.

Now most of the logic is handled inside the physics server. The only
thing that's needed is to use ray shapes only for recovery and ignore
them when performing the motion itself (unless we're snapping or slips
on slope is on).
2021-08-24 17:34:55 -07:00
45c7af9862 Restore RayShape as a regular shape type
Partial revert from previously removing ray shapes completely, added
back as a shape type but without the specific character controller code.
2021-08-24 16:03:05 -07:00
96f8254b24 Implement error return documetation
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-24 15:28:29 -03:00
c314203a70 Fix Visual Script editor 2021-08-24 19:33:40 +02:00
7e0f1fa2ec Merge pull request #52041 from Rubonnek/expose-simplify-path
Expose `String.simplify_path`
2021-08-24 17:06:16 +02:00
8a2730cac3 Merge pull request #52044 from Rubonnek/update-string-abs-rel-docs
Update documentation for is_absolute_path and is_rel_path
2021-08-24 16:24:18 +02:00
61141793ca Merge pull request #51999 from lyuma/set_surface_material
Implement methods in EditorSceneImporterMesh, and add documentation.
2021-08-24 11:17:48 -03:00
6609ce1944 Merge pull request #52000 from lyuma/set_editable_instance
Make Node editable_instance methods available to GDScript
2021-08-24 08:31:34 -03:00
17821603b4 Expose String.simplify_path 2021-08-24 00:48:45 -04:00
7eb6ae2798 Make Node editable_instance methods available to GDScript 2021-08-23 21:45:18 -07:00
13bd020a23 Merge pull request #52045 from reduz/expose-rid-creation-utilities
Expose RID creation utilities.
2021-08-23 22:30:43 -03:00
65ca132a80 Expose RID creation utilities.
* Exposed as utility functions.
* Not very useful for script, but vital for creating servers using native extensions.
2021-08-23 21:55:45 -03:00
69caa1ab4c Update documentation for is_absolute_path and is_rel_path 2021-08-23 19:55:06 -04:00
770a1d00a3 Merge pull request #51751 from jeffrey-cochran/windforce
Created an area-specific wind force that interacts with soft bodies
2021-08-23 16:48:19 -07:00
44d62a9f4b Implement NativeExtension pointer arguments
* 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-23 19:58:40 -03:00
e806397196 Enabled area-specific wind forces 2021-08-23 17:00:50 -04:00
583b6a594a Merge pull request #51971 from aaronfranke/https
Replace HTTP URLs with HTTPS for sites with HTTPS versions
2021-08-23 15:58:54 +02:00
d354adc5d0 Merge pull request #51803 from LoipesMas/master
Add note about batching to Line2D's anti-aliasing
2021-08-23 13:48:42 +01:00
b047430702 Add note about batching to Line2D's anti-aliasing 2021-08-23 13:14:36 +02:00
5cecdfa8af Entirely removes BIND_VMETHOD in favor of GDVIRTUAL
* `_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-23 08:10:13 -03:00
e6962729d5 Implement set_surface_material and set_surface_name methods in EditorSceneImporterMesh, and add documentation. 2021-08-22 19:42:35 -07:00
ae1702bee5 Replace HTTP links with HTTPS for sites with HTTPS versions 2021-08-22 20:13:11 -05:00
fb176d5f6e Merge pull request #50434 from QbieShay/particle-minmax
Particle params are expressed as min-max rather than value+range AND separate axes scaling
2021-08-22 10:07:08 -07:00
2f8a58ad46 Merge pull request #51886 from Geometror/fix-layout-editor-file-dialog
Fix ItemList layout (+EditorFileDialog)
2021-08-22 16:47:11 +00:00
d6672096fc moved particle parameters to minmax and split scale axis
This commit adds quite a chunk of modifications to particles
- particle (value + randomness) now use min and max instead
- passing a curveXYZtexture is now possible and will scale particles per-axis
- CPUParticle3D have an optional parameter to split the scale curve per-axis
2021-08-22 18:42:17 +02:00
7cbf5a547f Merge pull request #51700 from Geometror/fix-color-picker
Reimplement ColorPicker presets
2021-08-22 08:23:09 -07:00
3682978aee Replace BIND_VMETHOD by new GDVIRTUAL syntax
* 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-22 08:23:58 -03:00
1990721d1b Revert "Add Node processing and physics processing cumulative (as opposed to delta) time" 2021-08-22 08:21:34 -03:00
8cae1294b8 Merge pull request #51952 from Jummit/refactor-graphedit-connections
Refactor GraphEdit connections
2021-08-22 01:33:58 -07:00
fb94b2e656 Merge pull request #41850 from MohammadKhashashneh/cumulative-time_issue_6999
Add Node processing and physics processing cumulative (as opposed to delta) time
2021-08-22 10:33:20 +02:00
f02a040d48 Define a default minimum window size to workaround rendering issues
The minimum window size can still be set to `Vector2(0, 0)` in a script
if needed.

This closes #37242.
2021-08-22 08:19:49 +02:00
30a88f464b Document Image.generate_mipmaps() always running on the main thread 2021-08-22 02:22:04 +02:00
e9ef6f9815 Refactor GraphEdit connections
Remove duplicate bezier code and use Curve instead.
Add an overridable method for retrieving the points of a connection line, which
makes it posible to create custom connections lines.
2021-08-21 22:15:26 +02:00
72e49eadec Fix ItemList layout (+EditorFileDialog) 2021-08-21 00:22:09 +02:00
2daef0400a Merge pull request #51866 from requizm/fix/49455
Fix `line_separation` working incorrectly in `RichTextLabel`
2021-08-20 23:24:42 +02:00
39b90802d0 Fix line_separation constant working incorrectly in RichTextLabel 2021-08-20 23:03:13 +03:00
542e6e8ca6 Implement Extension Loader
* 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-20 16:02:24 -03:00
68f0cf97bc add motion mode to handle TPS 2021-08-20 17:32:33 +02:00
09eb98c530 Improve documentation for String.get_extension() 2021-08-20 03:07:15 +02:00
55e7832d7b Improvements to SpotLight3D and OmniLight3D's shadows
OmniLight3D:
* Fixed lack of precision in cube map mode by scaling the projection's
  znear.
* Fixed aliasing issues by making the paraboloids use two square regions instead of two half
  squares.
* Fixed shadowmap atlas bleeding by adding padding.
* Fixed sihadow blur's inconsistent radius and unclamped sampling.

SpotLight3D:
* Fixed lack of precision by scaling the projection's znear.
* Fixed normal biasing.

Both:
* Tweaked biasing to make sure it works out of the box in most situations.
2021-08-19 13:46:51 +02:00