1
0
mirror of https://github.com/godotengine/godot.git synced 2025-11-04 12:00:25 +00:00
Commit Graph

11140 Commits

Author SHA1 Message Date
Hugo Locurcio
fb9a5699a1 Fix incorrect note about holes in HeightMapShape3D 2025-06-03 19:10:07 +02:00
Thaddeus Crews
bb47f01481 Merge pull request #106390 from akien-mga/linux-drop-ppc32
Linux: Drop `ppc32` (32-bit PowerPC) architecture support
2025-05-28 09:47:34 -05:00
Thaddeus Crews
f619ca2519 Merge pull request #60143 from Rindbee/better-connection-dialog
Add a flag to make the connection automatically emit the source object.
2025-05-27 09:39:34 -05:00
Thaddeus Crews
91b3a26438 Merge pull request #106848 from Faless/mp/rpc_config_revert
Expose `get_rpc_config` and `get_node_rpc_config`
2025-05-27 09:39:32 -05:00
Thaddeus Crews
05ceab6b7b Merge pull request #106321 from elzewyr/shrink-factor
SoftBody3D: Add a property for scaling rest lengths of edge constraints
2025-05-27 09:39:29 -05:00
Thaddeus Crews
63dff62948 Merge pull request #100673 from RandomShaper/res_duplicate
Overhaul resource duplication
2025-05-27 09:39:25 -05:00
Thaddeus Crews
bdf03ac2b3 Merge pull request #106811 from OzelotVanilla/fix-editor-plugin-filesystem-create
Fix missing popup item defined in `EditorContextMenuPlugin` with slot `CONTEXT_SLOT_FILESYSTEM_CREATE`
2025-05-27 09:39:24 -05:00
Thaddeus Crews
15b4b6b3d2 Merge pull request #106807 from Calinou/doc-editorproperty-not-ready
Document EditorProperty behavior when the node isn't fully ready yet
2025-05-27 09:39:23 -05:00
Thaddeus Crews
d4793d016f Merge pull request #106157 from Calinou/doc-acceptdialog-close-on-escape
Clarify the input action that affects `AcceptDialog.dialog_close_on_escape`
2025-05-27 09:39:22 -05:00
Thaddeus Crews
482dacc300 Merge pull request #103583 from beicause/color-picker-add-intensity
ColorPicker: Add an intensity slider to all modes for HDR
2025-05-27 09:39:21 -05:00
Rindbee
5e2396e001 Add a flag to make the connection automatically emit the source object.
Mainly used to improve the connection dialog.

Not implemented in `emit_signalp()`, append the source object when a PackScene is instantiated.
2025-05-27 20:19:03 +08:00
Ozelot Vanilla
14d9aa9672 fix: EditorContextMenuPlugin with slot CONTEXT_SLOT_FILESYSTEM_CREATE does not add popup item to all menu
As there are multiple menu containing creating new files, this commit add the popup menu item from the plugin to all those menu to keep consistency.
The fixing uses empty array to indicate different types of context menu.

Added to these menu:
* Right-click on empty space on the tree (`_tree_empty_click`).
* Right-click on empty space on the file panel (`_file_list_empty_clicked`)

Also add explanation in `EditorContextMenuPlugin::CONTEXT_SLOT_FILESYSTEM_CREATE`'s doc for previous fixing

