Merge pull request #54998 from akien-mga/3.x-cherrypicks

This commit is contained in:
Rémi Verschelde 2021-11-15 18:13:56 +01:00 committed by GitHub
commit 3ac698750b
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
198 changed files with 624 additions and 407 deletions

View file

@ -10,8 +10,8 @@
**[Godot Engine](https://godotengine.org) is a feature-packed, cross-platform
game engine to create 2D and 3D games from a unified interface.** It provides a
comprehensive set of common tools, so that users can focus on making games
without having to reinvent the wheel. Games can be exported in one click to a
comprehensive set of [common tools](https://godotengine.org/features), so that users can focus on making games
without having to reinvent the wheel. Games can be exported with one click to a
number of platforms, including the major desktop platforms (Linux, macOS,
Windows), mobile platforms (Android, iOS), as well as Web-based platforms
(HTML5) and
@ -19,18 +19,19 @@ Windows), mobile platforms (Android, iOS), as well as Web-based platforms
## Free, open source and community-driven
Godot is completely free and open source under the very permissive MIT license.
Godot is completely free and open source under the very permissive [MIT license](https://godotengine.org/license).
No strings attached, no royalties, nothing. The users' games are theirs, down
to the last line of engine code. Godot's development is fully independent and
community-driven, empowering users to help shape their engine to match their
expectations. It is supported by the [Software Freedom Conservancy](https://sfconservancy.org/)
not-for-profit.
Before being open sourced in February 2014, Godot had been developed by Juan
Linietsky and Ariel Manzur (both still maintaining the project) for several
Before being open sourced in [February 2014](https://github.com/godotengine/godot/commit/0b806ee0fc9097fa7bda7ac0109191c9c5e0a1ac),
Godot had been developed by [Juan Linietsky](https://github.com/reduz) and
[Ariel Manzur](https://github.com/punto-) (both still maintaining the project) for several
years as an in-house engine, used to publish several work-for-hire titles.
![Screenshot of a 3D scene in Godot Engine](https://raw.githubusercontent.com/godotengine/godot-design/master/screenshots/editor_tps_demo_1920x1080.jpg)
![Screenshot of a 3D scene in the Godot Engine editor](https://raw.githubusercontent.com/godotengine/godot-design/master/screenshots/editor_tps_demo_1920x1080.jpg)
## Getting the engine
@ -49,7 +50,7 @@ for compilation instructions for every supported platform.
Godot is not only an engine but an ever-growing community of users and engine
developers. The main community channels are listed [on the homepage](https://godotengine.org/community).
To get in touch with the engine developers, the best way is to join the
The best way to get in touch with the core engine developers is to join the
[Godot Contributors Chat](https://chat.godotengine.org).
To get started contributing to the project, see the [contributing guide](CONTRIBUTING.md).
@ -62,8 +63,8 @@ It is maintained by the Godot community in its own [GitHub repository](https://g
The [class reference](https://docs.godotengine.org/en/latest/classes/)
is also accessible from the Godot editor.
The official demos are maintained in their own [GitHub repository](https://github.com/godotengine/godot-demo-projects)
as well.
We also maintain official demos in their own [GitHub repository](https://github.com/godotengine/godot-demo-projects)
as well as a list of [awesome Godot community resources](https://github.com/godotengine/awesome-godot).
There are also a number of other
[learning resources](https://docs.godotengine.org/en/latest/community/tutorials.html)

View file

@ -673,6 +673,15 @@ bool OS::has_feature(const String &p_feature) {
if (p_feature == "riscv") {
return true;
}
#elif defined(__powerpc__)
#if defined(__powerpc64__)
if (p_feature == "ppc64") {
return true;
}
#endif
if (p_feature == "ppc") {
return true;
}
#endif
if (_check_internal_feature_support(p_feature)) {

View file

@ -42,6 +42,7 @@
#include "core/translation.h"
#include "core/ucaps.h"
#include "core/variant.h"
#include "core/version_generated.gen.h"
#include <wchar.h>
#include <cstdint>
@ -4128,7 +4129,7 @@ String String::property_name_encode() const {
// as well as '"', '=' or ' ' (32)
const CharType *cstr = c_str();
for (int i = 0; cstr[i]; i++) {
if (cstr[i] == '=' || cstr[i] == '"' || cstr[i] < 33 || cstr[i] > 126) {
if (cstr[i] == '=' || cstr[i] == '"' || cstr[i] == ';' || cstr[i] == '[' || cstr[i] == ']' || cstr[i] < 33 || cstr[i] > 126) {
return "\"" + c_escape_multiline() + "\"";
}
}
@ -4498,15 +4499,19 @@ String TTR(const String &p_text) {
return p_text;
}
/* DTR is used for the documentation, handling descriptions extracted from the XML.
* It also replaces `$DOCS_URL` with the actual URL to the documentation's branch,
* to allow dehardcoding it in the XML and doing proper substitutions everywhere.
*/
String DTR(const String &p_text) {
// Comes straight from the XML, so remove indentation and any trailing whitespace.
const String text = p_text.dedent().strip_edges();
if (TranslationServer::get_singleton()) {
return TranslationServer::get_singleton()->doc_translate(text);
return String(TranslationServer::get_singleton()->doc_translate(text)).replace("$DOCS_URL", VERSION_DOCS_URL);
}
return text;
return text.replace("$DOCS_URL", VERSION_DOCS_URL);
}
#endif

View file

@ -45,11 +45,15 @@ class CharProxy {
CowData<T> &_cowdata;
static const T _null = 0;
_FORCE_INLINE_ CharProxy(const int &p_index, CowData<T> &cowdata) :
_FORCE_INLINE_ CharProxy(const int &p_index, CowData<T> &p_cowdata) :
_index(p_index),
_cowdata(cowdata) {}
_cowdata(p_cowdata) {}
public:
_FORCE_INLINE_ CharProxy(const CharProxy<T> &p_other) :
_index(p_other._index),
_cowdata(p_other._cowdata) {}
_FORCE_INLINE_ operator T() const {
if (unlikely(_index == _cowdata.size())) {
return _null;
@ -62,12 +66,12 @@ public:
return _cowdata.ptr() + _index;
}
_FORCE_INLINE_ void operator=(const T &other) const {
_cowdata.set(_index, other);
_FORCE_INLINE_ void operator=(const T &p_other) const {
_cowdata.set(_index, p_other);
}
_FORCE_INLINE_ void operator=(const CharProxy<T> &other) const {
_cowdata.set(_index, other.operator T());
_FORCE_INLINE_ void operator=(const CharProxy<T> &p_other) const {
_cowdata.set(_index, p_other.operator T());
}
};

View file

@ -245,6 +245,7 @@ struct _VariantCall {
VCALL_LOCALMEM3R(String, count);
VCALL_LOCALMEM3R(String, countn);
VCALL_LOCALMEM2R(String, substr);
VCALL_LOCALMEM2R(String, get_slice);
VCALL_LOCALMEM2R(String, find);
VCALL_LOCALMEM1R(String, find_last);
VCALL_LOCALMEM2R(String, findn);
@ -1633,6 +1634,7 @@ void register_variant_methods() {
ADDFUNC1R(STRING, INT, String, naturalnocasecmp_to, STRING, "to", varray());
ADDFUNC0R(STRING, INT, String, length, varray());
ADDFUNC2R(STRING, STRING, String, substr, INT, "from", INT, "len", varray(-1));
ADDFUNC2R(STRING, STRING, String, get_slice, STRING, "delimiter", INT, "slice", varray());
ADDFUNC2R(STRING, INT, String, find, STRING, "what", INT, "from", varray(0));

View file

@ -9,9 +9,9 @@
[b]Note:[/b] Unlike [Rect2], [AABB] does not have a variant that uses integer coordinates.
</description>
<tutorials>
<link title="Math tutorial index">https://docs.godotengine.org/en/3.4/tutorials/math/index.html</link>
<link title="Vector math">https://docs.godotengine.org/en/3.4/tutorials/math/vector_math.html</link>
<link title="Advanced vector math">https://docs.godotengine.org/en/3.4/tutorials/math/vectors_advanced.html</link>
<link title="Math tutorial index">$DOCS_URL/tutorials/math/index.html</link>
<link title="Vector math">$DOCS_URL/tutorials/math/vector_math.html</link>
<link title="Advanced vector math">$DOCS_URL/tutorials/math/vectors_advanced.html</link>
</tutorials>
<methods>
<method name="AABB">
@ -39,7 +39,14 @@
<return type="AABB" />
<argument index="0" name="to_point" type="Vector3" />
<description>
Returns this [AABB] expanded to include a given point.
Returns a copy of this [AABB] expanded to include a given point.
[b]Example:[/b]
[codeblock]
# position (-3, 2, 0), size (1, 1, 1)
var box = AABB(Vector3(-3, 2, 0), Vector3(1, 1, 1))
# position (-3, -1, 0), size (3, 4, 2), so we fit both the original AABB and Vector3(0, -1, 2)
var box2 = box.expand(Vector3(0, -1, 2))
[/codeblock]
</description>
</method>
<method name="get_area">

View file

@ -8,7 +8,7 @@
The position and orientation of this node is automatically updated by the ARVR Server to represent the location of the HMD if such tracking is available and can thus be used by game logic. Note that, in contrast to the ARVR Controller, the render thread has access to the most up-to-date tracking data of the HMD and the location of the ARVRCamera can lag a few milliseconds behind what is used for rendering as a result.
</description>
<tutorials>
<link>https://docs.godotengine.org/en/3.4/tutorials/vr/index.html</link>
<link>$DOCS_URL/tutorials/vr/index.html</link>
</tutorials>
<methods>
</methods>

View file

@ -9,7 +9,7 @@
The position of the controller node is automatically updated by the [ARVRServer]. This makes this node ideal to add child nodes to visualize the controller.
</description>
<tutorials>
<link>https://docs.godotengine.org/en/3.4/tutorials/vr/index.html</link>
<link>$DOCS_URL/tutorials/vr/index.html</link>
</tutorials>
<methods>
<method name="get_controller_name" qualifiers="const">

View file

@ -8,7 +8,7 @@
Interfaces should be written in such a way that simply enabling them will give us a working setup. You can query the available interfaces through [ARVRServer].
</description>
<tutorials>
<link>https://docs.godotengine.org/en/3.4/tutorials/vr/index.html</link>
<link>$DOCS_URL/tutorials/vr/index.html</link>
</tutorials>
<methods>
<method name="get_camera_feed_id">

View file

@ -10,7 +10,7 @@
For example, if your character is driving a car, the ARVROrigin node should be a child node of this car. Or, if you're implementing a teleport system to move your character, you should change the position of this node.
</description>
<tutorials>
<link>https://docs.godotengine.org/en/3.4/tutorials/vr/index.html</link>
<link>$DOCS_URL/tutorials/vr/index.html</link>
</tutorials>
<methods>
</methods>

View file

@ -9,7 +9,7 @@
The [ARVRController] and [ARVRAnchor] both consume objects of this type and should be used in your project. The positional trackers are just under-the-hood objects that make this all work. These are mostly exposed so that GDNative-based interfaces can interact with them.
</description>
<tutorials>
<link>https://docs.godotengine.org/en/3.4/tutorials/vr/index.html</link>
<link>$DOCS_URL/tutorials/vr/index.html</link>
</tutorials>
<methods>
<method name="get_hand" qualifiers="const">

View file

@ -7,7 +7,7 @@
The AR/VR server is the heart of our Advanced and Virtual Reality solution and handles all the processing.
</description>
<tutorials>
<link>https://docs.godotengine.org/en/3.4/tutorials/vr/index.html</link>
<link>$DOCS_URL/tutorials/vr/index.html</link>
</tutorials>
<methods>
<method name="add_interface">

View file

@ -8,7 +8,7 @@
[b]Note:[/b] You can associate a set of normal maps by creating additional [SpriteFrames] resources with a [code]_normal[/code] suffix. For example, having 2 [SpriteFrames] resources [code]run[/code] and [code]run_normal[/code] will make it so the [code]run[/code] animation uses the normal map.
</description>
<tutorials>
<link title="2D Sprite animation">https://docs.godotengine.org/en/3.4/tutorials/2d/2d_sprite_animation.html</link>
<link title="2D Sprite animation">$DOCS_URL/tutorials/2d/2d_sprite_animation.html</link>
<link title="2D Dodge The Creeps Demo">https://godotengine.org/asset-library/asset/515</link>
</tutorials>
<methods>

View file

@ -7,7 +7,7 @@
Animations are created using a [SpriteFrames] resource, which can be configured in the editor via the SpriteFrames panel.
</description>
<tutorials>
<link title="2D Sprite animation (also applies to 3D)">https://docs.godotengine.org/en/3.4/tutorials/2d/2d_sprite_animation.html</link>
<link title="2D Sprite animation (also applies to 3D)">$DOCS_URL/tutorials/2d/2d_sprite_animation.html</link>
</tutorials>
<methods>
<method name="is_playing" qualifiers="const">

View file

@ -17,7 +17,7 @@
Animations are just data containers, and must be added to nodes such as an [AnimationPlayer] or [AnimationTreePlayer] to be played back. Animation tracks have different types, each with its own set of dedicated methods. Check [enum TrackType] to see available types.
</description>
<tutorials>
<link>https://docs.godotengine.org/en/3.4/tutorials/animation/index.html</link>
<link>$DOCS_URL/tutorials/animation/index.html</link>
</tutorials>
<methods>
<method name="add_track">

View file

@ -8,7 +8,7 @@
Inherit this when creating nodes mainly for use in [AnimationNodeBlendTree], otherwise [AnimationRootNode] should be used instead.
</description>
<tutorials>
<link>https://docs.godotengine.org/en/3.4/tutorials/animation/animation_tree.html</link>
<link>$DOCS_URL/tutorials/animation/animation_tree.html</link>
</tutorials>
<methods>
<method name="add_input">

View file

@ -7,7 +7,7 @@
A resource to add to an [AnimationNodeBlendTree]. Blends two animations additively based on an amount value in the [code][0.0, 1.0][/code] range.
</description>
<tutorials>
<link>https://docs.godotengine.org/en/3.4/tutorials/animation/animation_tree.html</link>
<link>$DOCS_URL/tutorials/animation/animation_tree.html</link>
</tutorials>
<methods>
</methods>

View file

@ -11,7 +11,7 @@
- A +add animation to blend with when the blend amount is in the [code][0.0, 1.0][/code] range
</description>
<tutorials>
<link title="AnimationTree">https://docs.godotengine.org/en/3.4/tutorials/animation/animation_tree.html</link>
<link title="AnimationTree">$DOCS_URL/tutorials/animation/animation_tree.html</link>
<link title="Third Person Shooter Demo">https://godotengine.org/asset-library/asset/678</link>
</tutorials>
<methods>

View file

@ -7,7 +7,7 @@
A resource to add to an [AnimationNodeBlendTree]. Only features one output set using the [member animation] property. Use it as an input for [AnimationNode] that blend animations together.
</description>
<tutorials>
<link title="AnimationTree">https://docs.godotengine.org/en/3.4/tutorials/animation/animation_tree.html</link>
<link title="AnimationTree">$DOCS_URL/tutorials/animation/animation_tree.html</link>
<link title="3D Platformer Demo">https://godotengine.org/asset-library/asset/125</link>
<link title="Third Person Shooter Demo">https://godotengine.org/asset-library/asset/678</link>
</tutorials>

View file

@ -7,7 +7,7 @@
A resource to add to an [AnimationNodeBlendTree]. Blends two animations linearly based on an amount value in the [code][0.0, 1.0][/code] range.
</description>
<tutorials>
<link title="AnimationTree">https://docs.godotengine.org/en/3.4/tutorials/animation/animation_tree.html</link>
<link title="AnimationTree">$DOCS_URL/tutorials/animation/animation_tree.html</link>
<link title="3D Platformer Demo">https://godotengine.org/asset-library/asset/125</link>
<link title="Third Person Shooter Demo">https://godotengine.org/asset-library/asset/678</link>
</tutorials>

View file

@ -11,7 +11,7 @@
- A +blend animation to blend with when the blend amount is in the [code][0.0, 1.0][/code] range
</description>
<tutorials>
<link>https://docs.godotengine.org/en/3.4/tutorials/animation/animation_tree.html</link>
<link>$DOCS_URL/tutorials/animation/animation_tree.html</link>
</tutorials>
<methods>
</methods>

View file

@ -10,7 +10,7 @@
You can set the extents of the axis using the [member min_space] and [member max_space].
</description>
<tutorials>
<link>https://docs.godotengine.org/en/3.4/tutorials/animation/animation_tree.html</link>
<link>$DOCS_URL/tutorials/animation/animation_tree.html</link>
</tutorials>
<methods>
<method name="add_blend_point">

View file

@ -9,7 +9,7 @@
You can add vertices to the blend space with [method add_blend_point] and automatically triangulate it by setting [member auto_triangles] to [code]true[/code]. Otherwise, use [method add_triangle] and [method remove_triangle] to create up the blend space by hand.
</description>
<tutorials>
<link title="AnimationTree">https://docs.godotengine.org/en/3.4/tutorials/animation/animation_tree.html</link>
<link title="AnimationTree">$DOCS_URL/tutorials/animation/animation_tree.html</link>
<link title="Third Person Shooter Demo">https://godotengine.org/asset-library/asset/678</link>
</tutorials>
<methods>

View file

@ -7,7 +7,7 @@
This node may contain a sub-tree of any other blend type nodes, such as mix, blend2, blend3, one shot, etc. This is one of the most commonly used roots.
</description>
<tutorials>
<link>https://docs.godotengine.org/en/3.4/tutorials/animation/animation_tree.html</link>
<link>$DOCS_URL/tutorials/animation/animation_tree.html</link>
</tutorials>
<methods>
<method name="add_node">

View file

@ -7,7 +7,7 @@
A resource to add to an [AnimationNodeBlendTree]. This node will execute a sub-animation and return once it finishes. Blend times for fading in and out can be customized, as well as filters.
</description>
<tutorials>
<link title="AnimationTree">https://docs.godotengine.org/en/3.4/tutorials/animation/animation_tree.html</link>
<link title="AnimationTree">$DOCS_URL/tutorials/animation/animation_tree.html</link>
<link title="Third Person Shooter Demo">https://godotengine.org/asset-library/asset/678</link>
</tutorials>
<methods>

View file

@ -6,7 +6,7 @@
<description>
</description>
<tutorials>
<link title="AnimationTree">https://docs.godotengine.org/en/3.4/tutorials/animation/animation_tree.html</link>
<link title="AnimationTree">$DOCS_URL/tutorials/animation/animation_tree.html</link>
<link title="3D Platformer Demo">https://godotengine.org/asset-library/asset/125</link>
<link title="Third Person Shooter Demo">https://godotengine.org/asset-library/asset/678</link>
</tutorials>

View file

@ -12,7 +12,7 @@
[/codeblock]
</description>
<tutorials>
<link>https://docs.godotengine.org/en/3.4/tutorials/animation/animation_tree.html</link>
<link>$DOCS_URL/tutorials/animation/animation_tree.html</link>
</tutorials>
<methods>
<method name="add_node">

View file

@ -12,7 +12,7 @@
[/codeblock]
</description>
<tutorials>
<link>https://docs.godotengine.org/en/3.4/tutorials/animation/animation_tree.html</link>
<link>$DOCS_URL/tutorials/animation/animation_tree.html</link>
</tutorials>
<methods>
<method name="get_current_length" qualifiers="const">

View file

@ -5,13 +5,13 @@
<description>
</description>
<tutorials>
<link>https://docs.godotengine.org/en/3.4/tutorials/animation/animation_tree.html</link>
<link>$DOCS_URL/tutorials/animation/animation_tree.html</link>
</tutorials>
<methods>
</methods>
<members>
<member name="advance_condition" type="String" setter="set_advance_condition" getter="get_advance_condition" default="&quot;&quot;">
Turn on auto advance when this condition is set. The provided name will become a boolean parameter on the [AnimationTree] that can be controlled from code (see [url=https://docs.godotengine.org/en/3.4/tutorials/animation/animation_tree.html#controlling-from-code][/url]). For example, if [member AnimationTree.tree_root] is an [AnimationNodeStateMachine] and [member advance_condition] is set to [code]"idle"[/code]:
Turn on auto advance when this condition is set. The provided name will become a boolean parameter on the [AnimationTree] that can be controlled from code (see [url=$DOCS_URL/tutorials/animation/animation_tree.html#controlling-from-code][/url]). For example, if [member AnimationTree.tree_root] is an [AnimationNodeStateMachine] and [member advance_condition] is set to [code]"idle"[/code]:
[codeblock]
$animation_tree["parameters/conditions/idle"] = is_on_floor and (linear_velocity.x == 0)
[/codeblock]

View file

@ -7,7 +7,7 @@
Allows scaling the speed of the animation (or reversing it) in any children nodes. Setting it to 0 will pause the animation.
</description>
<tutorials>
<link title="AnimationTree">https://docs.godotengine.org/en/3.4/tutorials/animation/animation_tree.html</link>
<link title="AnimationTree">$DOCS_URL/tutorials/animation/animation_tree.html</link>
<link title="3D Platformer Demo">https://godotengine.org/asset-library/asset/125</link>
</tutorials>
<methods>

View file

@ -18,7 +18,7 @@
[/codeblock]
</description>
<tutorials>
<link>https://docs.godotengine.org/en/3.4/tutorials/animation/animation_tree.html</link>
<link>$DOCS_URL/tutorials/animation/animation_tree.html</link>
</tutorials>
<methods>
</methods>

View file

@ -7,7 +7,7 @@
Simple state machine for cases which don't require a more advanced [AnimationNodeStateMachine]. Animations can be connected to the inputs and transition times can be specified.
</description>
<tutorials>
<link title="AnimationTree">https://docs.godotengine.org/en/3.4/tutorials/animation/animation_tree.html</link>
<link title="AnimationTree">$DOCS_URL/tutorials/animation/animation_tree.html</link>
<link title="3D Platformer Demo">https://godotengine.org/asset-library/asset/125</link>
<link title="Third Person Shooter Demo">https://godotengine.org/asset-library/asset/678</link>
</tutorials>

View file

@ -9,8 +9,8 @@
Updating the target properties of animations occurs at process time.
</description>
<tutorials>
<link title="Animation tutorial index">https://docs.godotengine.org/en/3.4/tutorials/animation/index.html</link>
<link title="2D Sprite animation">https://docs.godotengine.org/en/3.4/tutorials/2d/2d_sprite_animation.html</link>
<link title="Animation tutorial index">$DOCS_URL/tutorials/animation/index.html</link>
<link title="2D Sprite animation">$DOCS_URL/tutorials/2d/2d_sprite_animation.html</link>
<link title="Third Person Shooter Demo">https://godotengine.org/asset-library/asset/678</link>
</tutorials>
<methods>

View file

@ -8,7 +8,7 @@
[b]Note:[/b] When linked with an [AnimationPlayer], several properties and methods of the corresponding [AnimationPlayer] will not function as expected. Playback and transitions should be handled using only the [AnimationTree] and its constituent [AnimationNode](s). The [AnimationPlayer] node should be used solely for adding, deleting, and editing animations.
</description>
<tutorials>
<link title="Using AnimationTree">https://docs.godotengine.org/en/3.4/tutorials/animation/animation_tree.html</link>
<link title="Using AnimationTree">$DOCS_URL/tutorials/animation/animation_tree.html</link>
<link title="Third Person Shooter Demo">https://godotengine.org/asset-library/asset/678</link>
</tutorials>
<methods>

View file

@ -9,7 +9,7 @@
See [AnimationTree] for a more full-featured replacement of this node.
</description>
<tutorials>
<link>https://docs.godotengine.org/en/3.4/tutorials/animation/animation_tree.html</link>
<link>$DOCS_URL/tutorials/animation/animation_tree.html</link>
</tutorials>
<methods>
<method name="add_node">

View file

@ -7,7 +7,7 @@
2D area that detects [CollisionObject2D] nodes overlapping, entering, or exiting. Can also alter or override local physics parameters (gravity, damping) and route audio to a custom audio bus.
</description>
<tutorials>
<link title="Using Area2D">https://docs.godotengine.org/en/3.4/tutorials/physics/using_area_2d.html</link>
<link title="Using Area2D">$DOCS_URL/tutorials/physics/using_area_2d.html</link>
<link title="2D Dodge The Creeps Demo">https://godotengine.org/asset-library/asset/515</link>
<link title="2D Pong Demo">https://godotengine.org/asset-library/asset/121</link>
<link title="2D Platformer Demo">https://godotengine.org/asset-library/asset/120</link>

View file

@ -26,7 +26,7 @@
[b]Note:[/b] Godot uses clockwise [url=https://learnopengl.com/Advanced-OpenGL/Face-culling]winding order[/url] for front faces of triangle primitive modes.
</description>
<tutorials>
<link>https://docs.godotengine.org/en/3.4/tutorials/content/procedural_geometry/arraymesh.html</link>
<link>$DOCS_URL/tutorials/content/procedural_geometry/arraymesh.html</link>
</tutorials>
<methods>
<method name="add_blend_shape">

View file

@ -9,7 +9,7 @@
By distorting the waveform the frequency content change, which will often make the sound "crunchy" or "abrasive". For games, it can simulate sound coming from some saturated device or speaker very efficiently.
</description>
<tutorials>
<link title="Audio buses">https://docs.godotengine.org/en/3.4/tutorials/audio/audio_buses.html</link>
<link title="Audio buses">$DOCS_URL/tutorials/audio/audio_buses.html</link>
</tutorials>
<methods>
</methods>

View file

@ -7,7 +7,7 @@
Allows frequencies other than the [member cutoff_hz] to pass.
</description>
<tutorials>
<link title="Audio buses">https://docs.godotengine.org/en/3.4/tutorials/audio/audio_buses.html</link>
<link title="Audio buses">$DOCS_URL/tutorials/audio/audio_buses.html</link>
</tutorials>
<methods>
</methods>

View file

@ -6,7 +6,7 @@
<description>
</description>
<tutorials>
<link title="Audio buses">https://docs.godotengine.org/en/3.4/tutorials/audio/audio_buses.html</link>
<link title="Audio buses">$DOCS_URL/tutorials/audio/audio_buses.html</link>
</tutorials>
<methods>
</methods>

View file

@ -6,7 +6,7 @@
<description>
</description>
<tutorials>
<link title="Audio buses">https://docs.godotengine.org/en/3.4/tutorials/audio/audio_buses.html</link>
<link title="Audio buses">$DOCS_URL/tutorials/audio/audio_buses.html</link>
</tutorials>
<methods>
</methods>

View file

@ -7,7 +7,7 @@
Allows the user to record sound from a microphone. It sets and gets the format in which the audio file will be recorded (8-bit, 16-bit, or compressed). It checks whether or not the recording is active, and if it is, records the sound. It then returns the recorded sample.
</description>
<tutorials>
<link title="Recording with microphone">https://docs.godotengine.org/en/3.4/tutorials/audio/recording_with_microphone.html</link>
<link title="Recording with microphone">$DOCS_URL/tutorials/audio/recording_with_microphone.html</link>
<link title="Audio Mic Record Demo">https://godotengine.org/asset-library/asset/527</link>
</tutorials>
<methods>

View file

@ -7,7 +7,7 @@
[AudioServer] is a low-level server interface for audio access. It is in charge of creating sample data (playable audio) as well as its playback via a voice interface.
</description>
<tutorials>
<link title="Audio buses">https://docs.godotengine.org/en/3.4/tutorials/audio/audio_buses.html</link>
<link title="Audio buses">$DOCS_URL/tutorials/audio/audio_buses.html</link>
<link title="Audio Device Changer Demo">https://godotengine.org/asset-library/asset/525</link>
<link title="Audio Mic Record Demo">https://godotengine.org/asset-library/asset/527</link>
<link title="Audio Spectrum Demo">https://godotengine.org/asset-library/asset/528</link>

View file

@ -7,7 +7,7 @@
Base class for audio streams. Audio streams are used for sound effects and music playback, and support WAV (via [AudioStreamSample]) and OGG (via [AudioStreamOGGVorbis]) file formats.
</description>
<tutorials>
<link title="Audio streams">https://docs.godotengine.org/en/3.4/tutorials/audio/audio_streams.html</link>
<link title="Audio streams">$DOCS_URL/tutorials/audio/audio_streams.html</link>
<link title="Audio Generator Demo">https://godotengine.org/asset-library/asset/526</link>
<link title="Audio Mic Record Demo">https://godotengine.org/asset-library/asset/527</link>
<link title="Audio Spectrum Demo">https://godotengine.org/asset-library/asset/528</link>

View file

@ -8,7 +8,7 @@
To play audio positionally, use [AudioStreamPlayer2D] or [AudioStreamPlayer3D] instead of [AudioStreamPlayer].
</description>
<tutorials>
<link title="Audio streams">https://docs.godotengine.org/en/3.4/tutorials/audio/audio_streams.html</link>
<link title="Audio streams">$DOCS_URL/tutorials/audio/audio_streams.html</link>
<link title="2D Dodge The Creeps Demo">https://godotengine.org/asset-library/asset/515</link>
<link title="Audio Device Changer Demo">https://godotengine.org/asset-library/asset/525</link>
<link title="Audio Generator Demo">https://godotengine.org/asset-library/asset/526</link>

View file

@ -9,7 +9,7 @@
[b]Note:[/b] Hiding an [AudioStreamPlayer2D] node does not disable its audio output. To temporarily disable an [AudioStreamPlayer2D]'s audio output, set [member volume_db] to a very low value like [code]-100[/code] (which isn't audible to human hearing).
</description>
<tutorials>
<link>https://docs.godotengine.org/en/3.4/tutorials/audio/audio_streams.html</link>
<link>$DOCS_URL/tutorials/audio/audio_streams.html</link>
</tutorials>
<methods>
<method name="get_playback_position">

View file

@ -10,7 +10,7 @@
[b]Note:[/b] Hiding an [AudioStreamPlayer3D] node does not disable its audio output. To temporarily disable an [AudioStreamPlayer3D]'s audio output, set [member unit_db] to a very low value like [code]-100[/code] (which isn't audible to human hearing).
</description>
<tutorials>
<link>https://docs.godotengine.org/en/3.4/tutorials/audio/audio_streams.html</link>
<link>$DOCS_URL/tutorials/audio/audio_streams.html</link>
</tutorials>
<methods>
<method name="get_playback_position">

View file

@ -9,7 +9,7 @@
[b]Note:[/b] Due to how lightmaps work, most properties only have a visible effect once lightmaps are baked again.
</description>
<tutorials>
<link>https://docs.godotengine.org/en/3.4/tutorials/3d/baked_lightmaps.html</link>
<link>$DOCS_URL/tutorials/3d/baked_lightmaps.html</link>
</tutorials>
<methods>
<method name="bake">

View file

@ -10,9 +10,9 @@
For more information, read the "Matrices and transforms" documentation article.
</description>
<tutorials>
<link title="Math tutorial index">https://docs.godotengine.org/en/3.4/tutorials/math/index.html</link>
<link title="Matrices and transforms">https://docs.godotengine.org/en/3.4/tutorials/math/matrices_and_transforms.html</link>
<link title="Using 3D transforms">https://docs.godotengine.org/en/3.4/tutorials/3d/using_transforms.html</link>
<link title="Math tutorial index">$DOCS_URL/tutorials/math/index.html</link>
<link title="Matrices and transforms">$DOCS_URL/tutorials/math/matrices_and_transforms.html</link>
<link title="Using 3D transforms">$DOCS_URL/tutorials/3d/using_transforms.html</link>
<link title="Matrix Transform Demo">https://godotengine.org/asset-library/asset/584</link>
<link title="3D Platformer Demo">https://godotengine.org/asset-library/asset/125</link>
<link title="3D Voxel Demo">https://godotengine.org/asset-library/asset/676</link>

View file

@ -9,7 +9,7 @@
[b]Note:[/b] Unlike [Particles2D], the visibility rect is generated on-the-fly and doesn't need to be configured by the user.
</description>
<tutorials>
<link>https://docs.godotengine.org/en/3.4/tutorials/2d/particle_systems_2d.html</link>
<link>$DOCS_URL/tutorials/2d/particle_systems_2d.html</link>
</tutorials>
<methods>
<method name="convert_from_particles">

View file

@ -12,8 +12,8 @@
[b]Note:[/b] Unless otherwise specified, all methods that have angle parameters must have angles specified as [i]radians[/i]. To convert degrees to radians, use [method @GDScript.deg2rad].
</description>
<tutorials>
<link title="Viewport and canvas transforms">https://docs.godotengine.org/en/3.4/tutorials/2d/2d_transforms.html</link>
<link title="Custom drawing in 2D">https://docs.godotengine.org/en/3.4/tutorials/2d/custom_drawing_in_2d.html</link>
<link title="Viewport and canvas transforms">$DOCS_URL/tutorials/2d/2d_transforms.html</link>
<link title="Custom drawing in 2D">$DOCS_URL/tutorials/2d/custom_drawing_in_2d.html</link>
<link title="Audio Spectrum Demo">https://godotengine.org/asset-library/asset/528</link>
</tutorials>
<methods>

View file

@ -7,8 +7,8 @@
Canvas drawing layer. [CanvasItem] nodes that are direct or indirect children of a [CanvasLayer] will be drawn in that layer. The layer is a numeric index that defines the draw order. The default 2D scene renders with index 0, so a [CanvasLayer] with index -1 will be drawn below, and one with index 1 will be drawn above. This is very useful for HUDs (in layer 1+ or above), or backgrounds (in layer -1 or below).
</description>
<tutorials>
<link title="Viewport and canvas transforms">https://docs.godotengine.org/en/3.4/tutorials/2d/2d_transforms.html</link>
<link title="Canvas layers">https://docs.godotengine.org/en/3.4/tutorials/2d/canvas_layers.html</link>
<link title="Viewport and canvas transforms">$DOCS_URL/tutorials/2d/2d_transforms.html</link>
<link title="Canvas layers">$DOCS_URL/tutorials/2d/canvas_layers.html</link>
<link title="2D Dodge The Creeps Demo">https://godotengine.org/asset-library/asset/515</link>
</tutorials>
<methods>

View file

@ -7,7 +7,7 @@
By setting various properties on this object, you can control how individual characters will be displayed in a [RichTextEffect].
</description>
<tutorials>
<link>https://docs.godotengine.org/en/3.4/tutorials/gui/bbcode_in_richtextlabel.html</link>
<link>$DOCS_URL/tutorials/gui/bbcode_in_richtextlabel.html</link>
<link>https://github.com/Eoin-ONeill-Yokai/Godot-Rich-Text-Effect-Test-Project</link>
</tutorials>
<methods>

View file

@ -75,7 +75,7 @@
If [code]true[/code], the camera stops on contact with [PhysicsBody]s.
</member>
<member name="collision_mask" type="int" setter="set_collision_mask" getter="get_collision_mask" default="1">
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/3.4/tutorials/physics/physics_introduction.html#collision-layers-and-masks]Collision layers and masks[/url] in the documentation for more information.
The camera's collision mask. Only objects in at least one collision layer matching the mask will be detected. See [url=$DOCS_URL/tutorials/physics/physics_introduction.html#collision-layers-and-masks]Collision layers and masks[/url] in the documentation for more information.
</member>
<member name="margin" type="float" setter="set_margin" getter="get_margin" default="0.0">
The camera's collision margin. The camera can't get closer than this distance to a colliding object.

View file

@ -172,11 +172,11 @@
<members>
<member name="collision_layer" type="int" setter="set_collision_layer" getter="get_collision_layer" default="1">
The physics layers this CollisionObject3D is in. Collision objects can exist in one or more of 32 different layers. See also [member collision_mask].
[b]Note:[/b] 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 [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.
[b]Note:[/b] 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 [url=$DOCS_URL/tutorials/physics/physics_introduction.html#collision-layers-and-masks]Collision layers and masks[/url] in the documentation for more information.
</member>
<member name="collision_mask" type="int" setter="set_collision_mask" getter="get_collision_mask" default="1">
The physics layers this CollisionObject3D scans. Collision objects can scan one or more of 32 different layers. See also [member collision_layer].
[b]Note:[/b] 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 [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.
[b]Note:[/b] 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 [url=$DOCS_URL/tutorials/physics/physics_introduction.html#collision-layers-and-masks]Collision layers and masks[/url] in the documentation for more information.
</member>
<member name="input_capture_on_drag" type="bool" setter="set_capture_input_on_drag" getter="get_capture_input_on_drag" default="false">
If [code]true[/code], the [CollisionObject] will continue to receive input events as the mouse is dragged across its shapes.

View file

@ -200,11 +200,11 @@
<members>
<member name="collision_layer" type="int" setter="set_collision_layer" getter="get_collision_layer" default="1">
The physics layers this CollisionObject2D is in. Collision objects can exist in one or more of 32 different layers. See also [member collision_mask].
[b]Note:[/b] 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 [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.
[b]Note:[/b] 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 [url=$DOCS_URL/tutorials/physics/physics_introduction.html#collision-layers-and-masks]Collision layers and masks[/url] in the documentation for more information.
</member>
<member name="collision_mask" type="int" setter="set_collision_mask" getter="get_collision_mask" default="1">
The physics layers this CollisionObject2D scans. Collision objects can scan one or more of 32 different layers. See also [member collision_layer].
[b]Note:[/b] 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 [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.
[b]Note:[/b] 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 [url=$DOCS_URL/tutorials/physics/physics_introduction.html#collision-layers-and-masks]Collision layers and masks[/url] in the documentation for more information.
</member>
<member name="input_pickable" type="bool" setter="set_pickable" getter="is_pickable" default="true">
If [code]true[/code], this object is pickable. A pickable object can detect the mouse pointer entering/leaving, and if the mouse is inside it, report input events. Requires at least one [code]collision_layer[/code] bit to be set.

View file

@ -7,7 +7,7 @@
Editor facility for creating and editing collision shapes in 3D space. You can use this node to represent all sorts of collision shapes, for example, add this to an [Area] to give it a detection shape, or add it to a [PhysicsBody] to create a solid object. [b]IMPORTANT[/b]: this is an Editor-only helper to create shapes, use [method CollisionObject.shape_owner_get_shape] to get the actual shape.
</description>
<tutorials>
<link title="Physics introduction">https://docs.godotengine.org/en/3.4/tutorials/physics/physics_introduction.html</link>
<link title="Physics introduction">$DOCS_URL/tutorials/physics/physics_introduction.html</link>
<link title="3D Kinematic Character Demo">https://godotengine.org/asset-library/asset/126</link>
<link title="3D Platformer Demo">https://godotengine.org/asset-library/asset/125</link>
<link title="Third Person Shooter Demo">https://godotengine.org/asset-library/asset/678</link>

View file

@ -7,7 +7,7 @@
Editor facility for creating and editing collision shapes in 2D space. You can use this node to represent all sorts of collision shapes, for example, add this to an [Area2D] to give it a detection shape, or add it to a [PhysicsBody2D] to create a solid object. [b]IMPORTANT[/b]: this is an Editor-only helper to create shapes, use [method CollisionObject2D.shape_owner_get_shape] to get the actual shape.
</description>
<tutorials>
<link title="Physics introduction">https://docs.godotengine.org/en/3.4/tutorials/physics/physics_introduction.html</link>
<link title="Physics introduction">$DOCS_URL/tutorials/physics/physics_introduction.html</link>
<link title="2D Dodge The Creeps Demo">https://godotengine.org/asset-library/asset/515</link>
<link title="2D Pong Demo">https://godotengine.org/asset-library/asset/121</link>
<link title="2D Kinematic Character Demo">https://godotengine.org/asset-library/asset/113</link>

View file

@ -14,9 +14,9 @@
[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.
</description>
<tutorials>
<link title="GUI tutorial index">https://docs.godotengine.org/en/3.4/tutorials/gui/index.html</link>
<link title="Custom drawing in 2D">https://docs.godotengine.org/en/3.4/tutorials/2d/custom_drawing_in_2d.html</link>
<link title="Control node gallery">https://docs.godotengine.org/en/3.4/tutorials/gui/control_node_gallery.html</link>
<link title="GUI tutorial index">$DOCS_URL/tutorials/gui/index.html</link>
<link title="Custom drawing in 2D">$DOCS_URL/tutorials/2d/custom_drawing_in_2d.html</link>
<link title="Control node gallery">$DOCS_URL/tutorials/gui/control_node_gallery.html</link>
<link title="All GUI Demos">https://github.com/godotengine/godot-demo-projects/tree/master/gui</link>
</tutorials>
<methods>
@ -790,7 +790,7 @@
</member>
<member name="rect_scale" type="Vector2" setter="set_scale" getter="get_scale" default="Vector2( 1, 1 )">
The node's scale, relative to its [member rect_size]. Change this property to scale the node around its [member rect_pivot_offset]. The Control's [member hint_tooltip] will also scale according to this value.
[b]Note:[/b] This property is mainly intended to be used for animation purposes. Text inside the Control will look pixelated or blurry when the Control is scaled. To support multiple resolutions in your project, use an appropriate viewport stretch mode as described in the [url=https://docs.godotengine.org/en/3.4/tutorials/viewports/multiple_resolutions.html]documentation[/url] instead of scaling Controls individually.
[b]Note:[/b] This property is mainly intended to be used for animation purposes. Text inside the Control will look pixelated or blurry when the Control is scaled. To support multiple resolutions in your project, use an appropriate viewport stretch mode as described in the [url=$DOCS_URL/tutorials/viewports/multiple_resolutions.html]documentation[/url] instead of scaling Controls individually.
[b]Note:[/b] If the Control node is a child of a [Container] node, the scale will be reset to [code]Vector2(1, 1)[/code] when the scene is instanced. To set the Control's scale when it's instanced, wait for one frame using [code]yield(get_tree(), "idle_frame")[/code] then set its [member rect_scale] property.
</member>
<member name="rect_size" type="Vector2" setter="_set_size" getter="get_size" default="Vector2( 0, 0 )">

View file

@ -84,7 +84,7 @@
[b]Note:[/b] When declaring a dictionary with [code]const[/code], the dictionary itself can still be mutated by defining the values of individual keys. Using [code]const[/code] will only prevent assigning the constant with another value after it was initialized.
</description>
<tutorials>
<link title="GDScript basics: Dictionary">https://docs.godotengine.org/en/3.4/getting_started/scripting/gdscript/gdscript_basics.html#dictionary</link>
<link title="GDScript basics: Dictionary">$DOCS_URL/getting_started/scripting/gdscript/gdscript_basics.html#dictionary</link>
<link title="3D Voxel Demo">https://godotengine.org/asset-library/asset/676</link>
<link title="OS Test Demo">https://godotengine.org/asset-library/asset/677</link>
</tutorials>

View file

@ -7,7 +7,7 @@
A directional light is a type of [Light] node that models an infinite number of parallel rays covering the entire scene. It is used for lights with strong intensity that are located far away from the scene to model sunlight or moonlight. The worldspace location of the DirectionalLight transform (origin) is ignored. Only the basis is used to determine light direction.
</description>
<tutorials>
<link>https://docs.godotengine.org/en/3.4/tutorials/3d/lights_and_shadows.html</link>
<link>$DOCS_URL/tutorials/3d/lights_and_shadows.html</link>
</tutorials>
<methods>
</methods>

View file

@ -25,7 +25,7 @@
[/codeblock]
</description>
<tutorials>
<link>https://docs.godotengine.org/en/3.4/getting_started/step_by_step/filesystem.html</link>
<link>$DOCS_URL/getting_started/step_by_step/filesystem.html</link>
</tutorials>
<methods>
<method name="change_dir">

View file

@ -48,7 +48,7 @@
[/codeblock]
</description>
<tutorials>
<link>https://docs.godotengine.org/en/3.4/tutorials/plugins/editor/import_plugins.html</link>
<link>$DOCS_URL/tutorials/plugins/editor/import_plugins.html</link>
</tutorials>
<methods>
<method name="get_import_options" qualifiers="virtual">

View file

@ -13,7 +13,7 @@
On each of these calls, the "add" functions can be called.
</description>
<tutorials>
<link title="Inspector plugins">https://docs.godotengine.org/en/3.4/tutorials/plugins/editor/inspector_plugins.html</link>
<link title="Inspector plugins">$DOCS_URL/tutorials/plugins/editor/inspector_plugins.html</link>
</tutorials>
<methods>
<method name="add_custom_control">

View file

@ -7,7 +7,7 @@
Plugins are used by the editor to extend functionality. The most common types of plugins are those which edit a given node or resource type, import plugins and export plugins. See also [EditorScript] to add functions to the editor.
</description>
<tutorials>
<link>https://docs.godotengine.org/en/3.4/tutorials/plugins/editor/index.html</link>
<link>$DOCS_URL/tutorials/plugins/editor/index.html</link>
</tutorials>
<methods>
<method name="add_autoload_singleton">

View file

@ -26,7 +26,7 @@
[/codeblock]
</description>
<tutorials>
<link>https://docs.godotengine.org/en/3.4/getting_started/workflow/assets/importing_scenes.html#custom-script</link>
<link>$DOCS_URL/getting_started/workflow/assets/importing_scenes.html#custom-script</link>
</tutorials>
<methods>
<method name="get_source_file" qualifiers="const">

View file

@ -7,7 +7,7 @@
EditorSpatialGizmoPlugin allows you to define a new type of Gizmo. There are two main ways to do so: extending [EditorSpatialGizmoPlugin] for the simpler gizmos, or creating a new [EditorSpatialGizmo] type. See the tutorial in the documentation for more info.
</description>
<tutorials>
<link>https://docs.godotengine.org/en/3.4/tutorials/plugins/editor/spatial_gizmos.html</link>
<link>$DOCS_URL/tutorials/plugins/editor/spatial_gizmos.html</link>
</tutorials>
<methods>
<method name="add_material">

View file

@ -146,7 +146,7 @@
else:
simulate_physics()
[/codeblock]
See [url=https://docs.godotengine.org/en/3.4/tutorials/misc/running_code_in_the_editor.html]Running code in the editor[/url] in the documentation for more information.
See [url=$DOCS_URL/tutorials/misc/running_code_in_the_editor.html]Running code in the editor[/url] in the documentation for more information.
[b]Note:[/b] To detect whether the script is run from an editor [i]build[/i] (e.g. when pressing [code]F5[/code]), use [method OS.has_feature] with the [code]"editor"[/code] argument instead. [code]OS.has_feature("editor")[/code] will evaluate to [code]true[/code] both when the code is running in the editor and when running the project from the editor, but it will evaluate to [code]false[/code] when the code is run from an exported project.
</member>
<member name="iterations_per_second" type="int" setter="set_iterations_per_second" getter="get_iterations_per_second" default="60">

View file

@ -12,8 +12,8 @@
These effects will only apply when the [Viewport]'s intended usage is "3D" or "3D Without Effects". This can be configured for the root Viewport with [member ProjectSettings.rendering/quality/intended_usage/framebuffer_allocation], or for specific Viewports via the [member Viewport.usage] property.
</description>
<tutorials>
<link title="Environment and post-processing">https://docs.godotengine.org/en/3.4/tutorials/3d/environment_and_post_processing.html</link>
<link title="Light transport in game engines">https://docs.godotengine.org/en/3.4/tutorials/3d/high_dynamic_range.html</link>
<link title="Environment and post-processing">$DOCS_URL/tutorials/3d/environment_and_post_processing.html</link>
<link title="Light transport in game engines">$DOCS_URL/tutorials/3d/high_dynamic_range.html</link>
<link title="3D Material Testers Demo">https://godotengine.org/asset-library/asset/123</link>
<link title="2D HDR Demo">https://godotengine.org/asset-library/asset/110</link>
<link title="Third Person Shooter Demo">https://godotengine.org/asset-library/asset/678</link>

View file

@ -20,12 +20,12 @@
file.close()
return content
[/codeblock]
In the example above, the file will be saved in the user data folder as specified in the [url=https://docs.godotengine.org/en/3.4/tutorials/io/data_paths.html]Data paths[/url] documentation.
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.
[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>
<link title="File system">https://docs.godotengine.org/en/3.4/getting_started/step_by_step/filesystem.html</link>
<link title="File system">$DOCS_URL/getting_started/step_by_step/filesystem.html</link>
<link title="3D Voxel Demo">https://godotengine.org/asset-library/asset/676</link>
</tutorials>
<methods>

View file

@ -12,7 +12,7 @@
[b]Note:[/b] Due to a renderer limitation, emissive [ShaderMaterial]s cannot emit light when used in a [GIProbe]. Only emissive [SpatialMaterial]s can emit light in a [GIProbe].
</description>
<tutorials>
<link title="GI probes">https://docs.godotengine.org/en/3.4/tutorials/3d/gi_probes.html</link>
<link title="GI probes">$DOCS_URL/tutorials/3d/gi_probes.html</link>
<link title="Third Person Shooter Demo">https://godotengine.org/asset-library/asset/678</link>
</tutorials>
<methods>

View file

@ -13,8 +13,8 @@
[b]Warning:[/b] SSL/TLS certificate revocation and certificate pinning are currently not supported. Revoked certificates are accepted as long as they are otherwise valid. If this is a concern, you may want to use automatically managed certificates with a short validity period.
</description>
<tutorials>
<link>https://docs.godotengine.org/en/3.4/tutorials/networking/http_client_class.html</link>
<link>https://docs.godotengine.org/en/3.4/tutorials/networking/ssl_certificates.html</link>
<link>$DOCS_URL/tutorials/networking/http_client_class.html</link>
<link>$DOCS_URL/tutorials/networking/ssl_certificates.html</link>
</tutorials>
<methods>
<method name="close">

View file

@ -67,8 +67,8 @@
[/codeblock]
</description>
<tutorials>
<link>https://docs.godotengine.org/en/3.4/tutorials/networking/http_request_class.html</link>
<link>https://docs.godotengine.org/en/3.4/tutorials/networking/ssl_certificates.html</link>
<link>$DOCS_URL/tutorials/networking/http_request_class.html</link>
<link>$DOCS_URL/tutorials/networking/ssl_certificates.html</link>
</tutorials>
<methods>
<method name="cancel_request">

View file

@ -9,7 +9,7 @@
[b]Note:[/b] The maximum image size is 16384×16384 pixels due to graphics hardware limitations. Larger images may fail to import.
</description>
<tutorials>
<link title="Importing images">https://docs.godotengine.org/en/3.4/getting_started/workflow/assets/importing_images.html</link>
<link title="Importing images">$DOCS_URL/getting_started/workflow/assets/importing_images.html</link>
</tutorials>
<methods>
<method name="blend_rect">
@ -259,7 +259,7 @@
<return type="int" enum="Error" />
<argument index="0" name="path" type="String" />
<description>
Loads an image from file [code]path[/code]. See [url=https://docs.godotengine.org/en/3.4/getting_started/workflow/assets/importing_images.html#supported-image-formats]Supported image formats[/url] for a list of supported image formats and limitations.
Loads an image from file [code]path[/code]. See [url=$DOCS_URL/getting_started/workflow/assets/importing_images.html#supported-image-formats]Supported image formats[/url] for a list of supported image formats and limitations.
[b]Warning:[/b] This method should only be used in the editor or in cases when you need to load external images at run-time, such as images located at the [code]user://[/code] directory, and may not work in exported projects.
See also [ImageTexture] description for usage examples.
</description>

View file

@ -28,7 +28,7 @@
[b]Note:[/b] The maximum texture size is 16384×16384 pixels due to graphics hardware limitations.
</description>
<tutorials>
<link title="Importing images">https://docs.godotengine.org/en/3.4/getting_started/workflow/assets/importing_images.html</link>
<link title="Importing images">$DOCS_URL/getting_started/workflow/assets/importing_images.html</link>
</tutorials>
<methods>
<method name="create">

View file

@ -7,7 +7,7 @@
A singleton that deals with inputs. This includes key presses, mouse buttons and movement, joypads, and input actions. Actions and their events can be set in the [b]Input Map[/b] tab in the [b]Project &gt; Project Settings[/b], or with the [InputMap] class.
</description>
<tutorials>
<link title="Inputs tutorial index">https://docs.godotengine.org/en/3.4/tutorials/inputs/index.html</link>
<link title="Inputs tutorial index">$DOCS_URL/tutorials/inputs/index.html</link>
<link title="2D Dodge The Creeps Demo">https://godotengine.org/asset-library/asset/515</link>
<link title="3D Voxel Demo">https://godotengine.org/asset-library/asset/676</link>
</tutorials>

View file

@ -7,8 +7,8 @@
Base class of all sort of input event. See [method Node._input].
</description>
<tutorials>
<link title="InputEvent">https://docs.godotengine.org/en/3.4/tutorials/inputs/inputevent.html</link>
<link title="Viewport and canvas transforms">https://docs.godotengine.org/en/3.4/tutorials/2d/2d_transforms.html</link>
<link title="InputEvent">$DOCS_URL/tutorials/inputs/inputevent.html</link>
<link title="Viewport and canvas transforms">$DOCS_URL/tutorials/2d/2d_transforms.html</link>
<link title="2D Dodge The Creeps Demo">https://godotengine.org/asset-library/asset/515</link>
<link title="3D Voxel Demo">https://godotengine.org/asset-library/asset/676</link>
</tutorials>

View file

@ -7,7 +7,7 @@
Contains a generic action which can be targeted from several types of inputs. Actions can be created from the [b]Input Map[/b] tab in the [b]Project &gt; Project Settings[/b] menu. See [method Node._input].
</description>
<tutorials>
<link title="InputEvent: Actions">https://docs.godotengine.org/en/3.4/tutorials/inputs/inputevent.html#actions</link>
<link title="InputEvent: Actions">$DOCS_URL/tutorials/inputs/inputevent.html#actions</link>
<link title="2D Dodge The Creeps Demo">https://godotengine.org/asset-library/asset/515</link>
<link title="3D Voxel Demo">https://godotengine.org/asset-library/asset/676</link>
</tutorials>

View file

@ -7,7 +7,7 @@
Input event type for gamepad buttons. For gamepad analog sticks and joysticks, see [InputEventJoypadMotion].
</description>
<tutorials>
<link>https://docs.godotengine.org/en/3.4/tutorials/inputs/inputevent.html</link>
<link>$DOCS_URL/tutorials/inputs/inputevent.html</link>
</tutorials>
<methods>
</methods>

View file

@ -7,7 +7,7 @@
Stores information about joystick motions. One [InputEventJoypadMotion] represents one axis at a time.
</description>
<tutorials>
<link>https://docs.godotengine.org/en/3.4/tutorials/inputs/inputevent.html</link>
<link>$DOCS_URL/tutorials/inputs/inputevent.html</link>
</tutorials>
<methods>
</methods>

View file

@ -7,7 +7,7 @@
Stores key presses on the keyboard. Supports key presses, key releases and [member echo] events.
</description>
<tutorials>
<link>https://docs.godotengine.org/en/3.4/tutorials/inputs/inputevent.html</link>
<link>$DOCS_URL/tutorials/inputs/inputevent.html</link>
</tutorials>
<methods>
<method name="get_physical_scancode_with_modifiers" qualifiers="const">

View file

@ -7,7 +7,7 @@
Stores general mouse events information.
</description>
<tutorials>
<link>https://docs.godotengine.org/en/3.4/tutorials/inputs/inputevent.html</link>
<link>$DOCS_URL/tutorials/inputs/inputevent.html</link>
</tutorials>
<methods>
</methods>

View file

@ -7,7 +7,7 @@
Contains mouse click information. See [method Node._input].
</description>
<tutorials>
<link>https://docs.godotengine.org/en/3.4/tutorials/inputs/mouse_and_input_coordinates.html</link>
<link>$DOCS_URL/tutorials/inputs/mouse_and_input_coordinates.html</link>
</tutorials>
<methods>
</methods>

View file

@ -8,7 +8,7 @@
[b]Note:[/b] By default, this event is only emitted once per frame rendered at most. If you need more precise input reporting, call [method Input.set_use_accumulated_input] with [code]false[/code] to make events emitted as often as possible. If you use InputEventMouseMotion to draw lines, consider implementing [url=https://en.wikipedia.org/wiki/Bresenham%27s_line_algorithm]Bresenham's line algorithm[/url] as well to avoid visible gaps in lines if the user is moving the mouse quickly.
</description>
<tutorials>
<link title="Mouse and input coordinates">https://docs.godotengine.org/en/3.4/tutorials/inputs/mouse_and_input_coordinates.html</link>
<link title="Mouse and input coordinates">$DOCS_URL/tutorials/inputs/mouse_and_input_coordinates.html</link>
<link title="3D Voxel Demo">https://godotengine.org/asset-library/asset/676</link>
</tutorials>
<methods>

View file

@ -7,7 +7,7 @@
Contains screen drag information. See [method Node._input].
</description>
<tutorials>
<link>https://docs.godotengine.org/en/3.4/tutorials/inputs/inputevent.html</link>
<link>$DOCS_URL/tutorials/inputs/inputevent.html</link>
</tutorials>
<methods>
</methods>

View file

@ -8,7 +8,7 @@
Stores multi-touch press/release information. Supports touch press, touch release and [member index] for multi-touch count and order.
</description>
<tutorials>
<link>https://docs.godotengine.org/en/3.4/tutorials/inputs/inputevent.html</link>
<link>$DOCS_URL/tutorials/inputs/inputevent.html</link>
</tutorials>
<methods>
</methods>

View file

@ -7,7 +7,7 @@
Contains keys events information with modifiers support like [code]Shift[/code] or [code]Alt[/code]. See [method Node._input].
</description>
<tutorials>
<link>https://docs.godotengine.org/en/3.4/tutorials/inputs/inputevent.html</link>
<link>$DOCS_URL/tutorials/inputs/inputevent.html</link>
</tutorials>
<methods>
</methods>

View file

@ -7,7 +7,7 @@
Manages all [InputEventAction] which can be created/modified from the project settings menu [b]Project &gt; Project Settings &gt; Input Map[/b] or in code with [method add_action] and [method action_add_event]. See [method Node._input].
</description>
<tutorials>
<link>https://docs.godotengine.org/en/3.4/tutorials/inputs/inputevent.html#inputmap</link>
<link>$DOCS_URL/tutorials/inputs/inputevent.html#inputmap</link>
</tutorials>
<methods>
<method name="action_add_event">

View file

@ -7,7 +7,7 @@
The JNISingleton is implemented only in the Android export. It's used to call methods and connect signals from an Android plugin written in Java or Kotlin. Methods and signals can be called and connected to the JNISingleton as if it is a Node. See [url=https://en.wikipedia.org/wiki/Java_Native_Interface]Java Native Interface - Wikipedia[/url] for more information.
</description>
<tutorials>
<link title="Creating Android plugins">https://docs.godotengine.org/en/3.4/tutorials/plugins/android/android_plugin.html</link>
<link title="Creating Android plugins">$DOCS_URL/tutorials/plugins/android/android_plugin.html</link>
</tutorials>
<methods>
</methods>

View file

@ -5,10 +5,10 @@
</brief_description>
<description>
The JavaScript singleton is implemented only in the HTML5 export. It's used to access the browser's JavaScript context. This allows interaction with embedding pages or calling third-party JavaScript APIs.
[b]Note:[/b] This singleton can be disabled at build-time to improve security. By default, the JavaScript singleton is enabled. Official export templates also have the JavaScript singleton enabled. See [url=https://docs.godotengine.org/en/3.4/development/compiling/compiling_for_web.html]Compiling for the Web[/url] in the documentation for more information.
[b]Note:[/b] This singleton can be disabled at build-time to improve security. By default, the JavaScript singleton is enabled. Official export templates also have the JavaScript singleton enabled. See [url=$DOCS_URL/development/compiling/compiling_for_web.html]Compiling for the Web[/url] in the documentation for more information.
</description>
<tutorials>
<link>https://docs.godotengine.org/en/3.4/getting_started/workflow/export/exporting_for_web.html#calling-javascript-from-script</link>
<link>$DOCS_URL/getting_started/workflow/export/exporting_for_web.html#calling-javascript-from-script</link>
</tutorials>
<methods>
<method name="create_callback">

View file

@ -9,7 +9,7 @@
[b]Kinematic characters:[/b] KinematicBody also has an API for moving objects (the [method move_and_collide] and [method move_and_slide] methods) while performing collision tests. This makes them really useful to implement characters that collide against a world, but don't require advanced physics.
</description>
<tutorials>
<link title="Kinematic character (2D)">https://docs.godotengine.org/en/3.4/tutorials/physics/kinematic_character_2d.html</link>
<link title="Kinematic character (2D)">$DOCS_URL/tutorials/physics/kinematic_character_2d.html</link>
<link title="3D Kinematic Character Demo">https://godotengine.org/asset-library/asset/126</link>
<link title="3D Platformer Demo">https://godotengine.org/asset-library/asset/125</link>
<link title="3D Voxel Demo">https://godotengine.org/asset-library/asset/676</link>

View file

@ -9,8 +9,8 @@
[b]Kinematic characters:[/b] KinematicBody2D also has an API for moving objects (the [method move_and_collide] and [method move_and_slide] methods) while performing collision tests. This makes them really useful to implement characters that collide against a world, but don't require advanced physics.
</description>
<tutorials>
<link title="Kinematic character (2D)">https://docs.godotengine.org/en/3.4/tutorials/physics/kinematic_character_2d.html</link>
<link title="Using KinematicBody2D">https://docs.godotengine.org/en/3.4/tutorials/physics/using_kinematic_body_2d.html</link>
<link title="Kinematic character (2D)">$DOCS_URL/tutorials/physics/kinematic_character_2d.html</link>
<link title="Using KinematicBody2D">$DOCS_URL/tutorials/physics/using_kinematic_body_2d.html</link>
<link title="2D Kinematic Character Demo">https://godotengine.org/asset-library/asset/113</link>
<link title="2D Platformer Demo">https://godotengine.org/asset-library/asset/120</link>
</tutorials>

View file

@ -7,7 +7,7 @@
Light is the [i]abstract[/i] base class for light nodes. As it can't be instanced, it shouldn't be used directly. Other types of light nodes inherit from it. Light contains the common variables and parameters used for lighting.
</description>
<tutorials>
<link title="3D lights and shadows">https://docs.godotengine.org/en/3.4/tutorials/3d/lights_and_shadows.html</link>
<link title="3D lights and shadows">$DOCS_URL/tutorials/3d/lights_and_shadows.html</link>
<link title="Third Person Shooter Demo">https://godotengine.org/asset-library/asset/678</link>
</tutorials>
<methods>

View file

@ -8,7 +8,7 @@
[b]Note:[/b] Light2D can also be used as a mask.
</description>
<tutorials>
<link>https://docs.godotengine.org/en/3.4/tutorials/2d/2d_lights_and_shadows.html</link>
<link>$DOCS_URL/tutorials/2d/2d_lights_and_shadows.html</link>
</tutorials>
<methods>
</methods>

View file

@ -7,7 +7,7 @@
Occludes light cast by a Light2D, casting shadows. The LightOccluder2D must be provided with an [OccluderPolygon2D] in order for the shadow to be computed.
</description>
<tutorials>
<link>https://docs.godotengine.org/en/3.4/tutorials/2d/2d_lights_and_shadows.html</link>
<link>$DOCS_URL/tutorials/2d/2d_lights_and_shadows.html</link>
</tutorials>
<methods>
</methods>

View file

@ -7,7 +7,7 @@
Node used for displaying a [Mesh] in 2D. Can be constructed from an existing [Sprite] via a tool in the editor toolbar. Select "Sprite" then "Convert to Mesh2D", select settings in popup and press "Create Mesh2D".
</description>
<tutorials>
<link>https://docs.godotengine.org/en/3.4/tutorials/2d/2d_meshes.html</link>
<link>$DOCS_URL/tutorials/2d/2d_meshes.html</link>
</tutorials>
<methods>
</methods>

View file

@ -10,8 +10,8 @@
Since instances may have any behavior, the AABB used for visibility must be provided by the user.
</description>
<tutorials>
<link>https://docs.godotengine.org/en/3.4/tutorials/3d/vertex_animation/animating_thousands_of_fish.html</link>
<link>https://docs.godotengine.org/en/3.4/tutorials/optimization/using_multimesh.html</link>
<link>$DOCS_URL/tutorials/3d/vertex_animation/animating_thousands_of_fish.html</link>
<link>$DOCS_URL/tutorials/optimization/using_multimesh.html</link>
</tutorials>
<methods>
<method name="get_aabb" qualifiers="const">

View file

@ -8,9 +8,9 @@
This is useful to optimize the rendering of a high amount of instances of a given mesh (for example trees in a forest or grass strands).
</description>
<tutorials>
<link>https://docs.godotengine.org/en/3.4/tutorials/3d/vertex_animation/animating_thousands_of_fish.html</link>
<link>https://docs.godotengine.org/en/3.4/tutorials/3d/using_multi_mesh_instance.html</link>
<link>https://docs.godotengine.org/en/3.4/tutorials/optimization/using_multimesh.html</link>
<link>$DOCS_URL/tutorials/3d/vertex_animation/animating_thousands_of_fish.html</link>
<link>$DOCS_URL/tutorials/3d/using_multi_mesh_instance.html</link>
<link>$DOCS_URL/tutorials/optimization/using_multimesh.html</link>
</tutorials>
<methods>
</methods>

View file

@ -7,7 +7,7 @@
A synchronization mutex (mutual exclusion). This is used to synchronize multiple [Thread]s, and is equivalent to a binary [Semaphore]. It guarantees that only one thread can ever acquire the lock at a time. A mutex can be used to protect a critical section; however, be careful to avoid deadlocks.
</description>
<tutorials>
<link>https://docs.godotengine.org/en/3.4/tutorials/threads/using_multiple_threads.html</link>
<link>$DOCS_URL/tutorials/threads/using_multiple_threads.html</link>
</tutorials>
<methods>
<method name="lock">

View file

@ -8,7 +8,7 @@
[b]Note:[/b] The high-level multiplayer API protocol is an implementation detail and isn't meant to be used by non-Godot servers. It may change without notice.
</description>
<tutorials>
<link title="High-level multiplayer">https://docs.godotengine.org/en/3.4/tutorials/networking/high_level_multiplayer.html</link>
<link title="High-level multiplayer">$DOCS_URL/tutorials/networking/high_level_multiplayer.html</link>
<link title="WebRTC Signaling Demo">https://godotengine.org/asset-library/asset/537</link>
</tutorials>
<methods>

Some files were not shown because too many files have changed in this diff Show more