From b76aa914029a7238e714c291a7131d46a57d35ef Mon Sep 17 00:00:00 2001 From: Hugo Locurcio Date: Thu, 6 Aug 2020 14:20:45 +0200 Subject: [PATCH 01/24] Mention performance caveats about `find_node()` and `find_parent()` See https://github.com/godotengine/godot-proposals/issues/1303. (cherry picked from commit ab2f41f5985bf4a877d8bee0fa22bc8e53f3397d) --- doc/classes/Node.xml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/doc/classes/Node.xml b/doc/classes/Node.xml index 2a8762cb606..11ca7a309e5 100644 --- a/doc/classes/Node.xml +++ b/doc/classes/Node.xml @@ -194,6 +194,7 @@ Finds a descendant of this node whose name matches [code]mask[/code] as in [method String.match] (i.e. case-sensitive, but [code]"*"[/code] matches zero or more characters and [code]"?"[/code] matches any single character except [code]"."[/code]). [b]Note:[/b] It does not match against the full path, just against individual node names. If [code]owned[/code] is [code]true[/code], this method only finds nodes whose owner is this node. This is especially important for scenes instantiated through a script, because those scenes don't have an owner. + [b]Note:[/b] As this method walks through all the descendants of the node, it is the slowest way to get a reference to another node. Whenever possible, consider using [method get_node] instead. To avoid using [method find_node] too often, consider caching the node reference into a variable. @@ -204,6 +205,7 @@ Finds the first parent of the current node whose name matches [code]mask[/code] as in [method String.match] (i.e. case-sensitive, but [code]"*"[/code] matches zero or more characters and [code]"?"[/code] matches any single character except [code]"."[/code]). [b]Note:[/b] It does not match against the full path, just against individual node names. + [b]Note:[/b] As this method walks upwards in the scene tree, it can be slow in large, deeply nested scene trees. Whenever possible, consider using [method get_node] instead. To avoid using [method find_parent] too often, consider caching the node reference into a variable. From 2e1e1af1d2adcaff1314dc858674b2d065b85b9f Mon Sep 17 00:00:00 2001 From: skyace65 Date: Tue, 18 Aug 2020 09:11:24 -0400 Subject: [PATCH 02/24] Add defaults to tilemap set_cell function example (cherry picked from commit 43ab91ca02b09d81f92f8a5c5cac337a03ece6ef) --- doc/classes/TileMap.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/classes/TileMap.xml b/doc/classes/TileMap.xml index 8b3712367aa..74404447c45 100644 --- a/doc/classes/TileMap.xml +++ b/doc/classes/TileMap.xml @@ -166,7 +166,7 @@ If you need these to be immediately updated, you can call [method update_dirty_quadrants]. Overriding this method also overrides it internally, allowing custom logic to be implemented when tiles are placed/removed: [codeblock] - func set_cell(x, y, tile, flip_x, flip_y, transpose, autotile_coord) + func set_cell(x, y, tile, flip_x=false, flip_y=false, transpose=false, autotile_coord=Vector2()) # Write your custom logic here. # To call the default method: .set_cell(x, y, tile, flip_x, flip_y, transpose, autotile_coord) From cadd39d415bfefbadfe3fe938b1f8032897c2db9 Mon Sep 17 00:00:00 2001 From: Thaina Yu Date: Wed, 19 Aug 2020 23:20:53 +0700 Subject: [PATCH 03/24] Mono: Improve MSBuildFinder logic on Windows Support detecting both 32-bit and 64-bit installations of `vswhere.exe`. (cherry picked from commit 5dc390072757c58af4725a84862eb83480c57d7a) --- .../GodotTools/Build/MsBuildFinder.cs | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/modules/mono/editor/GodotTools/GodotTools/Build/MsBuildFinder.cs b/modules/mono/editor/GodotTools/GodotTools/Build/MsBuildFinder.cs index d11b7432e70..7629223d8ce 100644 --- a/modules/mono/editor/GodotTools/GodotTools/Build/MsBuildFinder.cs +++ b/modules/mono/editor/GodotTools/GodotTools/Build/MsBuildFinder.cs @@ -161,8 +161,21 @@ namespace GodotTools.Build // Try to find 15.0 with vswhere - string vsWherePath = Environment.GetEnvironmentVariable(Internal.GodotIs32Bits() ? "ProgramFiles" : "ProgramFiles(x86)"); - vsWherePath += "\\Microsoft Visual Studio\\Installer\\vswhere.exe"; + var envNames = Internal.GodotIs32Bits() ? new[] { "ProgramFiles", "ProgramW6432" } : new[] { "ProgramFiles(x86)", "ProgramFiles" }; + + string vsWherePath = null; + foreach (var envName in envNames) + { + vsWherePath = Environment.GetEnvironmentVariable(envName); + if (!string.IsNullOrEmpty(vsWherePath)) + { + vsWherePath += "\\Microsoft Visual Studio\\Installer\\vswhere.exe"; + if (File.Exists(vsWherePath)) + break; + } + + vsWherePath = null; + } var vsWhereArgs = new[] { "-latest", "-products", "*", "-requires", "Microsoft.Component.MSBuild" }; From d7065106ef87f8afb86387499325b698f1c754ce Mon Sep 17 00:00:00 2001 From: Michael Alexsander Date: Fri, 21 Aug 2020 23:06:56 -0300 Subject: [PATCH 04/24] State how 'MOUSE_MODE_CAPTURED' actually works in the 'Input' docs (cherry picked from commit 4f13a7f47f787abce9e608bdb15d30d97096cd29) --- doc/classes/Input.xml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/doc/classes/Input.xml b/doc/classes/Input.xml index e699cb7896c..70d75e0479e 100644 --- a/doc/classes/Input.xml +++ b/doc/classes/Input.xml @@ -417,7 +417,8 @@ Makes the mouse cursor hidden if it is visible. - Captures the mouse. The mouse will be hidden and unable to leave the game window, but it will still register movement and mouse button presses. On Windows and Linux, the mouse will use raw input mode, which means the reported movement will be unaffected by the OS' mouse acceleration settings. + Captures the mouse. The mouse will be hidden and its position locked at the center of the screen. + [b]Note:[/b] If you want to process the mouse's movement in this mode, you need to use [member InputEventMouseMotion.relative]. Makes the mouse cursor visible but confines it to the game window. From 8466f9147b9dcc75d20e4a08a584a87b4b336fbc Mon Sep 17 00:00:00 2001 From: skyace65 Date: Tue, 25 Aug 2020 09:59:57 -0400 Subject: [PATCH 05/24] Mention listener node in AudioStreamPlayer3D description (cherry picked from commit 51367c1bcf8eb79d81f5a4b4e35285e29b1ca623) --- doc/classes/AudioStreamPlayer3D.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/doc/classes/AudioStreamPlayer3D.xml b/doc/classes/AudioStreamPlayer3D.xml index c6b23b380b0..378d6ee87d5 100644 --- a/doc/classes/AudioStreamPlayer3D.xml +++ b/doc/classes/AudioStreamPlayer3D.xml @@ -5,6 +5,7 @@ Plays a sound effect with directed sound effects, dampens with distance if needed, generates effect of hearable position in space. + By default, audio is heard from the camera position. This can be changed by adding a [Listener] node to the scene and enabling it by calling [method Listener.make_current] on it. https://docs.godotengine.org/en/latest/tutorials/audio/audio_streams.html From 96ad9dc4c665379aec76b7095d76c17ca80efacb Mon Sep 17 00:00:00 2001 From: Hugo Locurcio Date: Wed, 26 Aug 2020 00:43:30 +0200 Subject: [PATCH 06/24] Document supported platforms for `Input.get_accelerometer()` and related This closes #41303. (cherry picked from commit eee704e6f602440be1e0007201a1eab534b0a9b1) --- doc/classes/Input.xml | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/doc/classes/Input.xml b/doc/classes/Input.xml index 70d75e0479e..133eb763ebb 100644 --- a/doc/classes/Input.xml +++ b/doc/classes/Input.xml @@ -47,8 +47,9 @@ - If the device has an accelerometer, this will return the acceleration. Otherwise, it returns an empty [Vector3]. + Returns the acceleration of the device's accelerometer, if the device has one. Otherwise, the method returns [constant Vector3.ZERO]. Note this method returns an empty [Vector3] when running from the editor even when your device has an accelerometer. You must export your project to a supported device to read values from the accelerometer. + [b]Note:[/b] This method only works on iOS, Android, and UWP. On other platforms, it always returns [constant Vector3.ZERO]. @@ -78,14 +79,16 @@ - If the device has an accelerometer, this will return the gravity. Otherwise, it returns an empty [Vector3]. + Returns the gravity of the device's accelerometer, if the device has one. Otherwise, the method returns [constant Vector3.ZERO]. + [b]Note:[/b] This method only works on Android and iOS. On other platforms, it always returns [constant Vector3.ZERO]. - If the device has a gyroscope, this will return the rate of rotation in rad/s around a device's X, Y, and Z axes. Otherwise, it returns an empty [Vector3]. + Returns the rotation rate in rad/s around a device's X, Y, and Z axes of the gyroscope, if the device has one. Otherwise, the method returns [constant Vector3.ZERO]. + [b]Note:[/b] This method only works on Android. On other platforms, it always returns [constant Vector3.ZERO]. @@ -182,7 +185,8 @@ - If the device has a magnetometer, this will return the magnetic field strength in micro-Tesla for all axes. + Returns the the magnetic field strength in micro-Tesla for all axes of the device's magnetometer, if the device has one. Otherwise, the method returns [constant Vector3.ZERO]. + [b]Note:[/b] This method only works on Android and UWP. On other platforms, it always returns [constant Vector3.ZERO]. From 636fe1bab993e71d99c8f561e9ee715de28b6db4 Mon Sep 17 00:00:00 2001 From: Lunatoid Date: Wed, 26 Aug 2020 01:48:46 +0200 Subject: [PATCH 07/24] Gives the theme editor a horizontal scrollbar Fixes #34509 where the theme editor would push away the inspector if something like "hseperation" is really high. Now `set_enable_h_scroll` is true which fixes this. (cherry picked from commit d602be077d4c540b8de0be34b6872c8ac5ea8dd0) --- editor/plugins/theme_editor_plugin.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/editor/plugins/theme_editor_plugin.cpp b/editor/plugins/theme_editor_plugin.cpp index 22105f7ed42..35e5b955e8d 100644 --- a/editor/plugins/theme_editor_plugin.cpp +++ b/editor/plugins/theme_editor_plugin.cpp @@ -634,7 +634,7 @@ ThemeEditor::ThemeEditor() { ScrollContainer *scroll = memnew(ScrollContainer); add_child(scroll); scroll->set_enable_v_scroll(true); - scroll->set_enable_h_scroll(false); + scroll->set_enable_h_scroll(true); scroll->set_v_size_flags(SIZE_EXPAND_FILL); MarginContainer *root_container = memnew(MarginContainer); From d0b0dc633374d43633e10bf9ed87220f4dda24f1 Mon Sep 17 00:00:00 2001 From: Hugo Locurcio Date: Thu, 27 Aug 2020 15:53:59 +0200 Subject: [PATCH 08/24] Remove community health files from this repository They've been moved to the @godotengine organization's .github repository, which works as a fallback for all repositories in the organization. This way, the Sponsor button is automatically displayed on all repositories. This closes #40972. (cherry picked from commit f516dc11984b7de86c3a6024f52a4670d40a985c) --- .github/FUNDING.yml | 2 -- CODE_OF_CONDUCT.md | 4 ---- 2 files changed, 6 deletions(-) delete mode 100644 .github/FUNDING.yml delete mode 100644 CODE_OF_CONDUCT.md diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml deleted file mode 100644 index 0820ab175df..00000000000 --- a/.github/FUNDING.yml +++ /dev/null @@ -1,2 +0,0 @@ -patreon: godotengine -custom: https://godotengine.org/donate diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md deleted file mode 100644 index f10438769da..00000000000 --- a/CODE_OF_CONDUCT.md +++ /dev/null @@ -1,4 +0,0 @@ -# Code of Conduct - -By participating in this repository, you agree to abide by the -[Godot Engine Code of Conduct](https://godotengine.org/code-of-conduct). From 45e596e02ff763f35d227f2a3de1d44875372816 Mon Sep 17 00:00:00 2001 From: skyace65 Date: Thu, 27 Aug 2020 09:57:03 -0400 Subject: [PATCH 09/24] Document where the center of mass is for RigidBody nodes (cherry picked from commit 555f4f3e17a16d1d796691e2d83b17fe75ac67ae) --- doc/classes/RigidBody.xml | 1 + doc/classes/RigidBody2D.xml | 1 + 2 files changed, 2 insertions(+) diff --git a/doc/classes/RigidBody.xml b/doc/classes/RigidBody.xml index feb445ab36d..e525ae00a73 100644 --- a/doc/classes/RigidBody.xml +++ b/doc/classes/RigidBody.xml @@ -8,6 +8,7 @@ A RigidBody has 4 behavior [member mode]s: Rigid, Static, Character, and Kinematic. [b]Note:[/b] Don't change a RigidBody's position every frame or very often. Sporadic changes work fine, but physics runs at a different granularity (fixed Hz) than usual rendering (process callback) and maybe even in a separate thread, so changing this from a process loop may result in strange behavior. If you need to directly affect the body's state, use [method _integrate_forces], which allows you to directly access the physics state. If you need to override the default physics behavior, you can write a custom force integration function. See [member custom_integrator]. + With Bullet physics (the default), the center of mass is the RigidBody3D center. With GodotPhysics, the center of mass is the average of the [CollisionShape] centers. https://docs.godotengine.org/en/latest/tutorials/physics/physics_introduction.html diff --git a/doc/classes/RigidBody2D.xml b/doc/classes/RigidBody2D.xml index 415769e3105..3e93bb8e3ad 100644 --- a/doc/classes/RigidBody2D.xml +++ b/doc/classes/RigidBody2D.xml @@ -9,6 +9,7 @@ [b]Note:[/b] You should not change a RigidBody2D's [code]position[/code] or [code]linear_velocity[/code] every frame or even very often. If you need to directly affect the body's state, use [method _integrate_forces], which allows you to directly access the physics state. Please also keep in mind that physics bodies manage their own transform which overwrites the ones you set. So any direct or indirect transformation (including scaling of the node or its parent) will be visible in the editor only, and immediately reset at runtime. If you need to override the default physics behavior or add a transformation at runtime, you can write a custom force integration. See [member custom_integrator]. + The center of mass is always located at the node's origin without taking into account the [CollisionShape2D] centroid offsets. From 14e1c833505c71bd29103afe0ee18531d34b853e Mon Sep 17 00:00:00 2001 From: skyace65 Date: Thu, 27 Aug 2020 12:55:00 -0400 Subject: [PATCH 10/24] Improve touch screen button description (cherry picked from commit 416cac96fa868040a3831221596ff074336fb025) --- doc/classes/TouchScreenButton.xml | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/doc/classes/TouchScreenButton.xml b/doc/classes/TouchScreenButton.xml index 91591cce352..4b6173e812e 100644 --- a/doc/classes/TouchScreenButton.xml +++ b/doc/classes/TouchScreenButton.xml @@ -1,10 +1,12 @@ - Button for touch screen devices. + Button for touch screen devices for gameplay use. - Button for touch screen devices. You can set it to be visible on all screens, or only on touch devices. + TouchScreenButton allows you to create on-screen buttons for touch devices. It's intended for gameplay use, such as a unit you have to touch to move. + This node inherits from [Node2D]. Unlike with [Control] nodes, you cannot set anchors on it. If you want to create menus or user interfaces, you may want to use [Button] nodes instead. To make button nodes react to touch events, you can enable the Emulate Mouse option in the Project Settings. + You can configure TouchScreenButton to be visible only on touch devices, helping you develop your game both for desktop and mobile devices. From dea530d5ca93db88b85e357c21e1e36c4e2f4b37 Mon Sep 17 00:00:00 2001 From: skyace65 Date: Thu, 27 Aug 2020 22:11:35 -0400 Subject: [PATCH 11/24] Add information to get thread id (cherry picked from commit aa08023115614b6a56986e028c049c95c28d9383) --- doc/classes/Thread.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/classes/Thread.xml b/doc/classes/Thread.xml index 5b9c115524c..f8a766be569 100644 --- a/doc/classes/Thread.xml +++ b/doc/classes/Thread.xml @@ -15,7 +15,7 @@ - Returns the current [Thread]'s ID, uniquely identifying it among all threads. + Returns the current [Thread]'s ID, uniquely identifying it among all threads. If the [Thread] is not running this returns an empty string. From afef89014bab216b6f660153745bec7708432cef Mon Sep 17 00:00:00 2001 From: Hugo Locurcio Date: Fri, 28 Aug 2020 16:59:03 +0200 Subject: [PATCH 12/24] Cross-reference GDScript built-in rounding methods to ease discovery This closes #19315. (cherry picked from commit 20d0f5bbd714f80e22e3bd41d6506bf828c29eac) --- modules/gdscript/doc_classes/@GDScript.xml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/modules/gdscript/doc_classes/@GDScript.xml b/modules/gdscript/doc_classes/@GDScript.xml index ee95f81255c..c6a66159e7f 100644 --- a/modules/gdscript/doc_classes/@GDScript.xml +++ b/modules/gdscript/doc_classes/@GDScript.xml @@ -167,6 +167,7 @@ i = ceil(1.45) # i is 2 i = ceil(1.001) # i is 2 [/codeblock] + See also [method floor], [method round], and [method stepify]. @@ -347,6 +348,7 @@ # a is -3.0 a = floor(-2.99) [/codeblock] + See also [method ceil], [method round], and [method stepify]. [b]Note:[/b] This method returns a float. If you need an integer, you can use [code]int(s)[/code] directly. @@ -1042,6 +1044,7 @@ [codeblock] round(2.6) # Returns 3 [/codeblock] + See also [method floor], [method ceil], and [method stepify]. @@ -1157,6 +1160,7 @@ stepify(100, 32) # Returns 96 stepify(3.14159, 0.01) # Returns 3.14 [/codeblock] + See also [method ceil], [method floor], and [method round]. From a23c0aca87c89a753e4e1691bc6f52aa3cfbd650 Mon Sep 17 00:00:00 2001 From: Hugo Locurcio Date: Fri, 28 Aug 2020 17:10:08 +0200 Subject: [PATCH 13/24] Clarify that `KEY_BACK` is unrelated to the Back button on Android This closes #19325. (cherry picked from commit 359c95156ad545e6978e879d242318177c5127bb) --- doc/classes/@GlobalScope.xml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/doc/classes/@GlobalScope.xml b/doc/classes/@GlobalScope.xml index 7fdb8afa58d..0e97a65d04d 100644 --- a/doc/classes/@GlobalScope.xml +++ b/doc/classes/@GlobalScope.xml @@ -341,16 +341,16 @@ Right Direction key. - Back key. + Media back key. Not to be confused with the Back button on an Android device. - Forward key. + Media forward key. - Stop key. + Media stop key. - Refresh key. + Media refresh key. Volume down key. From dd057d36dc5656bb7eceb88e2de94c858ede780c Mon Sep 17 00:00:00 2001 From: Hugo Locurcio Date: Sat, 29 Aug 2020 02:24:07 +0200 Subject: [PATCH 14/24] Document the GDScript debugger not supporting Thread yet See https://github.com/godotengine/godot/issues/2446. (cherry picked from commit dec20883c1b5b22e17698d62477768072393fc70) --- doc/classes/Thread.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/doc/classes/Thread.xml b/doc/classes/Thread.xml index f8a766be569..6d790c6edc7 100644 --- a/doc/classes/Thread.xml +++ b/doc/classes/Thread.xml @@ -5,6 +5,7 @@ A unit of execution in a process. Can run methods on [Object]s simultaneously. The use of synchronization via [Mutex] or [Semaphore] is advised if working with shared objects. + [b]Note:[/b] Breakpoints won't break on code if it's running in a thread. This is a current limitation of the GDScript debugger. https://docs.godotengine.org/en/latest/tutorials/threads/using_multiple_threads.html From 7493bc5530d109500412cad05a826902eae2710e Mon Sep 17 00:00:00 2001 From: "Andrii Doroshenko (Xrayez)" Date: Sun, 30 Aug 2020 23:44:41 +0300 Subject: [PATCH 15/24] Make `AnimatedTexture.MAX_FRAMES` public The constant is already exposed in GDScript, but not in C++. This information is useful for implementing animated texture resource importers via modules. (cherry picked from commit 528056a3c5f8aee06a3598a6f6746253b9ab1e0e) --- scene/resources/texture.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/scene/resources/texture.h b/scene/resources/texture.h index 98a0302e47e..47c2ea9f008 100644 --- a/scene/resources/texture.h +++ b/scene/resources/texture.h @@ -675,11 +675,12 @@ class AnimatedTexture : public Texture { //use readers writers lock for this, since its far more times read than written to RWLock *rw_lock; -private: +public: enum { MAX_FRAMES = 256 }; +private: RID proxy; struct Frame { From 92a1c168ea410471475fd038f77649df2b770edd Mon Sep 17 00:00:00 2001 From: skyace65 Date: Sun, 30 Aug 2020 21:47:28 -0400 Subject: [PATCH 16/24] Clarify get_data texture method (cherry picked from commit 635c9761a0e3c5583c6f7c8314143c45a219bcef) --- doc/classes/Texture.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/classes/Texture.xml b/doc/classes/Texture.xml index b0d379f6d0e..3ab5367fcd1 100644 --- a/doc/classes/Texture.xml +++ b/doc/classes/Texture.xml @@ -72,7 +72,7 @@ - Returns an [Image] with the data from this [Texture]. [Image]s can be accessed and manipulated directly. + Returns an [Image] that is a copy of data from this [Texture]. [Image]s can be accessed and manipulated directly. From 6eee52e49bf68d6be192047bfd6d90d799e5625b Mon Sep 17 00:00:00 2001 From: Hugo Locurcio Date: Tue, 4 Aug 2020 12:55:12 +0200 Subject: [PATCH 17/24] Improve the documentation related to overriding GUI theme items Overriding theme items is a common point of confusion. Hopefully, these code samples should clear things up. (cherry picked from commit 2a8bbda2a7445cc69cf93d475234943e568b4a83) --- doc/classes/Control.xml | 34 +++++++++++++++++++++++++++++----- 1 file changed, 29 insertions(+), 5 deletions(-) diff --git a/doc/classes/Control.xml b/doc/classes/Control.xml index cb8bb064249..273ff061c7d 100644 --- a/doc/classes/Control.xml +++ b/doc/classes/Control.xml @@ -11,6 +11,7 @@ Only one [Control] node can be in keyboard focus. Only the node in focus will receive keyboard events. To get the focus, call [method grab_focus]. [Control] nodes lose focus when another node grabs it, or if you hide the node in focus. Sets [member mouse_filter] to [constant MOUSE_FILTER_IGNORE] to tell a [Control] node to ignore mouse or touch events. You'll need it if you place an icon on top of a button. [Theme] resources change the Control's appearance. If you change the [Theme] on a [Control] node, it affects all of its children. To override some of the theme's parameters, call one of the [code]add_*_override[/code] methods, like [method add_font_override]. You can override the theme with the inspector. + [b]Note:[/b] Theme items are [i]not[/i] [Object] properties. This means you can't access their values using [method Object.get] and [method Object.set]. Instead, use [method get_color], [method get_constant], [method get_font], [method get_icon], [method get_stylebox], and the [code]add_*_override[/code] methods provided by this class. https://docs.godotengine.org/en/latest/tutorials/gui/index.html @@ -95,7 +96,17 @@ - Overrides the [Color] with given [code]name[/code] in the [member theme] resource the control uses. If the [code]color[/code] is empty or invalid, the override is cleared and the color from assigned [Theme] is used. + Overrides the [Color] with given [code]name[/code] in the [member theme] resource the control uses. + [b]Note:[/b] Unlike other theme overrides, there is no way to undo a color override without manually assigning the previous color. + [b]Example of overriding a label's color and resetting it later:[/b] + [codeblock] + # Override the child node "MyLabel"'s font color to orange. + $MyLabel.add_color_override("font_color", Color(1, 0.5, 0)) + + # Reset the color by creating a new node to get the default value: + var default_label_color = Label.new().get_color("font_color") + $MyLabel.add_color_override("font_color", default_label_color) + [/codeblock] @@ -106,7 +117,7 @@ - Overrides an integer constant with given [code]name[/code] in the [member theme] resource the control uses. If the [code]constant[/code] is empty or invalid, the override is cleared and the constant from assigned [Theme] is used. + Overrides an integer constant with given [code]name[/code] in the [member theme] resource the control uses. If the [code]constant[/code] is [code]0[/code], the override is cleared and the constant from assigned [Theme] is used. @@ -117,7 +128,7 @@ - Overrides the font with given [code]name[/code] in the [member theme] resource the control uses. If [code]font[/code] is empty or invalid, the override is cleared and the font from assigned [Theme] is used. + Overrides the font with given [code]name[/code] in the [member theme] resource the control uses. If [code]font[/code] is [code]null[/code] or invalid, the override is cleared and the font from assigned [Theme] is used. @@ -128,7 +139,7 @@ - Overrides the icon with given [code]name[/code] in the [member theme] resource the control uses. If [code]icon[/code] is empty or invalid, the override is cleared and the icon from assigned [Theme] is used. + Overrides the icon with given [code]name[/code] in the [member theme] resource the control uses. If [code]icon[/code] is [code]null[/code] or invalid, the override is cleared and the icon from assigned [Theme] is used. @@ -139,7 +150,7 @@ - Overrides the [Shader] with given [code]name[/code] in the [member theme] resource the control uses. If [code]shader[/code] is empty or invalid, the override is cleared and the shader from assigned [Theme] is used. + Overrides the [Shader] with given [code]name[/code] in the [member theme] resource the control uses. If [code]shader[/code] is [code]null[/code] or invalid, the override is cleared and the shader from assigned [Theme] is used. @@ -151,6 +162,19 @@ Overrides the [StyleBox] with given [code]name[/code] in the [member theme] resource the control uses. If [code]stylebox[/code] is empty or invalid, the override is cleared and the [StyleBox] from assigned [Theme] is used. + [b]Example of modifying a property in a StyleBox by duplicating it:[/b] + [codeblock] + # The snippet below assumes the child node MyButton has a StyleBoxFlat assigned. + # Resources are shared across instances, so we need to duplicate it + # to avoid modifying the appearance of all other buttons. + var new_stylebox_normal = $MyButton.get_stylebox("normal").duplicate() + new_stylebox_normal.border_width_top = 3 + new_stylebox_normal.border_color = Color(0, 1, 0.5) + $MyButton.add_stylebox_override("normal", new_stylebox_normal) + + # Remove the stylebox override: + $MyButton.add_stylebox_override("normal", null) + [/codeblock] From 1f7f28a1eb1c93abed0332d8bcdef4c85d0d751f Mon Sep 17 00:00:00 2001 From: Hugo Locurcio Date: Mon, 3 Aug 2020 14:56:53 +0200 Subject: [PATCH 18/24] Document HTTPRequest not supporting request data with GET method This also improves the HTTPClient class documentation to be easier to read and more informative. This closes #40564. (cherry picked from commit 2f577facc9ee30895e80b6069bdd4d803edd406c) --- doc/classes/HTTPClient.xml | 5 +++-- doc/classes/HTTPRequest.xml | 1 + 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/doc/classes/HTTPClient.xml b/doc/classes/HTTPClient.xml index 401d8074e69..f8c028b6104 100644 --- a/doc/classes/HTTPClient.xml +++ b/doc/classes/HTTPClient.xml @@ -1,10 +1,10 @@ - Hyper-text transfer protocol client. + Low-level hyper-text transfer protocol client. - Hyper-text transfer protocol client (sometimes called "User Agent"). Used to make HTTP requests to download web content, upload files and other data or to communicate with various services, among other use cases. See [HTTPRequest] for an higher-level alternative. + Hyper-text transfer protocol client (sometimes called "User Agent"). Used to make HTTP requests to download web content, upload files and other data or to communicate with various services, among other use cases. [b]See the [HTTPRequest] node for an higher-level alternative.[/b] [b]Note:[/b] This client only needs to connect to a host once (see [method connect_to_host]) to send multiple requests. Because of this, methods that take URLs usually take just the part after the host instead of the full URL, as the client is already connected to a host. See [method request] for a full example and to get started. A [HTTPClient] should be reused between multiple requests or to connect to different hosts instead of creating one client per request. Supports SSL and SSL server certificate verification. HTTP status codes in the 2xx range indicate success, 3xx redirection (i.e. "try again, but over here"), 4xx something was wrong with the request, and 5xx something went wrong on the server's side. For more information on HTTP, see https://developer.mozilla.org/en-US/docs/Web/HTTP (or read RFC 2616 to get it straight from the source: https://tools.ietf.org/html/rfc2616). @@ -152,6 +152,7 @@ var headers = ["Content-Type: application/x-www-form-urlencoded", "Content-Length: " + str(query_string.length())] var result = http_client.request(http_client.METHOD_POST, "index.php", headers, query_string) [/codeblock] + [b]Note:[/b] The [code]request_data[/code] parameter is ignored if [code]method[/code] is [constant HTTPClient.METHOD_GET]. This is because GET methods can't contain request data. As a workaround, you can pass request data as a query string in the URL. See [method String.http_escape] for an example. diff --git a/doc/classes/HTTPRequest.xml b/doc/classes/HTTPRequest.xml index ddd3464bdad..b2e6caafcdb 100644 --- a/doc/classes/HTTPRequest.xml +++ b/doc/classes/HTTPRequest.xml @@ -116,6 +116,7 @@ Creates request on the underlying [HTTPClient]. If there is no configuration errors, it tries to connect using [method HTTPClient.connect_to_host] and passes parameters onto [method HTTPClient.request]. Returns [constant OK] if request is successfully created. (Does not imply that the server has responded), [constant ERR_UNCONFIGURED] if not in the tree, [constant ERR_BUSY] if still processing previous request, [constant ERR_INVALID_PARAMETER] if given string is not a valid URL format, or [constant ERR_CANT_CONNECT] if not using thread and the [HTTPClient] cannot connect to host. + [b]Note:[/b] The [code]request_data[/code] parameter is ignored if [code]method[/code] is [constant HTTPClient.METHOD_GET]. This is because GET methods can't contain request data. As a workaround, you can pass request data as a query string in the URL. See [method String.http_escape] for an example. From fdb5561e55d492b6c585ae7f39f948fd886706a0 Mon Sep 17 00:00:00 2001 From: Maganty Rushyendra Date: Tue, 4 Aug 2020 13:05:48 +0800 Subject: [PATCH 19/24] Updated cursor positioning description for File open() Added more details about the cursor offsets for the different ModeFlags in the `File` class. (cherry picked from commit 5e77eea2167db1f3c3d974ebfda54dc67b9e9519) --- doc/classes/File.xml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/doc/classes/File.xml b/doc/classes/File.xml index 5a280ad96b1..ea1973bcc01 100644 --- a/doc/classes/File.xml +++ b/doc/classes/File.xml @@ -451,16 +451,16 @@ - Opens the file for read operations. + Opens the file for read operations. The cursor is positioned at the beginning of the file. - Opens the file for write operations. Create it if the file does not exist and truncate if it exists. + Opens the file for write operations. The file is created if it does not exist, and truncated if it does. - Opens the file for read and write operations. Does not truncate the file. + Opens the file for read and write operations. Does not truncate the file. The cursor is positioned at the beginning of the file. - Opens the file for read and write operations. Create it if the file does not exist and truncate if it exists. + Opens the file for read and write operations. The file is created if it does not exist, and truncated if it does. The cursor is positioned at the beginning of the file. Uses the [url=http://fastlz.org/]FastLZ[/url] compression method. From 57810f851cea9084e3e05372eadf284b035f5b25 Mon Sep 17 00:00:00 2001 From: Tomasz Chabora Date: Sat, 22 Aug 2020 20:08:15 +0200 Subject: [PATCH 20/24] Explain editor usage of current_animation (cherry picked from commit 70ce86ad296bed2f9cf5c2dc8e37b8866f5d251a) --- doc/classes/AnimationPlayer.xml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/doc/classes/AnimationPlayer.xml b/doc/classes/AnimationPlayer.xml index d5f5b466347..843f47e533c 100644 --- a/doc/classes/AnimationPlayer.xml +++ b/doc/classes/AnimationPlayer.xml @@ -236,7 +236,8 @@ The name of the animation to play when the scene loads. - The name of the current animation, "" if not playing anything. When being set, does not restart the animation. See also [method play]. + The name of the currently playing animation. If no animation is playing, the property's value is an empty string. Changing this value does not restart the animation. See [method play] for more information on playing animations. + [b]Note[/b]: while this property appears in the inspector, it's not meant to be edited and it's not saved in the scene. This property is mainly used to get the currently playing animation, and internally for animation playback tracks. For more information, see [Animation]. The length (in seconds) of the currently being played animation. From 727bce727bd3fa082799d8836556e8513dc4b2a2 Mon Sep 17 00:00:00 2001 From: Andreas Gustafsson Date: Sat, 29 Aug 2020 17:14:34 +0200 Subject: [PATCH 21/24] OptionButton.xml word order fix Change word order of 'Emitted the when...' into 'Emitted when the...' (cherry picked from commit 8f082d63c62cd3b3c3f7b6c265eebe770e9d8d97) --- doc/classes/OptionButton.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/classes/OptionButton.xml b/doc/classes/OptionButton.xml index 94b22c7acaf..170d524aebb 100644 --- a/doc/classes/OptionButton.xml +++ b/doc/classes/OptionButton.xml @@ -217,7 +217,7 @@ - Emitted the when user navigates to an item using the [code]ui_up[/code] or [code]ui_down[/code] actions. The index of the item selected is passed as argument. + Emitted when the user navigates to an item using the [code]ui_up[/code] or [code]ui_down[/code] actions. The index of the item selected is passed as argument. From 63b2f69c7f5f3c885796e5ee4642acc6e40c4077 Mon Sep 17 00:00:00 2001 From: Yakov Borevich Date: Sun, 30 Aug 2020 22:44:39 +0300 Subject: [PATCH 22/24] [funexpected] clear missed remaps on deinitialization, fixes godotengine/godot#34221 (cherry picked from commit 604bd754389c9f0ba369eec285dfcbc6777d0dd9) --- core/io/resource_loader.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/core/io/resource_loader.cpp b/core/io/resource_loader.cpp index 7471ab42412..5fa368e4815 100644 --- a/core/io/resource_loader.cpp +++ b/core/io/resource_loader.cpp @@ -896,6 +896,9 @@ void ResourceLoader::load_translation_remaps() { void ResourceLoader::clear_translation_remaps() { translation_remaps.clear(); + while (remapped_list.first() != nullptr) { + remapped_list.remove(remapped_list.first()); + } } void ResourceLoader::load_path_remaps() { From 1b6d116dfbf5c93a5bf60b725075e7893bc97dfb Mon Sep 17 00:00:00 2001 From: Tony-Goat <70238376+Tony-Goat@users.noreply.github.com> Date: Tue, 25 Aug 2020 15:58:03 -0600 Subject: [PATCH 23/24] Updated LineEdit to address #41278 Updated set_max_length() function to actually pull a substring of the current text so it's not all thrown away when the new max length is shorter than the current length. (cherry picked from commit 71febfd6e2f6187fcc106ce715124cf173bfa0b8) --- scene/gui/line_edit.cpp | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/scene/gui/line_edit.cpp b/scene/gui/line_edit.cpp index 805297d5ac3..7474e885c53 100644 --- a/scene/gui/line_edit.cpp +++ b/scene/gui/line_edit.cpp @@ -1263,7 +1263,12 @@ void LineEdit::delete_text(int p_from_column, int p_to_column) { void LineEdit::set_text(String p_text) { clear_internal(); - append_at_cursor(p_text); + + if (p_text.length() > max_length) { + append_at_cursor(p_text.substr(0, max_length)); + } else { + append_at_cursor(p_text); + } if (expand_to_text_length) { minimum_size_changed(); From cc3b69cf7b2a7eac1e7bb1966831e340f5a5ca16 Mon Sep 17 00:00:00 2001 From: Hugo Locurcio Date: Mon, 3 Aug 2020 13:58:51 +0200 Subject: [PATCH 24/24] Reference the online documentation in collision layer/mask properties See https://github.com/godotengine/godot-docs/pull/3863. (cherry picked from commit c73c327babce096faa083ade0e308a35bd0a6759) --- doc/classes/Area.xml | 4 ++-- doc/classes/Area2D.xml | 4 ++-- doc/classes/ClippedCamera.xml | 2 +- doc/classes/Physics2DShapeQueryParameters.xml | 2 +- doc/classes/PhysicsBody.xml | 4 ++-- doc/classes/PhysicsBody2D.xml | 4 ++-- doc/classes/PhysicsShapeQueryParameters.xml | 2 +- doc/classes/RayCast.xml | 2 +- doc/classes/RayCast2D.xml | 2 +- doc/classes/SoftBody.xml | 4 ++-- doc/classes/SpringArm.xml | 2 +- doc/classes/TileMap.xml | 4 ++-- modules/csg/doc_classes/CSGShape.xml | 4 ++-- modules/gridmap/doc_classes/GridMap.xml | 2 +- 14 files changed, 21 insertions(+), 21 deletions(-) diff --git a/doc/classes/Area.xml b/doc/classes/Area.xml index c7b1d8ca074..b0f8cf91ebc 100644 --- a/doc/classes/Area.xml +++ b/doc/classes/Area.xml @@ -96,10 +96,10 @@ If [code]true[/code], the area's audio bus overrides the default audio bus. - The area's physics layer(s). Collidable objects can exist in any of 32 different layers. A contact is detected if object A is in any of the layers that object B scans, or object B is in any layers that object A scans. See also [member collision_mask]. + The area's physics layer(s). Collidable objects can exist in any of 32 different layers. A contact is detected if object A is in any of the layers that object B scans, or object B is in any layers that object A scans. See also [member collision_mask]. See [url=https://docs.godotengine.org/en/latest/tutorials/physics/physics_introduction.html#collision-layers-and-masks]Collision layers and masks[/url] in the documentation for more information. - The physics layers this area scans to determine collision detection. + The physics layers this area scans to determine collision detection. See [url=https://docs.godotengine.org/en/latest/tutorials/physics/physics_introduction.html#collision-layers-and-masks]Collision layers and masks[/url] in the documentation for more information. The area's gravity intensity (ranges from -1024 to 1024). This value multiplies the gravity vector. This is useful to alter the force of gravity without altering its direction. diff --git a/doc/classes/Area2D.xml b/doc/classes/Area2D.xml index 7698b4585c4..0614c5bee33 100644 --- a/doc/classes/Area2D.xml +++ b/doc/classes/Area2D.xml @@ -97,10 +97,10 @@ If [code]true[/code], the area's audio bus overrides the default audio bus. - The area's physics layer(s). Collidable objects can exist in any of 32 different layers. A contact is detected if object A is in any of the layers that object B scans, or object B is in any layers that object A scans. See also [member collision_mask]. + The area's physics layer(s). Collidable objects can exist in any of 32 different layers. A contact is detected if object A is in any of the layers that object B scans, or object B is in any layers that object A scans. See also [member collision_mask]. See [url=https://docs.godotengine.org/en/latest/tutorials/physics/physics_introduction.html#collision-layers-and-masks]Collision layers and masks[/url] in the documentation for more information. - The physics layers this area scans to determine collision detection. + The physics layers this area scans to determine collision detection. See [url=https://docs.godotengine.org/en/latest/tutorials/physics/physics_introduction.html#collision-layers-and-masks]Collision layers and masks[/url] in the documentation for more information. The area's gravity intensity (ranges from -1024 to 1024). This value multiplies the gravity vector. This is useful to alter the force of gravity without altering its direction. diff --git a/doc/classes/ClippedCamera.xml b/doc/classes/ClippedCamera.xml index 7d2454b48a3..3d8a9cf758b 100644 --- a/doc/classes/ClippedCamera.xml +++ b/doc/classes/ClippedCamera.xml @@ -90,7 +90,7 @@ If [code]true[/code], the camera stops on contact with [PhysicsBody]s. - The camera's collision mask. Only objects in at least one collision layer matching the mask will be detected. + The camera's collision mask. Only objects in at least one collision layer matching the mask will be detected. See [url=https://docs.godotengine.org/en/latest/tutorials/physics/physics_introduction.html#collision-layers-and-masks]Collision layers and masks[/url] in the documentation for more information. The camera's collision margin. The camera can't get closer than this distance to a colliding object. diff --git a/doc/classes/Physics2DShapeQueryParameters.xml b/doc/classes/Physics2DShapeQueryParameters.xml index 20b931227a4..dbf1073fe75 100644 --- a/doc/classes/Physics2DShapeQueryParameters.xml +++ b/doc/classes/Physics2DShapeQueryParameters.xml @@ -27,7 +27,7 @@ If [code]true[/code], the query will take [PhysicsBody2D]s into account. - The physics layer(s) the query will take into account (as a bitmask). + The physics layer(s) the query will take into account (as a bitmask). See [url=https://docs.godotengine.org/en/latest/tutorials/physics/physics_introduction.html#collision-layers-and-masks]Collision layers and masks[/url] in the documentation for more information. The list of objects or object [RID]s that will be excluded from collisions. diff --git a/doc/classes/PhysicsBody.xml b/doc/classes/PhysicsBody.xml index 8af69452e33..15dab17507a 100644 --- a/doc/classes/PhysicsBody.xml +++ b/doc/classes/PhysicsBody.xml @@ -80,10 +80,10 @@ The physics layers this area is in. Collidable objects can exist in any of 32 different layers. These layers work like a tagging system, and are not visual. A collidable can use these layers to select with which objects it can collide, using the [member collision_mask] property. - A contact is detected if object A is in any of the layers that object B scans, or object B is in any layer scanned by object A. + A contact is detected if object A is in any of the layers that object B scans, or object B is in any layer scanned by object A. See [url=https://docs.godotengine.org/en/latest/tutorials/physics/physics_introduction.html#collision-layers-and-masks]Collision layers and masks[/url] in the documentation for more information. - The physics layers this area scans for collisions. + The physics layers this area scans for collisions. See [url=https://docs.godotengine.org/en/latest/tutorials/physics/physics_introduction.html#collision-layers-and-masks]Collision layers and masks[/url] in the documentation for more information. diff --git a/doc/classes/PhysicsBody2D.xml b/doc/classes/PhysicsBody2D.xml index dd9460e8440..ab0b857fdf8 100644 --- a/doc/classes/PhysicsBody2D.xml +++ b/doc/classes/PhysicsBody2D.xml @@ -80,10 +80,10 @@ The physics layers this area is in. Collidable objects can exist in any of 32 different layers. These layers work like a tagging system, and are not visual. A collidable can use these layers to select with which objects it can collide, using the [member collision_mask] property. - A contact is detected if object A is in any of the layers that object B scans, or object B is in any layer scanned by object A. + A contact is detected if object A is in any of the layers that object B scans, or object B is in any layer scanned by object A. See [url=https://docs.godotengine.org/en/latest/tutorials/physics/physics_introduction.html#collision-layers-and-masks]Collision layers and masks[/url] in the documentation for more information. - The physics layers this area scans for collisions. + The physics layers this area scans for collisions. See [url=https://docs.godotengine.org/en/latest/tutorials/physics/physics_introduction.html#collision-layers-and-masks]Collision layers and masks[/url] in the documentation for more information. diff --git a/doc/classes/PhysicsShapeQueryParameters.xml b/doc/classes/PhysicsShapeQueryParameters.xml index b3ba195212b..80cfe3419c1 100644 --- a/doc/classes/PhysicsShapeQueryParameters.xml +++ b/doc/classes/PhysicsShapeQueryParameters.xml @@ -27,7 +27,7 @@ If [code]true[/code], the query will take [PhysicsBody]s into account. - The physics layer(s) the query will take into account (as a bitmask). + The physics layer(s) the query will take into account (as a bitmask). See [url=https://docs.godotengine.org/en/latest/tutorials/physics/physics_introduction.html#collision-layers-and-masks]Collision layers and masks[/url] in the documentation for more information. The list of objects or object [RID]s that will be excluded from collisions. diff --git a/doc/classes/RayCast.xml b/doc/classes/RayCast.xml index 72a718e3af8..997bb93ba99 100644 --- a/doc/classes/RayCast.xml +++ b/doc/classes/RayCast.xml @@ -136,7 +136,7 @@ If [code]true[/code], collision with [PhysicsBody]s will be reported. - The ray's collision mask. Only objects in at least one collision layer enabled in the mask will be detected. + The ray's collision mask. Only objects in at least one collision layer enabled in the mask will be detected. See [url=https://docs.godotengine.org/en/latest/tutorials/physics/physics_introduction.html#collision-layers-and-masks]Collision layers and masks[/url] in the documentation for more information. If [code]true[/code], collisions will be reported. diff --git a/doc/classes/RayCast2D.xml b/doc/classes/RayCast2D.xml index dd20e25f4e0..dfeff6e8018 100644 --- a/doc/classes/RayCast2D.xml +++ b/doc/classes/RayCast2D.xml @@ -133,7 +133,7 @@ If [code]true[/code], collision with [PhysicsBody2D]s will be reported. - The ray's collision mask. Only objects in at least one collision layer enabled in the mask will be detected. + The ray's collision mask. Only objects in at least one collision layer enabled in the mask will be detected. See [url=https://docs.godotengine.org/en/latest/tutorials/physics/physics_introduction.html#collision-layers-and-masks]Collision layers and masks[/url] in the documentation for more information. If [code]true[/code], collisions will be reported. diff --git a/doc/classes/SoftBody.xml b/doc/classes/SoftBody.xml index c9626abbc90..88e61d90299 100644 --- a/doc/classes/SoftBody.xml +++ b/doc/classes/SoftBody.xml @@ -82,10 +82,10 @@ The physics layers this SoftBody is in. Collidable objects can exist in any of 32 different layers. These layers work like a tagging system, and are not visual. A collidable can use these layers to select with which objects it can collide, using the collision_mask property. - A contact is detected if object A is in any of the layers that object B scans, or object B is in any layer scanned by object A. + A contact is detected if object A is in any of the layers that object B scans, or object B is in any layer scanned by object A. See [url=https://docs.godotengine.org/en/latest/tutorials/physics/physics_introduction.html#collision-layers-and-masks]Collision layers and masks[/url] in the documentation for more information. - The physics layers this SoftBody scans for collisions. + The physics layers this SoftBody scans for collisions. See [url=https://docs.godotengine.org/en/latest/tutorials/physics/physics_introduction.html#collision-layers-and-masks]Collision layers and masks[/url] in the documentation for more information. diff --git a/doc/classes/SpringArm.xml b/doc/classes/SpringArm.xml index 6fc3cd187bb..5051a210b94 100644 --- a/doc/classes/SpringArm.xml +++ b/doc/classes/SpringArm.xml @@ -47,7 +47,7 @@ - The layers against which the collision check shall be done. + The layers against which the collision check shall be done. See [url=https://docs.godotengine.org/en/latest/tutorials/physics/physics_introduction.html#collision-layers-and-masks]Collision layers and masks[/url] in the documentation for more information. When the collision check is made, a candidate length for the SpringArm is given. diff --git a/doc/classes/TileMap.xml b/doc/classes/TileMap.xml index 74404447c45..328d24733ee 100644 --- a/doc/classes/TileMap.xml +++ b/doc/classes/TileMap.xml @@ -287,10 +287,10 @@ Friction value for static body collisions (see [code]collision_use_kinematic[/code]). - The collision layer(s) for all colliders in the TileMap. + The collision layer(s) for all colliders in the TileMap. See [url=https://docs.godotengine.org/en/latest/tutorials/physics/physics_introduction.html#collision-layers-and-masks]Collision layers and masks[/url] in the documentation for more information. - The collision mask(s) for all colliders in the TileMap. + The collision mask(s) for all colliders in the TileMap. See [url=https://docs.godotengine.org/en/latest/tutorials/physics/physics_introduction.html#collision-layers-and-masks]Collision layers and masks[/url] in the documentation for more information. If [code]true[/code], TileMap collisions will be handled as a kinematic body. If [code]false[/code], collisions will be handled as static body. diff --git a/modules/csg/doc_classes/CSGShape.xml b/modules/csg/doc_classes/CSGShape.xml index e7048f21a76..cb53bf2fdbf 100644 --- a/modules/csg/doc_classes/CSGShape.xml +++ b/modules/csg/doc_classes/CSGShape.xml @@ -71,10 +71,10 @@ The physics layers this area is in. Collidable objects can exist in any of 32 different layers. These layers work like a tagging system, and are not visual. A collidable can use these layers to select with which objects it can collide, using the collision_mask property. - A contact is detected if object A is in any of the layers that object B scans, or object B is in any layer scanned by object A. + A contact is detected if object A is in any of the layers that object B scans, or object B is in any layer scanned by object A. See [url=https://docs.godotengine.org/en/latest/tutorials/physics/physics_introduction.html#collision-layers-and-masks]Collision layers and masks[/url] in the documentation for more information. - The physics layers this CSG shape scans for collisions. + The physics layers this CSG shape scans for collisions. See [url=https://docs.godotengine.org/en/latest/tutorials/physics/physics_introduction.html#collision-layers-and-masks]Collision layers and masks[/url] in the documentation for more information. The operation that is performed on this shape. This is ignored for the first CSG child node as the operation is between this node and the previous child of this nodes parent. diff --git a/modules/gridmap/doc_classes/GridMap.xml b/modules/gridmap/doc_classes/GridMap.xml index 1e34ebc2f66..626cf424ff7 100644 --- a/modules/gridmap/doc_classes/GridMap.xml +++ b/modules/gridmap/doc_classes/GridMap.xml @@ -221,7 +221,7 @@ GridMaps act as static bodies, meaning they aren't affected by gravity or other forces. They only affect other physics bodies that collide with them. - The physics layers this GridMap detects collisions in. + The physics layers this GridMap detects collisions in. See [url=https://docs.godotengine.org/en/latest/tutorials/physics/physics_introduction.html#collision-layers-and-masks]Collision layers and masks[/url] in the documentation for more information. The assigned [MeshLibrary].