Commit Graph

2257 Commits

Author SHA1 Message Date
kobewi a9f3154da3 Add per-tile flipping and transposing 2023-09-09 00:56:38 +02:00
Gilles Roudière 8c1e28237b Improve TileMap performances by using quadrants only for rendering 2023-09-08 15:33:43 +02:00
Rémi Verschelde 2c0a74a149
Merge pull request #80105 from Sauermann/fix-global-transform
Fix global transform validity for `Node2D` and `Control`
2023-08-28 12:03:53 +02:00
Dragos Daian f9435b6d72 Expose the get_rid method of Joint2D and Joint3D
update occurance of get_joint

Update documentation as per feedback.

update

update

Co-Authored-By: A Thousand Ships <96648715+AThousandShips@users.noreply.github.com>
2023-08-27 00:34:47 +03:00
Yuri Roubinski 7fcb91f077 Implement conversion from `CPUParticles` to `GPUParticles` (3D/2D) 2023-08-19 11:58:57 +03:00
A Thousand Ships b060a22719 Pass missing arguments to `TileMap::get_used_cells_by_id` 2023-08-17 19:55:56 +02:00
Rémi Verschelde e6e79255ed
Merge pull request #77943 from aaronfranke/mass-dist
Add Mass Distribution, Deactivation, Solver inspector property groups
2023-08-17 12:26:59 +02:00
Rémi Verschelde ed81c93be7
Merge pull request #80658 from Sch1nken/tilemap-erase-scenes
TileMap: Check for possible scenes to be erased
2023-08-16 09:18:11 +02:00
Rémi Verschelde 132b97c325
Merge pull request #79747 from kleonc/canvas_modulate_fix_updating_logic
Fix `CanvasModulate` logic for modulating the canvas
2023-08-16 09:12:18 +02:00
Sch1nken 7aa90d1667 Check for possible scenes to be erased 2023-08-15 15:17:06 +02:00
Rémi Verschelde 8b3de35c64
Merge pull request #79867 from WhalesState/master
Fix Camera2D is not working inside a MainScreenEditorPlugin
2023-08-14 09:36:06 +02:00
Mounir Tohami 4e4a725fff Fix Camera2D is not working inside EditorPlugin 2023-08-13 22:14:13 +00:00
Markus Sauermann 152572ac38 Fix global transform validity for `Node2D` and `Control`
Set global transform to invalid when changing transform
2023-08-08 12:22:55 +02:00
Hugo Locurcio 49b6067aba Use StringName consistently to refer to the Master audio bus name 2023-08-07 18:06:17 +02:00
Aaron Franke 49e0a01bf1
Add Mass Distribution, Deactivation, Solver inspector property groups 2023-08-06 21:26:33 -05:00
Rémi Verschelde 858e8748e8
Fix or workaround recent extension API compatibility issues
- Add compatibility methods for `RenderingDevice::shader_create_from_bytecode`
  and `CodeEdit::get_text_for_symbol_loopup`.
