Commit Graph

485 Commits

Author SHA1 Message Date
a3aebe8bc5 Ported the improvements to the NavigationMesh from the NavigationMeshGenerator rework pr. 2023-06-05 19:20:28 +02:00
c72a079c49 Removed the Polygon struct from NavigationMesh. 2023-06-05 19:07:04 +02:00
3c9d9bdad4 Ported from godot4: Fix NavigationRegion3D gizmo's odd visual behavior .
- DarkKilauea
92c40bcf32
2023-06-05 19:02:24 +02:00
25078b1437 Ported from godot4: Remove / Replace old Navigation Debug Visualization
- removes / replaces leftovers from old navigation debug code
- cleanes SceneTree and ProjectSettings from old navigation debug
- smix8
d7f75fab60
2023-06-05 18:56:41 +02:00
b6de23ac8a Fix non tools build. 2023-06-05 18:21:45 +02:00
654cfb81b7 Renamed NavigationRegion2D back to NavigationPolygonInstance, as I think it fits the engine better. 2023-06-05 18:09:53 +02:00
68b9f4c90e Ported from godot4: Add more detailed Navigation Debug Visualization
- Adds more customization options to ProjectSettings.
- Displays navregion edge connections and navigation polygon edges in editor and at runtime.
- Majority of debug code moved from SceneTree to NavigationServer.
- Removes the irritating debug MeshInstance child node from NavigationRegion3D and replaces it with direct RenderingServer API.
- smix8
c394ea518e
2023-06-05 18:05:15 +02:00
cfa4384ad4 Backported from godot4: Fix NavigationMesh baking AABB Editor handling and visuals
Fixes handling and visuals for Navigation Mesh baking AABB in the Editor.
- smix8
2023-06-05 14:33:55 +02:00
b7892d6baf Backported from godot4: Implement NavigationMesh bake area.
Adds two new properties to NavigationMesh resources to restrict the navmesh baking to an area enclosed by an AABB with volume.
- smix8
0c4d99f4fd
2023-06-05 14:24:42 +02:00
6589d075bb Ported the improvements to the NavigationPolygon from the aforementioned pull request. 2023-06-05 14:13:02 +02:00
712eb8eb8a Removed the Polygon struct from NavigationPolygon. 2023-06-05 12:48:57 +02:00
0bfa40bb09 Reorganize NavigationPolygon. 2023-06-05 12:44:49 +02:00
54ae614941 Make sure that the new classes are registered to the ClassDB. Also added in the docs for them. 2023-06-03 20:39:56 +02:00
8cbb1bb879 Started porting pull request from godot 4: Rework NavigationMeshGenerator
Reworks NavigationMeshGenerator and navigation mesh parse and bake process. Adds navigation mesh baking for 2D.
- smix8
https://github.com/godotengine/godot/pull/70724
38699a8259
2023-06-03 18:22:12 +02:00
2114b2239b Split NavigationPolygon and NavigationPolygonInstance into 2 files. Also renamedNavigationPolygonInstance to NavigationRegion2D. 2023-06-03 16:54:48 +02:00
6b15eb053c Fix property bind inconsistency. 2023-06-02 12:17:16 +02:00
f4a4956b7a Ported: Fix Polygon2D skinned bounds (for culling)
The bound Rect2 was previously incorrect because bone transforms need to be applied to verts in bone space, rather than local space. This was previously resulting in skinned Polygon2Ds being incorrectly culled.
- lawnjelly
dd6c213dac
2023-05-01 13:34:35 +02:00
BimDav
ad6e504a5b Add option in VisibilityEnabler2D to hide the parent for better performance 2023-05-01 12:22:39 +02:00
Fredia Huya-Kouadio
0947677049 Make tab's close button responsive to touch taps 2023-05-01 12:10:43 +02:00
3a1b2954f1 Ported: [3.x] Don't apply scale to autohide theme property
- AThousandShips
1c66257568
2023-04-20 23:47:14 +02:00
dd5ad408e8 Ported: SurfaceTool - efficiency improvements
Changed to use LocalVector rather than linked lists.
- lawnjelly
ff714fbe02
2023-04-20 23:44:12 +02:00
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
kobewi
381aa1a140 Add set_value_no_signal() to Range 2023-04-15 10:56:26 +02:00
Richard Adenling
689a7340f3 Fix for 2D viewport not updating in the editor when the camera moves
This fixes a problem with 2D viewports not taking the camera position
into consideration when previewed in the editor.

