Commit Graph

442 Commits

Author SHA1 Message Date
lawnjelly
85a4c5369b Faster queue free
Calling queue_free() for large numbers of siblings could previously be very slow, with the time taken rising exponentially with number of children. This looked partly due to ordered_remove from the child list and notifications.

This PR identifies objects that are nodes, and sorts the deletion queue so that children are deleted in reverse child order. This minimizes the costs of reordering.
2023-01-16 14:24:25 +01:00
Fabio Alessandrelli
f2682927f0 Expose API to force file system sync. 2023-01-16 14:15:08 +01:00
fc991ede18 Re-extracted class docs. 2023-01-14 13:38:58 +01:00
3bf2b79d88 Added set_length helper method to String. 2022-12-22 21:10:04 +01:00
213f393293 Fix typos with codespell. 2022-12-22 19:51:25 +01:00
09ad2db471 Updated the translation from godot master. 2022-12-22 19:26:59 +01:00
ce5e82d910 Ported: Include the follow-viewport-transform into CanvasLayer transform calculations
The follow-viewport-transform was missing from several calculations
3.x version of #59682
- Sauermann
608cbd8296
2022-12-22 19:06:10 +01:00
b8009c85f4 Ported: Add vector value linking - KoBeWi and timothyqiu
9499ebecee
2022-12-22 18:50:17 +01:00
Haoyu Qiu
1d2a560819 Make NavigationAgent target_location a property 2022-12-22 14:42:05 +01:00
Zak
b5c01b8703 Add uri property for LinkButton
Co-authored-by: Rémi Verschelde <rverschelde@gmail.com>
(cherry picked from commit d73a9b56b08864b5e5ccf0df910190b064ff7463)
2022-12-22 14:23:04 +01:00
smix8
9225e78f68 Fix Navigation agent callback wild pointer crash
Fixes crash in sanitizer builds when callback agent or object are already freed.

(cherry picked from commit 194c1c44e0a20faa4463e3a41bb12cf93a71fc03)
2022-12-22 14:12:00 +01:00
Hugo Locurcio
fe010a1efe Silence Input.vibrate_handheld() warning as it's already documented
The warning causes messages to be spammed if you are calling this
method in a game that runs on both desktop and mobile platforms,
unless you guard all calls to `Input.vibrate_handheld()` with
`OS.has_feature("mobile") or OS.has_feature("web")`.

