summaryrefslogtreecommitdiff
path: root/doc
diff options
context:
space:
mode:
Diffstat (limited to 'doc')
-rw-r--r--doc/classes/DirAccess.xml (renamed from doc/classes/Directory.xml)43
-rw-r--r--doc/classes/EditorInspector.xml8
-rw-r--r--doc/classes/EditorProperty.xml7
-rw-r--r--doc/classes/EditorTranslationParserPlugin.xml2
-rw-r--r--doc/classes/Environment.xml1
-rw-r--r--doc/classes/FileAccess.xml (renamed from doc/classes/File.xml)85
-rw-r--r--doc/classes/Geometry2D.xml2
-rw-r--r--doc/classes/LightmapGI.xml6
-rw-r--r--doc/classes/Node3D.xml4
-rw-r--r--doc/classes/OS.xml2
-rw-r--r--doc/classes/PackedByteArray.xml6
-rw-r--r--doc/classes/PhysicsBody2D.xml4
-rw-r--r--doc/classes/PhysicsBody3D.xml8
-rw-r--r--doc/classes/PhysicsTestMotionParameters2D.xml4
-rw-r--r--doc/classes/PhysicsTestMotionParameters3D.xml4
-rw-r--r--doc/classes/ProjectSettings.xml9
-rw-r--r--doc/classes/ResourceSaver.xml4
-rw-r--r--doc/classes/StreamPeerBuffer.xml2
-rw-r--r--doc/classes/UndoRedo.xml14
19 files changed, 130 insertions, 85 deletions
diff --git a/doc/classes/Directory.xml b/doc/classes/DirAccess.xml
index c9a9f346a5..ddb98030eb 100644
--- a/doc/classes/Directory.xml
+++ b/doc/classes/DirAccess.xml
@@ -1,18 +1,18 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="Directory" inherits="RefCounted" version="4.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../class.xsd">
+<class name="DirAccess" inherits="RefCounted" version="4.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../class.xsd">
<brief_description>
Type used to handle the filesystem.
</brief_description>
<description>
Directory type. It is used to manage directories and their content (not restricted to the project folder).
- When creating a new [Directory], it must be explicitly opened using [method open] before most methods can be used. However, [method file_exists] and [method dir_exists] can be used without opening a directory. If so, they use a path relative to [code]res://[/code].
+ [DirAccess] can't be instantiated directly. Instead it is created with a static method that takes a path for which it will be opened.
[b]Note:[/b] Many resources types are imported (e.g. textures or sound files), and their source asset will not be included in the exported game, as only the imported version is used. Use [ResourceLoader] to access imported resources.
Here is an example on how to iterate through the files of a directory:
[codeblocks]
[gdscript]
func dir_contents(path):
- var dir = Directory.new()
- if dir.open(path) == OK:
+ var dir = DirAccess.open(path)
+ if dir:
dir.list_dir_begin()
var file_name = dir.get_next()
while file_name != "":
@@ -27,8 +27,8 @@
[csharp]
public void DirContents(string path)
{
- var dir = new Directory();
- if (dir.Open(path) == Error.Ok)
+ var dir = DirAccess.Open(path);
+ if (dir != null)
{
dir.ListDirBegin();
string fileName = dir.GetNext();
@@ -69,8 +69,10 @@
<return type="int" enum="Error" />
<param index="0" name="from" type="String" />
<param index="1" name="to" type="String" />
+ <param index="2" name="chmod_flags" type="int" default="-1" />
<description>
Copies the [param from] file to the [param to] destination. Both arguments should be paths to files, either relative or absolute. If the destination file exists and is not access-protected, it will be overwritten.
+ If [param chmod_flags] is different than [code]-1[/code], the unix permissions for the destination path will be set to the provided value, if available on the current operating system.
Returns one of the [enum Error] code constants ([code]OK[/code] on success).
</description>
</method>
@@ -85,7 +87,7 @@
<param index="0" name="path" type="String" />
<description>
Returns whether the target directory exists. The argument can be relative to the current directory, or an absolute path.
- If the [Directory] is not open, the path is relative to [code]res://[/code].
+ If the [DirAccess] is not open, the path is relative to [code]res://[/code].
</description>
</method>
<method name="file_exists">
@@ -93,11 +95,12 @@
<param index="0" name="path" type="String" />
<description>
Returns whether the target file exists. The argument can be relative to the current directory, or an absolute path.
- If the [Directory] is not open, the path is relative to [code]res://[/code].
+ If the [DirAccess] is not open, the path is relative to [code]res://[/code].
</description>
</method>
- <method name="get_current_dir">
+ <method name="get_current_dir" qualifiers="const">
<return type="String" />
+ <param index="0" name="include_drive" type="bool" default="true" />
<description>
Returns the absolute path to the currently opened directory (e.g. [code]res://folder[/code] or [code]C:\tmp\folder[/code]).
</description>
@@ -144,8 +147,14 @@
<method name="get_next">
<return type="String" />
<description>
- Returns the next element (file or directory) in the current directory (including [code].[/code] and [code]..[/code], unless [code]skip_navigational[/code] was given to [method list_dir_begin]).
- The name of the file or directory is returned (and not its full path). Once the stream has been fully processed, the method returns an empty String and closes the stream automatically (i.e. [method list_dir_end] would not be mandatory in such a case).
+ Returns the next element (file or directory) in the current directory.
+ The name of the file or directory is returned (and not its full path). Once the stream has been fully processed, the method returns an empty [String] and closes the stream automatically (i.e. [method list_dir_end] would not be mandatory in such a case).
+ </description>
+ </method>
+ <method name="get_open_error" qualifiers="static">
+ <return type="int" enum="Error" />
+ <description>
+ Returns the result of the last [method open] call in the current thread.
</description>
</method>
<method name="get_space_left">
@@ -184,12 +193,12 @@
Returns one of the [enum Error] code constants ([code]OK[/code] on success).
</description>
</method>
- <method name="open">
- <return type="int" enum="Error" />
+ <method name="open" qualifiers="static">
+ <return type="DirAccess" />
<param index="0" name="path" type="String" />
<description>
- Opens an existing directory of the filesystem. The [param path] argument can be within the project tree ([code]res://folder[/code]), the user directory ([code]user://folder[/code]) or an absolute path of the user filesystem (e.g. [code]/tmp/folder[/code] or [code]C:\tmp\folder[/code]).
- Returns one of the [enum Error] code constants ([code]OK[/code] on success).
+ Creates a new [DirAccess] object and opens an existing directory of the filesystem. The [param path] argument can be within the project tree ([code]res://folder[/code]), the user directory ([code]user://folder[/code]) or an absolute path of the user filesystem (e.g. [code]/tmp/folder[/code] or [code]C:\tmp\folder[/code]).
+ Returns [code]null[/code] if opening the directory failed. You can use [method get_open_error] to check the error that ocurred.
</description>
</method>
<method name="remove">
@@ -212,11 +221,11 @@
</method>
</methods>
<members>
- <member name="include_hidden" type="bool" setter="set_include_hidden" getter="get_include_hidden" default="false">
+ <member name="include_hidden" type="bool" setter="set_include_hidden" getter="get_include_hidden">
If [code]true[/code], hidden files are included when the navigating directory.
Affects [method list_dir_begin], [method get_directories] and [method get_files].
</member>
- <member name="include_navigational" type="bool" setter="set_include_navigational" getter="get_include_navigational" default="false">
+ <member name="include_navigational" type="bool" setter="set_include_navigational" getter="get_include_navigational">
If [code]true[/code], [code].[/code] and [code]..[/code] are included when navigating the directory.
Affects [method list_dir_begin] and [method get_directories].
</member>
diff --git a/doc/classes/EditorInspector.xml b/doc/classes/EditorInspector.xml
index 280a7bf34a..a1a43dd5bf 100644
--- a/doc/classes/EditorInspector.xml
+++ b/doc/classes/EditorInspector.xml
@@ -13,6 +13,14 @@
</description>
<tutorials>
</tutorials>
+ <methods>
+ <method name="get_selected_path" qualifiers="const">
+ <return type="String" />
+ <description>
+ Gets the path of the currently selected property.
+ </description>
+ </method>
+ </methods>
<members>
<member name="horizontal_scroll_mode" type="int" setter="set_horizontal_scroll_mode" getter="get_horizontal_scroll_mode" overrides="ScrollContainer" enum="ScrollContainer.ScrollMode" default="0" />
</members>
diff --git a/doc/classes/EditorProperty.xml b/doc/classes/EditorProperty.xml
index 7bac4bf7ac..9170c449bf 100644
--- a/doc/classes/EditorProperty.xml
+++ b/doc/classes/EditorProperty.xml
@@ -9,6 +9,13 @@
<tutorials>
</tutorials>
<methods>
+ <method name="_set_read_only" qualifiers="virtual">
+ <return type="void" />
+ <param index="0" name="read_only" type="bool" />
+ <description>
+ Called when the read-only status of the property is changed. It may be used to change custom controls into a read-only or modifiable state.
+ </description>
+ </method>
<method name="_update_property" qualifiers="virtual">
<return type="void" />
<description>
diff --git a/doc/classes/EditorTranslationParserPlugin.xml b/doc/classes/EditorTranslationParserPlugin.xml
index d028996db8..08986781cd 100644
--- a/doc/classes/EditorTranslationParserPlugin.xml
+++ b/doc/classes/EditorTranslationParserPlugin.xml
@@ -72,7 +72,7 @@
msgidsContextPlural.Add(new Godot.Collections.Array{"Only with context", "a friendly context", ""});
[/csharp]
[/codeblocks]
- [b]Note:[/b] If you override parsing logic for standard script types (GDScript, C#, etc.), it would be better to load the [code]path[/code] argument using [method ResourceLoader.load]. This is because built-in scripts are loaded as [Resource] type, not [File] type.
+ [b]Note:[/b] If you override parsing logic for standard script types (GDScript, C#, etc.), it would be better to load the [code]path[/code] argument using [method ResourceLoader.load]. This is because built-in scripts are loaded as [Resource] type, not [FileAccess] type.
For example:
[codeblocks]
[gdscript]
diff --git a/doc/classes/Environment.xml b/doc/classes/Environment.xml
index 34a639d2de..243a28e73d 100644
--- a/doc/classes/Environment.xml
+++ b/doc/classes/Environment.xml
@@ -313,6 +313,7 @@
</member>
<member name="volumetric_fog_enabled" type="bool" setter="set_volumetric_fog_enabled" getter="is_volumetric_fog_enabled" default="false">
Enables the volumetric fog effect. Volumetric fog uses a screen-aligned froxel buffer to calculate accurate volumetric scattering in the short to medium range. Volumetric fog interacts with [FogVolume]s and lights to calculate localized and global fog. Volumetric fog uses a PBR single-scattering model based on extinction, scattering, and emission which it exposes to users as density, albedo, and emission.
+ [b]Note:[/b] Volumetric fog is only available in the forward plus renderer. It is not available in the mobile renderer or the compatibility renderer.
</member>
<member name="volumetric_fog_gi_inject" type="float" setter="set_volumetric_fog_gi_inject" getter="get_volumetric_fog_gi_inject" default="1.0">
Scales the strength of Global Illumination used in the volumetric fog's albedo color. A value of [code]0.0[/code] means that Global Illumination will not impact the volumetric fog. [member volumetric_fog_gi_inject] has a small performance cost when set above [code]0.0[/code].
diff --git a/doc/classes/File.xml b/doc/classes/FileAccess.xml
index 76c6a4871c..61377fb13a 100644
--- a/doc/classes/File.xml
+++ b/doc/classes/FileAccess.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="File" inherits="RefCounted" version="4.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../class.xsd">
+<class name="FileAccess" inherits="RefCounted" version="4.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../class.xsd">
<brief_description>
Type to handle file reading and writing operations.
</brief_description>
@@ -9,39 +9,36 @@
[codeblocks]
[gdscript]
func save(content):
- var file = File.new()
- file.open("user://save_game.dat", File.WRITE)
+ var file = FileAccess.open("user://save_game.dat", FileAccess.WRITE)
file.store_string(content)
- file.close()
func load():
- var file = File.new()
- file.open("user://save_game.dat", File.READ)
+ var file = FileAccess.open("user://save_game.dat", FileAccess.READ)
var content = file.get_as_text()
- file.close()
return content
[/gdscript]
[csharp]
public void Save(string content)
{
- var file = new File();
- file.Open("user://save_game.dat", File.ModeFlags.Write);
+ var file = FileAccess.Open("user://save_game.dat", File.ModeFlags.Write);
file.StoreString(content);
- file.Close();
}
public string Load()
{
- var file = new File();
- file.Open("user://save_game.dat", File.ModeFlags.Read);
+ var file = FileAccess.Open("user://save_game.dat", File.ModeFlags.Read);
string content = file.GetAsText();
- file.Close();
return content;
}
[/csharp]
[/codeblocks]
In the example above, the file will be saved in the user data folder as specified in the [url=$DOCS_URL/tutorials/io/data_paths.html]Data paths[/url] documentation.
- [b]Note:[/b] To access project resources once exported, it is recommended to use [ResourceLoader] instead of the [File] API, as some files are converted to engine-specific formats and their original source files might not be present in the exported PCK package.
+ There is no method to close a file in order to free it from use. Instead, [FileAccess] will close when it's freed, which happens when it goes out of scope or when it gets assigned with [code]null[/code].
+ [codeblock]
+ var file = FileAccess.open("res://something") # File is opened and locked for use.
+ file = null # File is closed.
+ [/codeblock]
+ [b]Note:[/b] To access project resources once exported, it is recommended to use [ResourceLoader] instead of the [FileAccess] API, as some files are converted to engine-specific formats and their original source files might not be present in the exported PCK package.
[b]Note:[/b] Files are automatically closed only if the process exits "normally" (such as by clicking the window manager's close button or pressing [b]Alt + F4[/b]). If you stop the project execution by pressing [b]F8[/b] while the project is running, the file won't be closed as the game process will be killed. You can work around this by calling [method flush] at regular intervals.
</description>
<tutorials>
@@ -49,12 +46,6 @@
<link title="3D Voxel Demo">https://godotengine.org/asset-library/asset/676</link>
</tutorials>
<methods>
- <method name="close">
- <return type="void" />
- <description>
- Closes the currently opened file and prevents subsequent read/write operations. Use [method flush] to persist the data to disk without closing the file.
- </description>
- </method>
<method name="eof_reached" qualifiers="const">
<return type="bool" />
<description>
@@ -85,7 +76,7 @@
<method name="flush">
<return type="void" />
<description>
- Writes the file's buffer to disk. Flushing is automatically performed when the file is closed. This means you don't need to call [method flush] manually before closing a file using [method close]. Still, calling [method flush] can be used to ensure the data is safe even if the project crashes instead of being closed gracefully.
+ Writes the file's buffer to disk. Flushing is automatically performed when the file is closed. This means you don't need to call [method flush] manually before closing a file. Still, calling [method flush] can be used to ensure the data is safe even if the project crashes instead of being closed gracefully.
[b]Note:[/b] Only call [method flush] when you actually need it. Otherwise, it will decrease performance due to constant disk writes.
</description>
</method>
@@ -174,20 +165,26 @@
Text is interpreted as being UTF-8 encoded.
</description>
</method>
- <method name="get_md5" qualifiers="const">
+ <method name="get_md5" qualifiers="static">
<return type="String" />
<param index="0" name="path" type="String" />
<description>
Returns an MD5 String representing the file at the given path or an empty [String] on failure.
</description>
</method>
- <method name="get_modified_time" qualifiers="const">
+ <method name="get_modified_time" qualifiers="static">
<return type="int" />
<param index="0" name="file" type="String" />
<description>
Returns the last time the [param file] was modified in Unix timestamp format or returns a [String] "ERROR IN [code]file[/code]". This Unix timestamp can be converted to another format using the [Time] singleton.
</description>
</method>
+ <method name="get_open_error" qualifiers="static">
+ <return type="int" enum="Error" />
+ <description>
+ Returns the result of the last [method open] call in the current thread.
+ </description>
+ </method>
<method name="get_pascal_string">
<return type="String" />
<description>
@@ -219,7 +216,7 @@
Returns the next bits from the file as a floating-point number.
</description>
</method>
- <method name="get_sha256" qualifiers="const">
+ <method name="get_sha256" qualifiers="static">
<return type="String" />
<param index="0" name="path" type="String" />
<description>
@@ -240,41 +237,45 @@
Returns [code]true[/code] if the file is currently opened.
</description>
</method>
- <method name="open">
- <return type="int" enum="Error" />
+ <method name="open" qualifiers="static">
+ <return type="FileAccess" />
<param index="0" name="path" type="String" />
- <param index="1" name="flags" type="int" enum="File.ModeFlags" />
+ <param index="1" name="flags" type="int" enum="FileAccess.ModeFlags" />
<description>
- Opens the file for writing or reading, depending on the flags.
+ Creates a new [FileAccess] object and opens the file for writing or reading, depending on the flags.
+ Returns [code]null[/code] if opening the file failed. You can use [method get_open_error] to check the error that ocurred.
</description>
</method>
- <method name="open_compressed">
- <return type="int" enum="Error" />
+ <method name="open_compressed" qualifiers="static">
+ <return type="FileAccess" />
<param index="0" name="path" type="String" />
- <param index="1" name="mode_flags" type="int" enum="File.ModeFlags" />
- <param index="2" name="compression_mode" type="int" enum="File.CompressionMode" default="0" />
+ <param index="1" name="mode_flags" type="int" enum="FileAccess.ModeFlags" />
+ <param index="2" name="compression_mode" type="int" enum="FileAccess.CompressionMode" default="0" />
<description>
- Opens a compressed file for reading or writing.
+ Creates a new [FileAccess] object and opens a compressed file for reading or writing.
[b]Note:[/b] [method open_compressed] can only read files that were saved by Godot, not third-party compression formats. See [url=https://github.com/godotengine/godot/issues/28999]GitHub issue #28999[/url] for a workaround.
+ Returns [code]null[/code] if opening the file failed. You can use [method get_open_error] to check the error that ocurred.
</description>
</method>
- <method name="open_encrypted">
- <return type="int" enum="Error" />
+ <method name="open_encrypted" qualifiers="static">
+ <return type="FileAccess" />
<param index="0" name="path" type="String" />
- <param index="1" name="mode_flags" type="int" enum="File.ModeFlags" />
+ <param index="1" name="mode_flags" type="int" enum="FileAccess.ModeFlags" />
<param index="2" name="key" type="PackedByteArray" />
<description>
- Opens an encrypted file in write or read mode. You need to pass a binary key to encrypt/decrypt it.
+ Creates a new [FileAccess] object and opens an encrypted file in write or read mode. You need to pass a binary key to encrypt/decrypt it.
[b]Note:[/b] The provided key must be 32 bytes long.
+ Returns [code]null[/code] if opening the file failed. You can use [method get_open_error] to check the error that ocurred.
</description>
</method>
- <method name="open_encrypted_with_pass">
- <return type="int" enum="Error" />
+ <method name="open_encrypted_with_pass" qualifiers="static">
+ <return type="FileAccess" />
<param index="0" name="path" type="String" />
- <param index="1" name="mode_flags" type="int" enum="File.ModeFlags" />
+ <param index="1" name="mode_flags" type="int" enum="FileAccess.ModeFlags" />
<param index="2" name="pass" type="String" />
<description>
- Opens an encrypted file in write or read mode. You need to pass a password to encrypt/decrypt it.
+ Creates a new [FileAccess] object and opens an encrypted file in write or read mode. You need to pass a password to encrypt/decrypt it.
+ Returns [code]null[/code] if opening the file failed. You can use [method get_open_error] to check the error that ocurred.
</description>
</method>
<method name="seek">
@@ -432,7 +433,7 @@
</method>
</methods>
<members>
- <member name="big_endian" type="bool" setter="set_big_endian" getter="is_big_endian" default="false">
+ <member name="big_endian" type="bool" setter="set_big_endian" getter="is_big_endian">
If [code]true[/code], the file is read with big-endian [url=https://en.wikipedia.org/wiki/Endianness]endianness[/url]. If [code]false[/code], the file is read with little-endian endianness. If in doubt, leave this to [code]false[/code] as most files are written with little-endian endianness.
[b]Note:[/b] [member big_endian] is only about the file format, not the CPU type. The CPU endianness doesn't affect the default endianness for files written.
[b]Note:[/b] This is always reset to [code]false[/code] whenever you open the file. Therefore, you must set [member big_endian] [i]after[/i] opening the file, not before.
diff --git a/doc/classes/Geometry2D.xml b/doc/classes/Geometry2D.xml
index 392ca2cabb..e613ab1a55 100644
--- a/doc/classes/Geometry2D.xml
+++ b/doc/classes/Geometry2D.xml
@@ -126,7 +126,7 @@
<return type="Dictionary" />
<param index="0" name="sizes" type="PackedVector2Array" />
<description>
- Given an array of [Vector2]s representing tiles, builds an atlas. The returned dictionary has two keys: [code]points[/code] is an array of [Vector2] that specifies the positions of each tile, [code]size[/code] contains the overall size of the whole atlas as [Vector2].
+ Given an array of [Vector2]s representing tiles, builds an atlas. The returned dictionary has two keys: [code]points[/code] is a [PackedVector2Array] that specifies the positions of each tile, [code]size[/code] contains the overall size of the whole atlas as [Vector2i].
</description>
</method>
<method name="merge_polygons">
diff --git a/doc/classes/LightmapGI.xml b/doc/classes/LightmapGI.xml
index dd8c7be489..53dae1a8e6 100644
--- a/doc/classes/LightmapGI.xml
+++ b/doc/classes/LightmapGI.xml
@@ -17,7 +17,7 @@
<member name="bias" type="float" setter="set_bias" getter="get_bias" default="0.0005">
The bias to use when computing shadows. Increasing [member bias] can fix shadow acne on the resulting baked lightmap, but can introduce peter-panning (shadows not connecting to their casters). Real-time [Light3D] shadows are not affected by this [member bias] property.
</member>
- <member name="bounces" type="int" setter="set_bounces" getter="get_bounces" default="1">
+ <member name="bounces" type="int" setter="set_bounces" getter="get_bounces" default="3">
Number of light bounces that are taken into account during baking. Higher values result in brighter, more realistic lighting, at the cost of longer bake times. If set to [code]0[/code], only environment lighting, direct light and emissive lighting is baked.
</member>
<member name="camera_attributes" type="CameraAttributes" setter="set_camera_attributes" getter="get_camera_attributes">
@@ -36,10 +36,10 @@
<member name="environment_custom_sky" type="Sky" setter="set_environment_custom_sky" getter="get_environment_custom_sky">
The sky to use as a source of environment lighting. Only effective if [member environment_mode] is [constant ENVIRONMENT_MODE_CUSTOM_SKY].
</member>
- <member name="environment_mode" type="int" setter="set_environment_mode" getter="get_environment_mode" enum="LightmapGI.EnvironmentMode" default="0">
+ <member name="environment_mode" type="int" setter="set_environment_mode" getter="get_environment_mode" enum="LightmapGI.EnvironmentMode" default="1">
The environment mode to use when baking lightmaps.
</member>
- <member name="generate_probes_subdiv" type="int" setter="set_generate_probes" getter="get_generate_probes" enum="LightmapGI.GenerateProbes" default="0">
+ <member name="generate_probes_subdiv" type="int" setter="set_generate_probes" getter="get_generate_probes" enum="LightmapGI.GenerateProbes" default="2">
The level of subdivision to use when automatically generating [LightmapProbe]s for dynamic object lighting. Higher values result in more accurate indirect lighting on dynamic objects, at the cost of longer bake times and larger file sizes.
[b]Note:[/b] Automatically generated [LightmapProbe]s are not visible as nodes in the Scene tree dock, and cannot be modified this way after they are generated.
[b]Note:[/b] Regardless of [member generate_probes_subdiv], direct lighting on dynamic objects is always applied using [Light3D] nodes in real-time.
diff --git a/doc/classes/Node3D.xml b/doc/classes/Node3D.xml
index c8e2f1ac68..96ce10745d 100644
--- a/doc/classes/Node3D.xml
+++ b/doc/classes/Node3D.xml
@@ -331,6 +331,10 @@
<constant name="NOTIFICATION_VISIBILITY_CHANGED" value="43">
Node3D nodes receives this notification when their visibility changes.
</constant>
+ <constant name="NOTIFICATION_LOCAL_TRANSFORM_CHANGED" value="44">
+ Node3D nodes receives this notification when their local transform changes. This is not received when the transform of a parent node is changed.
+ In order for [constant NOTIFICATION_LOCAL_TRANSFORM_CHANGED] to work, users first need to ask for it, with [method set_notify_local_transform].
+ </constant>
<constant name="ROTATION_EDIT_MODE_EULER" value="0" enum="RotationEditMode">
</constant>
<constant name="ROTATION_EDIT_MODE_QUATERNION" value="1" enum="RotationEditMode">
diff --git a/doc/classes/OS.xml b/doc/classes/OS.xml
index 54f31d7918..d920c45de4 100644
--- a/doc/classes/OS.xml
+++ b/doc/classes/OS.xml
@@ -522,7 +522,7 @@
<return type="int" enum="Error" />
<param index="0" name="path" type="String" />
<description>
- Moves the file or directory to the system's recycle bin. See also [method Directory.remove].
+ Moves the file or directory to the system's recycle bin. See also [method DirAccess.remove].
The method takes only global paths, so you may need to use [method ProjectSettings.globalize_path]. Do not use it for files in [code]res://[/code] as it will not work in exported project.
[b]Note:[/b] If the user has disabled the recycle bin on their system, the file will be permanently deleted instead.
[codeblock]
diff --git a/doc/classes/PackedByteArray.xml b/doc/classes/PackedByteArray.xml
index efb559522a..ccf012f82c 100644
--- a/doc/classes/PackedByteArray.xml
+++ b/doc/classes/PackedByteArray.xml
@@ -65,7 +65,7 @@
<return type="PackedByteArray" />
<param index="0" name="compression_mode" type="int" default="0" />
<description>
- Returns a new [PackedByteArray] with the data compressed. Set the compression mode using one of [enum File.CompressionMode]'s constants.
+ Returns a new [PackedByteArray] with the data compressed. Set the compression mode using one of [enum FileAccess.CompressionMode]'s constants.
</description>
</method>
<method name="count" qualifiers="const">
@@ -173,7 +173,7 @@
<param index="0" name="buffer_size" type="int" />
<param index="1" name="compression_mode" type="int" default="0" />
<description>
- Returns a new [PackedByteArray] with the data decompressed. Set [param buffer_size] to the size of the uncompressed data. Set the compression mode using one of [enum File.CompressionMode]'s constants.
+ Returns a new [PackedByteArray] with the data decompressed. Set [param buffer_size] to the size of the uncompressed data. Set the compression mode using one of [enum FileAccess.CompressionMode]'s constants.
</description>
</method>
<method name="decompress_dynamic" qualifiers="const">
@@ -181,7 +181,7 @@
<param index="0" name="max_output_size" type="int" />
<param index="1" name="compression_mode" type="int" default="0" />
<description>
- Returns a new [PackedByteArray] with the data decompressed. Set the compression mode using one of [enum File.CompressionMode]'s constants. [b]This method only accepts gzip and deflate compression modes.[/b]
+ Returns a new [PackedByteArray] with the data decompressed. Set the compression mode using one of [enum FileAccess.CompressionMode]'s constants. [b]This method only accepts gzip and deflate compression modes.[/b]
This method is potentially slower than [code]decompress[/code], as it may have to re-allocate its output buffer multiple times while decompressing, whereas [code]decompress[/code] knows it's output buffer size from the beginning.
GZIP has a maximal compression ratio of 1032:1, meaning it's very possible for a small compressed payload to decompress to a potentially very large output. To guard against this, you may provide a maximum size this function is allowed to allocate in bytes via [param max_output_size]. Passing -1 will allow for unbounded output. If any positive value is passed, and the decompression exceeds that amount in bytes, then an error will be returned.
</description>
diff --git a/doc/classes/PhysicsBody2D.xml b/doc/classes/PhysicsBody2D.xml
index e8d7ac9920..59660b4de5 100644
--- a/doc/classes/PhysicsBody2D.xml
+++ b/doc/classes/PhysicsBody2D.xml
@@ -28,11 +28,13 @@
<param index="0" name="distance" type="Vector2" />
<param index="1" name="test_only" type="bool" default="false" />
<param index="2" name="safe_margin" type="float" default="0.08" />
+ <param index="3" name="recovery_as_collision" type="bool" default="false" />
<description>
Moves the body along the vector [param distance]. In order to be frame rate independent in [method Node._physics_process] or [method Node._process], [param distance] should be computed using [code]delta[/code].
Returns a [KinematicCollision2D], which contains information about the collision when stopped, or when touching another body along the motion.
If [param test_only] is [code]true[/code], the body does not move but the would-be collision information is given.
[param safe_margin] is the extra margin used for collision recovery (see [member CharacterBody2D.safe_margin] for more details).
+ If [param recovery_as_collision] is [code]true[/code], any depenetration from the recovery phase is also reported as a collision; this is used e.g. by [CharacterBody2D] for improving floor detection during floor snapping.
</description>
</method>
<method name="remove_collision_exception_with">
@@ -48,11 +50,13 @@
<param index="1" name="distance" type="Vector2" />
<param index="2" name="collision" type="KinematicCollision2D" default="null" />
<param index="3" name="safe_margin" type="float" default="0.08" />
+ <param index="4" name="recovery_as_collision" type="bool" default="false" />
<description>
Checks for collisions without moving the body. In order to be frame rate independent in [method Node._physics_process] or [method Node._process], [param distance] should be computed using [code]delta[/code].
Virtually sets the node's position, scale and rotation to that of the given [Transform2D], then tries to move the body along the vector [param distance]. Returns [code]true[/code] if a collision would stop the body from moving along the whole path.
[param collision] is an optional object of type [KinematicCollision2D], which contains additional information about the collision when stopped, or when touching another body along the motion.
[param safe_margin] is the extra margin used for collision recovery (see [member CharacterBody2D.safe_margin] for more details).
+ If [param recovery_as_collision] is [code]true[/code], any depenetration from the recovery phase is also reported as a collision; this is useful for checking whether the body would [i]touch[/i] any other bodies.
</description>
</method>
</methods>
diff --git a/doc/classes/PhysicsBody3D.xml b/doc/classes/PhysicsBody3D.xml
index 310671274f..bf7882a1ea 100644
--- a/doc/classes/PhysicsBody3D.xml
+++ b/doc/classes/PhysicsBody3D.xml
@@ -35,12 +35,14 @@
<param index="0" name="distance" type="Vector3" />
<param index="1" name="test_only" type="bool" default="false" />
<param index="2" name="safe_margin" type="float" default="0.001" />
- <param index="3" name="max_collisions" type="int" default="1" />
+ <param index="3" name="recovery_as_collision" type="bool" default="false" />
+ <param index="4" name="max_collisions" type="int" default="1" />
<description>
Moves the body along the vector [param distance]. In order to be frame rate independent in [method Node._physics_process] or [method Node._process], [param distance] should be computed using [code]delta[/code].
The body will stop if it collides. Returns a [KinematicCollision3D], which contains information about the collision when stopped, or when touching another body along the motion.
If [param test_only] is [code]true[/code], the body does not move but the would-be collision information is given.
[param safe_margin] is the extra margin used for collision recovery (see [member CharacterBody3D.safe_margin] for more details).
+ If [param recovery_as_collision] is [code]true[/code], any depenetration from the recovery phase is also reported as a collision; this is used e.g. by [CharacterBody3D] for improving floor detection during floor snapping.
[param max_collisions] allows to retrieve more than one collision result.
</description>
</method>
@@ -65,12 +67,14 @@
<param index="1" name="distance" type="Vector3" />
<param index="2" name="collision" type="KinematicCollision3D" default="null" />
<param index="3" name="safe_margin" type="float" default="0.001" />
- <param index="4" name="max_collisions" type="int" default="1" />
+ <param index="4" name="recovery_as_collision" type="bool" default="false" />
+ <param index="5" name="max_collisions" type="int" default="1" />
<description>
Checks for collisions without moving the body. In order to be frame rate independent in [method Node._physics_process] or [method Node._process], [param distance] should be computed using [code]delta[/code].
Virtually sets the node's position, scale and rotation to that of the given [Transform3D], then tries to move the body along the vector [param distance]. Returns [code]true[/code] if a collision would stop the body from moving along the whole path.
[param collision] is an optional object of type [KinematicCollision3D], which contains additional information about the collision when stopped, or when touching another body along the motion.
[param safe_margin] is the extra margin used for collision recovery (see [member CharacterBody3D.safe_margin] for more details).
+ If [param recovery_as_collision] is [code]true[/code], any depenetration from the recovery phase is also reported as a collision; this is useful for checking whether the body would [i]touch[/i] any other bodies.
[param max_collisions] allows to retrieve more than one collision result.
</description>
</method>
diff --git a/doc/classes/PhysicsTestMotionParameters2D.xml b/doc/classes/PhysicsTestMotionParameters2D.xml
index 4f2b62f2d9..d8f96511dd 100644
--- a/doc/classes/PhysicsTestMotionParameters2D.xml
+++ b/doc/classes/PhysicsTestMotionParameters2D.xml
@@ -29,8 +29,8 @@
Motion vector to define the length and direction of the motion to test.
</member>
<member name="recovery_as_collision" type="bool" setter="set_recovery_as_collision_enabled" getter="is_recovery_as_collision_enabled" default="false">
- If set to [code]true[/code], any depenetration from the recovery phase is reported as a collision; this is used e.g. by [method CharacterBody2D.move_and_slide] for improving floor detection when floor snapping is disabled.
- If set to [code]false[/code], only collisions resulting from the motion are reported; this is used e.g. by [method PhysicsBody2D.move_and_collide].
+ If set to [code]true[/code], any depenetration from the recovery phase is reported as a collision; this is used e.g. by [CharacterBody2D] for improving floor detection during floor snapping.
+ If set to [code]false[/code], only collisions resulting from the motion are reported, which is generally the desired behaviour.
</member>
</members>
</class>
diff --git a/doc/classes/PhysicsTestMotionParameters3D.xml b/doc/classes/PhysicsTestMotionParameters3D.xml
index 5b07796a10..e8f80ae131 100644
--- a/doc/classes/PhysicsTestMotionParameters3D.xml
+++ b/doc/classes/PhysicsTestMotionParameters3D.xml
@@ -32,8 +32,8 @@
Motion vector to define the length and direction of the motion to test.
</member>
<member name="recovery_as_collision" type="bool" setter="set_recovery_as_collision_enabled" getter="is_recovery_as_collision_enabled" default="false">
- If set to [code]true[/code], any depenetration from the recovery phase is reported as a collision; this is used e.g. by [method CharacterBody3D.move_and_slide] for improving floor detection when floor snapping is disabled.
- If set to [code]false[/code], only collisions resulting from the motion are detected; this is used e.g. by [method PhysicsBody3D.move_and_collide].
+ If set to [code]true[/code], any depenetration from the recovery phase is reported as a collision; this is used e.g. by [CharacterBody3D] for improving floor detection during floor snapping.
+ If set to [code]false[/code], only collisions resulting from the motion are reported, which is generally the desired behaviour.
</member>
</members>
</class>
diff --git a/doc/classes/ProjectSettings.xml b/doc/classes/ProjectSettings.xml
index ffd3dbaf80..7c0ce656ab 100644
--- a/doc/classes/ProjectSettings.xml
+++ b/doc/classes/ProjectSettings.xml
@@ -159,6 +159,15 @@
Sets the order of a configuration value (influences when saved to the config file).
</description>
</method>
+ <method name="set_restart_if_changed">
+ <return type="void" />
+ <param index="0" name="name" type="String" />
+ <param index="1" name="restart" type="bool" />
+ <description>
+ Sets whether a setting requires restarting the editor to properly take effect.
+ [b]Note:[/b] This is just a hint to display to the user that the editor must be restarted for changes to take effect. Enabling [method set_restart_if_changed] does [i]not[/i] delay the setting being set when changed.
+ </description>
+ </method>
<method name="set_setting">
<return type="void" />
<param index="0" name="name" type="String" />
diff --git a/doc/classes/ResourceSaver.xml b/doc/classes/ResourceSaver.xml
index b0c9056cbc..8cd701e0d8 100644
--- a/doc/classes/ResourceSaver.xml
+++ b/doc/classes/ResourceSaver.xml
@@ -62,10 +62,10 @@
Do not save editor-specific metadata (identified by their [code]__editor[/code] prefix).
</constant>
<constant name="FLAG_SAVE_BIG_ENDIAN" value="16" enum="SaverFlags" is_bitfield="true">
- Save as big endian (see [member File.big_endian]).
+ Save as big endian (see [member FileAccess.big_endian]).
</constant>
<constant name="FLAG_COMPRESS" value="32" enum="SaverFlags" is_bitfield="true">
- Compress the resource on save using [constant File.COMPRESSION_ZSTD]. Only available for binary resource types.
+ Compress the resource on save using [constant FileAccess.COMPRESSION_ZSTD]. Only available for binary resource types.
</constant>
<constant name="FLAG_REPLACE_SUBRESOURCE_PATHS" value="64" enum="SaverFlags" is_bitfield="true">
Take over the paths of the saved subresources (see [method Resource.take_over_path]).
diff --git a/doc/classes/StreamPeerBuffer.xml b/doc/classes/StreamPeerBuffer.xml
index 4bef9f44b7..f33c38e595 100644
--- a/doc/classes/StreamPeerBuffer.xml
+++ b/doc/classes/StreamPeerBuffer.xml
@@ -4,7 +4,7 @@
Data buffer stream peer.
</brief_description>
<description>
- Data buffer stream peer that uses a byte array as the stream. This object can be used to handle binary data from network sessions. To handle binary data stored in files, [File] can be used directly.
+ Data buffer stream peer that uses a byte array as the stream. This object can be used to handle binary data from network sessions. To handle binary data stored in files, [FileAccess] can be used directly.
A [StreamPeerBuffer] object keeps an internal cursor which is the offset in bytes to the start of the buffer. Get and put operations are performed at the cursor position and will move the cursor accordingly.
</description>
<tutorials>
diff --git a/doc/classes/UndoRedo.xml b/doc/classes/UndoRedo.xml
index 3ef59b1c39..7258efbdda 100644
--- a/doc/classes/UndoRedo.xml
+++ b/doc/classes/UndoRedo.xml
@@ -62,12 +62,11 @@
<tutorials>
</tutorials>
<methods>
- <method name="add_do_method" qualifiers="vararg">
+ <method name="add_do_method">
<return type="void" />
- <param index="0" name="object" type="Object" />
- <param index="1" name="method" type="StringName" />
+ <param index="0" name="callable" type="Callable" />
<description>
- Register a [param method] that will be called when the action is committed.
+ Register a [Callable] that will be called when the action is committed.
</description>
</method>
<method name="add_do_property">
@@ -86,12 +85,11 @@
Register a reference for "do" that will be erased if the "do" history is lost. This is useful mostly for new nodes created for the "do" call. Do not use for resources.
</description>
</method>
- <method name="add_undo_method" qualifiers="vararg">
+ <method name="add_undo_method">
<return type="void" />
- <param index="0" name="object" type="Object" />
- <param index="1" name="method" type="StringName" />
+ <param index="0" name="callable" type="Callable" />
<description>
- Register a [param method] that will be called when the action is undone.
+ Register a [Callable] that will be called when the action is undone.
</description>
</method>
<method name="add_undo_property">