(Accept PR #106811 code suggestion by: Tomasz Chabora <kobewi4e@gmail.com>)
2025-05-27 10:15:21 +09:00
Haoyu Qiu
8d93b6a54c Add translation preview in editor 2025-05-27 07:59:28 +08:00
Fabio Alessandrelli
b73ec1fa9b Expose get_rpc_config and get_node_rpc_config 2025-05-27 00:43:21 +02:00
Hugo Locurcio
260af83647 Document EditorProperty behavior when the node isn't fully ready yet 2025-05-27 00:42:10 +02:00
Hugo Locurcio
3168fd4c56 Clarify the input action that affects AcceptDialog.dialog_close_on_escape
It uses `ui_cancel` behind the scenes, which allows users to add/modify
which keys or gamepad buttons are taken into account for this.
2025-05-27 00:38:58 +02:00
Thaddeus Crews
de2cd663fd Merge pull request #100463 from PiCode9560/softbody-apply-force-and-impulse
Add ability to apply forces and impulses to `SoftBody3D`
2025-05-26 11:24:45 -05:00
Thaddeus Crews
c38b856f39 Merge pull request #106717 from KoBeWi/uid_in_path_factory
Expose helper methods for converting UIDs
2025-05-26 11:24:40 -05:00
Thaddeus Crews
e89c4b0f9f Merge pull request #102330 from RGDTAB/add_partial_smaa
Add SMAA 1x to screenspace AA options
2025-05-26 11:24:35 -05:00
Thaddeus Crews
506417fe43 Merge pull request #105623 from lodetrick/section-feature-hide
Allow Inspector Section Checkboxes to hide features, Add "On" text to checkboxes
2025-05-26 11:24:25 -05:00
Thaddeus Crews
6132792f05 Merge pull request #106386 from bruvzg/mac_fs_name
Implement `get_filesystem_type` on macOS and Linux.
2025-05-26 11:24:25 -05:00
Thaddeus Crews
f984e15b39 Merge pull request #106244 from lawnjelly/fti_optimize_scene_tree4
FTI - Optimize `SceneTree` traversal
2025-05-26 11:24:21 -05:00
Pedro J. Estébanez
6841b45552 Add tests for resource duplication 2025-05-26 17:05:04 +02:00
Fabio Alessandrelli
c28d5d0058 Revert "Expose get_rpc_config and get_node_rpc_config"
This reverts commit 8835f326b1.
2025-05-26 15:57:38 +02:00
Pedro J. Estébanez
342266cfd9 Overhaul Variant::duplicate() for resources
This in the scope of a duplication triggered via any type in the `Variant` realm. that is, the following: `Variant` itself, `Array` and `Dictionary`. That includes invoking `duplicate()` from scripts.

A `duplicate_deep(deep_subresources_mode)` method is added to `Variant`, `Array` and `Dictionary` (for compatibility reasons, simply adding an extra parameter was not possible). The default value for it is `RESOURCE_DEEP_DUPLICATE_NONE`, which is like calling `duplicate(true)`.

Remarks:
- The results of copying resources via those `Variant` types are exactly the same as if the copy were initiated from the `Resource` type at C++.
- In order to keep some separation between `Variant` and the higher-level animal which is `Resource`, `Variant` still contains the original code for that, so it's self-sufficient unless there's a `Resource` involved. Once the deep copy finds a `Resource` that has to be copied according to the duplication parameters, the algorithm invokes the `Resource` duplication machinery. When the stack is unwind back to a nesting level `Variant` can handle, `Variant` duplication logic keeps functioning.

While that is good from a responsibility separation standpoint, that would have a caveat: `Variant` would not be aware of the mapping between original and duplicate subresources and so wouldn't be able to keep preventing multiple duplicates.

To avoid that, this commit also introduces a wormwhole, a sharing mechanism by which `Variant` and `Resource` can collaborate in managing the lifetime of the original-to-duplicates map. The user-visible benefit is that the overduplicate prevention works as broadly as the whole `Variant` entity being copied, including all nesting levels, regardless how disconnected the data members containing resources may be across al the nesting levels. In other words, despite the aforementioned division of duties between `Variant` and `Resource` duplication logic, the duplicates map is shared among them. It's created when first finding a `Resource` and, however how deep the copy was working at that point, the map kept alive unitl the stack is unwind to the root user call, until the first step of the recursion.

Thanks to that common map of duplicates, this commit is able to fix the issue that `Resource::duplicate_for_local_scene()` used to ignore overridden duplicate logic.
2025-05-26 10:06:40 +02:00
Pedro J. Estébanez
2a03b459b9 Overhaul Resource::duplicate()
Thanks to a refactor, `Resource::duplicate_for_local_scene()` and `Resource::duplicate()` are now both users of the same, parametrized, implementation.

`Resource::duplicate()` now honors deepness in a more consistent and predictable fashion. `Resource::duplicate_deep()` is added (instead of just adding a parameter to the former, for compatibility needs).

The behavior after this change is as follows:
  - Deep (`deep=true`, formerly `subresources=true`):
    - Previously, only resources found as direct property values of the one to copy would be, recursively, duplicated.
    - Now, in addition, arrays and dictionaries are walked so the copy is truly deep, and only local subresources found across are copied.
    - Previously, subresources would be duplicated as many times as being referenced throughout the main resource.
    - Now, each subresource is only duplicated once and from that point, a referenced to that single copy is used. That's the enhanced behavior that `duplicate_for_local_scene()` already featured.
    - The behavior with respect to packed arrays is still duplication.
    - Formerly, arrays and dictionaries were recursive duplicated, with resources ignored.
    - Now, arrays and dictionaries are recursive duplicated, with resources duplicated.
    - When doing it through `duplicate_deep()`, there's a` deep_subresources_mode` parameter, with various possibilites to control if no resources are duplicated (so arrays, etc. are, but keeping referencing the originals), if only the internal ones are (resources with no non-local path, the default), or if all of them are. The default is to copy every subresource, just like `duplicate(true)`.
  - Not deep (`deep=false`, formerly `subresources=false`): <a name="resource-shallow"></a>
    - Previously, the first level of resources found as direct property values would be duplicated unconditionally. Packed arrays, arrays and dictionaries were non-recursively duplicated.
    - Now, no subresource found at any level in any form will be duplicated, but the original reference kept instead. Packed arrays, arrays and dictionaries are referenced, not duplicated at all.
    - Now, resources found as values of always-duplicate properties are duplicated, recursively or not matching what was requested for the root call.

This commit also changes what's the virtual method to override to customize the duplication (now it's the protected `_duplicate()` instead of the public `duplicate()`).
2025-05-26 10:05:25 +02:00
kobewi
9c37ca5383 Expose helper methods for converting UIDs 2025-05-25 00:26:16 +02:00
lawnjelly
c7764ef26b FTI - Optimize SceneTree traversal 2025-05-24 17:38:33 +01:00
Pāvels Nadtočajevs
d609cf62a0 Implement get_filesystem_type on macOS and Linux. 2025-05-23 23:05:06 +03:00
PiCode
fe3aaa2ae3 Add functions to apply impulse and force to SoftBody on GodotPhysics and JoltPhysics 2025-05-23 22:04:52 +03:00
Thaddeus Crews
274ed34ac4 Merge pull request #93836 from aaronfranke/capsule-mid-height
Add mid height property to CapsuleShape2D/3D
2025-05-23 09:46:13 -05:00
LuoZhihao
8a9409257b ColorPicker: Add intensity slider
Add intensity slider to all color modes. Replace raw mode by linear mode, which uses linear color space.

