Commit Graph

545 Commits

Author SHA1 Message Date
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
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
kobewi
335b7e6cde Hide text of RichTextLabel if BBCode is enabled 2022-11-13 00:24:35 +01:00
9beaa6b80c Fix cpuparticles 3d. 2022-10-08 18:04:15 +02:00
Waridley
16285d52a6 Support multiline strings in buttons 2022-10-08 17:06:51 +02:00
Haoyu Qiu
30a24e864f Fix NavigationObstacle not estimating radius 2022-10-08 17:04:48 +02:00
Haoyu Qiu
dbd2b16a35 Fix NavigationObstacle not registering to default navigation map 2022-10-08 17:04:14 +02:00
lawnjelly
98c32bb3e7 Improve signal already connected error message
The signal already connected message is improved to provide the names of the objects involved.
2022-10-08 16:34:51 +02:00
kobewi
903c9932e5 Don't store frame of playing AnimatedSprite 2022-10-08 16:33:38 +02:00
kobewi
b97535aead Fix crash when playing Tween right after finishing
(cherry picked from commit 1a462bc84e095125661efb5a0254f36e73197cd9)
2022-10-08 16:23:45 +02:00
67b7c1689f Fix compile. 2022-10-08 16:15:55 +02:00
lawnjelly
cd68b6e1e2 CPUParticles initialize data on set_amount
Fills particle data with zeroes on resize using set_amount(), to prevent garbage data including Nans being sent to VisualServer, which can corrupt the spatial partitioning.
2022-10-08 16:13:50 +02:00
kleonc
4da6c31ba9 SpriteBase3D Fix drawing AtlasTextures with vertical margins differently than in 2D 2022-10-08 16:09:18 +02:00
92af14b0b0 Ported: Move duplicated drawing code from Sprite3D/AnimatedSprite3D to SpriteBase3D
- kleonc
0bf2b8e813
2022-10-08 16:08:49 +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
0859d5b60f Portals - Show RayCast debug helper
Switches the raycast helper to global portal_mode, allowing it to show when portals are active.
2022-09-17 00:06:15 +02:00
lawnjelly
dae57cd077 Low priority redraw request for AnimatedSprite
Prevents animated sprite from creating continuous redraws in vital_redraws_only mode.
2022-09-17 00:05:36 +02:00
Abhinav Chennubhotla
cbdc659738 Fix code folding icon color not matching defined color
Cherrypick of #58457 in master

Caused by reusing icons from the main editor in the code editor. These
icons were converted based on the main editor theme and not the code
editor theme.

    - Create new icons for use specifically in the code editor
    - Add these icons to the exceptions when converting dark theme icons
    to light theme automatically
    - Change the default value of the code folding color to match previous
    color
    - Code folding icon is now pure white by default to correctly match
    the color defined in settings
