diff options
Diffstat (limited to 'doc/classes')
30 files changed, 230 insertions, 88 deletions
diff --git a/doc/classes/@GlobalScope.xml b/doc/classes/@GlobalScope.xml index 755902c709..c47ce81651 100644 --- a/doc/classes/@GlobalScope.xml +++ b/doc/classes/@GlobalScope.xml @@ -1069,7 +1069,7 @@ <member name="TranslationServer" type="TranslationServer" setter="" getter=""> The [TranslationServer] singleton. </member> - <member name="VisualScriptEditor" type="VisualScriptCustomNodes" setter="" getter=""> + <member name="VisualScriptCustomNodes" type="VisualScriptCustomNodes" setter="" getter=""> The [VisualScriptCustomNodes] singleton. </member> <member name="XRServer" type="XRServer" setter="" getter=""> diff --git a/doc/classes/Array.xml b/doc/classes/Array.xml index 02c6b18d55..91450e50a4 100644 --- a/doc/classes/Array.xml +++ b/doc/classes/Array.xml @@ -495,7 +495,7 @@ <argument index="2" name="step" type="int" default="1" /> <argument index="3" name="deep" type="bool" default="false" /> <description> - Duplicates the subset described in the function and returns it in an array, deeply copying the array if [code]deep[/code] is [code]true[/code]. Lower and upper index are inclusive, with the [code]step[/code] describing the change between indices while slicing. If [code]end[/code] is an invalid value, the end of the array is used. + Duplicates the subset described in the function and returns it in an array, deeply copying the array if [code]deep[/code] is [code]true[/code]. Lower and upper index are inclusive, with the [code]step[/code] describing the change between indices while slicing. Wraps around if [code]begin[/code] or [code]end[/code] are out of bounds or negative. Returns an empty array for invalid parameters. </description> </method> <method name="sort"> diff --git a/doc/classes/Camera3D.xml b/doc/classes/Camera3D.xml index 8a91a91b22..cd17a31e23 100644 --- a/doc/classes/Camera3D.xml +++ b/doc/classes/Camera3D.xml @@ -26,7 +26,7 @@ <method name="get_camera_transform" qualifiers="const"> <return type="Transform3D" /> <description> - Gets the camera transform. Subclassed cameras such as [ClippedCamera3D] may provide different transforms than the [Node] transform. + Returns the transform of the camera plus the vertical ([member v_offset]) and horizontal ([member h_offset]) offsets; and any other adjustments made to the position and orientation of the camera by subclassed cameras such as [ClippedCamera3D] and [XRCamera3D]. </description> </method> <method name="get_cull_mask_value" qualifiers="const"> diff --git a/doc/classes/CanvasItem.xml b/doc/classes/CanvasItem.xml index 4641bc52a4..501f89fa0d 100644 --- a/doc/classes/CanvasItem.xml +++ b/doc/classes/CanvasItem.xml @@ -115,7 +115,7 @@ <argument index="4" name="outline" type="float" default="0.0" /> <argument index="5" name="pixel_range" type="float" default="4.0" /> <description> - Draws a textured rectangle region of the multi-channel signed distance field texture at a given position, optionally modulated by a color. + Draws a textured rectangle region of the multi-channel signed distance field texture at a given position, optionally modulated by a color. See [method FontData.set_multichannel_signed_distance_field] for more information and caveats about MSDF font rendering. If [code]outline[/code] is positive, each alpha channel value of pixel in region is set to maximum value of true distance in the [code]outline[/code] radius. Value of the [code]pixel_range[/code] should the same that was used during distance field texture generation. </description> diff --git a/doc/classes/ClassDB.xml b/doc/classes/ClassDB.xml index 063233fe50..62165a5fce 100644 --- a/doc/classes/ClassDB.xml +++ b/doc/classes/ClassDB.xml @@ -30,6 +30,23 @@ Returns a category associated with the class for use in documentation and the Asset Library. Debug mode required. </description> </method> + <method name="class_get_enum_constants" qualifiers="const"> + <return type="PackedStringArray" /> + <argument index="0" name="class" type="StringName" /> + <argument index="1" name="enum" type="StringName" /> + <argument index="2" name="no_inheritance" type="bool" default="false" /> + <description> + Returns an array with all the keys in [code]enum[/code] of [code]class[/code] or its ancestry. + </description> + </method> + <method name="class_get_enum_list" qualifiers="const"> + <return type="PackedStringArray" /> + <argument index="0" name="class" type="StringName" /> + <argument index="1" name="no_inheritance" type="bool" default="false" /> + <description> + Returns an array with all the enums of [code]class[/code] or its ancestry. + </description> + </method> <method name="class_get_integer_constant" qualifiers="const"> <return type="int" /> <argument index="0" name="class" type="StringName" /> @@ -38,6 +55,15 @@ Returns the value of the integer constant [code]name[/code] of [code]class[/code] or its ancestry. Always returns 0 when the constant could not be found. </description> </method> + <method name="class_get_integer_constant_enum" qualifiers="const"> + <return type="StringName" /> + <argument index="0" name="class" type="StringName" /> + <argument index="1" name="name" type="StringName" /> + <argument index="2" name="no_inheritance" type="bool" default="false" /> + <description> + Returns which enum the integer constant [code]name[/code] of [code]class[/code] or its ancestry belongs to. + </description> + </method> <method name="class_get_integer_constant_list" qualifiers="const"> <return type="PackedStringArray" /> <argument index="0" name="class" type="StringName" /> @@ -87,6 +113,15 @@ Returns an array with all the signals of [code]class[/code] or its ancestry if [code]no_inheritance[/code] is [code]false[/code]. Every element of the array is a [Dictionary] as described in [method class_get_signal]. </description> </method> + <method name="class_has_enum" qualifiers="const"> + <return type="bool" /> + <argument index="0" name="class" type="StringName" /> + <argument index="1" name="name" type="StringName" /> + <argument index="2" name="no_inheritance" type="bool" default="false" /> + <description> + Returns whether [code]class[/code] or its ancestry has an enum called [code]name[/code] or not. + </description> + </method> <method name="class_has_integer_constant" qualifiers="const"> <return type="bool" /> <argument index="0" name="class" type="StringName" /> diff --git a/doc/classes/ConfigFile.xml b/doc/classes/ConfigFile.xml index 249e2a8f80..ce976e3d8b 100644 --- a/doc/classes/ConfigFile.xml +++ b/doc/classes/ConfigFile.xml @@ -84,6 +84,7 @@ } [/csharp] [/codeblocks] + Any operation that mutates the ConfigFile such as [method set_value], [method clear], or [method erase_section], only changes what is loaded in memory. If you want to write the change to a file, you have to save the changes with [method save], [method save_encrypted], or [method save_encrypted_pass]. Keep in mind that section and property names can't contain spaces. Anything after a space will be ignored on save and on load. ConfigFiles can also contain manually written comment lines starting with a semicolon ([code];[/code]). Those lines will be ignored when parsing the file. Note that comments will be lost when saving the ConfigFile. This can still be useful for dedicated server configuration files, which are typically never overwritten without explicit user action. [b]Note:[/b] The file extension given to a ConfigFile does not have any impact on its formatting or behavior. By convention, the [code].cfg[/code] extension is used here, but any other extension such as [code].ini[/code] is also valid. Since neither [code].cfg[/code] nor [code].ini[/code] are standardized, Godot's ConfigFile formatting may differ from files written by other programs. @@ -94,6 +95,7 @@ <method name="clear"> <return type="void" /> <description> + Removes the entire contents of the config. </description> </method> <method name="erase_section"> diff --git a/doc/classes/Cubemap.xml b/doc/classes/Cubemap.xml index 61cb1d43f0..9e31ee8a92 100644 --- a/doc/classes/Cubemap.xml +++ b/doc/classes/Cubemap.xml @@ -1,8 +1,12 @@ <?xml version="1.0" encoding="UTF-8" ?> <class name="Cubemap" inherits="ImageTextureLayered" version="4.0"> <brief_description> + 6-sided texture typically used in 3D rendering. </brief_description> <description> + A cubemap is a 6-sided texture typically used for faking reflections in 3D rendering. It can be used to make an object look as if it's reflecting its surroundings. This usually delivers much better performance than other reflection methods. + This resource is typically used as a uniform in custom shaders. Few core Godot methods make use of Cubemap resources. + [b]Note:[/b] Godot doesn't support using cubemaps as a [PanoramaSkyMaterial]. You can use [url=https://danilw.github.io/GLSL-howto/cubemap_to_panorama_js/cubemap_to_panorama.html]this tool[/url] to convert a cube map to an equirectangular sky map. </description> <tutorials> </tutorials> diff --git a/doc/classes/EditorCommandPalette.xml b/doc/classes/EditorCommandPalette.xml index 743c59eec2..1d3b21255f 100644 --- a/doc/classes/EditorCommandPalette.xml +++ b/doc/classes/EditorCommandPalette.xml @@ -1,8 +1,26 @@ <?xml version="1.0" encoding="UTF-8" ?> <class name="EditorCommandPalette" inherits="ConfirmationDialog" version="4.0"> <brief_description> + Godot editor's command palette. </brief_description> <description> + Object that holds all the available Commands and their shortcuts text. These Commands can be accessed through [b]Editor > Command Palette[/b] menu. + Command key names use slash delimiters to distinguish sections Example: [code]"example/command1"[/code] then [code]example[/code] will be the section name. + [codeblocks] + [gdscript] + var command_palette = get_editor_interface().get_command_palette() + # external_command is a function that will be called with the command is executed. + var command_callable = Callable(self, "external_command").bind(arguments) + command_palette.add_command("command", "test/command",command_callable) + [/gdscript] + [csharp] + EditorCommandPalette commandPalette = GetEditorInterface().GetCommandPalette(); + // ExternalCommand is a function that will be called with the command is executed. + Callable commandCallable = new Callable(this, nameof(ExternalCommand)); + commandPalette.AddCommand("command", "test/command", commandCallable) + [/csharp] + [/codeblocks] + [b]Note:[/b] This class shouldn't be instantiated directly. Instead, access the singleton using [method EditorInterface.get_command_palette]. </description> <tutorials> </tutorials> @@ -14,12 +32,19 @@ <argument index="2" name="binded_callable" type="Callable" /> <argument index="3" name="shortcut_text" type="String" default=""None"" /> <description> + Adds a custom command to EditorCommandPalette. + - [code]command_name[/code]: [String] (Name of the [b]Command[/b]. This is displayed to the user.) + - [code]key_name[/code]: [String] (Name of the key for a particular [b]Command[/b]. This is used to uniquely identify the [b]Command[/b].) + - [code]binded_callable[/code]: [Callable] (Callable of the [b]Command[/b]. This will be executed when the [b]Command[/b] is selected.) + - [code]shortcut_text[/code]: [String] (Shortcut text of the [b]Command[/b] if available.) </description> </method> <method name="remove_command"> <return type="void" /> <argument index="0" name="key_name" type="String" /> <description> + Removes the custom command from EditorCommandPalette. + - [code]key_name[/code]: [String] (Name of the key for a particular [b]Command[/b].) </description> </method> </methods> diff --git a/doc/classes/EditorInterface.xml b/doc/classes/EditorInterface.xml index 91e1dfbf57..8558f4b9f7 100644 --- a/doc/classes/EditorInterface.xml +++ b/doc/classes/EditorInterface.xml @@ -33,6 +33,7 @@ <method name="get_command_palette" qualifiers="const"> <return type="EditorCommandPalette" /> <description> + Returns the editor's [EditorCommandPalette] instance. </description> </method> <method name="get_current_path" qualifiers="const"> diff --git a/doc/classes/File.xml b/doc/classes/File.xml index 8ecdc8b220..cf08029c72 100644 --- a/doc/classes/File.xml +++ b/doc/classes/File.xml @@ -58,8 +58,20 @@ <method name="eof_reached" qualifiers="const"> <return type="bool" /> <description> - Returns [code]true[/code] if the file cursor has read past the end of the file. - [b]Note:[/b] This function will still return [code]false[/code] while at the end of the file and only activates when reading past it. This can be confusing but it conforms to how low-level file access works in all operating systems. There is always [method get_length] and [method get_position] to implement a custom logic. + Returns [code]true[/code] if the file cursor has already read past the end of the file. + [b]Note:[/b] [code]eof_reached() == false[/code] cannot be used to check whether there is more data available. To loop while there is more data available, use: + [codeblocks] + [gdscript] + while file.get_position() < file.get_length(): + # Read data + [/gdscript] + [csharp] + while (file.GetPosition() < file.GetLength()) + { + // Read data + } + [/csharp] + [/codeblocks] </description> </method> <method name="file_exists" qualifiers="const"> diff --git a/doc/classes/FontData.xml b/doc/classes/FontData.xml index 72af7ca485..384d7c81f4 100644 --- a/doc/classes/FontData.xml +++ b/doc/classes/FontData.xml @@ -558,7 +558,8 @@ <return type="void" /> <argument index="0" name="msdf" type="bool" /> <description> - If set to [code]true[/code], glyphs of all sizes are rendered using single multichannel signed distance field generated from the dynamic font vector data. + If set to [code]true[/code], glyphs of all sizes are rendered using single multichannel signed distance field (MSDF) generated from the dynamic font vector data. MSDF rendering allows displaying the font at any scaling factor without blurriness, and without incurring a CPU cost when the font size changes (since the font no longer needs to be rasterized on the CPU). As a downside, font hinting is not available with MSDF. The lack of font hinting may result in less crisp and less readable fonts at small sizes. + [b]Note:[/b] MSDF font rendering does not render glyphs with overlapping shapes correctly. Overlapping shapes are not valid per the OpenType standard, but are still commonly found in many font files, especially those converted by Google Fonts. To avoid issues with overlapping glyphs, consider downloading the font file directly from the type foundry instead of relying on Google Fonts. </description> </method> <method name="set_oversampling"> diff --git a/doc/classes/MainLoop.xml b/doc/classes/MainLoop.xml index 11124a1436..1df00f556a 100644 --- a/doc/classes/MainLoop.xml +++ b/doc/classes/MainLoop.xml @@ -5,15 +5,14 @@ </brief_description> <description> [MainLoop] is the abstract base class for a Godot project's game loop. It is inherited by [SceneTree], which is the default game loop implementation used in Godot projects, though it is also possible to write and use one's own [MainLoop] subclass instead of the scene tree. - Upon the application start, a [MainLoop] implementation must be provided to the OS; otherwise, the application will exit. This happens automatically (and a [SceneTree] is created) unless a main [Script] is provided from the command line (with e.g. [code]godot -s my_loop.gd[/code], which should then be a [MainLoop] implementation. + Upon the application start, a [MainLoop] implementation must be provided to the OS; otherwise, the application will exit. This happens automatically (and a [SceneTree] is created) unless a [MainLoop] [Script] is provided from the command line (with e.g. [code]godot -s my_loop.gd[/code] or the "Main Loop Type" project setting is overwritten. Here is an example script implementing a simple [MainLoop]: - [b]FIXME:[/b] No longer valid after DisplayServer split and Input refactoring. - [codeblock] + [codeblocks] + [gdscript] + class_name CustomMainLoop extends MainLoop var time_elapsed = 0 - var keys_typed = [] - var quit = false func _initialize(): print("Initialized:") @@ -22,24 +21,41 @@ func _process(delta): time_elapsed += delta # Return true to end the main loop. - return quit - - func _input_event(event): - # Record keys. - if event is InputEventKey and event.pressed and !event.echo: - keys_typed.append(OS.get_keycode_string(event.keycode)) - # Quit on Escape press. - if event.keycode == KEY_ESCAPE: - quit = true - # Quit on any mouse click. - if event is InputEventMouseButton: - quit = true + return Input.get_mouse_button_mask() != 0 || Input.is_key_pressed(KEY_ESCAPE) func _finalize(): print("Finalized:") print(" End time: %s" % str(time_elapsed)) - print(" Keys typed: %s" % var2str(keys_typed)) - [/codeblock] + [/gdscript] + [csharp] + using Godot; + using System; + + public class CustomMainLoop : MainLoop + { + public float TimeElapsed = 0; + + public override void _Initialize() + { + GD.Print("Initialized:"); + GD.Print($" Starting Time: {TimeElapsed}"); + } + + public override bool _Process(float delta) + { + TimeElapsed += delta; + // Return true to end the main loop. + return Input.GetMouseButtonMask() != 0 || Input.IsKeyPressed((int)KeyList.Escape); + } + + private void _Finalize() + { + GD.Print("Finalized:"); + GD.Print($" End Time: {TimeElapsed}"); + } + } + [/csharp] + [/codeblocks] </description> <tutorials> </tutorials> diff --git a/doc/classes/Mutex.xml b/doc/classes/Mutex.xml index f97b2344a5..0e6b1e3e44 100644 --- a/doc/classes/Mutex.xml +++ b/doc/classes/Mutex.xml @@ -14,18 +14,21 @@ <return type="void" /> <description> Locks this [Mutex], blocks until it is unlocked by the current owner. + [b]Note:[/b] This function returns without blocking if the thread already has ownership of the mutex. </description> </method> <method name="try_lock"> <return type="int" enum="Error" /> <description> Tries locking this [Mutex], but does not block. Returns [constant OK] on success, [constant ERR_BUSY] otherwise. + [b]Note:[/b] This function returns [constant OK] if the thread already has ownership of the mutex. </description> </method> <method name="unlock"> <return type="void" /> <description> Unlocks this [Mutex], leaving it to other threads. + [b]Note:[/b] If a thread called [method lock] or [method try_lock] multiple times while already having ownership of the mutex, it must also call [method unlock] the same number of times in order to unlock it correctly. </description> </method> </methods> diff --git a/doc/classes/Node2D.xml b/doc/classes/Node2D.xml index cc790b7c28..4f5c2bbd6e 100644 --- a/doc/classes/Node2D.xml +++ b/doc/classes/Node2D.xml @@ -23,6 +23,7 @@ <argument index="0" name="point" type="Vector2" /> <description> Returns the angle between the node and the [code]point[/code] in radians. + [url=https://raw.githubusercontent.com/godotengine/godot-docs/master/img/node2d_get_angle_to.png]Illustration of the returned angle.[/url] </description> </method> <method name="get_relative_transform_to_parent" qualifiers="const"> diff --git a/doc/classes/OS.xml b/doc/classes/OS.xml index 757730f6c8..305258c8c5 100644 --- a/doc/classes/OS.xml +++ b/doc/classes/OS.xml @@ -215,7 +215,7 @@ <method name="get_locale" qualifiers="const"> <return type="String" /> <description> - Returns the host OS locale as a string of the form [code]language_Script_COUNTRY_VARIANT@extra[/code]. + Returns the host OS locale as a string of the form [code]language_Script_COUNTRY_VARIANT@extra[/code]. If you want only the language code and not the fully specified locale from the OS, you can use [method get_locale_language]. [code]language[/code] - 2 or 3-letter [url=https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes]language code[/url], in lower case. [code]Script[/code] - optional, 4-letter [url=https://en.wikipedia.org/wiki/ISO_15924]script code[/url], in title case. [code]COUNTRY[/code] - optional, 2 or 3-letter [url=https://en.wikipedia.org/wiki/ISO_3166-1]country code[/url], in upper case. @@ -223,6 +223,13 @@ [code]extra[/code] - optional, semicolon separated list of additional key words. Currency, calendar, sort order and numbering system information. </description> </method> + <method name="get_locale_language" qualifiers="const"> + <return type="String" /> + <description> + Returns the host OS locale's 2 or 3-letter [url=https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes]language code[/url] as a string which should be consistent on all platforms. This is equivalent to extracting the [code]language[/code] part of the [method get_locale] string. + This can be used to narrow down fully specified locale strings to only the "common" language code, when you don't need the additional information about country code or variants. For example, for a French Canadian user with [code]fr_CA[/code] locale, this would return [code]fr[/code]. + </description> + </method> <method name="get_model_name" qualifiers="const"> <return type="String" /> <description> diff --git a/doc/classes/PhysicsServer2D.xml b/doc/classes/PhysicsServer2D.xml index b3b7fcd956..7e5d7ca704 100644 --- a/doc/classes/PhysicsServer2D.xml +++ b/doc/classes/PhysicsServer2D.xml @@ -823,7 +823,7 @@ Sets the value for a space parameter. See [enum SpaceParameter] for a list of available parameters. </description> </method> - <method name="world_margin_shape_create"> + <method name="world_boundary_shape_create"> <return type="RID" /> <description> </description> @@ -853,8 +853,8 @@ </constant> <constant name="SPACE_PARAM_TEST_MOTION_MIN_CONTACT_DEPTH" value="7" enum="SpaceParameter"> </constant> - <constant name="SHAPE_WORLD_MARGIN" value="0" enum="ShapeType"> - This is the constant for creating world margin shapes. A world margin shape is an [i]infinite[/i] line with an origin point, and a normal. Thus, it can be used for front/behind checks. + <constant name="SHAPE_WORLD_BOUNDARY" value="0" enum="ShapeType"> + This is the constant for creating world boundary shapes. A world boundary shape is an [i]infinite[/i] line with an origin point, and a normal. Thus, it can be used for front/behind checks. </constant> <constant name="SHAPE_SEPARATION_RAY" value="1" enum="ShapeType"> This is the constant for creating separation ray shapes. A separation ray is defined by a length and separates itself from what is touching its far endpoint. Useful for character controllers. diff --git a/doc/classes/PhysicsServer3D.xml b/doc/classes/PhysicsServer3D.xml index 2fbe84b8b1..c7db312b9d 100644 --- a/doc/classes/PhysicsServer3D.xml +++ b/doc/classes/PhysicsServer3D.xml @@ -855,11 +855,6 @@ Sets a pin_joint parameter (see [enum PinJointParam] constants). </description> </method> - <method name="plane_shape_create"> - <return type="RID" /> - <description> - </description> - </method> <method name="separation_ray_shape_create"> <return type="RID" /> <description> @@ -975,6 +970,11 @@ <description> </description> </method> + <method name="world_boundary_shape_create"> + <return type="RID" /> + <description> + </description> + </method> </methods> <constants> <constant name="JOINT_TYPE_PIN" value="0" enum="JointType"> @@ -1184,8 +1184,8 @@ <constant name="G6DOF_JOINT_FLAG_ENABLE_LINEAR_MOTOR" value="5" enum="G6DOFJointAxisFlag"> If [code]set[/code] there is a linear motor on this axis that targets a specific velocity. </constant> - <constant name="SHAPE_PLANE" value="0" enum="ShapeType"> - The [Shape3D] is a [WorldMarginShape3D]. + <constant name="SHAPE_WORLD_BOUNDARY" value="0" enum="ShapeType"> + The [Shape3D] is a [WorldBoundaryShape3D]. </constant> <constant name="SHAPE_SEPARATION_RAY" value="1" enum="ShapeType"> The [Shape3D] is a [SeparationRayShape3D]. diff --git a/doc/classes/ProjectSettings.xml b/doc/classes/ProjectSettings.xml index 6fdce591ec..22ed14743a 100644 --- a/doc/classes/ProjectSettings.xml +++ b/doc/classes/ProjectSettings.xml @@ -279,6 +279,9 @@ <member name="audio/driver/mix_rate" type="int" setter="" getter="" default="44100"> The mixing rate used for audio (in Hz). In general, it's better to not touch this and leave it to the host operating system. </member> + <member name="audio/driver/mix_rate.web" type="int" setter="" getter="" default="0"> + Safer override for [member audio/driver/mix_rate] in the Web platform. Here [code]0[/code] means "let the browser choose" (since some browsers do not like forcing the mix rate). + </member> <member name="audio/driver/output_latency" type="int" setter="" getter="" default="15"> Output latency in milliseconds for audio. Lower values will result in lower audio latency at the cost of increased CPU usage. Low values may result in audible cracking on slower hardware. </member> @@ -628,19 +631,19 @@ </member> <member name="input/ui_text_backspace_all_to_left" type="Dictionary" setter="" getter=""> </member> - <member name="input/ui_text_backspace_all_to_left.osx" type="Dictionary" setter="" getter=""> + <member name="input/ui_text_backspace_all_to_left.macos" type="Dictionary" setter="" getter=""> </member> <member name="input/ui_text_backspace_word" type="Dictionary" setter="" getter=""> </member> - <member name="input/ui_text_backspace_word.osx" type="Dictionary" setter="" getter=""> + <member name="input/ui_text_backspace_word.macos" type="Dictionary" setter="" getter=""> </member> <member name="input/ui_text_caret_document_end" type="Dictionary" setter="" getter=""> </member> - <member name="input/ui_text_caret_document_end.osx" type="Dictionary" setter="" getter=""> + <member name="input/ui_text_caret_document_end.macos" type="Dictionary" setter="" getter=""> </member> <member name="input/ui_text_caret_document_start" type="Dictionary" setter="" getter=""> </member> - <member name="input/ui_text_caret_document_start.osx" type="Dictionary" setter="" getter=""> + <member name="input/ui_text_caret_document_start.macos" type="Dictionary" setter="" getter=""> </member> <member name="input/ui_text_caret_down" type="Dictionary" setter="" getter=""> </member> @@ -648,11 +651,11 @@ </member> <member name="input/ui_text_caret_line_end" type="Dictionary" setter="" getter=""> </member> - <member name="input/ui_text_caret_line_end.osx" type="Dictionary" setter="" getter=""> + <member name="input/ui_text_caret_line_end.macos" type="Dictionary" setter="" getter=""> </member> <member name="input/ui_text_caret_line_start" type="Dictionary" setter="" getter=""> </member> - <member name="input/ui_text_caret_line_start.osx" type="Dictionary" setter="" getter=""> + <member name="input/ui_text_caret_line_start.macos" type="Dictionary" setter="" getter=""> </member> <member name="input/ui_text_caret_page_down" type="Dictionary" setter="" getter=""> </member> @@ -664,11 +667,11 @@ </member> <member name="input/ui_text_caret_word_left" type="Dictionary" setter="" getter=""> </member> - <member name="input/ui_text_caret_word_left.osx" type="Dictionary" setter="" getter=""> + <member name="input/ui_text_caret_word_left.macos" type="Dictionary" setter="" getter=""> </member> <member name="input/ui_text_caret_word_right" type="Dictionary" setter="" getter=""> </member> - <member name="input/ui_text_caret_word_right.osx" type="Dictionary" setter="" getter=""> + <member name="input/ui_text_caret_word_right.macos" type="Dictionary" setter="" getter=""> </member> <member name="input/ui_text_completion_accept" type="Dictionary" setter="" getter=""> </member> @@ -682,11 +685,11 @@ </member> <member name="input/ui_text_delete_all_to_right" type="Dictionary" setter="" getter=""> </member> - <member name="input/ui_text_delete_all_to_right.osx" type="Dictionary" setter="" getter=""> + <member name="input/ui_text_delete_all_to_right.macos" type="Dictionary" setter="" getter=""> </member> <member name="input/ui_text_delete_word" type="Dictionary" setter="" getter=""> </member> - <member name="input/ui_text_delete_word.osx" type="Dictionary" setter="" getter=""> + <member name="input/ui_text_delete_word.macos" type="Dictionary" setter="" getter=""> </member> <member name="input/ui_text_indent" type="Dictionary" setter="" getter=""> </member> @@ -698,11 +701,11 @@ </member> <member name="input/ui_text_scroll_down" type="Dictionary" setter="" getter=""> </member> - <member name="input/ui_text_scroll_down.osx" type="Dictionary" setter="" getter=""> + <member name="input/ui_text_scroll_down.macos" type="Dictionary" setter="" getter=""> </member> <member name="input/ui_text_scroll_up" type="Dictionary" setter="" getter=""> </member> - <member name="input/ui_text_scroll_up.osx" type="Dictionary" setter="" getter=""> + <member name="input/ui_text_scroll_up.macos" type="Dictionary" setter="" getter=""> </member> <member name="input/ui_text_select_all" type="Dictionary" setter="" getter=""> </member> diff --git a/doc/classes/Resource.xml b/doc/classes/Resource.xml index 65dedf5280..efb0339aa7 100644 --- a/doc/classes/Resource.xml +++ b/doc/classes/Resource.xml @@ -16,7 +16,8 @@ <return type="Resource" /> <argument index="0" name="subresources" type="bool" default="false" /> <description> - Duplicates the resource, returning a new resource. By default, sub-resources are shared between resource copies for efficiency. This can be changed by passing [code]true[/code] to the [code]subresources[/code] argument which will copy the subresources. + Duplicates the resource, returning a new resource with the exported members copied. [b]Note:[/b] To duplicate the resource the constructor is called without arguments. This method will error when the constructor doesn't have default values. + By default, sub-resources are shared between resource copies for efficiency. This can be changed by passing [code]true[/code] to the [code]subresources[/code] argument which will copy the subresources. [b]Note:[/b] If [code]subresources[/code] is [code]true[/code], this method will only perform a shallow copy. Nested resources within subresources will not be duplicated and will still be shared. [b]Note:[/b] When duplicating a resource, only [code]export[/code]ed properties are copied. Other properties will be set to their default value in the new resource. </description> diff --git a/doc/classes/RichTextLabel.xml b/doc/classes/RichTextLabel.xml index e77232a613..b5d2d46a85 100644 --- a/doc/classes/RichTextLabel.xml +++ b/doc/classes/RichTextLabel.xml @@ -7,6 +7,7 @@ Rich text can contain custom text, fonts, images and some basic formatting. The label manages these as an internal tag stack. It also adapts itself to given width/heights. [b]Note:[/b] Assignments to [member bbcode_text] clear the tag stack and reconstruct it from the property's contents. Any edits made to [member bbcode_text] will erase previous edits made from other manual sources such as [method append_bbcode] and the [code]push_*[/code] / [method pop] methods. [b]Note:[/b] RichTextLabel doesn't support entangled BBCode tags. For example, instead of using [code][b]bold[i]bold italic[/b]italic[/i][/code], use [code][b]bold[i]bold italic[/i][/b][i]italic[/i][/code]. + [b]Note:[/b] [code]push_*/pop[/code] functions won't affect BBCode. [b]Note:[/b] Unlike [Label], RichTextLabel doesn't have a [i]property[/i] to horizontally align text to the center. Instead, enable [member bbcode_enabled] and surround the text in a [code][center][/code] tag as follows: [code][center]Example[/center][/code]. There is currently no built-in way to vertically align text either, but this can be emulated by relying on anchors/containers and the [member fit_content_height] property. </description> <tutorials> diff --git a/doc/classes/SceneTree.xml b/doc/classes/SceneTree.xml index e81eff35ac..9a38e52b23 100644 --- a/doc/classes/SceneTree.xml +++ b/doc/classes/SceneTree.xml @@ -219,7 +219,7 @@ </member> <member name="paused" type="bool" setter="set_pause" getter="is_paused" default="false"> If [code]true[/code], the [SceneTree] is paused. Doing so will have the following behavior: - - 2D and 3D physics will be stopped. + - 2D and 3D physics will be stopped. This includes signals and collision detection. - [method Node._process], [method Node._physics_process] and [method Node._input] will not be called anymore in nodes. </member> <member name="root" type="Window" setter="" getter="get_root"> diff --git a/doc/classes/StyleBoxFlat.xml b/doc/classes/StyleBoxFlat.xml index 59ab724f48..40f6075528 100644 --- a/doc/classes/StyleBoxFlat.xml +++ b/doc/classes/StyleBoxFlat.xml @@ -120,6 +120,7 @@ <members> <member name="anti_aliasing" type="bool" setter="set_anti_aliased" getter="is_anti_aliased" default="true"> Antialiasing draws a small ring around the edges, which fades to transparency. As a result, edges look much smoother. This is only noticeable when using rounded corners. + [b]Note:[/b] When using beveled corners with 45-degree angles ([member corner_detail] = 1), it is recommended to set [member anti_aliasing] to [code]false[/code] to ensure crisp visuals and avoid possible visual glitches. </member> <member name="anti_aliasing_size" type="float" setter="set_aa_size" getter="get_aa_size" default="0.625"> This changes the size of the faded ring. Higher values can be used to achieve a "blurry" effect. diff --git a/doc/classes/TextServer.xml b/doc/classes/TextServer.xml index d7af2204cf..661c4f05ef 100644 --- a/doc/classes/TextServer.xml +++ b/doc/classes/TextServer.xml @@ -624,7 +624,8 @@ <argument index="0" name="font_rid" type="RID" /> <argument index="1" name="msdf" type="bool" /> <description> - If set to [code]true[/code], glyphs of all sizes are rendered using single multichannel signed distance field generated from the dynamic font vector data. + If set to [code]true[/code], glyphs of all sizes are rendered using single multichannel signed distance field generated from the dynamic font vector data. MSDF rendering allows displaying the font at any scaling factor without blurriness, and without incurring a CPU cost when the font size changes (since the font no longer needs to be rasterized on the CPU). As a downside, font hinting is not available with MSDF. The lack of font hinting may result in less crisp and less readable fonts at small sizes. + [b]Note:[/b] MSDF font rendering does not render glyphs with overlapping shapes correctly. Overlapping shapes are not valid per the OpenType standard, but are still commonly found in many font files, especially those converted by Google Fonts. To avoid issues with overlapping glyphs, consider downloading the font file directly from the type foundry instead of relying on Google Fonts. </description> </method> <method name="font_set_oversampling"> diff --git a/doc/classes/TranslationServer.xml b/doc/classes/TranslationServer.xml index 029848be33..a002166664 100644 --- a/doc/classes/TranslationServer.xml +++ b/doc/classes/TranslationServer.xml @@ -27,13 +27,14 @@ <method name="get_loaded_locales" qualifiers="const"> <return type="Array" /> <description> - Returns an Array of all loaded locales of the game. + Returns an array of all loaded locales of the project. </description> </method> <method name="get_locale" qualifiers="const"> <return type="String" /> <description> - Returns the current locale of the game. + Returns the current locale of the project. + See also [method OS.get_locale] and [method OS.get_locale_language] to query the locale of the user system. </description> </method> <method name="get_locale_name" qualifiers="const"> @@ -75,7 +76,8 @@ <return type="void" /> <argument index="0" name="locale" type="String" /> <description> - Sets the locale of the game. + Sets the locale of the project. The [code]locale[/code] string will be standardized to match known locales (e.g. [code]en-US[/code] would be matched to [code]en_US[/code]). + If translations have been loaded beforehand for the new locale, they will be applied. </description> </method> <method name="translate" qualifiers="const"> diff --git a/doc/classes/Tween.xml b/doc/classes/Tween.xml index 372a6e7ebf..ede6e2fdd5 100644 --- a/doc/classes/Tween.xml +++ b/doc/classes/Tween.xml @@ -58,8 +58,8 @@ [codeblock] var tween = create_tween().set_parallel(true) tween.tween_property(...) - tween.tween_property(...) #will run parallelly with above - tween.chain().tween_property(...) #will run after two above are finished + tween.tween_property(...) # Will run parallelly with above. + tween.chain().tween_property(...) # Will run after two above are finished. [/codeblock] </description> </method> @@ -215,11 +215,9 @@ Creates and appends an [IntervalTweener]. This method can be used to create delays in the tween animation, as an alternative for using the delay in other [Tweener]s or when there's no animation (in which case the [Tween] acts as a timer). [code]time[/code] is the length of the interval, in seconds. Example: creating an interval in code execution. [codeblock] - #... some code - var tween = create_tween() - tween.tween_interval(2) - await tween.finished - #... more code + # ... some code + await create_tween().tween_interval(2).finished + # ... more code [/codeblock] Example: creating an object that moves back and forth and jumps every few seconds. [codeblock] @@ -236,15 +234,15 @@ <method name="tween_method"> <return type="MethodTweener" /> <argument index="0" name="method" type="Callable" /> - <argument index="1" name="from" type="float" /> - <argument index="2" name="to" type="float" /> + <argument index="1" name="from" type="Variant" /> + <argument index="2" name="to" type="Variant" /> <argument index="3" name="duration" type="float" /> <description> Creates and appends a [MethodTweener]. This method is similar to a combination of [method tween_callback] and [method tween_property]. It calls a method over time with a tweened value provided as an argument. The value is tweened between [code]from[/code] and [code]to[/code] over the time specified by [code]duration[/code], in seconds. Use [method Callable.bind] to bind additional arguments for the call. You can use [method MethodTweener.set_ease] and [method MethodTweener.set_trans] to tweak the easing and transition of the value or [method MethodTweener.set_delay] to delay the tweening. Example: making a 3D object look from one point to another point. [codeblock] var tween = create_tween() - tween.tween_method(look_at.bind(Vector3.UP), Vector3(-1, 0, -1), Vector3(1, 0, -1), 1) #the look_at() method takes up vector as second argument + tween.tween_method(look_at.bind(Vector3.UP), Vector3(-1, 0, -1), Vector3(1, 0, -1), 1) # The look_at() method takes up vector as second argument. [/codeblock] Example: setting a text of a [Label], using an intermediate method and after a delay. [codeblock] diff --git a/doc/classes/Vector2.xml b/doc/classes/Vector2.xml index ab4d0e181a..e61f1fe951 100644 --- a/doc/classes/Vector2.xml +++ b/doc/classes/Vector2.xml @@ -56,6 +56,7 @@ <description> Returns this vector's angle with respect to the positive X axis, or [code](1, 0)[/code] vector, in radians. For example, [code]Vector2.RIGHT.angle()[/code] will return zero, [code]Vector2.DOWN.angle()[/code] will return [code]PI / 2[/code] (a quarter turn, or 90 degrees), and [code]Vector2(1, -1).angle()[/code] will return [code]-PI / 4[/code] (a negative eighth turn, or -45 degrees). + [url=https://raw.githubusercontent.com/godotengine/godot-docs/master/img/vector2_angle.png]Illustration of the returned angle.[/url] Equivalent to the result of [method @GlobalScope.atan2] when called with the vector's [member y] and [member x] as parameters: [code]atan2(y, x)[/code]. </description> </method> @@ -64,6 +65,7 @@ <argument index="0" name="to" type="Vector2" /> <description> Returns the angle to the given vector, in radians. + [url=https://raw.githubusercontent.com/godotengine/godot-docs/master/img/vector2_angle_to.png]Illustration of the returned angle.[/url] </description> </method> <method name="angle_to_point" qualifiers="const"> @@ -71,6 +73,7 @@ <argument index="0" name="to" type="Vector2" /> <description> Returns the angle between the line connecting the two points and the X axis, in radians. + [url=https://raw.githubusercontent.com/godotengine/godot-docs/master/img/vector2_angle_to_point.png]Illustration of the returned angle.[/url] </description> </method> <method name="aspect" qualifiers="const"> diff --git a/doc/classes/Window.xml b/doc/classes/Window.xml index d7b156cc57..15d844aacb 100644 --- a/doc/classes/Window.xml +++ b/doc/classes/Window.xml @@ -1,8 +1,10 @@ <?xml version="1.0" encoding="UTF-8" ?> <class name="Window" inherits="Viewport" version="4.0"> <brief_description> + Base class for all windows. </brief_description> <description> + A node that creates a window. </description> <tutorials> </tutorials> @@ -10,6 +12,7 @@ <method name="can_draw" qualifiers="const"> <return type="bool" /> <description> + Returns whether the window is being drawn to the screen. </description> </method> <method name="child_controls_changed"> @@ -27,6 +30,7 @@ <return type="bool" /> <argument index="0" name="flag" type="int" enum="Window.Flags" /> <description> + Returns [code]true[/code] if the flag is set. </description> </method> <method name="get_layout_direction" qualifiers="const"> @@ -38,6 +42,7 @@ <method name="get_real_size" qualifiers="const"> <return type="Vector2i" /> <description> + Returns the window's size including its border. </description> </method> <method name="get_theme_color" qualifiers="const"> @@ -87,11 +92,13 @@ <method name="grab_focus"> <return type="void" /> <description> + Causes the window to grab focus, allowing it to receive user input. </description> </method> <method name="has_focus" qualifiers="const"> <return type="bool" /> <description> + Returns [code]true[/code] if the window is focused. </description> </method> <method name="has_theme_color" qualifiers="const"> @@ -148,6 +155,7 @@ <method name="is_embedded" qualifiers="const"> <return type="bool" /> <description> + Returns [code]true[/code] if the window is currently embedded in another window. </description> </method> <method name="is_layout_rtl" qualifiers="const"> @@ -212,6 +220,7 @@ <argument index="0" name="flag" type="int" enum="Window.Flags" /> <argument index="1" name="enabled" type="bool" /> <description> + Sets a specified window flag. </description> </method> <method name="set_ime_active"> @@ -247,11 +256,13 @@ </methods> <members> <member name="always_on_top" type="bool" setter="set_flag" getter="get_flag" default="false"> + If [code]true[/code], the window will be on top of all other windows. </member> <member name="auto_translate" type="bool" setter="set_auto_translate" getter="is_auto_translating" default="true"> Toggles if any text should automatically change to its translated version depending on the current locale. </member> <member name="borderless" type="bool" setter="set_flag" getter="get_flag" default="false"> + If [code]true[/code], the window will have no borders. </member> <member name="content_scale_aspect" type="int" setter="set_content_scale_aspect" getter="get_content_scale_aspect" enum="Window.ContentScaleAspect" default="0"> </member> @@ -260,6 +271,7 @@ <member name="content_scale_size" type="Vector2i" setter="set_content_scale_size" getter="get_content_scale_size" default="Vector2i(0, 0)"> </member> <member name="current_screen" type="int" setter="set_current_screen" getter="get_current_screen" default="0"> + The screen the window is currently on. </member> <member name="exclusive" type="bool" setter="set_exclusive" getter="is_exclusive" default="false"> </member> @@ -268,16 +280,21 @@ <member name="min_size" type="Vector2i" setter="set_min_size" getter="get_min_size" default="Vector2i(0, 0)"> </member> <member name="mode" type="int" setter="set_mode" getter="get_mode" enum="Window.Mode" default="0"> + Set's the window's current mode. + [b]Note:[/b] Fullscreen mode is not exclusive fullscreen on Windows and Linux. </member> <member name="position" type="Vector2i" setter="set_position" getter="get_position" default="Vector2i(0, 0)"> + The window's position in pixels. </member> <member name="size" type="Vector2i" setter="set_size" getter="get_size" default="Vector2i(100, 100)"> + The window's size in pixels. </member> <member name="theme" type="Theme" setter="set_theme" getter="get_theme"> </member> <member name="theme_type_variation" type="StringName" setter="set_theme_type_variation" getter="get_theme_type_variation" default="&"""> </member> <member name="title" type="String" setter="set_title" getter="get_title" default=""""> + The window's title. </member> <member name="transient" type="bool" setter="set_transient" getter="is_transient" default="false"> </member> @@ -286,8 +303,10 @@ <member name="unfocusable" type="bool" setter="set_flag" getter="get_flag" default="false"> </member> <member name="unresizable" type="bool" setter="set_flag" getter="get_flag" default="false"> + If [code]true[/code], the window can't be resized. </member> <member name="visible" type="bool" setter="set_visible" getter="is_visible" default="true"> + If [code]true[/code], the window is visible. </member> <member name="wrap_controls" type="bool" setter="set_wrap_controls" getter="is_wrapping_controls" default="false"> </member> @@ -340,20 +359,26 @@ <constant name="NOTIFICATION_VISIBILITY_CHANGED" value="30"> </constant> <constant name="MODE_WINDOWED" value="0" enum="Mode"> + Windowed mode. </constant> <constant name="MODE_MINIMIZED" value="1" enum="Mode"> + Minimized window mode. </constant> <constant name="MODE_MAXIMIZED" value="2" enum="Mode"> + Maximized window mode. </constant> <constant name="MODE_FULLSCREEN" value="3" enum="Mode"> Fullscreen window mode. Note that this is not [i]exclusive[/i] fullscreen. On Windows and Linux, a borderless window is used to emulate fullscreen. On macOS, a new desktop is used to display the running project. Regardless of the platform, enabling fullscreen will change the window size to match the monitor's size. Therefore, make sure your project supports [url=https://docs.godotengine.org/en/latest/tutorials/rendering/multiple_resolutions.html]multiple resolutions[/url] when enabling fullscreen mode. </constant> <constant name="FLAG_RESIZE_DISABLED" value="0" enum="Flags"> + The window's ability to be resized. </constant> <constant name="FLAG_BORDERLESS" value="1" enum="Flags"> + Borderless window. </constant> <constant name="FLAG_ALWAYS_ON_TOP" value="2" enum="Flags"> + Flag for making the window always on top of all other windows. </constant> <constant name="FLAG_TRANSPARENT" value="3" enum="Flags"> </constant> diff --git a/doc/classes/WorldMarginShape2D.xml b/doc/classes/WorldBoundaryShape2D.xml index 1839ab16ad..190f289601 100644 --- a/doc/classes/WorldMarginShape2D.xml +++ b/doc/classes/WorldBoundaryShape2D.xml @@ -1,10 +1,10 @@ <?xml version="1.0" encoding="UTF-8" ?> -<class name="WorldMarginShape2D" inherits="Shape2D" version="4.0"> +<class name="WorldBoundaryShape2D" inherits="Shape2D" version="4.0"> <brief_description> - Line shape for 2D collisions. + World boundary shape for 2D collisions. </brief_description> <description> - Line shape for 2D collisions. It works like a 2D plane and will not allow any physics body to go to the negative side. Not recommended for rigid bodies, and usually not recommended for static bodies either because it forces checks against it on every frame. + World boundary shape for 2D collisions. It works like a 2D plane and will not allow any physics body to go to the negative side. Not recommended for rigid bodies, and usually not recommended for static bodies either because it forces checks against it on every frame. </description> <tutorials> </tutorials> diff --git a/doc/classes/WorldBoundaryShape3D.xml b/doc/classes/WorldBoundaryShape3D.xml new file mode 100644 index 0000000000..837b023a58 --- /dev/null +++ b/doc/classes/WorldBoundaryShape3D.xml @@ -0,0 +1,20 @@ +<?xml version="1.0" encoding="UTF-8" ?> +<class name="WorldBoundaryShape3D" inherits="Shape3D" version="4.0"> + <brief_description> + World boundary shape for 3D collisions. + </brief_description> + <description> + World boundary shape for 3D collisions. It works like an infinite plane and will not allow any physics body to go to the negative side. Note that the [Plane]'s normal matters; anything "below" the plane will collide with it. If the [WorldBoundaryShape3D] is used in a [PhysicsBody3D], it will cause colliding objects placed "below" it to teleport "above" the plane. + </description> + <tutorials> + </tutorials> + <methods> + </methods> + <members> + <member name="plane" type="Plane" setter="set_plane" getter="get_plane" default="Plane(0, 1, 0, 0)"> + The [Plane] used by the [WorldBoundaryShape3D] for collision. + </member> + </members> + <constants> + </constants> +</class> diff --git a/doc/classes/WorldMarginShape3D.xml b/doc/classes/WorldMarginShape3D.xml deleted file mode 100644 index 9a26f254f1..0000000000 --- a/doc/classes/WorldMarginShape3D.xml +++ /dev/null @@ -1,20 +0,0 @@ -<?xml version="1.0" encoding="UTF-8" ?> -<class name="WorldMarginShape3D" inherits="Shape3D" version="4.0"> - <brief_description> - Infinite plane shape for 3D collisions. - </brief_description> - <description> - An infinite plane shape for 3D collisions. Note that the [Plane]'s normal matters; anything "below" the plane will collide with it. If the [WorldMarginShape3D] is used in a [PhysicsBody3D], it will cause colliding objects placed "below" it to teleport "above" the plane. - </description> - <tutorials> - </tutorials> - <methods> - </methods> - <members> - <member name="plane" type="Plane" setter="set_plane" getter="get_plane" default="Plane(0, 1, 0, 0)"> - The [Plane] used by the [WorldMarginShape3D] for collision. - </member> - </members> - <constants> - </constants> -</class> |