- Silence errors which now have compatibility methods.
- Acknowledge GraphEdit/GraphNode compat breakage, intended and WIP.
2023-08-03 12:07:21 +02:00
Yuri Sizov 9fe9922dd9 Merge pull request #80122 from timothyqiu/rid-id
Fix "a number is required" error when printing RID
2023-08-01 20:04:04 +02:00
Yuri Sizov e810671116 Merge pull request #79977 from Owl-A/bugfix
Add state sync after call to `_integrate_forces` in `_body_state_changed`
2023-08-01 20:03:47 +02:00
Haoyu Qiu 35f28407d9 Fix "a number is required" error when printing RID 2023-08-01 23:30:21 +08:00
Chinmay Awale c118256865 added state sync after call to _integrate_forces 2023-08-01 19:03:43 +05:30
kobewi 055b9892d2 Properly clear scene tiles 2023-07-27 01:31:20 +02:00
smix8 69fad39cf5 Add NavigationServer API to enable regions and links
Adds NavigationServer API to enable regions and links.
2023-07-26 01:20:15 +02:00
Yuri Sizov f6187014ec Merge pull request #79851 from timothyqiu/null-tileset
Fix crash when executing `TileMap.fix_invalid_tiles`
2023-07-24 19:33:55 +02:00
Yuri Sizov 6fb5d9e1e6 Merge pull request #79485 from smix8/tilemap_cell_size_4.x
Set default `cell_size` on new TileMap Layer navigation layer maps
2023-07-24 19:32:50 +02:00
Yuri Sizov 2f4c962929 Merge pull request #79434 from Calinou/2d-editor-allow-float-bone-size
Allow using floating-point bone sizes and outline widths in the 2D editor
2023-07-24 19:32:42 +02:00
Haoyu Qiu a7ab7e469b Fix crash when executing TileMap.fix_invalid_tiles 2023-07-24 20:01:27 +08:00
smix8 671839d5cd Set default cell_size on new TileMap Layer navigation layer maps
Sets default cell_size on new TileMap Layer navigation layer maps.
2023-07-21 18:02:21 +02:00
Yuri Sizov 7a313318b2 Merge pull request #79645 from adamscott/fix-camera-2d-editor
Fix Camera2D crash when edited scene root is null
2023-07-21 17:54:58 +02:00
kleonc f12164d311 Fix CanvasModulate logic for updating canvas modulate 2023-07-21 15:33:36 +02:00
Gilles Roudière d6379e9a93 Move TileMap layers to their own class 2023-07-20 17:23:38 +02:00
Adam Scott deb45c0cab
Fix Camera2D crash when edited scene root is null 2023-07-18 20:36:40 -04:00
kobewi de4a3fa151 Unify and streamline connecting to Resource changes 2023-07-17 19:35:57 +02:00
Hugo Locurcio a39190a18f
Allow using floating-point bone sizes and outline widths in the 2D editor
This is useful when animating pixel art sprites in the 2D editor,
as a value of `1` is often too large when zoomed in.
2023-07-17 12:44:09 +02:00
Hendrik Brucker 7e21eb7e00 Extract and reorganize texture resource classes 2023-07-14 20:04:21 +02:00
Yuri Sizov 0f7625ab46 Merge pull request #76859 from HolonProduction/emission-finished-gpu
Add `finished` signal to GPUParticles
2023-07-14 18:50:56 +02:00
Yuri Sizov a91f0e6bca Merge pull request #76853 from HolonProduction/emission_finished
Add `finished` signal to CPUParticles
2023-07-14 18:50:51 +02:00
smix8 2512157294 Fix NavigationObstacle2D debug position
Fixes NavigationObstacle2D debug position.
2023-07-12 22:21:58 +02:00
Yuri Sizov a927b22f65 Merge pull request #77257 from rakkarage/tile_animation_sync
Add `TileSetAtlasSource::TileAnimationMode` options and allow to shuffle tile animations
2023-07-12 21:02:31 +02:00
Yuri Sizov 4e66c4cdd9 Merge pull request #77191 from smix8/navigationregion_map_change_4.x
Add NavigationRegion function to change navigation map
2023-07-12 17:15:13 +02:00
HolonProduction a1c0d206e8 Add `finished` signal to CPUParticles 2023-07-12 13:45:02 +02:00
HolonProduction 5322e255ad Add `finished` signal to GPUParticles 2023-07-12 13:29:47 +02:00
Rémi Verschelde 7030ac555f
Merge pull request #79270 from clayjohn/particle-trails-error
Unify error condition for particles trail lifetime
2023-07-10 10:38:34 +02:00
clayjohn 78ecdb17f9 Unify error condition for particles trail lifetime 2023-07-10 10:17:27 +02:00
Rémi Verschelde 7cd92ad023
Merge pull request #78940 from AThousandShips/touch_compat
Add compatibility properties to `TouchScreenButton`
2023-07-08 18:20:39 +02:00
Rémi Verschelde 813ff4b460
Merge pull request #78857 from smix8/navagent_pos_fix_4.x
Fix NavigationAgent position not always updating
2023-07-03 15:26:11 +02:00
Ninni Pipping c7e4b3bf5f Add compatibility properties to `TouchScreenButton`
Added support for `3.x` properties:
* `normal` -> `texture_normal`
* `pressed` -> `texture_pressed`
2023-07-02 10:45:16 +02:00
smix8 34bc410fb4 Fix NavigationAgent position not always updating
Fixes NavigationAgent position not always updating.
2023-06-30 00:18:26 +02:00
smix8 c912df9d05 Fix NavigationAgent continues avoidance velocity
Fixes NavigationAgent continues avoidance velocity.
2023-06-29 21:10:03 +02:00
Rémi Verschelde c1ad74d4c3
Merge pull request #78579 from aaronfranke/col-poly-obj-name
Internally rename `parent` to `collision_object` in CollisionPolygon(2D/3D)
2023-06-23 00:06:09 +02:00
Aaron Franke 7c4921e794
Internally rename parent to collision_object in CollisionPolygon(2D/3D) 2023-06-22 14:06:05 -05:00
Rémi Verschelde cb73a6e9f9
Merge pull request #78490 from clayjohn/GLES3-particles-subemit
Add warnings and fallbacks for particles sub emitters when using the GL Compatibility rendering backend
2023-06-22 21:02:38 +02:00
kleonc edba45ec8b Fix click-selecting Sprites with repeated texture 2023-06-22 16:37:08 +02:00
clayjohn 8a5af8183a Add warnings and fallbacks for particles sub emitters when using the GL Compatibility rendering backend
Co-authored-by: Hugo Locurcio <hugo.locurcio@hugo.pro>
2023-06-21 12:56:52 -07:00
Rémi Verschelde 5025d95d41
Merge pull request #69027 from Uxeron/AudioListener2DRotationFix
Fix AudioListener2D ignoring rotation for positional audio
2023-06-21 10:17:37 +02:00
Uxeron 20ceba9e82 Fix AudioListener2D ignoring rotation 2023-06-21 08:10:01 +03:00
smix8 e3f9994d54 Fix NavigationAgent2D path debug hidden behind canvas items
Fixes NavigationAgent2D path debug hidden behind canvas items.
2023-06-19 15:43:35 +02:00
smix8 ae9dd47d0c Add agent pause mode to NavigationServer
Adds agent pause mode to NavigationServer.
2023-06-18 12:37:03 +02:00
Rémi Verschelde 2d90f66ac1
Merge pull request #78323 from kleonc/tile-compat-transposed-transform-fix
Fix transform for transposed tiles in compatibility mode (from 3.x)
2023-06-16 16:52:51 +02:00
kleonc 735e7d67ca Fix transform for transposed tiles in compatibility mode (from 3.x) 2023-06-16 13:31:01 +02:00
Rémi Verschelde d101244d1b
Merge pull request #74641 from dalexeev/fix-bitfield-enum-warnings
Display `BitField[Enum]` in docs to distinguish from `Enum`
2023-06-16 10:18:46 +02:00
Rémi Verschelde 6fb391bc23
Fix various typos with codespell
And ignore some false positives introduced by recent versions of codespell.
2023-06-16 08:45:35 +02:00
Danil Alexeev eb391d3302
Display `BitField[Enum]` in docs to distinguish from `Enum` 2023-06-15 17:23:02 +03:00
smix8 84647ab09e Add NavigationRegion function to change navigation map
Adds NavigationRegion function to change navigation map.
2023-06-15 12:04:57 +02:00
smix8 4c970f1a67 Refactor NavigationRegion internals
Refactors NavigationRegion internals.
2023-06-15 09:52:14 +02:00
Yuri Sizov 991f4d5183 Avoid error spam when (un)pausing GPUParticles out of tree 2023-06-12 18:18:51 +02:00
smix8 c1fc331b88 Update navigation obstacle API
Updates navigation obstacle API.
2023-06-12 14:26:45 +02:00
Ninni Pipping dcd2b883eb Use NULL instead of COND checks when appropriate
Restricted to scene
2023-06-10 08:56:30 +02:00
Aaron Franke ec09cff7f3
Internally rename parent to collision_object in CollisionShape(2D/3D) 2023-06-07 12:02:27 -05:00
Hugo Locurcio fc4ec42a09
Increase precision in particle damping properties in the editor 2023-06-07 15:26:02 +02:00
Rakka Rage 6dbae30000 Add tile_animation_mode option:
- to tile animation properties
- when "Default" each animation starts at time 0.
- when "Random Start Times" each animation starts at random time.
2023-06-06 09:31:18 -04:00
kobewi 9128ce95ce Check for null in set_pattern() 2023-05-24 16:43:29 +02:00
Silc Renew 42aa5398d9 Fix Pathfollow direction
Co-authored-by: aaronfranke <arnfranke@yahoo.com>
2023-05-24 17:37:00 +09:00
Yuri Sizov 0032c1c0c2
Merge pull request #77161 from AThousandShips/touch_texture_fix
Make `TouchScreenButton` connections reference counted
2023-05-18 19:19:31 +02:00
Ninni Pipping 0648cc65b2 Make `TouchScreenButton` connections reference counted
Prevents errors when assigning the same texture to both slots
2023-05-17 22:51:42 +02:00
Pedro J. Estébanez 50cf3d6966 Optimize threading-sensitive node data for single-threaded processing 2023-05-17 02:04:41 +02:00
Rémi Verschelde 12b7a56202
Merge pull request #76713 from KoBeWi/TODO_is_now
Fix 2D audio in multiple viewports
2023-05-16 11:00:45 +02:00
Rémi Verschelde 8cfa19a078
Merge pull request #77000 from reduz/make-more-base-nodes-thread-safe
Make more base nodes thread safe
2023-05-16 00:31:56 +02:00
Juan Linietsky 0a9f72d5a8 Make more base nodes thread safe
Ongoing work to make more of the base nodes thread safe.
2023-05-15 16:54:10 +02:00
Danil Alexeev cc44d75cd8
Fix `draw_multiline_colors` usage 2023-05-15 09:56:13 +03:00
smix8 f986b52b3c Make navigation mesh edge connections optional
Makes navigation mesh edge connections optional.
2023-05-11 18:46:34 +02:00
smix8 7e1a261cc6 Prevent unnecessary navigation map synchronizations
Prevents unnecessary navigation map synchronizations triggered by redundant calls to setters of e.g. region, link or map properties.
2023-05-11 07:38:16 +02:00
smix8 a6ac305f96 Rework Navigation Avoidance
Rework Navigation Avoidance.
2023-05-10 05:01:58 +02:00
Rémi Verschelde bbe05b60c8
Merge pull request #57179 from spacechase0/notify-world2d-changed-master
Propagate previously unused NOTIFICATION_WORLD_2D_CHANGED, make CanvasItem/CollisionObject2D use it
2023-05-08 16:40:00 +02:00
kobewi 8a41eefb97 Fix 2D audio in multiple viewports 2023-05-03 23:09:40 +02:00
Chase Warrington 46e06ee1e6 Propogate previously unused NOTIFICATION_WORLD_2D_CHANGED, make CanvasItem/CollisionObject2D use it 2023-05-01 18:26:55 -04:00
VolTer 818d57b5b4 Light3D show scaling warning immediately 2023-05-01 02:55:17 +02:00
Proggle 093cb90077
TileMap: Add method to fetch the layer for a given body 2023-04-25 12:49:50 +02:00
Haoyu Qiu a15126915d Fix TouchScreenButton not redrawn when texture changes 2023-04-23 14:35:12 +08:00
Rémi Verschelde b5b371cf7c
Merge pull request #70332 from aaronfranke/rigid-body-units
Improve some units in RigidBody nodes
2023-04-18 23:38:20 +02:00
Yuri Sizov 9e6b680cfb
Merge pull request #74814 from kleonc/tilemap-fix-rendering-odd-sized-tiles
`TileMap` Fix rendering odd-sized tiles
2023-04-18 16:27:44 +02:00
Aaron Franke 87bd8d2dcf Make Area physics priority consistently int and allow negative numbers 2023-04-18 13:50:20 +02:00
Aaron Franke a83ce0b104
Improve some units in RigidBody nodes 2023-04-15 22:03:24 -05:00
clayjohn 821917ba9f Use angle_rand to calculate base_angle in particles process material 2023-04-13 15:10:47 -07:00
Yuri Sizov f38b540273
Merge pull request #75756 from smix8/fix_obstacle_avoidance_sim_4.x
Fix NavigationObstacles not being added to avoidance simulation
2023-04-07 15:11:40 +02:00
Yuri Sizov f1f0e5f91d
Merge pull request #75728 from smix8/fix_audiostreamplayer2d_crash_4.x
Fix AudioStreamPlayer2D crash when PhysicsServer2D runs on thread
2023-04-07 12:46:53 +02:00
smix8 aadf33efd8 Fix NavigationObstacles not being added to avoidance simulation
Fixes NavigationObstacles not being added to avoidance simulation.
2023-04-06 16:32:49 +02:00
Juan Linietsky 104392ef4e 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.
2023-04-06 13:57:13 +02:00
smix8 a5351086b0 Fix AudioStreamPlayer2D crash when PhysicsServer2D runs on thread
Fixes AudioStreamPlayer2D crash when PhysicsServer2D runs on thread due to empty PhysicsSpace
2023-04-06 03:29:09 +02:00
Rémi Verschelde 3c225c19c1
Merge pull request #75487 from Rindbee/improve_update_remote_in_RemoteTransform2D
Fix RemoteTransform2D could fail to update AnimatableBody2D's position or rotation
2023-04-03 16:03:34 +02:00
Rémi Verschelde b237df8cea
Merge pull request #75326 from smix8/navigationagent_expose_parameters_4.x
Expose NavigationAgent path postprocessing and pathfinding algorithm options
2023-04-03 16:02:21 +02:00
Rindbee 100b4b1f28 Fix RemoteTransform2D could fail to update AnimatableBody2D's position or rotation
Configure the transform per condition, and then only set it once to
prevent multiple `NOTIFICATION_LOCAL_TRANSFORM_CHANGED` notifications
from being sent.
2023-03-30 16:00:35 +08:00
Yuri Sizov 1222d35cdd
Merge pull request #75398 from newobj/issue-75218
Update GPUParticles2D/3D speed scale on ENTER_TREE
2023-03-28 16:34:58 +02:00
Brian Long 4652fbd09e Update GPUParticles2D/3D speed scale on ENTER_TREE
Fix for https://github.com/godotengine/godot/issues/75218

