Commit Graph

465 Commits

Author SHA1 Message Date
1263101396 Ported: Batching - Add MultiRect command
Large groups of similar rects can be processed more efficiently using the MultiRect command. Processing common to the group can be done as a one off, instead of per rect.

Adds the new API to VisualServerCanvas, and uses the new functionality from Font, BitmapFont, DynamicFont and TileMap, via the VisualServerCanvasHelper class.

- lawnjelly

910ddd13c4
2023-04-20 23:09:37 +02:00
31f61225a2 Ported: Make MessageQueue growable
* Uses simple vector resizing (po2)
* Uses pair of read and write buffers
- lawnjelly
5f1e7e6fbc
2023-04-15 12:06:16 +02:00
bb9f227c73 Ported: Update make_rst.py to match the master version
This does not include master-specific concepts, like
constructors, operators, annotations, and bitfields.
- YuriSizov
0f24d6ecf7
2023-04-15 11:20:13 +02:00
464b0b5e08 Ported: Add Color + alpha constructor for Color
- timothyqiu
3544cd1dad
2023-04-15 11:02:41 +02:00
kobewi
381aa1a140 Add set_value_no_signal() to Range 2023-04-15 10:56:26 +02:00
40a9b72afb Ported from godot-plus: Add ability to mute AudioServer.
Adds the option to change the audio driver to the Dummy driver and back at runtime, with a set of MuteState flags - Disabled (user control), Silence (period of silence), Focus Loss (when app is not in focus), and Paused (when app is paused).
Control for the flags is added for the editor in EditorSettings, and for the project in ProjectSettings.
Editor defaults to muted (Dummy driver) when there is no audio output, and automatically switches to active on output. This significantly reduces CPU usage.
- lawnjelly
cedb01fb84
2023-04-10 19:42:23 +02:00
32e9927ac8 Ported from godot 4: Remove NOTIFICATION_MOVED_IN_PARENT
* This notification makes node children management very inefficient.
* Replaced by a NOTIFICATION_CHILDREN_CHANGED (and children_changed signal).
* Changed Canvas code (and similar) to use the above signal, to perform more efficiently.
This PR breaks compatibility (although this notification was very rarely used, even within the engine), but provides an alternate way to do the same.
It is required for the changes in #75627 to be entirely effective.
- reduz
Note that I removed NOTIFICATION_MOVED_IN_PARENT, as keeping it, but making it just not work is worse in my opinion.
104392ef4e
2023-04-10 15:55:34 +02:00
Hugo Locurcio
e8d3159d6f Mention String.match() is also called "glob"/"globbing"
This is mostly for Ctrl + F purposes, in case someone is looking
how to perform globbing on a string.

(cherry picked from commit 64906bd1f7ea77f2a2829ff9c65219aca0912f87)
2023-03-12 15:42:00 +01:00
Hugo Locurcio
f1a7db4597 Document using String.percent_encode() with OS.shell_open() 2023-03-12 15:07:20 +01:00
Ninni Pipping
e8216d9ad1 Backport Tree::set_selected
Backport function from godotengine#68448

Co-authored-by: bruvzg <7645683+bruvzg@users.noreply.github.com>
2023-03-12 14:25:47 +01:00
75ed28f2b3 Ported: iOS: Fix memory leak on touch input
Replaces iOS gesture with touch implementation
Fixes 66422
Remove godot_view_gesture_recognizer
It's now unused.
Remove input_devices/pointing/ios/touch_delay
Unused with removal of gesture.
Remove unused methods from interface
Implementation made obsolete in prior commit
Style conformance
- tbveralrud
28b11a0785
2023-03-12 14:08:29 +01:00
Aaron Franke
304c45fbf3 Improve the clarity of Viewport's documentation 2023-03-12 13:28:20 +01:00
15bf4aefd0 Ported: Rework how current Camera2D is determined
7e2a8afb57
- KoBeWi
and
Fix Camera2D crashes
724d6581d6
- KoBeWi
From godot4.
Also fixed issues with active Camera2D switching.
2023-03-04 21:29:49 +01:00
9490e255c7 Move EditorScriptEditor's doc. 2023-02-18 16:54:42 +01:00
6026725f3b Renamed ScriptEditor to EditorScriptEditor. 2023-02-18 16:52:26 +01:00
Danil Alexeev
4f04b2233b Fix wrong SpriteFrames docs 2023-02-07 03:03:34 +01:00
Hugo Locurcio
a744936512 Document image size restrictions for custom mouse cursors in HTML5
(cherry picked from commit 296b8f299a1653abcaf194f154c26af07581b000)
2023-02-07 03:03:18 +01:00
Jóhannes Gunnar Þorsteinsson
d19c1fedfb Add independent spinbox arrow step precision
Backported from the `master` branch, with a property hint added.
2023-02-07 02:51:05 +01:00
db67fa53ea Ported: Add a theme usability setting which updates the touch area of UI elements (e.g: scrollbar) for the editor on touchscreen devices
- m4gr3d
8170b7ae1e
2023-02-07 02:50:11 +01:00
1f20512f8c Ported: Improve error messages and classref for occluders and portals
Misused functions would previously produce no error messages which was confusing for users.
- lawnjelly
5a0cb54b3a
2023-02-07 02:28:29 +01:00
Hugo Locurcio
272d1af91c Document Environment's background_energy property affecting lighting
Godot 4.0 allows controlling ambient and specular light intensity
separately, but 3.x doesn't.
2023-02-07 02:00:15 +01:00
19baf2133a Ported: PopupMenu rework and enhancements
Many scrolling behaviour improvements and the ability to limit popup size.
- EricEzaM, rsubtil
6a5992c9f1
2023-02-07 01:59:27 +01:00
79842beb9a Ported: Expose OS.read_string_from_stdin() to the scripting API
This can be used in scripts to read user input in a blocking manner.
This also removes the unused `block` argument, which is always `true`.
- Calinou
badcfa2523
2023-02-07 01:07:31 +01:00
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