Since the limitation is already documented (and is obvious enough
given the method's name), the warning message is redundant.

(cherry picked from commit 4a991887bf3dd5fbb687fb379f06ac85aa4a6245)
2022-12-22 14:08:01 +01:00
Hugo Locurcio
ef4fe36eb4 Document debanding only affecting 3D rendering by default 2022-12-22 13:39:09 +01:00
Haoyu Qiu
43146b2cf1 Add note about GROUP_CALL_UNIQUE not considering arguments
(cherry picked from commit 3f2d6f5f6cd9623d6aa7149bc1871b021d84304c)
2022-12-12 12:16:27 +01:00
Hugo Locurcio
7d1abdb3db Fix BackBufferCopy rect property appearing when not relevant in inspector
The `rect` property is only effective if `copy_mode` is Rect.
2022-12-11 19:18:17 +01:00
kobewi
43cb6e940a Remove error condition from get_global_transform()
(cherry picked from commit 2ff676a696a9cc1d77c0a8f4d5f31de8c7b5bc1a)
2022-12-11 19:02:12 +01:00
streq
17989ca8ef clarify [member polygons] functionality in the Polygon2D class documentation
(cherry picked from commit de66acc6243827d4b5543656ec588d841d8b7504)
2022-12-11 18:39:24 +01:00
Lyuma
6eb0adced6 Make Node editable_instance methods available to GDScript
(cherry picked from commit 7eb6ae279848e8300431cfe925be70fa7ffd7299)
2022-12-11 18:34:17 +01:00
Rémi Verschelde
f3801032b8 Add editor setting for AcceptDialog OK/Cancel buttons positioning
The position (left/right) of the Cancel and OK buttons in AcceptDialog
are DisplayServer specific, as Windows uses OK/Cancel and macOS uses Cancel/OK.

Linux/X11 currently uses the macOS convention which is also the GTK+/GNOME one,
though it's not consistent with Qt/KDE applications which follow the Windows
convention.

Since that can't satisfy everyone, it's best if it's configurable also for the
editor (it's already configurable for the project).

Fixes #59379.

(cherry picked from commit 9bb05de89fcc286a0d78bea12dc779a56c274fb0)
2022-12-11 18:33:23 +01:00
Fireflash
6656d1a33d Update AudioStreamGeneratorPlayback.xml
Fixed incorrect method description for `get_frames_available`.
According to [The AudioStreamGenerator source](https://github.com/godotengine/godot/blob/master/servers/audio/effects/audio_stream_generator.cpp#L132), the `get_frames_available` method should return the space remaining in the sample buffer.

(cherry picked from commit 7823ca13676648ae1f35b33ea18c9d699395f283)
2022-11-30 19:27:56 +01:00
voidshine
840c537d89 Fix MIDI note-on events being converted to note-off events
Update documentation with note about MIDI velocity interpretation

(cherry picked from commit f0f72b313236b3cd8793e6fe7487094d9a04694a)
2022-11-30 19:11:21 +01:00
Ev1lbl0w
608c16297e Document PopupMenu id behavior
(cherry picked from commit b8aa5ebfeb30b01db6e70ccc790624632c7273ee)
2022-11-30 18:59:45 +01:00
Hugo Locurcio
8612d803b1 Document (Omni/Spot)Light ignoring Spatial's scale property 2022-11-30 14:23:33 +01:00
41f130d9fd Re-extracted the class docs. 2022-11-20 23:27:04 +01:00
a3f2631d59 Ported: Add double_tap attribute to InputEventScreenTouch
This provides parity with the `InputEventMouseButton` allowing for proper conversion between the two events.
- m4gr3d
be4b07c3e4
2022-11-13 01:29:17 +01:00
Zach Coleman
6fd82aca20 Add ProMotion Support to iOS Exports 2022-11-13 00:51:09 +01:00
Zach Coleman
8b12c8babf Add iOS UI Options 2022-11-13 00:50:47 +01:00
kleonc
d7ddaf619a Add ShapeCast2D/3D::get_collider_rid method 2022-11-13 00:50:18 +01:00
kleonc
3ee1c2b58c Docs Clarify Array.fill behavior when reference type is passed in 2022-11-13 00:48:19 +01:00
Jordan Schidlowsky
91624a7561 expose additional global enums in 3.x which are available in master 2022-11-13 00:32:18 +01:00
Michael Alexsander
b85570c541 Expose various color themes for Button 2022-11-13 00:30:18 +01:00
Micky
6ca2dc959b Rename set_indexed & get_child's params to be clearer
3.x backport of #67300 and #64463.
2022-11-13 00:27:45 +01:00
Haoyu Qiu
177d20aeef Remove leading spaces from enumerator name hints 2022-11-13 00:26:34 +01:00
54643bc1fc Re-extracted class docs. 2022-10-09 12:43:55 +02:00
41a916deb8 Update hungarian translation from godot. 2022-10-09 11:59:57 +02:00
2159409dcc Moved TileMap and TileSet's docs to their module. 2022-10-09 11:47:03 +02:00
d0d2a709e8 Renamed RTileMap ro TileMap and RTileSet to TileSet, as it does not need to be able to live alongside Godot's TileMap anymore. 2022-10-09 11:45:57 +02:00
Haoyu Qiu
a1ec0dca97 Make it clear that obstacles don't affect pathfinding 2022-10-08 17:32:56 +02:00
Haoyu Qiu
4bff335622 Improve StaticBody description 2022-10-08 17:32:14 +02:00
Josh Anthony
d03711f58a update messaging for focus to be less keyboard-specific
address comments

Put back missing keyboard tags, fix language to match master's version.

match suggested commits from master
2022-10-08 17:31:36 +02:00
Hugo Locurcio
97219f5982 Document editor settings in the class reference 2022-10-08 17:28:57 +02:00
smix8
1c0898763c Fix avoidance calculation on NO_THREADS build 2022-10-08 17:24:55 +02:00
Hugo Locurcio
80fb0b5890 Document Mesh vertex color compression clamping overbright/HDR colors 2022-10-08 16:50:28 +02:00
Hugo Locurcio
e315a93f87 Expose the "restart on exit" OS functionality
This can be used to restart a project with specific command line arguments
applied. This can work in tandem with `OS.get_cmdline_args()` to restart
with the same command line arguments as used to originally run the project.

Example use cases:

- Restart to apply an user setting change that requires a restart to work.
- Restart with a Godot command line argument to change the video driver,
  audio driver, etc.
2022-10-08 16:34:07 +02:00
Ricardo Buring
9762395888 Document behavior of areas with concave shapes 2022-10-08 16:33:14 +02:00
Voylin
cceba8f6ef Fixes doc/Makefile fails if path contains spaces
(cherry picked from commit 0fd29f76a239a926684dccbfbfe904cf6494690b)
2022-10-08 16:22:55 +02:00
kobewi
9607de4c8e Add more clarifications about Tween processing
(cherry picked from commit 038cb677cbde3adcc692296b3113398cd351f9fe)
2022-10-08 16:20:23 +02:00
Haoyu Qiu
33e7f7d411 Fix typo in CollisionObject documentation 2022-10-08 16:17:34 +02:00
93eb41c69e Ported: added options for sorting transparent objects
- QbieShay, akien-mga, clayjohn
acdcbefa4e
2022-09-17 10:54:57 +02:00
64f5bd2339 Ported: Bind Physics Interpolation functions in VisualServer
To allow maximum flexibility in the initial rollout, VisualServer functions were not bound in order to prevent compatibility issues if the API changed.

These functions are now bound to allow direct use from the VisualServer.
- lawnjelly
96a1b86717
2022-09-17 10:22:26 +02:00
lawnjelly
d879fe8b1a Portals - clarify docs VisualInstances only
Makes it more clear in the documentation that some debugger features are expected not to show when portals are active.
2022-09-17 00:05:56 +02:00
volokh0x
c6bcb52e8f Fix typos in Dictionary.xml
(cherry picked from commit ff23defaf82f54136a7fa1ef84b9f0cacb9e2077)
2022-09-16 23:57:02 +02:00
kobewi
7f08c6820f Improve the description of follow_viewport_enabled
(cherry picked from commit 229e76429059b32edd43cd2382723d71a815f296)
2022-09-16 23:56:43 +02:00
001651fb33 Ported: Fix parameter references in Theme documentation - YuriSizov
9496254737
2022-09-16 23:55:40 +02:00
Maxim Kulkin
4237a6501f Add GraphNode 'selected' and 'unselected' signals, simplify GraphEdit
Backport of the fix from master to 3.x
2022-09-16 23:29:52 +02:00
kobewi
e133069bda Add Dictionary.find_key() 2022-09-16 23:20:06 +02:00
Leonardo Santagada
4673ebaf90 Mention an issue with infinite scroll on mirroring of Parallax layer
(cherry picked from commit 74df54a99e3e20d2e3378a7cf5c655a1727bb8c9)
2022-09-16 23:16:13 +02:00
BenniKane
06ddad7cd6 doc: Clarifying NavigationAgent and NavigationAgent2D velocity_computed requires avoidance_enabled to be true to emit
(cherry picked from commit ed5b832a81bb7f67924282d2c3f96b8674ecbb7d)
2022-09-16 23:08:49 +02:00
kobewi
c954a6c9d7 Mention that grab_focus is more reliable deferred
(cherry picked from commit 188d5593e1f080181a6e0302b7d54416d2cd96e8)
2022-09-16 23:02:09 +02:00
Hugo Locurcio
f90d0cb9d0 Improve documentation related to audio input permissions 2022-09-16 22:50:34 +02:00
Atlinx
8e7bcc2ee0 Add missing parameters for signal in docs
(cherry picked from commit 0e3097c023fa4562d44fa102bd2ef8e456f8901a)
2022-09-16 22:39:23 +02:00
Michael Alexsander
bce30062a5 Fix some corner cases in the Menu/OptionButton item auto-highlight 2022-09-16 22:04:23 +02:00
Yuri Sizov
211cd1e46a Remove Inspector tooltip hack that never actually worked 2022-09-16 21:57:00 +02:00
Hugo Locurcio
34cda4b11b Add a [kbd] tag for highlighting keyboard shortcuts in the editor help
This allows backporting documentation from the `master` branch more easily,
as it already features the `[kbd]` tag.

Co-authored-by: Yuri Sizov <11782833+YuriSizov@users.noreply.github.com>
2022-09-16 21:49:06 +02:00
Hugo Locurcio
ddba4438ae Remove unused Create Signal Callbacks editor setting
This setting wasn't referred to anywhere.
2022-09-16 21:46:58 +02:00
Danil Alexeev
c7f001ccf5 Add boot splash display time setting
Implements #8867.

(cherry picked from commit dad9683d11ca174cf50d0039fb0f05fb7439984f)
2022-09-16 21:19:03 +02:00
Hugo Locurcio
73588d4a25 Add support for documenting most editor settings in the class reference
Settings defined in editor plugins are missing (about 100 of them),
but all other settings (about 200 of them) can now be documented in the
EditorSettings class.

Co-authored-by: Rémi Verschelde <rverschelde@gmail.com>
(cherry picked from commit 63ce655e75e9d46c8b588ff258c3f50d5290c553)
2022-09-16 21:16:40 +02:00
Micky
d8046a2bad Improve documentation of CanvasItem's draw logic
(cherry picked from commit 953c78eaff2fc63e18c5da66c809c7e2b7666b11)
2022-09-16 21:11:26 +02:00
kobewi
63d85fd6f5 Mention the stretching behavior of PopupPanel
(cherry picked from commit a2b088b1c1b79950212287fd4c8539a67cfcb56f)
2022-09-16 21:10:52 +02:00
Dan Boorstein
9685b90279 Add note about using AudioListener2D
There was no mention of the effect of AudioListener2D in this documentation, making it unclear if there was a relationship. The new text is copied and modified from the AudioStreamPlayer3D documentation.

Use 'an' as article before 'AudioListener3D'

(cherry picked from commit a7ebc6fb18bcbcf817895955eed619588b3cd8b8)
2022-09-16 21:00:47 +02:00
Marlin Watts-Woods
c0bcc87ada Added to Sprite3D Documentation
(cherry picked from commit f8f665b03e2c2b2a10ffcaf815c511cd31a70887)
2022-09-16 19:50:19 +02:00
Hugo Locurcio
1902d9e21b Improve InstancePlaceholder documentation
(cherry picked from commit 5acf30b5380d71472657fbba84cad8739a5d7c1e)
2022-09-16 19:49:55 +02:00
Marcin Nowak
a697c239b8 Backport panning strength parameters from 4.0 2022-09-16 19:44:55 +02:00
Hugo Locurcio
dfd541f1e0 Improve documentation related to anisotropic filtering 2022-09-16 19:39:57 +02:00
Michael Alexsander
62fdf73348 Expose set/get_tab_button_icon() to scripting 2022-09-16 19:39:10 +02:00
Olivier Bombardier
3c72fdfb0d Fix has_filter of AnimationNode not being called in scripts 2022-09-16 19:38:38 +02:00
Yuri Sizov
494dc2f957 Backport fixes to documentation for paths, curves and navigation servers 2022-09-16 13:07:20 +02:00
Andy Maloney
8af0664931 Clarify that AnimationNode virtual methods need to be implemented rather than called directly
Backport of #64344

Fixes #35272
2022-09-16 12:41:29 +02:00
Hugo Locurcio
9055ae04c3 Document run-time SceneTree debug property changes not working correctly 2022-09-16 12:39:44 +02:00
Aaron Franke
6796ecfaf2 Fix incorrect Camera3D size documentation 2022-09-16 12:38:15 +02:00
b6624bf30b Re-extracted class docs. 2022-09-10 04:18:55 +02:00
27316923d3 Moved ThreadPool to core. Also it can change it's thread count now when it has time for it. 2022-09-10 04:16:50 +02:00
9b3714a274 Now CanvasItems work with World overrides aswell. 2022-08-30 01:40:03 +02:00
b886d14cf5 Added _3d postfix to the end of the World3D related getters and setters in Viewport. 2022-08-29 17:54:41 +02:00
cee028818e Also renamed the xmls. 2022-08-29 17:22:28 +02:00
e4ae7f2ebc Renamed Environment to Environment3D, and WorldEnvironment to WorldEnvironment3D. 2022-08-29 17:21:40 +02:00
2aee6ab0bb Renamed World to World3D. 2022-08-29 16:49:00 +02:00
dc28777321 Moved Skeleton and it's related classes to a module. 2022-08-28 15:46:12 +02:00
b9f3d3b26a Moved Skeleton2D and it's related classes into a module. 2022-08-28 13:57:25 +02:00
4f9dd569b8 Now the Engine has methods to store globals (custom singletons). They are mostly meant for classes like EditorInterface, SpatialEditor, and plugin scripts that need a singleton for in-editor use. In essence it provides easy and side effect less access for classes that might not be present on every run. (For example gdscript recognizes normal singletons as keywords, but not these.) 2022-08-23 13:13:39 +02:00
a1974c8338 Re-extracted the class docs. 2022-08-23 13:09:12 +02:00
714547cb17 Re-extracted class docs. 2022-08-21 00:40:49 +02:00
98acdf8270 Now full screen editor plugins have the ability to hide their tab button in the top bar. 2022-08-20 17:20:34 +02:00
cffe742085 Renamed the VisualServer to RenderringServer like in Godot4, as I think it's a lot better name for it. I did not yet rename the files. 2022-08-19 20:50:20 +02:00
58da70524b Ported: Add support for multiple virtual keyboard types - brianwinterpixel
ce24b48e50
2022-08-19 16:18:53 +02:00
0438da9841 Ported: [3.x] Add ShapeCast and ShapeCast2D nodes - PrecisionRender
47a62e28ac
2022-08-19 03:12:32 +02:00
59f4eb55d9 Ported: Fix mouse speed not changing fast enough
- Uses all accumulated movements when calculating speed
- Discards old accumulated movements
- Sets last mouse speed to zero when there is no movement
- madmiraal
3d96d7d9fb
2022-08-19 02:46:03 +02:00
45c65911b5 Ported: Allow negative scale in Particles and CPUParticles
This can be used to make 2D particles look more 3D-y with thoughtful use
of scale curve animation.
- Calinou
c4a3560884
2022-08-19 02:42:33 +02:00
kleonc
859a38b56e Make Mesh::generate_triangle_mesh() handle PRIMITIVE_TRIANGLE_STRIP and PRIMITIVE_TRIANGLE_FAN 2022-08-19 02:19:37 +02:00
Hugo Locurcio
c751d9dc17 Add an use_hdr property to GradientTexture to allow storing HDR colors
This is disabled by default to save some memory and preserve the existing
behavior of clamping colors.
2022-08-19 02:18:16 +02:00
Hugo Locurcio
089135783e Hide triplanar sharpness when triplanar is disabled in SpatialMaterial
The Triplanar Sharpness property has no effect when Triplanar
is disabled.
2022-08-19 02:17:26 +02:00
Hugo Locurcio
a3ac9c19b6 Improve Shape2D's custom_solver_bias description 2022-08-19 02:15:46 +02:00
521934ff55 Ported from Godot4: New and improved IK system for Skeleton2D
This PR and commit adds a new IK system for 2D with the Skeleton2D node
that adds several new IK solvers, a way to control bones in a Skeleton2D
node similar to that in Skeleton3D. It also adds additional changes
and functionality.
This work was sponsored by GSoC 2020 and TwistedTwigleg.
Full list of changes:
* Adds a SkeletonModifier2D resource
  * This resource is the base where all IK code is written and executed
  * Has a function for clamping angles, since it is so commonly used
  * Modifiers are unique when duplicated so it works with instancing
* Adds a SkeletonModifierStack2D resource
  * This resource manages a series of SkeletonModification2Ds
  * This is what the Skeleton2D directly interfaces with to make IK possible
* Adds SkeletonModifier2D resources for LookAt, CCDIK, FABRIK, Jiggle, and TwoBoneIK
  * Each modification is in its own file
  * There is also a SkeletonModifier2D resource that acts as a stack for using multiple stacks together
* Adds a PhysicalBone2D node
  * Works similar to the PhysicalBone3D node, but uses a RigidBody2D node
* Changes to Skeleton2D listed below:
  * Skeleton2D now holds a single SkeletonModificationStack2D for IK
  * Skeleton2D now has a local_pose_override, which overrides the Bone2D position similar to how the overrides work in Skeleton3D
* Changes to Bone2D listed below:
  * The default_length property has been changed to length. Length is the length of the bone to its child bone node
  * New bone_angle property, which is the angle the bone has to its first child bone node
  * Bone2D caches its transform when not modified by IK for IK interpolation purposes
  * Bone2D draws its own editor gizmo, though this is stated to change in the future
* Changes to CanvasItemEditor listed below:
  * Bone2D gizmo drawing code removed
  * The 2D IK code is removed. Now Bone2D is the only bone system for 2D
* Transform2D now has a looking_at function for rotating to face a position
* Two new node notifications: NOTIFICATION_EDITOR_PRE_SAVE and NOTIFICATION_EDITOR_POST_SAVE
  * These notifications only are called in the editor right before and after saving a scene
  * Needed for not saving the IK position when executing IK in the editor
* Documentation for all the changes listed above.
- TwistedTwigleg
8aa3c2f091
2022-08-18 18:47:30 +02:00
6be9bf5dfe Cleaned up and added the skeleton modification stack implementations to the build. Also smaller fixes. 2022-08-18 15:41:28 +02:00
4c4e19223e Added _theme_ infix to the theme helper methods in Control. 2022-08-17 20:57:16 +02:00
220954cf08 Backported most of the improvements to String from Godot4. 2022-08-15 22:54:03 +02:00
5cd44e02d0 Backported the improvements to Transform from Godot4. 2022-08-14 20:35:11 +02:00
170a41ca82 Backported improvements to Basis from Godot4. Also bound all eligible methods. 2022-08-14 00:18:21 +02:00
c991043c95 Backported improvements to AABB from Godot 4. Also made sure all eligible methods are bound. 2022-08-13 18:21:54 +02:00
730bce8587 Renamed Quat to Quaternion for consistency with the other engine math classes. 2022-08-13 15:22:33 +02:00
f423b30714 Backported from Godot4: Fix secondary handles in editor gizmos
Primary and secondary handles are no longer differentiated by their ids, so a bool was added to tell them apart in all the handle-related methods.
Includes a minor fix in CollisionPolygon3DEditor, unrelated to editor gizmos.
- JFonS
5ebea2d120
2022-08-12 22:21:00 +02:00
47358bfaab Backported: add viewport.get_camera_2d()
* there is now a more clear distinction between camera_2d and camera_3d functions in the engine code
* simplified camera2d's exported interface - now everything happens directly with the 'current' variable and make_current and clear_current are no longer exposed- there were some situations where calling one instead of set_current would result in incomplete results
* rebased to current godot master
- verdog
879f84d8f8
- Note that i did not rename the original Camera related methods.
2022-08-12 18:29:04 +02:00
d1fe0ae433 Backported from Godot4: Fix blend animation to solve TRS track bug & blend order inconsistency - TokageItLab
b06d253920
2022-08-12 16:48:31 +02:00
e3918692a3 Backported from Godot 4: Fixed animation insertion in SkeletonEditor - TokageItLab
653e2a550c
2022-08-12 01:34:45 +02:00
2bc7355910 Ported from Godot4: Fixes to editor subgizmos
* Fixed subgizmo editing on scaled nodes.
* Added more clarifications on the coordinate space of subgizmos.
* Given input priority to the transform gizmo over subgizmo selection.
- JFonS
d7b58ebc9c
2022-08-12 00:43:53 +02:00
4b939998a7 Removed AnimationTreePlayer, as it was deprecated (and also practically unusable). 2022-08-11 23:01:27 +02:00
5e3c3ff4d0 Ported from Godot4: Implement global rest - TokageItLab
4d4ffa3a2c
2022-08-11 20:10:26 +02:00
109a0ca81b Ported from Godot4: Remove REST transform influence in skeleton bones
* Animations and Skeletons are now pose-only.
* Rest transform is kept as reference (when it exists) and for IK
* Improves 3D model compatibility (non uniform transforms will properly work, as well as all animations coming from Autodesk products).
- reduz
2dc823273e
2022-08-11 19:06:33 +02:00
92600420ba Backported from Godot4: Implemented SkeletonEditorGizmo.
-TokageItLab, lyuma
f2e9867e9f
- It still has some issues, as this one works differently than the 3.x version, they will be fixed later.
2022-08-11 17:31:02 +02:00
b6eb2db442 Backported returning AfterGUIInput from forward_spatial_gui_input from Godot4. Also removed the first index parameter. This fully broke the skeleton editor, it will be fixed soon. 2022-08-11 02:24:30 +02:00
58539a22b6 Backported from Godot4: Node3D gizmo improvements
* Clean-up of node_3d_editor_plugin.{h,cpp}: removed unused code, fixed some bugs.
* Moved node_3d_editor_gizmos.{h,cpp} to editor/plugins.
* Added support for multiple gizmos per node. This means custom gizmos will no longer override the built-in ones and that multiple gizmos can be used in more complex nodes.
* Added support for handle IDs. When adding handles to a gizmo, an ID can be specified for each one, making it easier to work with gizmos that have a variable number of handles.
* Added support for subgizmos, selectable elements that can be transformed without needing a node of their own. By overriding _subgizmo_intersect_frustum() and/or _subgizmo_intersect_ray() gizmos can define which subgizmos should be selected on a region or click selection. Subgizmo transformations are applied using get/set/commit virtual methods, similar to how handles work.
- JFonS
cfb555a081
- Note: MeshDataResourceEditor is now kind of painful to use, it will be fixed a bit later.
2022-08-11 01:24:29 +02:00
22ce231a4e Backported from Godot 4: New and improved IK system for Skeleton3D
This PR and commit adds a new IK system for 3D with the Skeleton3D node
that adds several new IK solvers, as well as additional changes and functionality
for making bone manipulation in Godot easier.
This work was sponsored by GSoC 2020 and TwistedTwigleg
Full list of changes:
* Adds a SkeletonModification3D resource
  * This resource is the base where all IK code is written and executed
* Adds a SkeletonModificationStack3D resource
  * This node oversees the execution of the modifications and acts as a bridge of sorts for the modifications to the Skeleton3D node
* Adds SkeletonModification3D resources for LookAt, CCDIK, FABRIK, Jiggle, and TwoBoneIK
  * Each modification is in it's own file
* Several changes to Skeletons, listed below:
  * Added local_pose_override, which acts just like global_pose_override but keeps bone-child relationships intract
    * So if you move a bone using local_pose_override, all of the bones that are children will also be moved. This is different than global_pose_override, which only affects the individual bone
  * Internally bones keep track of their children. This removes the need of a processing list, makes it possible to update just a few select bones at a time, and makes it easier to traverse down the bone chain
  * Additional functions added for converting from world transform to global poses, global poses to local poses, and all the same changes but backwards (local to global, global to world). This makes it much easier to work with bone transforms without needing to think too much about how to convert them.
  * New signal added, bone_pose_changed, that can be used to tell if a specific bone changed its transform. Needed for BoneAttachment3D
  * Added functions for getting the forward position of a bone
* BoneAttachment3D node refactored heavily
  * BoneAttachment3D node is now completely standalone in its functionality.
    * This makes the code easier and less interconnected, as well as allowing them to function properly without being direct children of Skeleton3D nodes
  * BoneAttachment3D now can be set either using the index or the bone name.
  * BoneAttachment3D nodes can now set the bone transform instead of just following it. This is disabled by default for compatibility
  * BoneAttachment3D now shows a warning when not configured correctly
* Added rotate_to_align function in Basis
* Added class reference documentation for all changes
- TwistedTwigleg
5ffed49907
Note: It still needs some work.
2022-08-10 01:01:38 +02:00
0ffa8e33a7 Backporter from Godot 4: Unexpose methods and property for binding children to Bones.
- madmiraal
65faa12fd3
2022-08-09 22:05:43 +02:00
a478334d4a Backported from Godot master: Made low level changes to the Skeleton3D class and Skeleton3D inspector. Changes listed below:
* Added helper functions to Skeleton3D for converting transforms from bone space to global space, and vice versa.
* Updated the Skeleton3D class reference.
* Changed the icon used for bones in the Skeleton3D inspector to use BoneAttachement3D's icon.
* Changed the Skeleton3D inspector to use EditorPropertyTransform and EditorPropertyVector3 when possible.
* Placed the Transform/Matrix for each bone in a sub-section, so it is visually similar to the Node3D inspector.
- TwistedTwigleg
24905becb2
- Also fixed smaller issues.
2022-08-09 21:57:46 +02:00
27aaa70037 Added back set_bone_pose to Skeleton, as I don't see any reason not to have it. Also improved it it. 2022-08-09 18:31:47 +02:00
6d293dc7a3 Removed Transform type track from the Animation. This leaves a few things, like the skeleton editor broken, it will be fixed soon. 2022-08-09 17:40:42 +02:00
8fd473f685 Backported: "Remove animation 3D transform track, replace by loc/rot/scale tracks" from Godot4.
ec19ed3723
Its a bit broken right now, more patches need to be ported. Also I kept the Transform track for now, and I did not touch the gltf module yet.
2022-08-08 23:49:18 +02:00
Rémi Verschelde
2ca1470010 File: Re-add support to skip CR (\r) in File::get_as_text
This was removed in #63481, and we confirmed that it's better like this,
but we add back the possibility to strip CR as an option, to optionally
restore the previous behavior.

For performance this is done directly in `String::parse_utf8`.

Also fixes Android `FileAccess::get_line()` as this one _should_ strip CR.

Supersedes #63717.

(cherry picked from commit 1418f97c70a5551bdbfeea853cbc479b32ea9e08)
2022-08-02 17:58:32 +02:00
c4e7bc1c45 Reused the old unused PROPERTY_HINT_SPRITE_FRAMES as PROPERTY_HINT_BUTTON. It allows you to add buttons to the inspectors. 2022-07-31 00:01:58 +02:00
9f5fb428ab Ported: Add error messages and docs to explain restrictions when calling NetworkedMultiplayerCustom.initialize()
- dsnopek
5eaf83f2d7
2022-07-30 00:49:12 +02:00
641c15f906 Ported: [3.x] HTML5: Add support for Input.vibrate_handheld() - pattlebass
fb7ecc748f
2022-07-30 00:29:14 +02:00
Andy Maloney
9481486f92 Add missing Python type hints in tools/make_rst.py
(cherry picked from commit 4b3d6f04a8036a330d499670198463655a097736)
2022-07-29 23:49:33 +02:00
41ef59bcc8 Ported: Expose VisualServer.viewport_set_use_32_bpc_depth() to the scripting API.
Previously, only the Viewport methods/properties were exposed to the
scripting API. - Calinou
ed4976d1d5
2022-07-29 23:03:48 +02:00
Rémi Verschelde
fa9d1120c4 doc: Fixup reference to Camera 2022-07-29 22:39:58 +02:00
Zak Grumbles
11ab10b7f2 Improve documentation for Camera3D's current member
* Added additional information to the camera documentation to explain
  how the 'current' attribute behaves when multiple cameras are in a
  scene.

(cherry picked from commit 349c750b18acf770ef6f0e43643c8a37a3beb450)
2022-07-29 22:38:52 +02:00
Derwent Ready (drentsoft)
1288e9c520 Clarified usage of TreeItem get_next*() and get_prev*() functions.
(cherry picked from commit df5a9228808497f19b5bddf7b58d2a532cd990d0)
2022-07-29 22:38:35 +02:00
7161d7bc29 Ported: Add NetworkedMultiplayerCustom so high-level multiplayer backends can be added from GDScript. - dsnopek
8ad5889c1a
2022-07-29 22:19:12 +02:00
31136b3669 Ported: Document support limitations for OmniLight cubemap shadows in GLES2 - Calinou
b03ceaba2f
2022-07-29 22:11:41 +02:00
01b1c3e99f Ported: Improve documentation for HTTPRequest's timeout property - Calinou
28b9e376cf
2022-07-29 21:30:22 +02:00
d6637c39a7 Ported: AudioStreamPlayer: Clarify that no validation is made on 'bus' name - akien-mga
685cecbd5f
2022-07-29 21:23:58 +02:00
9af3a7a709 Ported sort() for poolVectors from 7b8b91f505 . 2022-07-29 21:18:44 +02:00
5ebeb6a36c Ported: Add global_translation and global_rotation to Spatial - foxydevloper
5238740fef
2022-07-29 21:02:00 +02:00
3fb2c16ba0 Ported: Input: Re-enable input accumulation disabled by error in 3.4
Input accumulation was implemented and enabled by default in 3.1, and
I don't recall major complaints around it (or bugs were fixed).
In 3.4, #42220 added input buffering and apparently toggled input
accumulation off by mistake.
This led to multiple bug reports about degraded performance on Windows,
or simply unexpected behavior change (see linked issues in #55037).
Fixes #55037.
- akien-mga
d6bcdd18c3
2022-07-29 20:50:00 +02:00
88fe196e79 Ported: [3.x, macOS, Windows, X11] Add stylus inverted/eraser support to InputEventMouseMotion event.
- hansemro
193d5c11f3
2022-07-29 20:31:16 +02:00
Jean-Marc Pelletier
2f9f0ecf8b StyleBox: Document correct methods to draw with a RID
(cherry picked from commit 63d5f3156178fd57fdf991c74833adfd97490c10)
2022-07-29 19:58:55 +02:00
c2f38ef861 Ported:
Input: Document that accumulated input is disabled by default

This was actually disabled by mistake in 3.4 causing a regression, but since
this issue survived the whole 3.4.x series and it's now very close to 3.5,
it's too late to change it again.
We might consider it for 3.6 after some beta testing.
- akien-mga
7de45b6203
2022-07-29 19:42:05 +02:00
16dd2f1141 Ported: Clarify NavigationAgent radius property
Documents Navigation radius property, especially that it affects avoidance only.
- smix8
7aff541538
2022-07-29 18:13:29 +02:00
11a92cfe27 Ported: Add NavigationServer map_force_update() function
Adds map_force_update() function to NavigationServer. This function immediately flushes the Navigationserver command queue and recalculates all navigationmeshes and region connections for a specific map.
- smix8
721c99a530
2022-07-29 17:56:48 +02:00
da20b32f66 Ported: Add NavigationServer.region_owns_point() helper function
Adds a helper function to check if a world space position is currently owned by a navigation region.
- smix8
f0069cc1e9
2022-07-29 17:52:38 +02:00
f811d48449 Ported: Add Navigation function to get all navigation maps
Added new function that returns all created navigation map RIDs from the NavigationServer. The function returns both 2D and 3D created navigation maps as technically there is no distinction between them.
- smix8
38ee593b76
2022-07-29 17:49:24 +02:00
Hugo Locurcio
0e32de0bad Clamp Viewport shadow atlas sizes to improve usability
- Add a range hint to the Viewport `shadow_atlas_size` property.
- Add range steps to the shadow resolution project settings that
  match the lowest allowed values (since lower increments don't
  make sense).
2022-07-29 17:38:06 +02:00
328da6b799 Ported: Print a warning for Viewports that have 2D usage and HDR enabled
2D usage + HDR isn't supported, so the usage must be changed to 3D
to be able to use HDR.
- Calinou
f64d5f4095
2022-07-29 17:36:54 +02:00
6871b0c752 Ported: Only show relevant properties in the DirectionalLight inspector
Some split distance properties are unused depending on the
current shadow mode. Also, Blend Splits and Bias Split Scale can
only be used if the shadow mode is PSSM 2 Splits or PSSM 4 Splits.
- Calinou
1806661462
2022-07-29 17:24:47 +02:00
f78be19966 Ported: Add process_mode property to InterpolatedCamera - saneery
cb94797ce4
2022-07-29 17:19:58 +02:00
Haoyu Qiu
5f3aa5fbd0 Improve String.format() documentation
(cherry picked from commit 25c7f567dd97dab4f407a2afd1e1b8f61b6fb3e1)
2022-07-29 16:37:07 +02:00
da1e62e95b Ported: [3.5] Remove documentation that mentions 2D navigation baking
Cherrypick mentions 2D navigation mesh baking which does only exist very hidden in Godot 3.5.
- smix8
5e1063bd0e
2022-07-29 16:36:49 +02:00
648b9fce40 Ported: Add an option to drag'n'drop selected text in TextEdit - ConteZero
a13b3028a2
2022-07-29 16:29:53 +02:00
smix8
38d7f8dac8 Document limits of using meshes to obstruct navigation mesh baking
Recast (the library used for baking) has no concept of a geometry "inside" and this is intentional. ReCast will add navigation mesh to areas as soon as the area inside a source geometry mesh is large enough to fit a navigation mesh polygon with current baking parameters.

(cherry picked from commit 85cdb1144d0ca845df22a879e001e8fa16288224)
2022-07-29 12:18:39 +02:00
Haoyu Qiu
ba696ecc9b Fix code example of String.is_valid_integer() 2022-07-29 12:18:09 +02:00
Haoyu Qiu
4bbbf1816f Make code example in HTTPRequest classref working 2022-07-29 12:17:27 +02:00
89364f1974 Ported: Clarify that MeshInstance surface methods only apply to override materials - salamandars
22881a6923
2022-07-29 12:01:48 +02:00
6101beb960 Ported: Add NavigationAgent desired path distance - smix8
88e42b2915
2022-07-29 11:36:09 +02:00
Rémi Verschelde
afed6d80bd Node: Rename child_exited_tree to child_exiting_tree
The name was confusing as this signal is emitted around the same time as
`tree_exiting` and `NOTIFICATION_EXIT_TREE`, i.e. while the child node is
still in tree.

Fixes #59210.

(cherry picked from commit 3e6de687b8e9f5c24ff78312208eae6195e6ca40)
2022-07-29 11:03:04 +02:00
Hugo Locurcio
76a2ed0900 Document incremental search support in ItemList, PopupMenu and Tree
(cherry picked from commit 466bd7ce39b232447255cadc26e35289469dc55a)
2022-07-29 11:02:14 +02:00
8ca3043a28 Ported: ProjectSettings: Ensure 'editor/' settings aren't nested
Having a mix of settings with and without subcategory makes the 'Editor'
section stand out with a weird UX, as instead of simply being a foldable
section like the others, it also holds its own top-level settings and is
therefore selectable.
This wasn't the case in 3.4, and is fixed in 4.0 by refactoring, so for
3.5 we should preserve the 3.4 UX, even if it's not the best.
- akien-mga
acd4a01b8c
2022-07-29 10:45:12 +02:00
2e0589f63a Ported: [3.5] Add NavigationAgent2D/3D set_navigation_map() function
Add NavigationAgent2D/3D set_navigation_map() function. Also fixes some bugs from leftover code before the backport update.
- smix8
c6f9627c74
2022-07-29 10:34:10 +02:00
b7d07a4487 Ported: Tweak default crash handler message in exported projects
When an exported project crashes, the crash handler message
shouldn't reference the Godot issue tracker, as not all crashes
are Godot's fault.
Reporting crashes that only occur on exported projects is still allowed,
but it should not be done by people who aren't working on the project
in question.
- Calinou
bec892c010
2022-07-29 10:17:20 +02:00
Theraot
afafef9f2b Updating AStar2D documentation to mention the new bidirectional paramter
(cherry picked from commit b18a018ad23f95b1f3cdedc74c14e09d666dc346)
2022-07-29 09:14:07 +02:00
Aaron Franke
5ce7851cfd Document limitations of negative scales in 2D and 3D
(cherry picked from commit 3398fb77a915d3f6d7a3dc6bf2398840c696365b)
2022-07-29 09:10:25 +02:00
10d3f0826e Ported: Document NavigationServer API navigation agent callbacks - smix8
96e865dfb3
2022-07-29 09:07:02 +02:00
bb5acfd745 Ported: [3.5] Update NavigationServer backport
Backports features and bugfixes from current Godot 4.0 to 3.5 and brings functions and codebase of both version largely in sync to make tutorials more compatible and future backports easier.
- smix8
8bd7c6188b
2022-07-28 22:34:28 +02:00
ce1b936c12 Revert 739b0c0c3f . 2022-07-28 22:32:19 +02:00
13c4945b3a Ported: Add INFO_SHADER_COMPILES_IN_FRAME to GL ES 3 render info - RandomShaper
f46d7583ff
2022-07-28 19:37:52 +02:00
kobewi
60c7ef815d Improve description of move_to_trash()
(cherry picked from commit 1c90b066dd32d0a3fa0f1747be2836b70e7a0598)
2022-07-28 19:22:38 +02:00
Hugo Locurcio
d08f335224 Update name of Convert to MeshInstance2D button in MeshInstance2D doc
(cherry picked from commit 857e5a3bb065e8efdbb137796c3ba4946eaab99b)
2022-07-28 19:21:44 +02:00
Hugo Locurcio
646b5fab0e Improve CurveTexture documentation 2022-07-28 19:21:30 +02:00
Haoyu Qiu
760cc5bb49 Remove extra codeblock tag from ProximityGroup classref 2022-07-28 19:04:45 +02:00
780ccf3342 Ported: Fix description about SceneTreeTimer auto free - timothyqiu
5569d4d2de
2022-07-28 18:56:04 +02:00
942b6d9938 Ported: Make Input mouse_mode and use_accumulated_input properties - fire-forge, timothyqiu
53c01540d9
2022-07-28 18:54:48 +02:00
43131ad4cb Ported: Add readable export errors. Add RTL image vertical alignment support. - bruvzg
f5fa1ca944
2022-07-28 18:40:46 +02:00
Nikola Whallon
264985d204 added info on microphone sample format
(cherry picked from commit eb5a42d0bc28809f954861291c20d2ed6bed6d0f)
2022-07-28 15:08:16 +02:00
a1a7c32f68 Ported: Backport default World navigation maps.
Backports default navigation maps created with each World or World2D.
- smix8
96d98d8c4e
2022-07-28 15:04:42 +02:00
lawnjelly
48c1a1ae34 VisibilityNotifier - add max_distance feature
Enables turning off objects by distance to the camera in addition to testing whether they are in the view frustum.
2022-07-28 14:59:45 +02:00
kobewi
202fb33685 Add Dictionary.merge()
(cherry picked from commit a0915e6dee4e54563a98ca6adb8968dbdcea1af1)
2022-07-28 14:59:15 +02:00
kobewi
22beba680e Improve EditorPlugin state documentation
(cherry picked from commit 505a2ce468f4375c7b5dc82af17b86a92a2d4d77)
2022-07-28 14:58:58 +02:00
sps1112
8e229841be Bind vararg method flag in core constants
(cherry picked from commit 1f361b03678893cd6328702383fce6dc062e7e57)
2022-07-28 14:56:33 +02:00
da8155f59b Ported: Remove slash delimiter from NavigationMesh properties - smix8
e629622598
2022-07-28 14:52:42 +02:00
smix8
116b22c89d Document the correct use of NavigationAgent path functions
Document the correct use of NavigationAgent path functions.

(cherry picked from commit 9c7f03aefc7d6918002641447cb979502ebea686)
2022-07-28 14:44:09 +02:00
smix8
cce30604e4 Expose get_mesh() for NavigationPolygon Resources
Expose get_mesh() for NavigationPolygon Resources.

(cherry picked from commit 8bcce0ebb2ab5da94cc86f77df4c86f63bc5d22e)
2022-07-28 14:43:47 +02:00
smix8
b36dd7e4aa Note that NavigationObstacles should only be used if necessary and for moving objects only
Note that NavigationObstacles should only be used if necessary and for moving objects only.

(cherry picked from commit d1959cabd9c9e3a7f1143d3ac7abdbff89eda5ed)
2022-07-28 14:43:03 +02:00
smix8
3d2aa7b8fa Document that NavigationAgent height offset is mostly a placebo
Document that NavigationAgent height offset is mostly a placebo.

(cherry picked from commit b1d98534154dafa208076e8f8d7c93e4a43726f9)
2022-07-28 14:38:49 +02:00
Sergey Pershenkov
1b52408dc0 draw_circle() draws a filled circle
(cherry picked from commit adccb9fd6038b446fc218af874429f2c3fdb8fcc)
2022-07-28 13:47:47 +02:00
smix8
a389b08ea8 Add class doc that NavigationServer changes are not instant
Add class doc that NavigationServer changes are not instant.

(cherry picked from commit 7f72b7b3ad9880845e0f878b5bc6d9120b8b4dc0)
2022-07-28 13:47:19 +02:00
Haoyu Qiu
8002080311 Fix Viewport.own_world documentation
Also fixed the naming of the setter's parameter and made an `if` block
straightforward.
2022-07-28 13:44:56 +02:00
4bd8abc32b Ported: Fix several typos in the classref - timothyqiu
fb62ec6c1d
2022-07-28 13:35:27 +02:00
dtesniere
690b82ff41 Fix class name : change "string" to "String"
Change case of "s" letter : "string" does not compile but "String" does (for gdScript)

(cherry picked from commit 55b63eceaa22f979bd40656fb8444cc94a7942b7)
2022-07-28 11:52:09 +02:00
a53e42504a Ported: Fix rigid body damp description (3.x) - skyace65
c0ecbeaf6f
2022-07-28 11:48:56 +02:00
cbb1470a2e Ported: doc: Fix typo in "reset" method description. Change "all tweens are removed" to "all tweens are reset". Possibly this snippet was copy-pasted from the "remove" method description and not updated for "reset". - belzecue
803c5b9e22
2022-07-28 11:39:01 +02:00
Rémi Verschelde
ccf7e4374a HTML5: Enable mbedTLS module for Crypto object
Increases the size of the wasm by around 3% (~300-350 KiB).

This enables using the Crypto object for hashing, signing and encryption,
and therefore reduces the gap between the features of the HTML5 platform
and other platforms.

Closes https://github.com/godotengine/godot-proposals/issues/3574.

(cherry picked from commit 3ff6d794c0aac0365f236cd078b5e5aeea0d996e)
2022-07-28 11:13:39 +02:00
d161a30a4b Ported: Backport TextMesh and expose dynamic font vector outlines - bruvzg
d502bd4847
2022-07-28 00:01:20 +02:00