Pause notifications are not sent when a node is added as a child. So GPUParticles2D should also obey its can_process status on ENTER_TREE, not just PAUSED/UNPAUSED.
2023-03-27 13:24:59 -07:00
Yuri Sizov 2659fc1a34
Merge pull request #75266 from rburing/shapecast2d_disconnect
Port robust signal (dis)connection to `ShapeCast2D`
2023-03-27 13:08:58 +02:00
smix8 6e324bb341 Expose NavigationAgent path postprocessing and pathfinding algorithm options
Exposes the path postprocessing and pathfinding algorithm options of the NavigationAgent internal NavigationPathQueryParameters object.
2023-03-25 21:37:18 +01:00
Yuri Sizov 32c65c92a2
Merge pull request #75258 from AThousandShips/autoplay
Fix `AnimatedSprite2D` autoplay warning
2023-03-25 14:28:27 +01:00
Yuri Sizov 553fd238cf
Merge pull request #73897 from TheSecondReal0/camera-line-width
Draw Camera2D outlines as 2 point primitives instead of 4 (consistent with how origin is drawn in 2D editor)
2023-03-25 13:49:12 +01:00
Ricardo Buring 5bed055cdd Port robust signal (dis)connection to ShapeCast2D
Ported from ShapeCast3D.
2023-03-24 09:23:03 +01:00
Asa Sprow 574293532d Draw Camera2D outlines as 2 point primitives instead of 4 2023-03-23 15:19:32 -07:00
Ninni Pipping 4d4342e018 Fix `AnimatedSprite2D` autoplay warning
Changing of autoplay when changing `SpriteFrames` is not done by the
user and warning is unhelpful
2023-03-23 14:31:46 +01:00
Yuri Sizov 21753b06a1
Merge pull request #74092 from KoBeWi/zero_reason_to_change
Add early return for changing TileMap properties
2023-03-16 13:04:31 +01:00
smix8 f6a10c0565 Allow negative NavigationAgent2D path debug line_width for thin lines
Allows the line_width for NavigationAgent2D path debug to go negativ for thin line rendering.
2023-03-16 09:04:53 +01:00
kleonc c49a7feae3 TileMap Fix rendering odd-sized tiles 2023-03-12 16:20:38 +01:00
Rémi Verschelde a01e8be417
Merge pull request #74282 from timothyqiu/news-anchor
Notify child controls when `BackBufferCopy`'s rect changed
2023-03-05 13:26:45 +01:00
Rémi Verschelde b7c02007fb
Merge pull request #74251 from MarcusElg/positiongroup
Fix Camera2D position smoothing properties not being grouped
2023-03-05 13:25:33 +01:00
Marcus Elg a835dfd96d Fix Camera2D position smoothing properties not being grouped 2023-03-03 19:28:39 +01:00
Rémi Verschelde a2ecbb7c37
Merge pull request #73749 from fabriceci/expose-apply-floor-snap
Exposes the apply_floor_snap function to allow manual snap
2023-03-03 11:03:42 +01:00
Haoyu Qiu 602a0d2fbc Notify child controls when BackBufferCopy's rect changed 2023-03-03 17:57:58 +08:00
kobewi ba7eb4bd89 Add early return for changing TileMap properties 2023-02-28 01:05:39 +01:00
clayjohn c69b14e96e Add warnings for unsupported features in mobile and gl_compatibility backends 2023-02-26 12:28:02 -08:00
kobewi cf50eb130e Fix custom viewports in Camera2D 2023-02-24 13:26:31 +01:00
fabriceci 1381e6da4f Exposes the apply_floor_snap function to allow a snap to be made regardless of velocity. 2023-02-22 14:08:32 +01:00
Albin 82b90c0e08 Remove visual limit for damping in CPUParticles
Issue #56324 notes that you may can't set the damping property of
CPUParticles2D to anything more that 100 in the editor inspector
while you may set it to anything in code, this is considered a bug and
changed in this commit
2023-02-19 12:47:34 +01:00
Yuri Sizov b2f63bbb43 Remove deprecated methods from Bone2D
- also add them to the project convertor
2023-02-17 18:05:52 +01:00
Rémi Verschelde 9583c20171
Merge pull request #70515 from stmSi/fix-hanging-audio-pitch-scale
Fix hanging if audiostream's pitch_scale is NaN
2023-02-17 14:06:55 +01:00
Yuri Sizov da11c59918
Merge pull request #73470 from Sauermann/fix-touch-screen-button-emulated
Remove device-id restriction from `TouchScreenButton` input events
2023-02-17 16:00:34 +03:00
Markus Sauermann 699608804f Remove device-id restriction from `TouchScreenButton` input events
Remove the restriction that only devices with id 0 are used
for `TouchScreenButton`-Input events.
This allows emulated events to be used for TouchScreenButton.
2023-02-17 01:19:57 +01:00
smix8 8be4af38e4 Tweak NavigationAgent3D defaults
Tweaks default values for NavigationAgent3D to work better out of the box within a new 3D project.
2023-02-16 14:26:39 +01:00
Rémi Verschelde 953383328a
Merge pull request #73229 from smix8/navlink_global_positions_4.x
Add NavigationLink helper functions for global positions
2023-02-16 11:02:17 +01:00
smix8 d87f124768 Add NavigationLink helper functions for global positions
Adds helper functions to set the links start and end position with global positions or get them as global positions.