Fixes #40441
2023-04-15 10:44:38 +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
8ab1998fcb Ported from godot 4: Optimize Node::add_child validation
Adding 10k nodes is almost twice as fast.
- reduz
223ce4fcb9
2023-04-10 18:10:22 +02:00
a14b058dc4 Ported from godot 4: Optimize Node children management
* Adding and removing child nodes is now constant time, speed up should be huge.
* Searching for node paths as in ("path/to/node") should be far faster too.
This changes the children management and makes it a hashmap, optimizing most StringName based operations.
Most operations should be severe speed up without breaking compatibility.
This should fix many issues regarding to node access performance, and may also speed up editor start/end, but benchmarks are needed. So if you want to test, please make some benchmarks!
- reduz
ab5fc22f67
2023-04-10 17:32:42 +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
7d2667830d Ported from godot 4: Fix Viewport root order after Node2D raise
- Sauermann
022d24a9ae
2023-04-10 11:42:15 +02: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
smix8
90f81c0013 Add error messages for collision exception functions
Adds error messages to collision exception functions when used with the wrong object/node instead of failing silently.
2023-03-12 14:24:56 +01:00
stmSi
9b65e9df6a Fix Editor hanging if audiostream's pitch_scale is NaN 2023-03-12 14:14:29 +01:00
Marius Hanl
1be818c478 Fix RichTextLabel: BBCode [color] tags are not counting in font char spacing
Each BBCode tag is drawn individually, so we have to add the character spacing manually.
2023-03-12 13:11:00 +01:00
Brian Semrau
2b7327e014 Fix Line2D UVs when using BOX end cap mode 2023-03-12 12:45:31 +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
e42c604bc3 Ported: Switch from recursion to iterative for backfilling colour regions.
- Paulb23
ee4a1c99a7
2023-02-21 13:11:37 +01:00
a79792ee67 Ported: Fix color region end key seach and start key order.
- Paulb23
6cdcdbc242
2023-02-21 13:08:49 +01:00
6ea9b581d7 Ported: Fix colour region continuation over blank lines, issue 41120
- Paulb23
5cf2cf8646
2023-02-21 12:53:41 +01:00
634bdfbb69 Ported: Changed line_edited_from(from) to lines_edit_from(from, to)
- Paulb23
907f9f2a84
2023-02-21 12:37:52 +01:00
0016b64316 Fix inconsistent overrides warning. 2023-02-21 01:34:30 +01:00
c356806ebf Ported: Extract Syntax highlighting from TextEdit and add EditorSyntaxHighlighter
- Extacted all syntax highlighting code from text edit
- Removed enable syntax highlighting from text edit
- Added line_edited_from signal to text_edit
- Renamed get/set_syntax_highlighting to get/set_syntax_highlighter
- Added EditorSyntaxHighligher
- Paulb23
bc4cee4458
2023-02-21 01:30:59 +01:00
0edf8fe956 Ported: Convert syntax highlighters into a resource
- Paulb23
2f1080be9b
2023-02-20 14:51:10 +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
3bd027f068 Ported: Add dumb theme item cache to Control
- YuriSizov, jordo
1647f4d85e
2023-02-07 02:11:52 +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
stmSi
a872971e46 Fixed: Save Branch as Scene not workking in Remote Tree (only work when u pause) 2023-02-07 01:08:29 +01:00
8c9d7bc567 Ported: Set touch input as handled only after _gui_call_input - necrashter
147de75e52
2023-01-16 14:46:29 +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
Haoyu Qiu
dc27330752 Make CollisionShape selection box use shape AABB 2023-01-16 14:19:35 +01:00
OsakiTsukiko
536884aa68 Fix RichTextLabel discards appended BBCode text on window resize when using DynamicFont 2023-01-16 13:54:31 +01:00
Haoyu Qiu
71c28de437 Fix Tree overflow without scrolling being enabled 2023-01-16 13:53:12 +01:00
Hugo Locurcio
04338a5018 Tweak particles animation offset property hint to allow more precise values 2023-01-16 13:47:55 +01:00
2cd4e4d828 Renamed Set to RBSet. 2023-01-15 19:42:08 +01:00
1b0aac6028 Renamed Map to RBMap. 2023-01-15 19:12:50 +01:00
213f393293 Fix typos with codespell. 2022-12-22 19:51:25 +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
8aa456b4c4 Ported: Add Vector2/3 linking to more properties
- Camera2D.zoom
- CanvasLayer.scale
- ParallaxBackground.scroll_base_scale
- ParallaxLayer.motion_scale
- Polygon2D.texture_scale
- SpatialMaterial.uv1_scale
- SpatialMaterial.uv2_scale
- fire-forge and timothyqiu
0d602ce881
2022-12-22 18:52:47 +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
Paweł Fertyk
845b70faad Fix get_visible_line_count in RichTextLabel with newlines
Fixed #59359.
2022-12-22 14:36:03 +01:00
kleonc
12e28bd557 AtlasTexture Fix calculating rects when flipping
(cherry picked from commit c3851b91db7a6dfd7170d6171109255ecb4a3809)
2022-12-22 14:31:21 +01:00
Paweł Fertyk
6ef3d20fb1 Fix BitMap.resize error spam
Fixes #70187.
2022-12-22 14:27:15 +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
Haoyu Qiu
520f6d19f6 Fix possible Tween leak on exit
(cherry picked from commit e173710963c3316833ac2e2c26ab3830551fd790)
2022-12-22 14:06:21 +01:00
Wilson E. Alvarez
f7d04cc052 Avoid compiling Editor checks in release builds for VisibilityNotifier2D 2022-12-22 14:00:42 +01:00
Wilson E. Alvarez
f95c511c7a Do not fire VisibilityNotifier screen_entered and screen_exited signals in the Editor 2022-12-22 13:54:25 +01:00
Haoyu Qiu
e75af6af1d Fix crash after executing ItemList.set_icon_scale
(cherry picked from commit 8d0fa193c344be8e1ec801b1a45341801b80a5f8)
2022-12-22 13:53:53 +01:00
lawnjelly
25c3232a77 VariantParser make readahead optional
It turns out some areas are independently moving / reading filepointers outside of the VariantParser, which can cause the readahead caching to get out of sync.