When color is overbright, automatically switch hex text to script text. Allow executing expression in script text field to set color. Add the "script" icon to the default theme.
2025-05-23 12:45:29 +08:00
Thaddeus Crews
ce400a93b5 Merge pull request #106613 from Calinou/doc-string-subsequence-contains
Clarify `String.is_subsequence_of()` working differently from `String.contains()`
2025-05-22 12:15:09 -05:00
Thaddeus Crews
5b2525673a Merge pull request #102360 from berarma/theora_seek
Implement seek operation for Theora video files, improve multi-channel audio resampling.
2025-05-22 12:15:07 -05:00
Thaddeus Crews
8085fd3102 Merge pull request #93142 from clayjohn/z_clip_scale
Add new shader built ins: `Z_CLIP_SCALE` and `PERSPECTIVE_SCALE`
2025-05-22 12:15:06 -05:00
Thaddeus Crews
6258a3e224 Merge pull request #98750 from aaronfranke/grisu
Use Grisu2 algorithm in `String::num_scientific` to fix serializing
2025-05-22 12:15:02 -05:00
Aaron Franke
15de1d6c35 Use Grisu2 algorithm in String::num_scientific to fix serializing 2025-05-22 09:13:16 -07:00
Bernat Arlandis
b9bebf7081 Full Theora video support in VideoStreamPlayer
- Implement `set_stream_position` and `get_stream_length`.
- Don't show blank frame when stopping the video (smooth loops).
- Fix audio for videos with up to 8 channels.
- Improve internal audio handling.
2025-05-22 14:00:57 +02:00
Hugo Locurcio
f69d2eda80 Clarify String.is_subsequence_of() working differently from String.contains()
`is_subsequence_of()` has very different behavior from `contains()`.
2025-05-22 03:01:13 +02:00
Logan Detrick
1a427d3dec Add feature hint string and "On" text for checkable groups 2025-05-21 14:56:55 -07:00
Raymond DiDonato
6b99608950 Add SMAA 1x 2025-05-21 15:02:09 -04:00
Haoyu Qiu
7010d171b1 Relax the requirements for making EditorImportPlugin 2025-05-21 22:13:09 +08:00
clayjohn
9a1def8da1 Add new StandardMaterial properties to allow users to control FPS-style objects (hands, weapons, tools close to the camera)
Add new shader built in Z_CLIP_SCALE to easily adjust clipping distance to avoid clipping walls etc.

Add fov_override to StandardMaterial3D to easily have a custom FOV for FPS objects

Add IN_SHADOW_PASS built-in to shaders for tweaking materials without impacting shadow maps
2025-05-21 10:16:05 -03:00
Rémi Verschelde
25a3c27c41 Merge pull request #105628 from rsanchezsaez/apple/ios-visionos-4.5
Native visionOS platform support
2025-05-20 23:09:07 +02:00
Ricardo Sanchez-Saez
47971c0a27 Introduce 'visionos' platform derived from 'apple_embedded' 2025-05-19 15:47:01 -07:00
Ricardo Sanchez-Saez
457299449d Introduce 'drivers/apple_embedded' abstract platform for code reuse 2025-05-19 15:37:13 -07:00
Thaddeus Crews
54a368b454 Merge pull request #106476 from timothyqiu/tooltip-scale
Improve description of `Control.scale`
2025-05-19 16:22:27 -05:00
Thaddeus Crews
0f21ccd4b8 Merge pull request #104560 from TokageItLab/bone-name-validation
Add bone name/idx matching validation and lacked virtual methods to `SkeletonModifier3D`
2025-05-19 08:01:40 -05:00
Thaddeus Crews
70fa7fba19 Merge pull request #101792 from TokageItLab/oneshot-scale
Change `NodeOneShot` fading to uses self delta instead of input delta
2025-05-19 08:01:30 -05:00
Silc Lizard (Tokage) Renew
b4ac896c66 Changed NodeOneShot fading so that it does not depend on input delta 2025-05-18 09:27:05 +09:00