Adds global start and end position for the navigation link to the 'link_reached' signal of NavigationAgent. That signal gets emitted when a navigation link waypoint is reached. Requires that 'owner' meta data is enabled on the NavigationAgent.
2023-02-14 21:56:58 +01:00
smix8 fef6ffabe5 Fix TileMap NavigationServer 'Invalid ID' error
Fixes NavigationServer 'Invalid ID' error of the TileMap.
The issue was not caused directly by the TileMap but with the late call to get_world_2d()->get_navigation_map() while everything is shut down abruptly e.g. game window closed or Editor "Reload Saved Scene" function.
2023-02-14 01:39:21 +01:00
Rémi Verschelde 848c910227
Merge pull request #73018 from smix8/fix_multilayered_tilemap_navigation_4.x
Fix navigation support for multilayered TileMaps
2023-02-13 12:58:39 +01:00
smix8 2b19c70664 Fix 2D navigation debug visuals ignoring half the ProjectSettings
Fixes that NavigationRegion2D and TileMap debug visuals ignored more or less half the ProjectSetting. E.g. random color could not be disabled, edges did not display.
2023-02-13 11:42:23 +01:00
Rémi Verschelde beab9a7cf2
Merge pull request #73069 from brianwinterpixel/bugfix/linebuilder_box_uvs
Fix Line2D UVs when using BOX end cap mode
2023-02-11 14:40:09 +01:00
Rémi Verschelde 38d7583f86
Merge pull request #73063 from KoBeWi/it_exited_the_tree_but_changed_its_mind_and_broke_instead
Fix camera reparenting
2023-02-11 14:36:41 +01:00
Haoyu Qiu 65223e98de Strip name prefix of navigation agent debug properties in the inspector 2023-02-11 16:34:08 +08:00
Brian Semrau 53b4d85072 Fix Line2D UVs when using BOX end cap mode 2023-02-10 20:44:39 -05:00
kobewi 3f31c64300 Fix camera reparenting 2023-02-10 23:46:55 +01:00
smix8 f2c31965c0 Fix navigation support for multilayered TileMaps
Fixes support for multilayered TileMaps by creating dedicated navigation maps for each layer.
2023-02-10 17:13:40 +01:00
Rémi Verschelde d69809cab6
Merge pull request #72947 from DarkKilauea/nav-fix-avoidance-callback
Fix missing avoidance updates when using same velocity
2023-02-09 10:13:35 +01:00
Josh Jones 097f8a5fdb Fix missing avoidance updates when using same velocity
When using avoidance, if you set the same velocity for the agent, you won't get an update from the avoidance system.