This PR makes the VariantParser readahead to be optional to allow for these use cases.
2022-12-22 13:52:51 +01:00
Hugo Locurcio
b1c99f29e3 Fix infinite loop when calling Control.popup_centered_minsize()
Co-authored-by: sriramun <sriramun2@gmail.com>
(cherry picked from commit 08e804b3b718862e92e6b296b914e3829e43717e)
2022-12-22 13:51:14 +01:00
Dawid Marzec
289b16fa7b Fix errors while deselecting all tree items; issue #65185
(cherry picked from commit d4d5df2314208a99c589456a75299a334672acd2)
2022-12-22 13:44:05 +01:00
c7809991b2 Fixed an another issue with touch gui input handling. 2022-12-12 18:30:35 +01:00
37961b1990 Fix regression in touch input handling. 2022-12-12 14:26:54 +01:00
smix8
4a9c859c6d Add detail to NavigationPolygon outline error msg
Adds additional information to the error msg when the convex partition fails due to invalid outline arrays.

(cherry picked from commit f30ebacbe851bd207e1c55e82d04caf150a59690)
2022-12-12 12:13:36 +01:00
Phnix
6040a9b37c incorrect range value with min value and step
If the minimum value and the steps are greater than 0, the value will not be calculated correctly.

Co-Authored-By: Astral-Sheep <109028693+Astral-Sheep@users.noreply.github.com>
(cherry picked from commit fe1f8443a411c64eb8a2934512ab982f3df3d550)
2022-12-12 12:13:15 +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
bruvzg
0c95c634bb Fix auto-translation and ignore control chars. 2022-12-11 19:14:14 +01:00
Haoyu Qiu
0a11c9e1bf Fix TreeItem.remove_child not updating Tree immediately 2022-12-11 19:13:20 +01:00
Silc Renew
c8a090fa42 Fix animation signal caches_cleared firing timing
(cherry picked from commit 962b6a3e8f9d91f92f2547e2da6ba8dbd5a661dc)
2022-12-11 19:12:37 +01:00
Haoyu Qiu
5e3a86aea6 Fix CanvasLayer visibility toggle can only run once per frame 2022-12-11 19:08:52 +01:00
Dawid Marzec
03ae12b069 Remove auto selecting the first file for FileDialog with Save file mode selected
(cherry picked from commit 5cd30be56d1d34d84bd423fb99f8fa03edbfe75e)
2022-12-11 19:04:39 +01:00
kobewi
43cb6e940a Remove error condition from get_global_transform()
(cherry picked from commit 2ff676a696a9cc1d77c0a8f4d5f31de8c7b5bc1a)
2022-12-11 19:02:12 +01:00
Markus Sauermann
fc7038b073 Update root order on layer change
When the layer of a CanvasLayer changes, the order of roots needs to be recalculated.