2022-09-16 23:38:34 +02:00
lawnjelly
2b70218bd1 Fix uninitialized data reads in Input
Found by Valgrind.
2022-09-16 23:35:56 +02:00
lawnjelly
264627d11b FlowContainer fix uninitialized data
This uninitialized data was finding its way into the renderer.
2022-09-16 23:31:58 +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
b5b6d14d37 Fix Viewport size change not updating textures
(cherry picked from commit 3a4a4aeadec36324da394238cf0f86dbac345e93)
2022-09-16 23:13:40 +02:00
98039d80f6 Fix include. 2022-09-16 23:12:05 +02:00
kobewi
65e1217d59 Allow to change the Stop shortcut used at runtime
(cherry picked from commit 409613ba7ba50e6cc985c61f6dcc482bac68746e)
2022-09-16 22:59:29 +02:00
Micky
9086bef38d Cast between float and ints in SceneTreeTween.tween_property()
(cherry picked from commit 2b18a4002c8e500597bc8f5d605f9be8d1b22236)
2022-09-16 22:55:03 +02:00
6a317fbe15 Fix build. 2022-09-16 22:42:11 +02:00
Atlinx
561aab3227 Remove HDR warning if on low end 2022-09-16 22:34:05 +02:00
kobewi
8474965b10 Hide prefix/suffix on SpinBox focus 2022-09-16 22:33:27 +02:00
Michael Alexsander
bce30062a5 Fix some corner cases in the Menu/OptionButton item auto-highlight 2022-09-16 22:04:23 +02:00
Michael Alexsander
7fd1e3b8ac Fix crash when pressing up on an empty PopupMenu 2022-09-16 22:01:53 +02:00
Yuri Sizov
211cd1e46a Remove Inspector tooltip hack that never actually worked 2022-09-16 21:57:00 +02:00
Michael Alexsander
db8e21638a Fix ItemList selection visual when the scrollbar visibility changes
(cherry picked from commit e298144a41338d80b5f0090ce8f28aef888c13dd)
2022-09-16 21:18:10 +02:00
b6dc768e74 Fix build. 2022-09-16 19:47:02 +02:00
Marcin Nowak
a697c239b8 Backport panning strength parameters from 4.0 2022-09-16 19:44:55 +02:00
bruvzg
876bac58ce Fix color modulation of the grayscale glyphs in font with mixed color / grayscale data. 2022-09-16 19:40:51 +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
Michael Alexsander
a557f22f1d Make Menu/OptionButton item auto-highlight behave better 2022-09-16 13:16:42 +02:00
Yuri Sizov
494dc2f957 Backport fixes to documentation for paths, curves and navigation servers 2022-09-16 13:07:20 +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
4025ab2824 Fix build when 3d is off. 2022-09-02 20:56:04 +02:00
b72cc00ee1 Small fixes to the World override system. Still needs work though. 2022-08-30 19:22:22 +02:00
9bdb8b6bce Now only one override is allowed per World, as there is really no reason to have support for more than one per world pair. This fixes lots of issues with the system. 2022-08-30 15:47:22 +02:00
ae0316ff59 Fix more issues with World overrides. 2022-08-30 14:31:23 +02:00
66f2357d01 Now Cameras use Worlds directly instead of Viewports. 2022-08-30 14:08:27 +02:00
786e20b159 Work on fixing the remaining issues / error messages with World overrides. 2022-08-30 12:28:05 +02:00
338cc9c93d Don't apply World override in the editor. 2022-08-30 01:48:19 +02:00
9b3714a274 Now CanvasItems work with World overrides aswell. 2022-08-30 01:40:03 +02:00
dd2fa3e6e3 Move Cameras into the new 3d world on override. 2022-08-30 00:06:56 +02:00
4303dfb5c0 More work on World override support. 2022-08-29 22:55:48 +02:00
49af677ca8 Work on the ability for overriding Worlds. 2022-08-29 20:56:17 +02:00
00c25ed930 Bit more reorder. 2022-08-29 19:51:17 +02:00
3894452760 Reordered World. 2022-08-29 19:48:01 +02:00
68b21dc61f Move World2D and World3D related things to World from Viewport. 2022-08-29 19:40:17 +02:00
f44f9f5c13 Reordered Viewport. 2022-08-29 18:47:49 +02:00
aba4e9db3c Added a new World class and made Viewport inherit from it. 2022-08-29 18:40:38 +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
24a1580dbf Renamed the files aswell. 2022-08-29 17:33:10 +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
ad72b82a89 Fix an another include. 2022-08-28 17:02:41 +02:00
e558e0f700 Fix build when the new skeleton 3d module is disabled. 2022-08-28 16:01:50 +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
a1865fd1af Now Camera2Ds handle being current properly, and also more intuituvely. 2022-08-24 18:11:10 +02:00
a21352637e Fix infinite loop when reparenting bones in the bone editor. Also fixed issues with bones sometimes returning incorrect children. 2022-08-19 23:46:14 +02:00
e2d42db711 Also renamed the files. 2022-08-19 21:24:36 +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
1b503ad711 Revert "Fix mouse_over not dropped when mouse leaves window"
This reverts commit 33a2d5e20b.
2022-08-19 02:48:36 +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
Marcel Admiraal
33a2d5e20b Fix mouse_over not dropped when mouse leaves window 2022-08-19 02:20:03 +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
685f3cb495 Ported: remove redundant check preventing checkbox theme style to apply hover_pressed. - Piralein
36ff8962cc
2022-08-19 02:17:05 +02:00
Hugo Locurcio
1ce49593aa Use interleaved gradient noise for distance fade
This provides better visuals and performance compared to the previous
ordered dither.
2022-08-19 02:14:27 +02:00
9d0c889583 Added a few small networking related helper methods to Node. Made the rpc macros in Entity use them. 2022-08-19 00:36:24 +02:00
1dc5d84196 Moved visibility rpcs (vrpc) from Entity to Node. Also added an unreliable variant. 2022-08-19 00:04:38 +02:00
44948a6f7a Removed rsets. 2022-08-18 23:04:57 +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
9757c39f05 Moved a few more core classes. 2022-08-17 17:43:49 +02:00
99e94b08c4 Moved base input related classes to core/input. 2022-08-17 17:02:24 +02:00
686663d3e4 Moved around more classes in core. 2022-08-17 16:01:01 +02:00
04feb63860 Moved Engine and projectSettings. 2022-08-17 15:35:28 +02:00
220b2db443 Moved String and related classes under a string folder in core. 2022-08-17 14:19:55 +02:00
dc9cc716c7 Moved Object related classes under core/object. 2022-08-17 13:45:14 +02:00
9555ee56b9 Moved Variant related classes under a variant folder in core. 2022-08-17 13:17:12 +02:00
388b88678e Moved container related classes in core under a new containers directory. 2022-08-17 12:53:49 +02:00
0d2fc2e9f2 Moved color to core/math. 2022-08-17 11:38:15 +02:00
e71e3ed897 Now Vector4, Vector4i, Projection, PoolVector4Array, PoolVector4iArray, are built in variant types. Also reordered the Variant's Type enum, renamed _RID in it to RID, fixed a few smaller issues and removed some very old compat code. 2022-08-16 21:55:56 +02:00
8c2e76840c Removed CameraMatrix, and switched to Projection. 2022-08-16 10:26:35 +02:00
87149557b2 Fix sign comparison warning. 2022-08-15 23:12:44 +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
e4cad690a3 Renamed elements in Transform2D to columns. 2022-08-14 15:37:05 +02:00
d9a8497546 Renamed translate in Transform2D to translate_local. 2022-08-14 14:59:46 +02:00
170a41ca82 Backported improvements to Basis from Godot4. Also bound all eligible methods. 2022-08-14 00:18:21 +02:00
d9e094ab9a Renamed elements in Basis to rows. 2022-08-13 19:07:59 +02:00
730bce8587 Renamed Quat to Quaternion for consistency with the other engine math classes. 2022-08-13 15:22:33 +02:00
88da0c8d4f Backported from Godot4: Fix animation player crashing when caching disabled tracks - MinusKube
a73882305c
2022-08-12 18:42:34 +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
f51c08120e Backported from Godot4: improved way of getting method track keys - TokageItLab
dedc4710a3
2022-08-12 17:48:00 +02:00
65f8c774a8 Backported from Godot 4: Fixed value track blend animation without RESET - TokageItLab
0fe723a1ac
2022-08-12 17:28:51 +02:00
ec9eb18aaf Backported from Godot4: Make blend animation to use ResetTrack as default value - TokageItLab
860fac4e6f
2022-08-12 17:16:52 +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
4b939998a7 Removed AnimationTreePlayer, as it was deprecated (and also practically unusable). 2022-08-11 23:01:27 +02:00
ab86ae7c2c Backported form godot4: Respect disabled animation tracks - reduz
11805ac01d
2022-08-11 22:50:39 +02:00
dc3500ec17 Fixed BoneAttachments. 2022-08-11 22:32:32 +02:00
502f8f85c5 Fix infinite recursion issues in Skeleton. 2022-08-11 22:32:25 +02:00
575b830f68 Fixed AnimationTree animating Spatials. 2022-08-11 22:08:44 +02:00
9d9271b518 Removed the SNAME macro, I'll probably keep static counting support for StringNames though. 2022-08-11 20:22:51 +02:00
5e3c3ff4d0 Ported from Godot4: Implement global rest - TokageItLab
4d4ffa3a2c
2022-08-11 20:10:26 +02:00
da62c587e8 Ported from Godot4: get rid set_bone_pose and fix some function in SkeletonEditor - TokageItLab
8e9897b6de
2022-08-11 19:57:23 +02:00
36b5334282 Ported from Godot4: Fix for SkeletonModification3Ds to work with the new bone pose changes, fixed global_pose_to_local_pose function
- TwistedTwigleg
0cedc04769
2022-08-11 19:09:58 +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
15a5bea727 Clear surfaces in ImmediateMesh before adding a new one. 2022-08-11 18:09:33 +02:00
4db7bba945 Now ImmediateMesh actually sends the expected data to the VisualServer. 2022-08-11 17:56:31 +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
d662b2f3c9 Fix unused variable. 2022-08-11 12:31:24 +02:00
1b743e8a6d Fixed comparison of integer expressions of different signedness warnings. 2022-08-11 12:28:04 +02:00
dd250bf678 Backported ImmediateMesh from Godot4. 2022-08-11 12:23:36 +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
b352060a62 Added a new bones_updated signal to Skeleton. 2022-08-10 12:42:04 +02:00
49f76407ba Fix unsigned signed comparison warnings. 2022-08-10 11:34:12 +02:00
7a9fe9117a Fix build. 2022-08-10 10:17:02 +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
cf918406ae Renamed Skeleton's skeleton_updated signal to pose_updated to make the following backports that much easier. 2022-08-09 22:31:17 +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
3d4a55a1a3 Backported: Added feature to move physical bones with skeleton when not simulating physics. - AndreaCatania
374432d074
2022-08-09 19:19:50 +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
3a8ffc6df3 Added missing cases to switch. 2022-08-09 12:26:47 +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