This changes both the `set_target_position` and `set_velocity` setters to always accept user provided values, even if they are the same. This ensures that repathing and avoidance logic is always run when the user expects.
2023-02-08 23:18:53 -08:00
smix8 820b841fcb Fix NavigationAgent debug functions bindings in release builds
Fixes that certain NavigationAgent debug functions bindings were not available in release builds.
2023-02-08 21:49:04 +01:00
Josh Jones 20fdfd466b Improve consistency of NavigationAgent setters 2023-02-02 22:51:37 -08:00
kobewi 724d6581d6 Fix Camera2D crashes 2023-02-01 23:49:02 +01:00
Rémi Verschelde e52213e2fa
More codespell fixes, do more changes from previous ignore list 2023-02-01 12:11:36 +01:00
Rémi Verschelde 67ab9d85d4
Merge pull request #71543 from smix8/navigation_agent_debug_4.x
Add NavigationAgent Path Debug Visualization
2023-02-01 07:23:24 +01:00
Rémi Verschelde 14a4408e02
Merge pull request #65698 from KoBeWi/cameraman
Rework how current Camera2D is determined
2023-01-31 18:56:20 +01:00
smix8 0ab764e84b Add NavigationAgent Path Debug Visualization
Adds path debug visuals for NavigationAgent2D, NavigationAgent3D and NavigationServer.
2023-01-31 18:27:35 +01:00
Rémi Verschelde c8446754dd
Merge pull request #72357 from aaronfranke/area-gravity-unit-dist
Replace Area gravity point distance scale with unit distance
2023-01-31 10:53:16 +01:00
Rémi Verschelde 6c19a619ad
Merge pull request #72365 from groud/warn_ysort_tilemap
Warn when a TileMap layer is Y-sorted but not the TileMap node itself.
2023-01-30 13:28:22 +01:00
Gilles Roudière 62c874732d Warn when a TileMap layer is Y-sorted but not the TileMap node itself. 2023-01-30 10:34:35 +01:00
Rémi Verschelde 2e0d9efb72
Merge pull request #72115 from AThousandShips/clip_children_fix
Hide `clip_children` for some non-drawn CanvasItems
2023-01-30 10:02:54 +01:00
Ninni Pipping bbf203bc32 Hide clip_children for non-drawn CanvasItems 2023-01-30 08:22:06 +01:00
Aaron Franke 79215131b5
Replace Area gravity point distance scale with unit distance 2023-01-29 22:12:00 -06:00
Danil Alexeev 5195f723b9
Improve stroke drawing on 2D collision shapes 2023-01-29 19:07:09 +03:00
Silc Renew fa198c482e Fix AnimatedSprite play() don't redraw immediately 2023-01-29 08:00:42 +09:00
Rémi Verschelde 3a25148b9b
Merge pull request #72228 from DarkKilauea/nav-agent-callable
Use Callable for Navigation Agent callbacks
2023-01-28 15:58:49 +01:00
Rémi Verschelde e5752fdfd3
Merge pull request #72233 from TokageItLab/audio-blending
Implement blending audio feature to AnimationTree
2023-01-28 15:58:24 +01:00
Rémi Verschelde 04f7374775
Merge pull request #72157 from Kabiirk/GPUParticles2D-collision-UI-Fix
Fixing Inspector Property UI for GPUParticle2D collision_base_size [w.r.t Issue#71942]
2023-01-28 15:54:29 +01:00
Silc Renew 75330887d7 Implement blending audio feature to AnimationTree 2023-01-28 20:08:29 +09:00
Josh Jones 22f9ef19e1 Use Callable for Navigation Agent callbacks 2023-01-27 23:14:36 -08:00
Rémi Verschelde 525db733c8
Merge pull request #72129 from groud/unclamp_texture_origin
Rename texture_offset and unclamp it
2023-01-27 15:40:52 +01:00
Gilles Roudière d7f3bd50bd Rename texture_offset and unclamp it 2023-01-27 11:04:45 +01:00
Rémi Verschelde 91c0ed5e33
Merge pull request #71907 from TokageItLab/change-animated-sprite-api
Make `AnimatedSprite`'s playback API consistent with `AnimationPlayer`
2023-01-27 10:32:23 +01:00
Kabiir 21ef712863 Fixing Inspector Property UI for GPUParticle2D collision_base_size[Issue#71942] 2023-01-27 11:55:03 +05:30
Rémi Verschelde 91ad92657e
Merge pull request #69689 from smix8/navagent_rename_location_4.x
Rename Navigation uses of 'location' to 'position'
2023-01-26 22:57:03 +01:00
smix8 bf1571979c Rename Navigation uses of 'location' to 'position'
Contrary to the entire rest of the engine NavigationAgent's and NavigationLinks decided to deal with locations instead of positions.
2023-01-26 18:19:03 +01:00
Silc Renew 17bf6238fc Make AnimatedSprite's playback API consistent with AnimationPlayer 2023-01-26 12:40:19 +09:00
Aaron Franke 2bc0bcbd26
PropertyUsage: Rename "DO_NOT_SHARE_ON_DUPLICATE" to "ALWAYS_DUPLICATE" 2023-01-24 16:05:07 -06:00
Rémi Verschelde 1891d9fdf1
Merge pull request #71801 from akien-mga/codespell-en-GB-to-en-US
Convert en_GB spelling to en_US with codespell
2023-01-23 11:08:55 +01:00
Rémi Verschelde 5b1df48c6c
Convert en_GB spelling to en_US with codespell 2023-01-23 11:02:20 +01:00
Juan Linietsky 4383b5ab1e Simplify AudioStreamPolyphonic
* Make AudioStreamPolyphonic not requre a polling thread (simpler, faster)
* Improve error reporting in AudioStreamPlayer*::get_stream_playback() error reporting to improve usability.
2023-01-23 10:47:01 +01:00
kobewi 615c517034 Use range iterators in LocalVector loops 2023-01-21 18:44:42 +01:00
Rémi Verschelde 3e9a831194
Merge pull request #65726 from KoBeWi/cellless
Don't print error in `get_cell_tile_data()`
2023-01-21 16:54:53 +01:00
Rémi Verschelde 7b622ce6e8
Merge pull request #71021 from reduz/prevent-physics-callback-removal
Error when removing a physics node during a physics callback
2023-01-21 11:28:02 +01:00
Rémi Verschelde 4abbc0c3fb
Merge pull request #71630 from groud/fix_tilemap_layer_delete_undo
Fixes TileMap undo not restoring tiles
2023-01-18 22:20:12 +01:00
Gilles Roudière 13e7f1a143 Fixes TileMap undo not restoring tiles 2023-01-18 17:43:41 +01:00
Rémi Verschelde da1b78222c
Merge pull request #71615 from groud/bring_back_get_cells_by_id
Bring back TileMap::get_cells_by_id
2023-01-18 17:33:14 +01:00
Gilles Roudière 68afc0afa5 Bring back TileMap::get_cells_by_id 2023-01-18 15:56:31 +01:00
Gilles Roudière 10849a6d93 Avoid recreating TileMap internals when selecting it 2023-01-18 11:28:31 +01:00
Tomasz Chabora 5d75edb3b5 Update PathFollow2D when curve is changed 2023-01-15 18:11:21 +01:00
clayjohn b514e20fb5 Remove normal_map from MeshInstance2D and MultiMeshInstance2D 2023-01-12 13:15:31 -08:00
smix8 594ffd2200 Tweak NavigationAgent2D defaults
Tweaks default values for NavigationAgent2D to work better out of the box within a new 2D project using default resolution.
2023-01-11 23:47:16 +01:00
Rémi Verschelde 91713ced81
Merge pull request #70716 from Calinou/particles-tweak-animation-offset-property-hint
Tweak particles animation offset property hint to allow more precise values
2023-01-10 11:01:14 +01:00
Rémi Verschelde c3c5eceb35
Merge pull request #70463 from DarkKilauea/nav-server-const
[4.x] Rework const on NavigationServer methods
2023-01-08 22:50:05 +01:00
Rémi Verschelde 0d6fede757
Merge pull request #69809 from KoBeWi/runtime_enabler_2d
Fix VisibleOnScreenEnabler disabling in editor
2023-01-08 22:38:29 +01:00
Josh Jones a0715b30f9 Rework const on NavigationServer methods
`const` is used on all methods, even when they cause modification of the server.  This reworks the methods of the server to only use `const` on method that don't change the state of the server.
2023-01-07 17:29:00 -08:00
Rémi Verschelde 3579d7a9f7
Merge pull request #36301 from KoBeWi/daddy_node
Add reparent methods to Node
2023-01-07 13:20:56 +01:00
Juan Linietsky 398e73c689 Error when removing a phycics node during a physics callback
* This behavior is not allowed, the error text suggests using call_deferred().
* Added a check in Node::remove_child to prevent future crashes of this type.
* Fixed a performance regression introduced by #36244.

Fixes #63718, probably other crashes too.
2023-01-07 12:57:24 +01:00
Rémi Verschelde 798582acf0
Merge pull request #65609 from dalexeev/animated-sprite
`AnimatedSprite{2D,3D}` improvements
2023-01-05 15:00:31 +01:00
Rémi Verschelde d95794ec8a
One Copyright Update to rule them all
As many open source projects have started doing it, we're removing the
current year from the copyright notice, so that we don't need to bump
it every year.

It seems like only the first year of publication is technically
relevant for copyright notices, and even that seems to be something
that many companies stopped listing altogether (in a version controlled
codebase, the commits are a much better source of date of publication
than a hardcoded copyright statement).

We also now list Godot Engine contributors first as we're collectively
the current maintainers of the project, and we clarify that the
"exclusive" copyright of the co-founders covers the timespan before
opensourcing (their further contributions are included as part of Godot
Engine contributors).

Also fixed "cf." Frenchism - it's meant as "refer to / see".
2023-01-05 13:25:55 +01:00
Danil Alexeev 0d25d8e7fc
`AnimatedSprite{2D,3D}` improvements
* Add support for individual frame duration to `SpriteFrames`.
* Various minor improvements.
2023-01-05 13:13:25 +03:00
Rémi Verschelde 5e78f0f782
Merge pull request #70840 from MewPurPur/get-point-count-instead-of-points
Rename `get_points_count()` to `get_point_count()` in Gradient
2023-01-03 15:46:18 +01:00
VolTer 1af833be95 Rename get_points_count() to get_point_count() internally 2023-01-02 16:52:05 +02:00
Adam Scott ea33001b95 Add safety-checks before some servers `free()` 2022-12-29 16:23:38 -05:00
Hugo Locurcio 8df24835e0
Tweak particles animation offset property hint to allow more precise values
Values above 1.0 (or below 0.0) are no longer allowed, as these make
no visual difference whatsoever (and may cause particles not to appear
at all if looping is disabled).
2022-12-29 22:15:17 +01:00
stmSi 2041616934 Fix Editor hanging if audiostream's pitch_scale is NaN 2022-12-24 12:39:48 +06:30
reejk fee04ccd93 Use TileSet navigation layer layers when TileMap generates navigation polygons 2022-12-22 00:35:20 +04:00
Rémi Verschelde f84c308cf8
Merge pull request #69688 from smix8/navagent_stop_origin_automove_4.x
Stop NavigationAgents without a target from moving to world origin
2022-12-21 19:39:25 +01:00
Rémi Verschelde 5ad02aa08d
Merge pull request #67111 from DarkKilauea/nav-queries-link
Added signal to NavigationAgent when entering a link
2022-12-21 19:38:20 +01:00
Quentin Guidée d9c05f7fbd
Fix double get_singleton()
Signed-off-by: Quentin Guidée <quentin.guidee@gmail.com>
2022-12-20 14:26:15 -05:00
Rémi Verschelde f1f6b35b8c
Merge pull request #70244 from DarkKilauea/nav-fix-abbrev-compat
[4.x] Fix typo and ensure backwards compatibility for changed property names
2022-12-20 10:32:26 +01:00
Josh Jones 0572346985
Fix typo and ensure backwards compatibility for changed property names
Changes to the name of the `navmesh` and `navpoly` properties on
`NavigationRegion` caused navigation data to be lost on load.
This PR creates uses `_set`/`_get` to handle compatibility with the
older names on load, preserving the data.

Also fixes a typo on `get_vertices_per_polygon` in `NavigationMesh`,
and renames the property to remove the `polygon_` prefix which doesn't
match the setter/getter.

Co-authored-by: Rémi Verschelde <rverschelde@gmail.com>
2022-12-20 09:57:54 +01:00
Rémi Verschelde d124596862
Merge pull request #70263 from reduz/restore-rotation_degrees
Restore 'rotation_degrees' properties.
2022-12-19 16:28:44 +01:00
kleonc 3a34acdf55 TileSet Simplify tile shape polygons 2022-12-19 11:42:40 +01:00
Juan Linietsky 80b578b060 Restore 'rotation_degrees' properties.
By popular demand, restoring the helper properties to rotate objects in degrees.
Affected are local and global rotations for:

* Node2D
* Node3D
* Control
2022-12-19 10:59:47 +01:00
Josh Jones 5d8ba2b2d1 Add support for emitting a signal when entering a NavLink 2022-12-17 16:33:41 -08:00
smix8 34e7628f5f Fix Navigation API abbreviations inconsistency
Schema for navigation to name user facing API with  "navigation" without abbreviation and e.g. NavigationServer internals with abbr "nav".
2022-12-17 22:06:22 +01:00
smix8 4d68e2b18a Move NavigationPolygon to dedicated resource file
Moves NavigationPolygon resource class from NavigationRegion2D file to a dedicated file in resource folder.
2022-12-17 19:52:40 +01:00
Rémi Verschelde c023d41036
Merge pull request #70118 from clayjohn/tilemap-layers
Use large offset for tilemap layer level canvas items
2022-12-17 14:29:22 +01:00
bmolyneaux 1e3a861e1a Queue redraw when MultiMesh instance transform changes
Fixes: #66849

This is a 4.0 version of #54899.
2022-12-15 17:01:17 -08:00
clayjohn 7d6a25c91e Use large offset for tilemap layer level canvas items
This matches the logic in _rendering_update_dirty_quadrants
2022-12-15 11:41:27 -08:00
Gilles Roudière ffec180ccc Remove a confusing TileMap warning 2022-12-15 11:27:38 +01:00
kobewi 256e250c87 Fix VisibleOnScreenEnabler disabling in editor 2022-12-14 00:25:53 +01:00
Rémi Verschelde fc517e6c89
Merge pull request #70003 from clayjohn/GLES3-cc
Various fixes and documentation for CanvasGroup
2022-12-13 23:31:43 +01:00
clayjohn bdd4001ef0 Various fixes and documentation for CanvasGroup
Properly apply custom materials with CanvasGroups in the GLES3 backend

Properly blur backbuffer when using a partial rect in forward_plus and
gl_compatibility renderers

Properly set fit_margin when clear_margin is set

Fix shader error during backbuffer clear in mobile renderer
2022-12-13 10:22:18 -08:00
kobewi 99916ddbd1 Remove single-element groups from GPUParticles2D 2022-12-12 20:15:11 +01:00
Rémi Verschelde ec8f52df8f
Merge pull request #69629 from smix8/agent_wild_callback_pointer_4.x
Fix Navigation agent callback wild pointer crash
2022-12-12 13:51:48 +01:00
smix8 194c1c44e0 Fix Navigation agent callback wild pointer crash
Fixes crash in sanitizer builds when callback agent or object are already freed.
2022-12-12 13:03:55 +01:00
Rémi Verschelde 53060e8ced
Merge pull request #69950 from kleonc/tile-map-const-refs-for-the-win
`TileMap` Pass some parameters by `const &` instead of by value
2022-12-12 11:52:55 +01:00
Rémi Verschelde 52a0bba833
Merge pull request #69922 from adamscott/fix-tilemap-tileset-heap-use-after-free
Fix `heap-use-after-free` error in `TileMap::~TileMap()`
2022-12-12 11:41:49 +01:00
Rémi Verschelde ba3a2adb90
Merge pull request #67050 from KoBeWi/syrt
Warn if isometric TileMap is not Y-sorted
2022-12-12 11:40:54 +01:00
kleonc 71398ae22a TileMap Pass some parameters by `const &` instead of by value 2022-12-12 11:33:42 +01:00
Adam Scott e7fb2f0294 Fix `heap-use-after-free` error in `TileMap::~TileMap()`
Co-authored-by: Gilles Roudiere <gilles.roudiere@gmail.com>
2022-12-12 04:52:00 -05:00
Josh Jones 5769b0e8d8 Enable assigning an owner to navigation regions and links
This allows users of the server APIs to get back the nodes that created certain regions and links.
2022-12-10 12:03:06 -08:00
Rémi Verschelde 156b5ca38f
Merge pull request #69644 from radenling/fix-viewport-update-in-editor
Fix for 2D viewport not updating in the editor when the camera moves
2022-12-09 18:06:23 +01:00
Vladislav Slobodenyuk 0b5c4216c8
Fix TileMap drawing itself twice on creation
Adds a check before calling `item_rect_changed()` in
`_recompute_rect_cache()` of `scene/2d/tile_map.cpp`. Makes sure
TileMap is only redrawn if the rect is actually changed.
Fixes #69754
2022-12-09 22:20:31 +09:00
Rémi Verschelde 75e558e271
Merge pull request #69774 from Calinou/backbuffercopy-only-show-rect-when-relevant
Fix BackBufferCopy `rect` property appearing when not relevant in inspector
2022-12-09 06:52:03 +01:00
Hugo Locurcio 080b6ac1ae
Fix BackBufferCopy `rect` property appearing when not relevant in inspector
The `rect` property is only effective if `copy_mode` is Rect.
2022-12-08 19:52:48 +01:00
Rémi Verschelde a914ee8413
TouchScreenButton: Fix screen capability check
Fixes #69572.
2022-12-08 14:28:04 +01:00
Rémi Verschelde de2d0f156e
Merge pull request #69713 from groud/rename_get_surrounding_tiles
Rename get_surrounding_tiles to get_surrounding_cells
2022-12-07 13:24:57 +01:00
Gilles Roudière 3ea54bb3a1 Rename get_surrounding_tiles to get_surrounding_cells 2022-12-07 11:09:10 +01:00
Markus Sauermann e18107a57c Fix Determining Window for Touchscreen
DisplayServer::screen_is_touchscreen will likely never utilize its
parameter p_screen.
This PR replaces this function by DisplayServer::is_touchscreen_available()
with the same functionality.
This solves the problem, that a SubViewport was used for determining
the screen, which resulted in error messages.
2022-12-07 09:54:29 +01:00
smix8 860379fc16 Stop NavigationAgents without a target from moving to world origin
Stops NavigationAgents moving to the world origin without anyone telling them to do so.
2022-12-06 22:53:18 +01:00
Yaohua Xiong 322dbd0955 Fix Path2D fish bone direction 2022-12-06 20:45:17 +08:00
Richard Adenling a3d8a78f1b 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
2022-12-06 11:34:32 +01:00
Rémi Verschelde deb760fb1b
Path2D: Fix build issue after conflicts between #68860 and #69115 2022-12-06 11:22:11 +01:00
Rémi Verschelde 14861c45b5
Merge pull request #68860 from xiongyaohua/path3d_fishbones
Draw fish bones for Path3D and Path2D in the Editor
2022-12-06 10:46:54 +01:00
Yaohua Xiong 91e9ad92f5 Refactor baking code for Curve2D
The main change is to caculate tangent directly from bezier curve, without going
through discretized polyline, avoiding pitfalls of discretization. A similar refacor
had been applied to Curve3D.

The test cases for Curve2D is updated, comparing floating point with is_equal_approxmiate()
instead of `==`, in order to avoid float precision problem.
2022-12-05 21:22:05 +08:00
Yaohua Xiong 9bdc0cb16f draw fish bones for Path2D and Path3D
These fish bones are add to indicate the direction and local transforms alone the path.
2022-12-05 15:39:14 +08:00
kobewi 7e2a8afb57 Rework how current Camera2D is determined 2022-12-02 00:05:02 +01:00
Hendrik Brucker e84f45fc93 Move z_index, z_as_relative and y_sort_enabled from Node2D to CanvasItem 2022-11-29 17:11:22 +01:00
Rémi Verschelde 519b9b5c21
Merge pull request #68486 from smix8/navpoly_outline_convex_error_4.x
Add detail to NavigationPolygon outline error msg
2022-11-28 13:37:00 +01:00
Rémi Verschelde 438b2e2d02
Merge pull request #59801 from Sauermann/fix-node2d-viewport-root-order
Fix Viewport root order after Node2D raise
2022-11-28 08:21:10 +01:00
Rémi Verschelde 34df77285c
Merge pull request #69146 from clayjohn/Polygon2D-error
Ensure that mesh instance is properly freed when freeing Polygon2D
2022-11-25 10:11:47 +01:00
Haoyu Qiu 06a0b26c9e Fix inspector not showing name for LabelSettings.font 2022-11-25 12:48:37 +08:00
clayjohn 5c95288a6e Ensure that mesh instance is properly freed when freeing Polygon2D 2022-11-24 17:34:25 -08:00
Rémi Verschelde 1fa80bf9d6
Merge pull request #67330 from KoBeWi/immortal_scenes
Don't free instanced scenes when recreating tiles
2022-11-24 18:54:08 +01:00
Micky b6db09968d Fix AudioStreamPlayer2D and 3D's `playing` not updating right away 2022-11-22 15:46:28 +01:00
Rémi Verschelde 3a874804ab
Merge pull request #68886 from timothyqiu/motion-distance
Revert move vector parameter name to "motion"
2022-11-20 11:43:32 +01:00