(cherry picked from commit 8d60e8b5d4120d9f9a4868bfb8f0059e733d6d5f)
2022-12-11 18:35:56 +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
Fredia Huya-Kouadio
4759ad6517 Fix the logic used to route InputEventScreenDrag events to Control nodes. 2022-12-11 18:30:58 +01:00
jbcolli2
6812b69c1e Changed normal of CylinderMesh to account for slanted side.
(cherry picked from commit 491ec622f641c28c919c9f8d1b0fbaad014e4714)
2022-11-30 19:23:53 +01:00
Rafał Mikrut
5d6b2de1f3 Fix exporting big templates
(cherry picked from commit 86fa3ba56015b0fb6f282277b37c211fe803c6f9)
2022-11-30 19:23:35 +01:00
Micky
a0c1c54db1 Fix ColorPicker always emitting color_changed on html submit
The color change was always emitted when the the modal was closed, even if it was exactly the same as before.

(cherry picked from commit 544727ac1ea7616c9f44116360d038cfcda5f763)
2022-11-30 19:10:54 +01:00
Haoyu Qiu
095d8c1fef Fix crash of queue_free() when main loop is not SceneTree
(cherry picked from commit 3b08d0e85233a594b016ae27e06b5f21536a6176)
2022-11-30 18:59:25 +01:00
Hugo Locurcio
cbcd6bad4a Improve collision exception error messages for easier understanding 2022-11-30 14:37:35 +01:00
4b3c8aed30 Now ColorSelectorButton can work both in toggle mode, and in normal mode. 2022-11-17 23:04:16 +01:00
f72fa755e0 Added a new ColorSelectorButton. Same idea as the ColorPickerButton, except left clicking it emits a pressed signal, right clicking it opens a color picker. 2022-11-17 17:42:07 +01:00
arkology
76909c0d83 AtlasTexture in radial modes of TextureProgress 2022-11-13 00:52:54 +01:00
kleonc
d7ddaf619a Add ShapeCast2D/3D::get_collider_rid method 2022-11-13 00:50:18 +01:00
Sam Briels
799a6e334f fix: emit target_reached signal after updating state 2022-11-13 00:41:37 +01:00
bruvzg
4b2281058a Improve font glyph cache packing shelf best height fit heuristic, delay font texture update, until texture is accessed. 2022-11-13 00:35:55 +01:00
Haoyu Qiu
34260f2bff Fix get_path() error when calling get_node() 2022-11-13 00:35:22 +01:00
Michael Alexsander
b85570c541 Expose various color themes for Button 2022-11-13 00:30:18 +01:00