summaryrefslogtreecommitdiff
path: root/doc
diff options
context:
space:
mode:
Diffstat (limited to 'doc')
-rw-r--r--doc/Makefile2
-rw-r--r--doc/classes/@GDScript.xml1201
-rw-r--r--doc/classes/@GlobalScope.xml42
-rw-r--r--doc/classes/@VisualScript.xml17
-rw-r--r--doc/classes/AABB.xml40
-rw-r--r--doc/classes/ARVRAnchor.xml28
-rw-r--r--doc/classes/ARVRCamera.xml10
-rw-r--r--doc/classes/ARVRController.xml24
-rw-r--r--doc/classes/ARVRInterface.xml13
-rw-r--r--doc/classes/ARVROrigin.xml6
-rw-r--r--doc/classes/ARVRPositionalTracker.xml11
-rw-r--r--doc/classes/ARVRServer.xml6
-rw-r--r--doc/classes/AStar.xml69
-rw-r--r--doc/classes/AStar2D.xml258
-rw-r--r--doc/classes/AcceptDialog.xml15
-rw-r--r--doc/classes/AnimatedSprite.xml19
-rw-r--r--doc/classes/AnimatedSprite3D.xml8
-rw-r--r--doc/classes/AnimatedTexture.xml26
-rw-r--r--doc/classes/Animation.xml65
-rw-r--r--doc/classes/AnimationNode.xml20
-rw-r--r--doc/classes/AnimationNodeAdd2.xml7
-rw-r--r--doc/classes/AnimationNodeAdd3.xml11
-rw-r--r--doc/classes/AnimationNodeAnimation.xml7
-rw-r--r--doc/classes/AnimationNodeBlend2.xml7
-rw-r--r--doc/classes/AnimationNodeBlend3.xml11
-rw-r--r--doc/classes/AnimationNodeBlendSpace1D.xml20
-rw-r--r--doc/classes/AnimationNodeBlendSpace2D.xml36
-rw-r--r--doc/classes/AnimationNodeBlendTree.xml4
-rw-r--r--doc/classes/AnimationNodeOneShot.xml4
-rw-r--r--doc/classes/AnimationNodeOutput.xml4
-rw-r--r--doc/classes/AnimationNodeStateMachine.xml34
-rw-r--r--doc/classes/AnimationNodeStateMachinePlayback.xml15
-rw-r--r--doc/classes/AnimationNodeStateMachineTransition.xml16
-rw-r--r--doc/classes/AnimationNodeTimeScale.xml4
-rw-r--r--doc/classes/AnimationNodeTimeSeek.xml4
-rw-r--r--doc/classes/AnimationNodeTransition.xml4
-rw-r--r--doc/classes/AnimationPlayer.xml34
-rw-r--r--doc/classes/AnimationRootNode.xml4
-rw-r--r--doc/classes/AnimationTrackEditPlugin.xml4
-rw-r--r--doc/classes/AnimationTree.xml6
-rw-r--r--doc/classes/AnimationTreePlayer.xml20
-rw-r--r--doc/classes/Area.xml36
-rw-r--r--doc/classes/Area2D.xml34
-rw-r--r--doc/classes/Array.xml80
-rw-r--r--doc/classes/ArrayMesh.xml71
-rw-r--r--doc/classes/AtlasTexture.xml6
-rw-r--r--doc/classes/AudioBusLayout.xml6
-rw-r--r--doc/classes/AudioEffect.xml4
-rw-r--r--doc/classes/AudioEffectAmplify.xml4
-rw-r--r--doc/classes/AudioEffectBandLimitFilter.xml4
-rw-r--r--doc/classes/AudioEffectBandPassFilter.xml4
-rw-r--r--doc/classes/AudioEffectChorus.xml4
-rw-r--r--doc/classes/AudioEffectCompressor.xml4
-rw-r--r--doc/classes/AudioEffectDelay.xml6
-rw-r--r--doc/classes/AudioEffectDistortion.xml4
-rw-r--r--doc/classes/AudioEffectEQ.xml4
-rw-r--r--doc/classes/AudioEffectEQ10.xml4
-rw-r--r--doc/classes/AudioEffectEQ21.xml4
-rw-r--r--doc/classes/AudioEffectEQ6.xml4
-rw-r--r--doc/classes/AudioEffectFilter.xml4
-rw-r--r--doc/classes/AudioEffectHighPassFilter.xml4
-rw-r--r--doc/classes/AudioEffectHighShelfFilter.xml4
-rw-r--r--doc/classes/AudioEffectInstance.xml (renamed from doc/classes/@NativeScript.xml)4
-rw-r--r--doc/classes/AudioEffectLimiter.xml6
-rw-r--r--doc/classes/AudioEffectLowPassFilter.xml4
-rw-r--r--doc/classes/AudioEffectLowShelfFilter.xml4
-rw-r--r--doc/classes/AudioEffectNotchFilter.xml4
-rw-r--r--doc/classes/AudioEffectPanner.xml4
-rw-r--r--doc/classes/AudioEffectPhaser.xml4
-rw-r--r--doc/classes/AudioEffectPitchShift.xml4
-rw-r--r--doc/classes/AudioEffectRecord.xml4
-rw-r--r--doc/classes/AudioEffectReverb.xml6
-rw-r--r--doc/classes/AudioEffectSpectrumAnalyzer.xml33
-rw-r--r--doc/classes/AudioEffectSpectrumAnalyzerInstance.xml29
-rw-r--r--doc/classes/AudioEffectStereoEnhance.xml4
-rw-r--r--doc/classes/AudioServer.xml65
-rw-r--r--doc/classes/AudioStream.xml6
-rw-r--r--doc/classes/AudioStreamGenerator.xml19
-rw-r--r--doc/classes/AudioStreamGeneratorPlayback.xml55
-rw-r--r--doc/classes/AudioStreamMicrophone.xml4
-rw-r--r--doc/classes/AudioStreamPlayback.xml4
-rw-r--r--doc/classes/AudioStreamPlaybackResampled.xml13
-rw-r--r--doc/classes/AudioStreamPlayer.xml15
-rw-r--r--doc/classes/AudioStreamPlayer2D.xml15
-rw-r--r--doc/classes/AudioStreamPlayer3D.xml20
-rw-r--r--doc/classes/AudioStreamRandomPitch.xml4
-rw-r--r--doc/classes/AudioStreamSample.xml16
-rw-r--r--doc/classes/BackBufferCopy.xml4
-rw-r--r--doc/classes/BakedLightmap.xml6
-rw-r--r--doc/classes/BakedLightmapData.xml4
-rw-r--r--doc/classes/BaseButton.xml27
-rw-r--r--doc/classes/Basis.xml33
-rw-r--r--doc/classes/BitMap.xml12
-rw-r--r--doc/classes/BitmapFont.xml10
-rw-r--r--doc/classes/Bone2D.xml14
-rw-r--r--doc/classes/BoneAttachment.xml4
-rw-r--r--doc/classes/BoxContainer.xml4
-rw-r--r--doc/classes/BoxShape.xml4
-rw-r--r--doc/classes/Button.xml4
-rw-r--r--doc/classes/ButtonGroup.xml17
-rw-r--r--doc/classes/CPUParticles.xml130
-rw-r--r--doc/classes/CPUParticles2D.xml111
-rw-r--r--doc/classes/Camera.xml45
-rw-r--r--doc/classes/Camera2D.xml36
-rw-r--r--doc/classes/CameraFeed.xml64
-rw-r--r--doc/classes/CameraServer.xml83
-rw-r--r--doc/classes/CameraTexture.xml25
-rw-r--r--doc/classes/CanvasItem.xml72
-rw-r--r--doc/classes/CanvasItemMaterial.xml6
-rw-r--r--doc/classes/CanvasLayer.xml12
-rw-r--r--doc/classes/CanvasModulate.xml6
-rw-r--r--doc/classes/CapsuleMesh.xml4
-rw-r--r--doc/classes/CapsuleShape.xml4
-rw-r--r--doc/classes/CapsuleShape2D.xml4
-rw-r--r--doc/classes/CenterContainer.xml6
-rw-r--r--doc/classes/CheckBox.xml4
-rw-r--r--doc/classes/CheckButton.xml8
-rw-r--r--doc/classes/CircleShape2D.xml4
-rw-r--r--doc/classes/ClassDB.xml18
-rw-r--r--doc/classes/ClippedCamera.xml10
-rw-r--r--doc/classes/CollisionObject.xml12
-rw-r--r--doc/classes/CollisionObject2D.xml38
-rw-r--r--doc/classes/CollisionPolygon.xml8
-rw-r--r--doc/classes/CollisionPolygon2D.xml12
-rw-r--r--doc/classes/CollisionShape.xml4
-rw-r--r--doc/classes/CollisionShape2D.xml6
-rw-r--r--doc/classes/Color.xml51
-rw-r--r--doc/classes/ColorPicker.xml49
-rw-r--r--doc/classes/ColorPickerButton.xml6
-rw-r--r--doc/classes/ColorRect.xml4
-rw-r--r--doc/classes/ConcavePolygonShape.xml6
-rw-r--r--doc/classes/ConcavePolygonShape2D.xml8
-rw-r--r--doc/classes/ConeTwistJoint.xml8
-rw-r--r--doc/classes/ConfigFile.xml4
-rw-r--r--doc/classes/ConfirmationDialog.xml6
-rw-r--r--doc/classes/Container.xml6
-rw-r--r--doc/classes/Control.xml152
-rw-r--r--doc/classes/ConvexPolygonShape.xml4
-rw-r--r--doc/classes/ConvexPolygonShape2D.xml8
-rw-r--r--doc/classes/CubeMap.xml36
-rw-r--r--doc/classes/CubeMesh.xml5
-rw-r--r--doc/classes/Curve.xml4
-rw-r--r--doc/classes/Curve2D.xml38
-rw-r--r--doc/classes/Curve3D.xml52
-rw-r--r--doc/classes/CurveTexture.xml4
-rw-r--r--doc/classes/CylinderMesh.xml6
-rw-r--r--doc/classes/CylinderShape.xml4
-rw-r--r--doc/classes/DampedSpringJoint2D.xml4
-rw-r--r--doc/classes/Dictionary.xml33
-rw-r--r--doc/classes/DirectionalLight.xml12
-rw-r--r--doc/classes/Directory.xml20
-rw-r--r--doc/classes/DynamicFont.xml14
-rw-r--r--doc/classes/DynamicFontData.xml4
-rw-r--r--doc/classes/EditorExportPlugin.xml10
-rw-r--r--doc/classes/EditorFeatureProfile.xml129
-rw-r--r--doc/classes/EditorFileDialog.xml36
-rw-r--r--doc/classes/EditorFileSystem.xml8
-rw-r--r--doc/classes/EditorFileSystemDirectory.xml4
-rw-r--r--doc/classes/EditorImportPlugin.xml18
-rw-r--r--doc/classes/EditorInspector.xml4
-rw-r--r--doc/classes/EditorInspectorPlugin.xml20
-rw-r--r--doc/classes/EditorInterface.xml12
-rw-r--r--doc/classes/EditorNavigationMeshGenerator.xml31
-rw-r--r--doc/classes/EditorPlugin.xml45
-rw-r--r--doc/classes/EditorProperty.xml57
-rw-r--r--doc/classes/EditorResourceConversionPlugin.xml4
-rw-r--r--doc/classes/EditorResourcePreview.xml4
-rw-r--r--doc/classes/EditorResourcePreviewGenerator.xml22
-rw-r--r--doc/classes/EditorSceneImporter.xml4
-rw-r--r--doc/classes/EditorSceneImporterAssimp.xml36
-rw-r--r--doc/classes/EditorScenePostImport.xml6
-rw-r--r--doc/classes/EditorScript.xml4
-rw-r--r--doc/classes/EditorSelection.xml4
-rw-r--r--doc/classes/EditorSettings.xml4
-rw-r--r--doc/classes/EditorSpatialGizmo.xml35
-rw-r--r--doc/classes/EditorSpatialGizmoPlugin.xml198
-rw-r--r--doc/classes/EncodedObjectAsID.xml4
-rw-r--r--doc/classes/Engine.xml14
-rw-r--r--doc/classes/Environment.xml27
-rw-r--r--doc/classes/Expression.xml8
-rw-r--r--doc/classes/File.xml40
-rw-r--r--doc/classes/FileDialog.xml10
-rw-r--r--doc/classes/Font.xml24
-rw-r--r--doc/classes/FuncRef.xml12
-rw-r--r--doc/classes/GIProbe.xml4
-rw-r--r--doc/classes/GIProbeData.xml4
-rw-r--r--doc/classes/Generic6DOFJoint.xml30
-rw-r--r--doc/classes/Geometry.xml173
-rw-r--r--doc/classes/GeometryInstance.xml15
-rw-r--r--doc/classes/Gradient.xml4
-rw-r--r--doc/classes/GradientTexture.xml6
-rw-r--r--doc/classes/GraphEdit.xml12
-rw-r--r--doc/classes/GraphNode.xml34
-rw-r--r--doc/classes/GridContainer.xml8
-rw-r--r--doc/classes/GrooveJoint2D.xml4
-rw-r--r--doc/classes/HBoxContainer.xml4
-rw-r--r--doc/classes/HScrollBar.xml4
-rw-r--r--doc/classes/HSeparator.xml4
-rw-r--r--doc/classes/HSlider.xml4
-rw-r--r--doc/classes/HSplitContainer.xml4
-rw-r--r--doc/classes/HTTPClient.xml30
-rw-r--r--doc/classes/HTTPRequest.xml14
-rw-r--r--doc/classes/HeightMapShape.xml26
-rw-r--r--doc/classes/HingeJoint.xml8
-rw-r--r--doc/classes/IP.xml4
-rw-r--r--doc/classes/IP_Unix.xml4
-rw-r--r--doc/classes/Image.xml22
-rw-r--r--doc/classes/ImageTexture.xml23
-rw-r--r--doc/classes/ImmediateGeometry.xml4
-rw-r--r--doc/classes/Input.xml39
-rw-r--r--doc/classes/InputDefault.xml4
-rw-r--r--doc/classes/InputEvent.xml14
-rw-r--r--doc/classes/InputEventAction.xml9
-rw-r--r--doc/classes/InputEventGesture.xml4
-rw-r--r--doc/classes/InputEventJoypadButton.xml8
-rw-r--r--doc/classes/InputEventJoypadMotion.xml8
-rw-r--r--doc/classes/InputEventKey.xml12
-rw-r--r--doc/classes/InputEventMIDI.xml31
-rw-r--r--doc/classes/InputEventMagnifyGesture.xml4
-rw-r--r--doc/classes/InputEventMouse.xml6
-rw-r--r--doc/classes/InputEventMouseButton.xml10
-rw-r--r--doc/classes/InputEventMouseMotion.xml4
-rw-r--r--doc/classes/InputEventPanGesture.xml4
-rw-r--r--doc/classes/InputEventScreenDrag.xml4
-rw-r--r--doc/classes/InputEventScreenTouch.xml6
-rw-r--r--doc/classes/InputEventWithModifiers.xml4
-rw-r--r--doc/classes/InputMap.xml16
-rw-r--r--doc/classes/InstancePlaceholder.xml4
-rw-r--r--doc/classes/InterpolatedCamera.xml6
-rw-r--r--doc/classes/ItemList.xml84
-rw-r--r--doc/classes/JSON.xml4
-rw-r--r--doc/classes/JSONParseResult.xml8
-rw-r--r--doc/classes/JavaScript.xml4
-rw-r--r--doc/classes/Joint.xml14
-rw-r--r--doc/classes/Joint2D.xml6
-rw-r--r--doc/classes/KinematicBody.xml20
-rw-r--r--doc/classes/KinematicBody2D.xml23
-rw-r--r--doc/classes/KinematicCollision.xml4
-rw-r--r--doc/classes/KinematicCollision2D.xml4
-rw-r--r--doc/classes/Label.xml10
-rw-r--r--doc/classes/LargeTexture.xml14
-rw-r--r--doc/classes/Light.xml10
-rw-r--r--doc/classes/Light2D.xml25
-rw-r--r--doc/classes/LightOccluder2D.xml5
-rw-r--r--doc/classes/Line2D.xml14
-rw-r--r--doc/classes/LineEdit.xml42
-rw-r--r--doc/classes/LineShape2D.xml4
-rw-r--r--doc/classes/LinkButton.xml4
-rw-r--r--doc/classes/Listener.xml4
-rw-r--r--doc/classes/MainLoop.xml30
-rw-r--r--doc/classes/MarginContainer.xml4
-rw-r--r--doc/classes/Marshalls.xml21
-rw-r--r--doc/classes/Material.xml4
-rw-r--r--doc/classes/MenuButton.xml11
-rw-r--r--doc/classes/Mesh.xml19
-rw-r--r--doc/classes/MeshDataTool.xml10
-rw-r--r--doc/classes/MeshInstance.xml5
-rw-r--r--doc/classes/MeshInstance2D.xml16
-rw-r--r--doc/classes/MeshLibrary.xml28
-rw-r--r--doc/classes/MeshTexture.xml26
-rw-r--r--doc/classes/MultiMesh.xml65
-rw-r--r--doc/classes/MultiMeshInstance.xml10
-rw-r--r--doc/classes/MultiMeshInstance2D.xml33
-rw-r--r--doc/classes/MultiplayerAPI.xml10
-rw-r--r--doc/classes/Mutex.xml10
-rw-r--r--doc/classes/Navigation.xml8
-rw-r--r--doc/classes/Navigation2D.xml6
-rw-r--r--doc/classes/NavigationMesh.xml32
-rw-r--r--doc/classes/NavigationMeshInstance.xml4
-rw-r--r--doc/classes/NavigationPolygon.xml12
-rw-r--r--doc/classes/NavigationPolygonInstance.xml4
-rw-r--r--doc/classes/NetworkedMultiplayerPeer.xml10
-rw-r--r--doc/classes/Nil.xml4
-rw-r--r--doc/classes/NinePatchRect.xml4
-rw-r--r--doc/classes/Node.xml52
-rw-r--r--doc/classes/Node2D.xml10
-rw-r--r--doc/classes/NodePath.xml12
-rw-r--r--doc/classes/OS.xml113
-rw-r--r--doc/classes/Object.xml46
-rw-r--r--doc/classes/OccluderPolygon2D.xml8
-rw-r--r--doc/classes/OmniLight.xml4
-rw-r--r--doc/classes/OptionButton.xml33
-rw-r--r--doc/classes/OrientedPathFollow.xml40
-rw-r--r--doc/classes/PCKPacker.xml4
-rw-r--r--doc/classes/PHashTranslation.xml4
-rw-r--r--doc/classes/PackedDataContainer.xml4
-rw-r--r--doc/classes/PackedDataContainerRef.xml4
-rw-r--r--doc/classes/PackedScene.xml8
-rw-r--r--doc/classes/PacketPeer.xml20
-rw-r--r--doc/classes/PacketPeerStream.xml4
-rw-r--r--doc/classes/PacketPeerUDP.xml14
-rw-r--r--doc/classes/Panel.xml8
-rw-r--r--doc/classes/PanelContainer.xml4
-rw-r--r--doc/classes/PanoramaSky.xml4
-rw-r--r--doc/classes/ParallaxBackground.xml6
-rw-r--r--doc/classes/ParallaxLayer.xml4
-rw-r--r--doc/classes/Particles.xml18
-rw-r--r--doc/classes/Particles2D.xml18
-rw-r--r--doc/classes/ParticlesMaterial.xml49
-rw-r--r--doc/classes/Path.xml4
-rw-r--r--doc/classes/Path2D.xml5
-rw-r--r--doc/classes/PathFollow.xml9
-rw-r--r--doc/classes/PathFollow2D.xml6
-rw-r--r--doc/classes/Performance.xml44
-rw-r--r--doc/classes/PhysicalBone.xml4
-rw-r--r--doc/classes/Physics2DDirectBodyState.xml47
-rw-r--r--doc/classes/Physics2DDirectBodyStateSW.xml4
-rw-r--r--doc/classes/Physics2DDirectSpaceState.xml6
-rw-r--r--doc/classes/Physics2DServer.xml18
-rw-r--r--doc/classes/Physics2DServerSW.xml4
-rw-r--r--doc/classes/Physics2DShapeQueryParameters.xml4
-rw-r--r--doc/classes/Physics2DShapeQueryResult.xml4
-rw-r--r--doc/classes/Physics2DTestMotionResult.xml4
-rw-r--r--doc/classes/PhysicsBody.xml16
-rw-r--r--doc/classes/PhysicsBody2D.xml16
-rw-r--r--doc/classes/PhysicsDirectBodyState.xml34
-rw-r--r--doc/classes/PhysicsDirectSpaceState.xml8
-rw-r--r--doc/classes/PhysicsMaterial.xml4
-rw-r--r--doc/classes/PhysicsServer.xml50
-rw-r--r--doc/classes/PhysicsShapeQueryParameters.xml4
-rw-r--r--doc/classes/PhysicsShapeQueryResult.xml4
-rw-r--r--doc/classes/PinJoint.xml4
-rw-r--r--doc/classes/PinJoint2D.xml4
-rw-r--r--doc/classes/Plane.xml8
-rw-r--r--doc/classes/PlaneMesh.xml10
-rw-r--r--doc/classes/PlaneShape.xml4
-rw-r--r--doc/classes/Polygon2D.xml18
-rw-r--r--doc/classes/PolygonPathFinder.xml4
-rw-r--r--doc/classes/PoolByteArray.xml33
-rw-r--r--doc/classes/PoolColorArray.xml16
-rw-r--r--doc/classes/PoolIntArray.xml16
-rw-r--r--doc/classes/PoolRealArray.xml16
-rw-r--r--doc/classes/PoolStringArray.xml18
-rw-r--r--doc/classes/PoolVector2Array.xml16
-rw-r--r--doc/classes/PoolVector3Array.xml16
-rw-r--r--doc/classes/Popup.xml23
-rw-r--r--doc/classes/PopupDialog.xml4
-rw-r--r--doc/classes/PopupMenu.xml37
-rw-r--r--doc/classes/PopupPanel.xml4
-rw-r--r--doc/classes/Position2D.xml6
-rw-r--r--doc/classes/Position3D.xml4
-rw-r--r--doc/classes/PrimitiveMesh.xml9
-rw-r--r--doc/classes/PrismMesh.xml12
-rw-r--r--doc/classes/ProceduralSky.xml4
-rw-r--r--doc/classes/ProgressBar.xml6
-rw-r--r--doc/classes/ProjectSettings.xml242
-rw-r--r--doc/classes/ProximityGroup.xml4
-rw-r--r--doc/classes/ProxyTexture.xml4
-rw-r--r--doc/classes/QuadMesh.xml7
-rw-r--r--doc/classes/Quat.xml7
-rw-r--r--doc/classes/RID.xml4
-rw-r--r--doc/classes/RandomNumberGenerator.xml41
-rw-r--r--doc/classes/Range.xml12
-rw-r--r--doc/classes/RayCast.xml16
-rw-r--r--doc/classes/RayCast2D.xml10
-rw-r--r--doc/classes/RayShape.xml6
-rw-r--r--doc/classes/RayShape2D.xml6
-rw-r--r--doc/classes/Rect2.xml32
-rw-r--r--doc/classes/RectangleShape2D.xml4
-rw-r--r--doc/classes/Reference.xml4
-rw-r--r--doc/classes/ReferenceRect.xml4
-rw-r--r--doc/classes/ReflectionProbe.xml4
-rw-r--r--doc/classes/RemoteTransform.xml12
-rw-r--r--doc/classes/RemoteTransform2D.xml12
-rw-r--r--doc/classes/Resource.xml19
-rw-r--r--doc/classes/ResourceFormatLoader.xml76
-rw-r--r--doc/classes/ResourceFormatSaver.xml48
-rw-r--r--doc/classes/ResourceInteractiveLoader.xml22
-rw-r--r--doc/classes/ResourceLoader.xml28
-rw-r--r--doc/classes/ResourcePreloader.xml18
-rw-r--r--doc/classes/ResourceSaver.xml22
-rw-r--r--doc/classes/RichTextLabel.xml14
-rw-r--r--doc/classes/RigidBody.xml24
-rw-r--r--doc/classes/RigidBody2D.xml19
-rw-r--r--doc/classes/RootMotionView.xml4
-rw-r--r--doc/classes/SceneState.xml4
-rw-r--r--doc/classes/SceneTree.xml36
-rw-r--r--doc/classes/SceneTreeTimer.xml15
-rw-r--r--doc/classes/Script.xml4
-rw-r--r--doc/classes/ScriptCreateDialog.xml12
-rw-r--r--doc/classes/ScriptEditor.xml13
-rw-r--r--doc/classes/ScrollBar.xml4
-rw-r--r--doc/classes/ScrollContainer.xml6
-rw-r--r--doc/classes/SegmentShape2D.xml4
-rw-r--r--doc/classes/Semaphore.xml8
-rw-r--r--doc/classes/Separator.xml4
-rw-r--r--doc/classes/Shader.xml4
-rw-r--r--doc/classes/ShaderMaterial.xml5
-rw-r--r--doc/classes/Shape.xml4
-rw-r--r--doc/classes/Shape2D.xml10
-rw-r--r--doc/classes/ShortCut.xml6
-rw-r--r--doc/classes/Skeleton.xml34
-rw-r--r--doc/classes/Skeleton2D.xml11
-rw-r--r--doc/classes/SkeletonIK.xml4
-rw-r--r--doc/classes/Sky.xml4
-rw-r--r--doc/classes/Slider.xml8
-rw-r--r--doc/classes/SliderJoint.xml6
-rw-r--r--doc/classes/SoftBody.xml4
-rw-r--r--doc/classes/Spatial.xml36
-rw-r--r--doc/classes/SpatialGizmo.xml4
-rw-r--r--doc/classes/SpatialMaterial.xml58
-rw-r--r--doc/classes/SpatialVelocityTracker.xml4
-rw-r--r--doc/classes/SphereMesh.xml6
-rw-r--r--doc/classes/SphereShape.xml4
-rw-r--r--doc/classes/SpinBox.xml4
-rw-r--r--doc/classes/SplitContainer.xml4
-rw-r--r--doc/classes/SpotLight.xml6
-rw-r--r--doc/classes/SpringArm.xml4
-rw-r--r--doc/classes/Sprite.xml24
-rw-r--r--doc/classes/Sprite3D.xml6
-rw-r--r--doc/classes/SpriteBase3D.xml16
-rw-r--r--doc/classes/SpriteFrames.xml10
-rw-r--r--doc/classes/StaticBody.xml8
-rw-r--r--doc/classes/StaticBody2D.xml4
-rw-r--r--doc/classes/StreamPeer.xml21
-rw-r--r--doc/classes/StreamPeerBuffer.xml4
-rw-r--r--doc/classes/StreamPeerSSL.xml12
-rw-r--r--doc/classes/StreamPeerTCP.xml22
-rw-r--r--doc/classes/StreamTexture.xml4
-rw-r--r--doc/classes/String.xml68
-rw-r--r--doc/classes/StyleBox.xml27
-rw-r--r--doc/classes/StyleBoxEmpty.xml4
-rw-r--r--doc/classes/StyleBoxFlat.xml15
-rw-r--r--doc/classes/StyleBoxLine.xml4
-rw-r--r--doc/classes/StyleBoxTexture.xml25
-rw-r--r--doc/classes/SurfaceTool.xml36
-rw-r--r--doc/classes/TCP_Server.xml6
-rw-r--r--doc/classes/TabContainer.xml20
-rw-r--r--doc/classes/Tabs.xml14
-rw-r--r--doc/classes/TextEdit.xml121
-rw-r--r--doc/classes/TextFile.xml4
-rw-r--r--doc/classes/Texture.xml10
-rw-r--r--doc/classes/Texture3D.xml4
-rw-r--r--doc/classes/TextureArray.xml4
-rw-r--r--doc/classes/TextureButton.xml10
-rw-r--r--doc/classes/TextureLayered.xml4
-rw-r--r--doc/classes/TextureProgress.xml6
-rw-r--r--doc/classes/TextureRect.xml12
-rw-r--r--doc/classes/Theme.xml19
-rw-r--r--doc/classes/Thread.xml14
-rw-r--r--doc/classes/TileMap.xml37
-rw-r--r--doc/classes/TileSet.xml221
-rw-r--r--doc/classes/Timer.xml14
-rw-r--r--doc/classes/ToolButton.xml8
-rw-r--r--doc/classes/TouchScreenButton.xml10
-rw-r--r--doc/classes/Transform.xml8
-rw-r--r--doc/classes/Transform2D.xml4
-rw-r--r--doc/classes/Translation.xml8
-rw-r--r--doc/classes/TranslationServer.xml15
-rw-r--r--doc/classes/Tree.xml22
-rw-r--r--doc/classes/TreeItem.xml24
-rw-r--r--doc/classes/TriangleMesh.xml6
-rw-r--r--doc/classes/Tween.xml15
-rw-r--r--doc/classes/UndoRedo.xml32
-rw-r--r--doc/classes/VBoxContainer.xml4
-rw-r--r--doc/classes/VScrollBar.xml4
-rw-r--r--doc/classes/VSeparator.xml4
-rw-r--r--doc/classes/VSlider.xml6
-rw-r--r--doc/classes/VSplitContainer.xml6
-rw-r--r--doc/classes/Variant.xml4
-rw-r--r--doc/classes/Vector2.xml28
-rw-r--r--doc/classes/Vector3.xml24
-rw-r--r--doc/classes/VehicleBody.xml8
-rw-r--r--doc/classes/VehicleWheel.xml18
-rw-r--r--doc/classes/VideoPlayer.xml10
-rw-r--r--doc/classes/VideoStream.xml4
-rw-r--r--doc/classes/Viewport.xml39
-rw-r--r--doc/classes/ViewportContainer.xml6
-rw-r--r--doc/classes/ViewportTexture.xml4
-rw-r--r--doc/classes/VisibilityEnabler.xml8
-rw-r--r--doc/classes/VisibilityEnabler2D.xml16
-rw-r--r--doc/classes/VisibilityNotifier.xml7
-rw-r--r--doc/classes/VisibilityNotifier2D.xml7
-rw-r--r--doc/classes/VisualInstance.xml16
-rw-r--r--doc/classes/VisualServer.xml125
-rw-r--r--doc/classes/VisualShader.xml26
-rw-r--r--doc/classes/VisualShaderNode.xml4
-rw-r--r--doc/classes/VisualShaderNodeBooleanConstant.xml17
-rw-r--r--doc/classes/VisualShaderNodeBooleanUniform.xml13
-rw-r--r--doc/classes/VisualShaderNodeColorConstant.xml4
-rw-r--r--doc/classes/VisualShaderNodeColorFunc.xml21
-rw-r--r--doc/classes/VisualShaderNodeColorOp.xml4
-rw-r--r--doc/classes/VisualShaderNodeColorUniform.xml4
-rw-r--r--doc/classes/VisualShaderNodeCubeMap.xml4
-rw-r--r--doc/classes/VisualShaderNodeCubeMapUniform.xml4
-rw-r--r--doc/classes/VisualShaderNodeDeterminant.xml (renamed from doc/classes/ResourceImporter.xml)4
-rw-r--r--doc/classes/VisualShaderNodeDotProduct.xml4
-rw-r--r--doc/classes/VisualShaderNodeExpression.xml23
-rw-r--r--doc/classes/VisualShaderNodeFaceForward.xml13
-rw-r--r--doc/classes/VisualShaderNodeFresnel.xml13
-rw-r--r--doc/classes/VisualShaderNodeGroupBase.xml205
-rw-r--r--doc/classes/VisualShaderNodeIf.xml13
-rw-r--r--doc/classes/VisualShaderNodeInput.xml4
-rw-r--r--doc/classes/VisualShaderNodeOuterProduct.xml13
-rw-r--r--doc/classes/VisualShaderNodeOutput.xml4
-rw-r--r--doc/classes/VisualShaderNodeScalarClamp.xml13
-rw-r--r--doc/classes/VisualShaderNodeScalarConstant.xml4
-rw-r--r--doc/classes/VisualShaderNodeScalarDerivativeFunc.xml23
-rw-r--r--doc/classes/VisualShaderNodeScalarFunc.xml28
-rw-r--r--doc/classes/VisualShaderNodeScalarInterp.xml4
-rw-r--r--doc/classes/VisualShaderNodeScalarOp.xml6
-rw-r--r--doc/classes/VisualShaderNodeScalarSmoothStep.xml13
-rw-r--r--doc/classes/VisualShaderNodeScalarUniform.xml4
-rw-r--r--doc/classes/VisualShaderNodeSwitch.xml13
-rw-r--r--doc/classes/VisualShaderNodeTexture.xml4
-rw-r--r--doc/classes/VisualShaderNodeTextureUniform.xml4
-rw-r--r--doc/classes/VisualShaderNodeTransformCompose.xml4
-rw-r--r--doc/classes/VisualShaderNodeTransformConstant.xml4
-rw-r--r--doc/classes/VisualShaderNodeTransformDecompose.xml4
-rw-r--r--doc/classes/VisualShaderNodeTransformFunc.xml21
-rw-r--r--doc/classes/VisualShaderNodeTransformMult.xml8
-rw-r--r--doc/classes/VisualShaderNodeTransformUniform.xml4
-rw-r--r--doc/classes/VisualShaderNodeTransformVecMult.xml4
-rw-r--r--doc/classes/VisualShaderNodeUniform.xml4
-rw-r--r--doc/classes/VisualShaderNodeVec3Constant.xml4
-rw-r--r--doc/classes/VisualShaderNodeVec3Uniform.xml4
-rw-r--r--doc/classes/VisualShaderNodeVectorClamp.xml13
-rw-r--r--doc/classes/VisualShaderNodeVectorCompose.xml4
-rw-r--r--doc/classes/VisualShaderNodeVectorDecompose.xml4
-rw-r--r--doc/classes/VisualShaderNodeVectorDerivativeFunc.xml23
-rw-r--r--doc/classes/VisualShaderNodeVectorDistance.xml13
-rw-r--r--doc/classes/VisualShaderNodeVectorFunc.xml62
-rw-r--r--doc/classes/VisualShaderNodeVectorInterp.xml4
-rw-r--r--doc/classes/VisualShaderNodeVectorLen.xml4
-rw-r--r--doc/classes/VisualShaderNodeVectorOp.xml10
-rw-r--r--doc/classes/VisualShaderNodeVectorRefract.xml13
-rw-r--r--doc/classes/VisualShaderNodeVectorScalarSmoothStep.xml13
-rw-r--r--doc/classes/VisualShaderNodeVectorScalarStep.xml13
-rw-r--r--doc/classes/VisualShaderNodeVectorSmoothStep.xml13
-rw-r--r--doc/classes/WeakRef.xml4
-rw-r--r--doc/classes/WindowDialog.xml8
-rw-r--r--doc/classes/World.xml4
-rw-r--r--doc/classes/World2D.xml4
-rw-r--r--doc/classes/WorldEnvironment.xml14
-rw-r--r--doc/classes/XMLParser.xml4
-rw-r--r--doc/classes/YSort.xml7
-rw-r--r--doc/classes/bool.xml10
-rw-r--r--doc/classes/float.xml10
-rw-r--r--doc/classes/int.xml20
-rw-r--r--doc/tools/doc_status.py2
-rwxr-xr-xdoc/tools/makerst.py1103
541 files changed, 7071 insertions, 4728 deletions
diff --git a/doc/Makefile b/doc/Makefile
index 2f9fefe794..7f3f7ea939 100644
--- a/doc/Makefile
+++ b/doc/Makefile
@@ -24,5 +24,5 @@ rst:
rm -rf $(OUTPUTDIR)/rst
mkdir -p $(OUTPUTDIR)/rst
pushd $(OUTPUTDIR)/rst
- python $(TOOLSDIR)/makerst.py $(CLASSES)
+ python3 $(TOOLSDIR)/makerst.py $(CLASSES)
popd
diff --git a/doc/classes/@GDScript.xml b/doc/classes/@GDScript.xml
deleted file mode 100644
index 20ec9141c6..0000000000
--- a/doc/classes/@GDScript.xml
+++ /dev/null
@@ -1,1201 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" ?>
-<class name="@GDScript" category="Core" version="3.1">
- <brief_description>
- Built-in GDScript functions.
- </brief_description>
- <description>
- List of core built-in GDScript functions. Math functions and other utilities. Everything else is provided by objects. (Keywords: builtin, built in, global functions.)
- </description>
- <tutorials>
- </tutorials>
- <demos>
- </demos>
- <methods>
- <method name="Color8">
- <return type="Color">
- </return>
- <argument index="0" name="r8" type="int">
- </argument>
- <argument index="1" name="g8" type="int">
- </argument>
- <argument index="2" name="b8" type="int">
- </argument>
- <argument index="3" name="a8" type="int" default="255">
- </argument>
- <description>
- Returns a 32 bit color with red, green, blue and alpha channels. Each channel has 8 bits of information ranging from 0 to 255.
- [code]r8[/code] red channel
- [code]g8[/code] green channel
- [code]b8[/code] blue channel
- [code]a8[/code] alpha channel
- [codeblock]
- red = Color8(255, 0, 0)
- [/codeblock]
- </description>
- </method>
- <method name="ColorN">
- <return type="Color">
- </return>
- <argument index="0" name="name" type="String">
- </argument>
- <argument index="1" name="alpha" type="float" default="1.0">
- </argument>
- <description>
- Returns a color according to the standardised [code]name[/code] with [code]alpha[/code] ranging from 0 to 1.
- [codeblock]
- red = ColorN("red", 1)
- [/codeblock]
- Supported color names:
- "aliceblue", "antiquewhite", "aqua", "aquamarine", "azure", "beige", "bisque", "black", "blanchedalmond", "blue", "blueviolet", "brown", "burlywood", "cadetblue", "chartreuse", "chocolate", "coral", "cornflower", "cornsilk", "crimson", "cyan", "darkblue", "darkcyan", "darkgoldenrod", "darkgray", "darkgreen", "darkkhaki", "darkmagenta", "darkolivegreen", "darkorange", "darkorchid", "darkred", "darksalmon", "darkseagreen", "darkslateblue", "darkslategray", "darkturquoise", "darkviolet", "deeppink", "deepskyblue", "dimgray", "dodgerblue", "firebrick", "floralwhite", "forestgreen", "fuchsia", "gainsboro", "ghostwhite", "gold", "goldenrod", "gray", "webgray", "green", "webgreen", "greenyellow", "honeydew", "hotpink", "indianred", "indigo", "ivory", "khaki", "lavender", "lavenderblush", "lawngreen", "lemonchiffon", "lightblue", "lightcoral", "lightcyan", "lightgoldenrod", "lightgray", "lightgreen", "lightpink", "lightsalmon", "lightseagreen", "lightskyblue", "lightslategray", "lightsteelblue", "lightyellow", "lime", "limegreen", "linen", "magenta", "maroon", "webmaroon", "mediumaquamarine", "mediumblue", "mediumorchid", "mediumpurple", "mediumseagreen", "mediumslateblue", "mediumspringgreen", "mediumturquoise", "mediumvioletred", "midnightblue", "mintcream", "mistyrose", "moccasin", "navajowhite", "navyblue", "oldlace", "olive", "olivedrab", "orange", "orangered", "orchid", "palegoldenrod", "palegreen", "paleturquoise", "palevioletred", "papayawhip", "peachpuff", "peru", "pink", "plum", "powderblue", "purple", "webpurple", "rebeccapurple", "red", "rosybrown", "royalblue", "saddlebrown", "salmon", "sandybrown", "seagreen", "seashell", "sienna", "silver", "skyblue", "slateblue", "slategray", "snow", "springgreen", "steelblue", "tan", "teal", "thistle", "tomato", "turquoise", "violet", "wheat", "white", "whitesmoke", "yellow", "yellowgreen".
- </description>
- </method>
- <method name="abs">
- <return type="float">
- </return>
- <argument index="0" name="s" type="float">
- </argument>
- <description>
- Returns the absolute value of parameter [code]s[/code] (i.e. unsigned value, works for integer and float).
- [codeblock]
- # a is 1
- a = abs(-1)
- [/codeblock]
- </description>
- </method>
- <method name="acos">
- <return type="float">
- </return>
- <argument index="0" name="s" type="float">
- </argument>
- <description>
- Returns the arc cosine of [code]s[/code] in radians. Use to get the angle of cosine [code]s[/code].
- [codeblock]
- # c is 0.523599 or 30 degrees if converted with rad2deg(s)
- c = acos(0.866025)
- [/codeblock]
- </description>
- </method>
- <method name="asin">
- <return type="float">
- </return>
- <argument index="0" name="s" type="float">
- </argument>
- <description>
- Returns the arc sine of [code]s[/code] in radians. Use to get the angle of sine [code]s[/code].
- [codeblock]
- # s is 0.523599 or 30 degrees if converted with rad2deg(s)
- s = asin(0.5)
- [/codeblock]
- </description>
- </method>
- <method name="assert">
- <return type="void">
- </return>
- <argument index="0" name="condition" type="bool">
- </argument>
- <description>
- Assert that the [code]condition[/code] is true. If the [code]condition[/code] is false a fatal error is generated and the program is halted. Useful for debugging to make sure a value is always true.
- [codeblock]
- # Speed should always be between 0 and 20
- speed = -10
- assert(speed &lt; 20) # Is true and program continues
- assert(speed &gt;= 0) # Is false and program stops
- assert(speed &gt;= 0 &amp;&amp; speed &lt; 20) # Or combined
- [/codeblock]
- </description>
- </method>
- <method name="atan">
- <return type="float">
- </return>
- <argument index="0" name="s" type="float">
- </argument>
- <description>
- Returns the arc tangent of [code]s[/code] in radians. Use it to get the angle from an angle's tangent in trigonometry: [code]atan(tan(angle)) == angle[/code].
- The method cannot know in which quadrant the angle should fall. See [method atan2] if you always want an exact angle.
- [codeblock]
- a = atan(0.5) # a is 0.463648
- [/codeblock]
- </description>
- </method>
- <method name="atan2">
- <return type="float">
- </return>
- <argument index="0" name="y" type="float">
- </argument>
- <argument index="1" name="x" type="float">
- </argument>
- <description>
- Returns the arc tangent of [code]y/x[/code] in radians. Use to get the angle of tangent [code]y/x[/code]. To compute the value, the method takes into account the sign of both arguments in order to determine the quadrant.
- [codeblock]
- a = atan(0,-1) # a is 3.141593
- [/codeblock]
- </description>
- </method>
- <method name="bytes2var">
- <return type="Variant">
- </return>
- <argument index="0" name="bytes" type="PoolByteArray">
- </argument>
- <description>
- Decodes a byte array back to a value.
- </description>
- </method>
- <method name="cartesian2polar">
- <return type="Vector2">
- </return>
- <argument index="0" name="x" type="float">
- </argument>
- <argument index="1" name="y" type="float">
- </argument>
- <description>
- Converts a 2D point expressed in the cartesian coordinate system (x and y axis) to the polar coordinate system (a distance from the origin and an angle).
- </description>
- </method>
- <method name="ceil">
- <return type="float">
- </return>
- <argument index="0" name="s" type="float">
- </argument>
- <description>
- Rounds [code]s[/code] upward, returning the smallest integral value that is not less than [code]s[/code].
- [codeblock]
- i = ceil(1.45) # i is 2
- i = ceil(1.001) # i is 2
- [/codeblock]
- </description>
- </method>
- <method name="char">
- <return type="String">
- </return>
- <argument index="0" name="ascii" type="int">
- </argument>
- <description>
- Returns a character as a String of the given ASCII code.
- [codeblock]
- # a is 'A'
- a = char(65)
- # a is 'a'
- a = char(65+32)
- [/codeblock]
- </description>
- </method>
- <method name="clamp">
- <return type="float">
- </return>
- <argument index="0" name="value" type="float">
- </argument>
- <argument index="1" name="min" type="float">
- </argument>
- <argument index="2" name="max" type="float">
- </argument>
- <description>
- Clamps [code]value[/code] and returns a value not less than [code]min[/code] and not more than [code]max[/code].
- [codeblock]
- speed = 1000
- # a is 20
- a = clamp(speed, 1, 20)
-
- speed = -10
- # a is 1
- a = clamp(speed, 1, 20)
- [/codeblock]
- </description>
- </method>
- <method name="convert">
- <return type="Variant">
- </return>
- <argument index="0" name="what" type="Variant">
- </argument>
- <argument index="1" name="type" type="int">
- </argument>
- <description>
- Converts from a type to another in the best way possible. The [code]type[/code] parameter uses the enum TYPE_* in [@GlobalScope].
- [codeblock]
- a = Vector2(1, 0)
- # prints 1
- print(a.length())
- a = convert(a, TYPE_STRING)
- # prints 6
- # (1, 0) is 6 characters
- print(a.length())
- [/codeblock]
- </description>
- </method>
- <method name="cos">
- <return type="float">
- </return>
- <argument index="0" name="s" type="float">
- </argument>
- <description>
- Returns the cosine of angle [code]s[/code] in radians.
- [codeblock]
- # prints 1 and -1
- print(cos(PI*2))
- print(cos(PI))
- [/codeblock]
- </description>
- </method>
- <method name="cosh">
- <return type="float">
- </return>
- <argument index="0" name="s" type="float">
- </argument>
- <description>
- Returns the hyperbolic cosine of [code]s[/code] in radians.
- [codeblock]
- # prints 1.543081
- print(cosh(1))
- [/codeblock]
- </description>
- </method>
- <method name="db2linear">
- <return type="float">
- </return>
- <argument index="0" name="db" type="float">
- </argument>
- <description>
- Converts from decibels to linear energy (audio).
- </description>
- </method>
- <method name="decimals">
- <return type="float">
- </return>
- <argument index="0" name="step" type="float">
- </argument>
- <description>
- Returns the position of the first non-zero digit, after the decimal point.
- [codeblock]
- # n is 2
- n = decimals(0.035)
- [/codeblock]
- </description>
- </method>
- <method name="dectime">
- <return type="float">
- </return>
- <argument index="0" name="value" type="float">
- </argument>
- <argument index="1" name="amount" type="float">
- </argument>
- <argument index="2" name="step" type="float">
- </argument>
- <description>
- Returns the result of [code]value[/code] decreased by [code]step[/code] * [code]amount[/code].
- [codeblock]
- # a = 59
- a = dectime(60, 10, 0.1))
- [/codeblock]
- </description>
- </method>
- <method name="deg2rad">
- <return type="float">
- </return>
- <argument index="0" name="deg" type="float">
- </argument>
- <description>
- Returns degrees converted to radians.
- [codeblock]
- # r is 3.141593
- r = deg2rad(180)
- [/codeblock]
- </description>
- </method>
- <method name="dict2inst">
- <return type="Object">
- </return>
- <argument index="0" name="dict" type="Dictionary">
- </argument>
- <description>
- Converts a previously converted instance to a dictionary, back into an instance. Useful for deserializing.
- </description>
- </method>
- <method name="ease">
- <return type="float">
- </return>
- <argument index="0" name="s" type="float">
- </argument>
- <argument index="1" name="curve" type="float">
- </argument>
- <description>
- Easing function, based on exponent. 0 is constant, 1 is linear, 0 to 1 is ease-in, 1+ is ease out. Negative values are in-out/out in.
- </description>
- </method>
- <method name="exp">
- <return type="float">
- </return>
- <argument index="0" name="s" type="float">
- </argument>
- <description>
- The natural exponential function. It raises the mathematical constant [b]e[/b] to the power of [code]s[/code] and returns it.
- [b]e[/b] has an approximate value of 2.71828.
- [codeblock]
- a = exp(2) # approximately 7.39
- [/codeblock]
- </description>
- </method>
- <method name="floor">
- <return type="float">
- </return>
- <argument index="0" name="s" type="float">
- </argument>
- <description>
- Rounds [code]s[/code] to the closest smaller integer and returns it.
- [codeblock]
- # a is 2
- a = floor(2.99)
- # a is -3
- a = floor(-2.99)
- [/codeblock]
- </description>
- </method>
- <method name="fmod">
- <return type="float">
- </return>
- <argument index="0" name="x" type="float">
- </argument>
- <argument index="1" name="y" type="float">
- </argument>
- <description>
- Returns the floating-point remainder of [code]x/y[/code].
- [codeblock]
- # remainder is 1.5
- var remainder = fmod(7, 5.5)
- [/codeblock]
- </description>
- </method>
- <method name="fposmod">
- <return type="float">
- </return>
- <argument index="0" name="x" type="float">
- </argument>
- <argument index="1" name="y" type="float">
- </argument>
- <description>
- Returns the floating-point remainder of [code]x/y[/code] that wraps equally in positive and negative.
- [codeblock]
- var i = -10
- while i &lt; 0:
- prints(i, fposmod(i, 10))
- i += 1
- [/codeblock]
- Produces:
- [codeblock]
- -10 10
- -9 1
- -8 2
- -7 3
- -6 4
- -5 5
- -4 6
- -3 7
- -2 8
- -1 9
- [/codeblock]
- </description>
- </method>
- <method name="funcref">
- <return type="FuncRef">
- </return>
- <argument index="0" name="instance" type="Object">
- </argument>
- <argument index="1" name="funcname" type="String">
- </argument>
- <description>
- Returns a reference to the specified function [code]funcname[/code] in the [code]instance[/code] node. As functions aren't first-class objects in GDscript, use [code]funcref[/code] to store a [FuncRef] in a variable and call it later.
- [codeblock]
- func foo():
- return("bar")
-
- a = funcref(self, "foo")
- print(a.call_func()) # prints bar
- [/codeblock]
- </description>
- </method>
- <method name="get_stack">
- <return type="Array">
- </return>
- <description>
- </description>
- </method>
- <method name="hash">
- <return type="int">
- </return>
- <argument index="0" name="var" type="Variant">
- </argument>
- <description>
- Returns the integer hash of the variable passed.
- [codeblock]
- print(hash("a")) # prints 177670
- [/codeblock]
- </description>
- </method>
- <method name="inst2dict">
- <return type="Dictionary">
- </return>
- <argument index="0" name="inst" type="Object">
- </argument>
- <description>
- Returns the passed instance converted to a dictionary (useful for serializing).
- [codeblock]
- var foo = "bar"
- func _ready():
- var d = inst2dict(self)
- print(d.keys())
- print(d.values())
- [/codeblock]
- Prints out:
- [codeblock]
- [@subpath, @path, foo]
- [, res://test.gd, bar]
- [/codeblock]
- </description>
- </method>
- <method name="instance_from_id">
- <return type="Object">
- </return>
- <argument index="0" name="instance_id" type="int">
- </argument>
- <description>
- Returns the Object that corresponds to [code]instance_id[/code]. All Objects have a unique instance ID.
- [codeblock]
- var foo = "bar"
- func _ready():
- var id = get_instance_id()
- var inst = instance_from_id(id)
- print(inst.foo) # prints bar
- [/codeblock]
- </description>
- </method>
- <method name="inverse_lerp">
- <return type="float">
- </return>
- <argument index="0" name="from" type="float">
- </argument>
- <argument index="1" name="to" type="float">
- </argument>
- <argument index="2" name="weight" type="float">
- </argument>
- <description>
- Returns a normalized value considering the given range.
- [codeblock]
- inverse_lerp(3, 5, 4) # returns 0.5
- [/codeblock]
- </description>
- </method>
- <method name="is_inf">
- <return type="bool">
- </return>
- <argument index="0" name="s" type="float">
- </argument>
- <description>
- Returns True/False whether [code]s[/code] is an infinity value (either positive infinity or negative infinity).
- </description>
- </method>
- <method name="is_instance_valid">
- <return type="bool">
- </return>
- <argument index="0" name="instance" type="Object">
- </argument>
- <description>
- </description>
- </method>
- <method name="is_nan">
- <return type="bool">
- </return>
- <argument index="0" name="s" type="float">
- </argument>
- <description>
- Returns True/False whether [code]s[/code] is a NaN (Not-A-Number) value.
- </description>
- </method>
- <method name="len">
- <return type="int">
- </return>
- <argument index="0" name="var" type="Variant">
- </argument>
- <description>
- Returns length of Variant [code]var[/code]. Length is the character count of String, element count of Array, size of Dictionary, etc.
- [b]Note:[/b] Generates a fatal error if Variant can not provide a length.
- [codeblock]
- a = [1, 2, 3, 4]
- len(a) # returns 4
- [/codeblock]
- </description>
- </method>
- <method name="lerp">
- <return type="float">
- </return>
- <argument index="0" name="from" type="Variant">
- </argument>
- <argument index="1" name="to" type="Variant">
- </argument>
- <argument index="2" name="weight" type="float">
- </argument>
- <description>
- Linearly interpolates between two values by a normalized value.
- [codeblock]
- lerp(1, 3, 0.5) # returns 2
- [/codeblock]
- </description>
- </method>
- <method name="linear2db">
- <return type="float">
- </return>
- <argument index="0" name="nrg" type="float">
- </argument>
- <description>
- Converts from linear energy to decibels (audio).
- </description>
- </method>
- <method name="load">
- <return type="Resource">
- </return>
- <argument index="0" name="path" type="String">
- </argument>
- <description>
- Loads a resource from the filesystem located at [code]path[/code].
- [b]Note:[/b] Resource paths can be obtained by right clicking on a resource in the Assets Panel and choosing "Copy Path".
- [codeblock]
- # load a scene called main located in the root of the project directory
- var main = load("res://main.tscn")
- [/codeblock]
- </description>
- </method>
- <method name="log">
- <return type="float">
- </return>
- <argument index="0" name="s" type="float">
- </argument>
- <description>
- Natural logarithm. The amount of time needed to reach a certain level of continuous growth.
- [b]Note:[/b] This is not the same as the log function on your calculator which is a base 10 logarithm.
- [codeblock]
- log(10) # returns 2.302585
- [/codeblock]
- </description>
- </method>
- <method name="max">
- <return type="float">
- </return>
- <argument index="0" name="a" type="float">
- </argument>
- <argument index="1" name="b" type="float">
- </argument>
- <description>
- Returns the maximum of two values.
- [codeblock]
- max(1,2) # returns 2
- max(-3.99, -4) # returns -3.99
- [/codeblock]
- </description>
- </method>
- <method name="min">
- <return type="float">
- </return>
- <argument index="0" name="a" type="float">
- </argument>
- <argument index="1" name="b" type="float">
- </argument>
- <description>
- Returns the minimum of two values.
- [codeblock]
- min(1,2) # returns 1
- min(-3.99, -4) # returns -4
- [/codeblock]
- </description>
- </method>
- <method name="nearest_po2">
- <return type="int">
- </return>
- <argument index="0" name="value" type="int">
- </argument>
- <description>
- Returns the nearest larger power of 2 for integer [code]value[/code].
- [codeblock]
- nearest_po2(3) # returns 4
- nearest_po2(4) # returns 4
- nearest_po2(5) # returns 8
- [/codeblock]
- </description>
- </method>
- <method name="parse_json">
- <return type="Variant">
- </return>
- <argument index="0" name="json" type="String">
- </argument>
- <description>
- Parse JSON text to a Variant (use [method typeof] to check if it is what you expect).
- Be aware that the JSON specification does not define integer or float types, but only a number type. Therefore, parsing a JSON text will convert all numerical values to [float] types.
- Note that JSON objects do not preserve key order like Godot dictionaries, thus you should not rely on keys being in a certain order if a dictionary is constructed from JSON. In contrast, JSON arrays retain the order of their elements:
- [codeblock]
- p = parse_json('["a", "b", "c"]')
- if typeof(p) == TYPE_ARRAY:
- print(p[0]) # prints a
- else:
- print("unexpected results")
- [/codeblock]
- </description>
- </method>
- <method name="polar2cartesian">
- <return type="Vector2">
- </return>
- <argument index="0" name="r" type="float">
- </argument>
- <argument index="1" name="th" type="float">
- </argument>
- <description>
- Converts a 2D point expressed in the polar coordinate system (a distance from the origin [code]r[/code] and an angle [code]th[/code]) to the cartesian coordinate system (x and y axis).
- </description>
- </method>
- <method name="pow">
- <return type="float">
- </return>
- <argument index="0" name="x" type="float">
- </argument>
- <argument index="1" name="y" type="float">
- </argument>
- <description>
- Returns the result of [code]x[/code] raised to the power of [code]y[/code].
- [codeblock]
- pow(2,5) # returns 32
- [/codeblock]
- </description>
- </method>
- <method name="preload">
- <return type="Resource">
- </return>
- <argument index="0" name="path" type="String">
- </argument>
- <description>
- Returns a resource from the filesystem that is loaded during script parsing.
- [b]Note:[/b] Resource paths can be obtained by right clicking on a resource in the Assets Panel and choosing "Copy Path".
- [codeblock]
- # load a scene called main located in the root of the project directory
- var main = preload("res://main.tscn")
- [/codeblock]
- </description>
- </method>
- <method name="print" qualifiers="vararg">
- <return type="void">
- </return>
- <description>
- Converts one or more arguments to strings in the best way possible and prints them to the console.
- [codeblock]
- a = [1,2,3]
- print("a","b",a) # prints ab[1, 2, 3]
- [/codeblock]
- </description>
- </method>
- <method name="print_debug" qualifiers="vararg">
- <return type="void">
- </return>
- <description>
- </description>
- </method>
- <method name="print_stack">
- <return type="void">
- </return>
- <description>
- Prints a stack track at code location, only works when running with debugger turned on.
- Output in the console would look something like this:
- [codeblock]
- Frame 0 - res://test.gd:16 in function '_process'
- [/codeblock]
- </description>
- </method>
- <method name="printerr" qualifiers="vararg">
- <return type="void">
- </return>
- <description>
- Prints one or more arguments to strings in the best way possible to standard error line.
- [codeblock]
- printerr("prints to stderr")
- [/codeblock]
- </description>
- </method>
- <method name="printraw" qualifiers="vararg">
- <return type="void">
- </return>
- <description>
- Prints one or more arguments to strings in the best way possible to console. No newline is added at the end.
- [codeblock]
- printraw("A")
- printraw("B")
- # prints AB
- [/codeblock]
- </description>
- </method>
- <method name="prints" qualifiers="vararg">
- <return type="void">
- </return>
- <description>
- Prints one or more arguments to the console with a space between each argument.
- [codeblock]
- prints("A", "B", "C") # prints A B C
- [/codeblock]
- </description>
- </method>
- <method name="printt" qualifiers="vararg">
- <return type="void">
- </return>
- <description>
- Prints one or more arguments to the console with a tab between each argument.
- [codeblock]
- printt("A", "B", "C") # prints A B C
- [/codeblock]
- </description>
- </method>
- <method name="push_error">
- <return type="void">
- </return>
- <argument index="0" name="message" type="String">
- </argument>
- <description>
- </description>
- </method>
- <method name="push_warning">
- <return type="void">
- </return>
- <argument index="0" name="message" type="String">
- </argument>
- <description>
- </description>
- </method>
- <method name="rad2deg">
- <return type="float">
- </return>
- <argument index="0" name="rad" type="float">
- </argument>
- <description>
- Converts from radians to degrees.
- [codeblock]
- rad2deg(0.523599) # returns 30
- [/codeblock]
- </description>
- </method>
- <method name="rand_range">
- <return type="float">
- </return>
- <argument index="0" name="from" type="float">
- </argument>
- <argument index="1" name="to" type="float">
- </argument>
- <description>
- Random range, any floating point value between [code]from[/code] and [code]to[/code].
- [codeblock]
- prints(rand_range(0, 1), rand_range(0, 1)) # prints 0.135591 0.405263
- [/codeblock]
- </description>
- </method>
- <method name="rand_seed">
- <return type="Array">
- </return>
- <argument index="0" name="seed" type="int">
- </argument>
- <description>
- Random from seed: pass a [code]seed[/code], and an array with both number and new seed is returned. "Seed" here refers to the internal state of the pseudo random number generator. The internal state of the current implementation is 64 bits.
- </description>
- </method>
- <method name="randf">
- <return type="float">
- </return>
- <description>
- Returns a random floating point value between 0 and 1.
- [codeblock]
- randf() # returns 0.375671
- [/codeblock]
- </description>
- </method>
- <method name="randi">
- <return type="int">
- </return>
- <description>
- Returns a random 32 bit integer. Use remainder to obtain a random value between 0 and N (where N is smaller than 2^32 -1).
- [codeblock]
- randi() % 20 # returns random number between 0 and 19
- randi() % 100 # returns random number between 0 and 99
- randi() % 100 + 1 # returns random number between 1 and 100
- [/codeblock]
- </description>
- </method>
- <method name="randomize">
- <return type="void">
- </return>
- <description>
- Randomizes the seed (or the internal state) of the random number generator. Current implementation reseeds using a number based on time.
- [codeblock]
- func _ready():
- randomize()
- [/codeblock]
- </description>
- </method>
- <method name="range" qualifiers="vararg">
- <return type="Array">
- </return>
- <description>
- Returns an array with the given range. Range can be 1 argument N (0 to N-1), two arguments (initial, final-1) or three arguments (initial, final-1, increment).
- [codeblock]
- for i in range(4):
- print(i)
- for i in range(2, 5):
- print(i)
- for i in range(0, 6, 2):
- print(i)
- [/codeblock]
- Output:
- [codeblock]
- 0
- 1
- 2
- 3
-
- 2
- 3
- 4
-
- 0
- 2
- 4
- [/codeblock]
- </description>
- </method>
- <method name="range_lerp">
- <return type="float">
- </return>
- <argument index="0" name="value" type="float">
- </argument>
- <argument index="1" name="istart" type="float">
- </argument>
- <argument index="2" name="istop" type="float">
- </argument>
- <argument index="3" name="ostart" type="float">
- </argument>
- <argument index="4" name="ostop" type="float">
- </argument>
- <description>
- Maps a [code]value[/code] from range [code][istart, istop][/code] to [code][ostart, ostop][/code].
- [codeblock]
- range_lerp(75, 0, 100, -1, 1) # returns 0.5
- [/codeblock]
- </description>
- </method>
- <method name="round">
- <return type="float">
- </return>
- <argument index="0" name="s" type="float">
- </argument>
- <description>
- Returns the integral value that is nearest to [code]s[/code], with halfway cases rounded away from zero.
- [codeblock]
- round(2.6) # returns 3
- [/codeblock]
- </description>
- </method>
- <method name="seed">
- <return type="void">
- </return>
- <argument index="0" name="seed" type="int">
- </argument>
- <description>
- Sets seed for the random number generator.
- [codeblock]
- my_seed = "Godot Rocks"
- seed(my_seed.hash())
- [/codeblock]
- </description>
- </method>
- <method name="sign">
- <return type="float">
- </return>
- <argument index="0" name="s" type="float">
- </argument>
- <description>
- Returns the sign of [code]s[/code]: -1 or 1. Returns 0 if [code]s[/code] is 0.
- [codeblock]
- sign(-6) # returns -1
- sign(0) # returns 0
- sign(6) # returns 1
- [/codeblock]
- </description>
- </method>
- <method name="sin">
- <return type="float">
- </return>
- <argument index="0" name="s" type="float">
- </argument>
- <description>
- Returns the sine of angle [code]s[/code] in radians.
- [codeblock]
- sin(0.523599) # returns 0.5
- [/codeblock]
- </description>
- </method>
- <method name="sinh">
- <return type="float">
- </return>
- <argument index="0" name="s" type="float">
- </argument>
- <description>
- Returns the hyperbolic sine of [code]s[/code].
- [codeblock]
- a = log(2.0) # returns 0.693147
- sinh(a) # returns 0.75
- [/codeblock]
- </description>
- </method>
- <method name="sqrt">
- <return type="float">
- </return>
- <argument index="0" name="s" type="float">
- </argument>
- <description>
- Returns the square root of [code]s[/code].
- [codeblock]
- sqrt(9) # returns 3
- [/codeblock]
- </description>
- </method>
- <method name="stepify">
- <return type="float">
- </return>
- <argument index="0" name="s" type="float">
- </argument>
- <argument index="1" name="step" type="float">
- </argument>
- <description>
- Snaps float value [code]s[/code] to a given [code]step[/code].
- </description>
- </method>
- <method name="str" qualifiers="vararg">
- <return type="String">
- </return>
- <description>
- Converts one or more arguments to string in the best way possible.
- [codeblock]
- var a = [10, 20, 30]
- var b = str(a);
- len(a) # returns 3
- len(b) # returns 12
- [/codeblock]
- </description>
- </method>
- <method name="str2var">
- <return type="Variant">
- </return>
- <argument index="0" name="string" type="String">
- </argument>
- <description>
- Converts a formatted string that was returned by [method var2str] to the original value.
- [codeblock]
- a = '{ "a": 1, "b": 2 }'
- b = str2var(a)
- print(b['a']) # prints 1
- [/codeblock]
- </description>
- </method>
- <method name="tan">
- <return type="float">
- </return>
- <argument index="0" name="s" type="float">
- </argument>
- <description>
- Returns the tangent of angle [code]s[/code] in radians.
- [codeblock]
- tan( deg2rad(45) ) # returns 1
- [/codeblock]
- </description>
- </method>
- <method name="tanh">
- <return type="float">
- </return>
- <argument index="0" name="s" type="float">
- </argument>
- <description>
- Returns the hyperbolic tangent of [code]s[/code].
- [codeblock]
- a = log(2.0) # returns 0.693147
- tanh(a) # returns 0.6
- [/codeblock]
- </description>
- </method>
- <method name="to_json">
- <return type="String">
- </return>
- <argument index="0" name="var" type="Variant">
- </argument>
- <description>
- Converts a Variant [code]var[/code] to JSON text and return the result. Useful for serializing data to store or send over the network.
- [codeblock]
- a = { 'a': 1, 'b': 2 }
- b = to_json(a)
- print(b) # {"a":1, "b":2}
- [/codeblock]
- </description>
- </method>
- <method name="type_exists">
- <return type="bool">
- </return>
- <argument index="0" name="type" type="String">
- </argument>
- <description>
- Returns whether the given class exists in [ClassDB].
- [codeblock]
- type_exists("Sprite") # returns true
- type_exists("Variant") # returns false
- [/codeblock]
- </description>
- </method>
- <method name="typeof">
- <return type="int">
- </return>
- <argument index="0" name="what" type="Variant">
- </argument>
- <description>
- Returns the internal type of the given Variant object, using the TYPE_* enum in [@GlobalScope].
- [codeblock]
- p = parse_json('["a", "b", "c"]')
- if typeof(p) == TYPE_ARRAY:
- print(p[0]) # prints a
- else:
- print("unexpected results")
- [/codeblock]
- </description>
- </method>
- <method name="validate_json">
- <return type="String">
- </return>
- <argument index="0" name="json" type="String">
- </argument>
- <description>
- Checks that [code]json[/code] is valid JSON data. Returns empty string if valid. Returns error message if not valid.
- [codeblock]
- j = to_json([1, 2, 3])
- v = validate_json(j)
- if not v:
- print("valid")
- else:
- prints("invalid", v)
- [/codeblock]
- </description>
- </method>
- <method name="var2bytes">
- <return type="PoolByteArray">
- </return>
- <argument index="0" name="var" type="Variant">
- </argument>
- <description>
- Encodes a variable value to a byte array.
- </description>
- </method>
- <method name="var2str">
- <return type="String">
- </return>
- <argument index="0" name="var" type="Variant">
- </argument>
- <description>
- Converts a Variant [code]var[/code] to a formatted string that can later be parsed using [method str2var].
- [codeblock]
- a = { 'a': 1, 'b': 2 }
- print(var2str(a))
- [/codeblock]
- prints
- [codeblock]
- {
- "a": 1,
- "b": 2
- }
- [/codeblock]
- </description>
- </method>
- <method name="weakref">
- <return type="WeakRef">
- </return>
- <argument index="0" name="obj" type="Object">
- </argument>
- <description>
- Returns a weak reference to an object.
- A weak reference to an object is not enough to keep the object alive: when the only remaining references to a referent are weak references, garbage collection is free to destroy the referent and reuse its memory for something else. However, until the object is actually destroyed the weak reference may return the object even if there are no strong references to it.
- </description>
- </method>
- <method name="wrapf">
- <return type="float">
- </return>
- <argument index="0" name="value" type="float">
- </argument>
- <argument index="1" name="min" type="float">
- </argument>
- <argument index="2" name="max" type="float">
- </argument>
- <description>
- Wraps float [code]value[/code] between [code]min[/code] and [code]max[/code].
- Usable for creating loop-alike behavior or infinite surfaces.
- [codeblock]
- # a is 0.5
- a = wrapf(10.5, 0.0, 10.0)
- [/codeblock]
- [codeblock]
- # a is 9.5
- a = wrapf(-0.5, 0.0, 10.0)
- [/codeblock]
- [codeblock]
- # infinite loop between 0.0 and 0.99
- f = wrapf(f + 0.1, 0.0, 1.0)
- [/codeblock]
- </description>
- </method>
- <method name="wrapi">
- <return type="int">
- </return>
- <argument index="0" name="value" type="int">
- </argument>
- <argument index="1" name="min" type="int">
- </argument>
- <argument index="2" name="max" type="int">
- </argument>
- <description>
- Wraps integer [code]value[/code] between [code]min[/code] and [code]max[/code].
- Usable for creating loop-alike behavior or infinite surfaces.
- [codeblock]
- # a is 0
- a = wrapi(10, 0, 10)
- [/codeblock]
- [codeblock]
- # a is 9
- a = wrapi(-1, 0, 10)
- [/codeblock]
- [codeblock]
- # infinite loop between 0 and 9
- frame = wrapi(frame + 1, 0, 10)
- [/codeblock]
- </description>
- </method>
- <method name="yield">
- <return type="GDScriptFunctionState">
- </return>
- <argument index="0" name="object" type="Object" default="null">
- </argument>
- <argument index="1" name="signal" type="String" default="&quot;&quot;">
- </argument>
- <description>
- Stops the function execution and returns the current suspended state to the calling function.
- From the caller, call [method GDScriptFunctionState.resume] on the state to resume execution. This invalidates the state. Within the resumed function, [code]yield()[/code] returns whatever was passed to the [code]resume()[/code] function call.
- If passed an object and a signal, the execution is resumed when the object emits the given signal. In this case, [code]yield()[/code] returns the argument passed to [code]emit_signal()[/code] if the signal takes only one argument, or an array containing all the arguments passed to [code]emit_signal()[/code] if the signal takes multiple arguments.
- </description>
- </method>
- </methods>
- <constants>
- <constant name="PI" value="3.141593">
- Constant that represents how many times the diameter of a circle fits around its perimeter.
- </constant>
- <constant name="TAU" value="6.283185">
- The circle constant, the circumference of the unit circle.
- </constant>
- <constant name="INF" value="inf">
- A positive infinity. (For negative infinity, use -INF).
- </constant>
- <constant name="NAN" value="nan">
- Macro constant that expands to an expression of type float that represents a NaN.
- The NaN values are used to identify undefined or non-representable values for floating-point elements, such as the square root of negative numbers or the result of 0/0.
- </constant>
- </constants>
-</class>
diff --git a/doc/classes/@GlobalScope.xml b/doc/classes/@GlobalScope.xml
index ba2eb35f8c..d36a545c56 100644
--- a/doc/classes/@GlobalScope.xml
+++ b/doc/classes/@GlobalScope.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="@GlobalScope" category="Core" version="3.1">
+<class name="@GlobalScope" category="Core" version="3.2">
<brief_description>
Global scope constants and variables.
</brief_description>
@@ -9,8 +9,6 @@
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
</methods>
<members>
@@ -20,6 +18,9 @@
<member name="AudioServer" type="AudioServer" setter="" getter="">
[AudioServer] singleton
</member>
+ <member name="CameraServer" type="CameraServer" setter="" getter="">
+ [CameraServer] singleton
+ </member>
<member name="ClassDB" type="ClassDB" setter="" getter="">
[ClassDB] singleton
</member>
@@ -47,6 +48,8 @@
<member name="Marshalls" type="Reference" setter="" getter="">
[Marshalls] singleton
</member>
+ <member name="NavigationMeshGenerator" type="EditorNavigationMeshGenerator" setter="" getter="">
+ </member>
<member name="OS" type="OS" setter="" getter="">
[OS] singleton
</member>
@@ -1003,6 +1006,27 @@
<constant name="JOY_DS_Y" value="2" enum="JoystickList">
DualShock controller Y button
</constant>
+ <constant name="JOY_VR_GRIP" value="2" enum="JoystickList">
+ Grip (side) buttons on a VR controller
+ </constant>
+ <constant name="JOY_VR_PAD" value="14" enum="JoystickList">
+ Push down on the touchpad or main joystick on a VR controller
+ </constant>
+ <constant name="JOY_VR_TRIGGER" value="15" enum="JoystickList">
+ Trigger on a VR controller
+ </constant>
+ <constant name="JOY_OCULUS_AX" value="7" enum="JoystickList">
+ A button on the right Oculus Touch controller, X button on the left controller (also when used in OpenVR)
+ </constant>
+ <constant name="JOY_OCULUS_BY" value="1" enum="JoystickList">
+ B button on the right Oculus Touch controller, Y button on the left controller (also when used in OpenVR)
+ </constant>
+ <constant name="JOY_OCULUS_MENU" value="3" enum="JoystickList">
+ Menu button on either Oculus Touch controller.
+ </constant>
+ <constant name="JOY_OPENVR_MENU" value="1" enum="JoystickList">
+ Menu button in OpenVR (Except when Oculus Touch controllers are used)
+ </constant>
<constant name="JOY_SELECT" value="10" enum="JoystickList">
Joypad Button Select
</constant>
@@ -1085,6 +1109,18 @@
<constant name="JOY_ANALOG_R2" value="7" enum="JoystickList">
Joypad Right Analog Trigger
</constant>
+ <constant name="JOY_VR_ANALOG_TRIGGER" value="2" enum="JoystickList">
+ VR Controller Analog Trigger
+ </constant>
+ <constant name="JOY_VR_ANALOG_GRIP" value="4" enum="JoystickList">
+ VR Controller Analog Grip (side buttons)
+ </constant>
+ <constant name="JOY_OPENVR_TOUCHPADX" value="0" enum="JoystickList">
+ OpenVR touchpad X axis (Joystick axis on Oculus Touch and Windows MR controllers)
+ </constant>
+ <constant name="JOY_OPENVR_TOUCHPADY" value="1" enum="JoystickList">
+ OpenVR touchpad Y axis (Joystick axis on Oculus Touch and Windows MR controllers)
+ </constant>
<constant name="MIDI_MESSAGE_NOTE_OFF" value="8" enum="MidiMessageList">
</constant>
<constant name="MIDI_MESSAGE_NOTE_ON" value="9" enum="MidiMessageList">
diff --git a/doc/classes/@VisualScript.xml b/doc/classes/@VisualScript.xml
deleted file mode 100644
index d4a924a259..0000000000
--- a/doc/classes/@VisualScript.xml
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" ?>
-<class name="@VisualScript" category="Core" version="3.1">
- <brief_description>
- Built-in visual script functions.
- </brief_description>
- <description>
- A list of built-in visual script functions, see [VisualScriptBuiltinFunc] and [VisualScript].
- </description>
- <tutorials>
- </tutorials>
- <demos>
- </demos>
- <methods>
- </methods>
- <constants>
- </constants>
-</class>
diff --git a/doc/classes/AABB.xml b/doc/classes/AABB.xml
index 2e0d0c15b2..8ec07e4d5c 100644
--- a/doc/classes/AABB.xml
+++ b/doc/classes/AABB.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="AABB" category="Built-In Types" version="3.1">
+<class name="AABB" category="Built-In Types" version="3.2">
<brief_description>
Axis-Aligned Bounding Box.
</brief_description>
@@ -9,8 +9,6 @@
<tutorials>
<link>https://docs.godotengine.org/en/latest/tutorials/math/index.html</link>
</tutorials>
- <demos>
- </demos>
<methods>
<method name="AABB">
<return type="AABB">
@@ -29,7 +27,7 @@
<argument index="0" name="with" type="AABB">
</argument>
<description>
- Returns [code]true[/code] if this [code]AABB[/code] completely encloses another one.
+ Returns [code]true[/code] if this [AABB] completely encloses another one.
</description>
</method>
<method name="expand">
@@ -38,14 +36,14 @@
<argument index="0" name="to_point" type="Vector3">
</argument>
<description>
- Returns this [code]AABB[/code] expanded to include a given point.
+ Returns this [AABB] expanded to include a given point.
</description>
</method>
<method name="get_area">
<return type="float">
</return>
<description>
- Gets the area of the [code]AABB[/code].
+ Gets the area of the [AABB].
</description>
</method>
<method name="get_endpoint">
@@ -54,49 +52,49 @@
<argument index="0" name="idx" type="int">
</argument>
<description>
- Gets the position of the 8 endpoints of the [code]AABB[/code] in space.
+ Gets the position of the 8 endpoints of the [AABB] in space.
</description>
</method>
<method name="get_longest_axis">
<return type="Vector3">
</return>
<description>
- Returns the normalized longest axis of the [code]AABB[/code].
+ Returns the normalized longest axis of the [AABB].
</description>
</method>
<method name="get_longest_axis_index">
<return type="int">
</return>
<description>
- Returns the index of the longest axis of the [code]AABB[/code] (according to [Vector3]::AXIS* enum).
+ Returns the index of the longest axis of the [AABB] (according to [Vector3]::AXIS* enum).
</description>
</method>
<method name="get_longest_axis_size">
<return type="float">
</return>
<description>
- Returns the scalar length of the longest axis of the [code]AABB[/code].
+ Returns the scalar length of the longest axis of the [AABB].
</description>
</method>
<method name="get_shortest_axis">
<return type="Vector3">
</return>
<description>
- Returns the normalized shortest axis of the [code]AABB[/code].
+ Returns the normalized shortest axis of the [AABB].
</description>
</method>
<method name="get_shortest_axis_index">
<return type="int">
</return>
<description>
- Returns the index of the shortest axis of the [code]AABB[/code] (according to [Vector3]::AXIS* enum).
+ Returns the index of the shortest axis of the [AABB] (according to [Vector3]::AXIS* enum).
</description>
</method>
<method name="get_shortest_axis_size">
<return type="float">
</return>
<description>
- Returns the scalar length of the shortest axis of the [code]AABB[/code].
+ Returns the scalar length of the shortest axis of the [AABB].
</description>
</method>
<method name="get_support">
@@ -114,21 +112,21 @@
<argument index="0" name="by" type="float">
</argument>
<description>
- Returns a copy of the [code]AABB[/code] grown a given amount of units towards all the sides.
+ Returns a copy of the [AABB] grown a given amount of units towards all the sides.
</description>
</method>
<method name="has_no_area">
<return type="bool">
</return>
<description>
- Returns [code]true[/code] if the [code]AABB[/code] is flat or empty.
+ Returns [code]true[/code] if the [AABB] is flat or empty.
</description>
</method>
<method name="has_no_surface">
<return type="bool">
</return>
<description>
- Returns [code]true[/code] if the [code]AABB[/code] is empty.
+ Returns [code]true[/code] if the [AABB] is empty.
</description>
</method>
<method name="has_point">
@@ -137,7 +135,7 @@
<argument index="0" name="point" type="Vector3">
</argument>
<description>
- Returns [code]true[/code] if the [code]AABB[/code] contains a point.
+ Returns [code]true[/code] if the [AABB] contains a point.
</description>
</method>
<method name="intersection">
@@ -146,7 +144,7 @@
<argument index="0" name="with" type="AABB">
</argument>
<description>
- Returns the intersection between two [code]AABB[/code]. An empty AABB (size 0,0,0) is returned on failure.
+ Returns the intersection between two [AABB]. An empty AABB (size 0,0,0) is returned on failure.
</description>
</method>
<method name="intersects">
@@ -155,7 +153,7 @@
<argument index="0" name="with" type="AABB">
</argument>
<description>
- Returns [code]true[/code] if the [code]AABB[/code] overlaps with another.
+ Returns [code]true[/code] if the [AABB] overlaps with another.
</description>
</method>
<method name="intersects_plane">
@@ -164,7 +162,7 @@
<argument index="0" name="plane" type="Plane">
</argument>
<description>
- Returns [code]true[/code] if the [code]AABB[/code] is on both sides of a plane.
+ Returns [code]true[/code] if the [AABB] is on both sides of a plane.
</description>
</method>
<method name="intersects_segment">
@@ -175,7 +173,7 @@
<argument index="1" name="to" type="Vector3">
</argument>
<description>
- Returns [code]true[/code] if the [code]AABB[/code] intersects the line segment between [code]from[/code] and [code]to[/code].
+ Returns [code]true[/code] if the [AABB] intersects the line segment between [code]from[/code] and [code]to[/code].
</description>
</method>
<method name="merge">
diff --git a/doc/classes/ARVRAnchor.xml b/doc/classes/ARVRAnchor.xml
index fa93d9668c..91f44151fa 100644
--- a/doc/classes/ARVRAnchor.xml
+++ b/doc/classes/ARVRAnchor.xml
@@ -1,17 +1,15 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="ARVRAnchor" inherits="Spatial" category="Core" version="3.1">
+<class name="ARVRAnchor" inherits="Spatial" category="Core" version="3.2">
<brief_description>
Anchor point in AR Space.
</brief_description>
<description>
The ARVR Anchor point is a spatial node that maps a real world location identified by the AR platform to a position within the game world. For example, as long as plane detection in ARKit is on, ARKit will identify and update the position of planes (tables, floors, etc) and create anchors for them.
- This node is mapped to one of the anchors through its unique id. When you receive a signal that a new anchor is available you should add this node to your scene for that anchor. You can predefine nodes and set the id and the nodes will simply remain on 0,0,0 until a plane is recognised.
- Keep in mind that as long as plane detection is enable the size, placing and orientation of an anchor will be updates as the detection logic learns more about the real world out there especially if only part of the surface is in view.
+ This node is mapped to one of the anchors through its unique id. When you receive a signal that a new anchor is available, you should add this node to your scene for that anchor. You can predefine nodes and set the id and the nodes will simply remain on 0,0,0 until a plane is recognised.
+ Keep in mind that, as long as plane detection is enabled, the size, placing and orientation of an anchor will be updated as the detection logic learns more about the real world out there especially if only part of the surface is in view.
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
<method name="get_anchor_name" qualifiers="const">
<return type="String">
@@ -24,14 +22,21 @@
<return type="bool">
</return>
<description>
- Returns true if the anchor is being tracked and false if no anchor with this id is currently known.
+ Returns [code]true[/code] if the anchor is being tracked and [code]false[/code] if no anchor with this id is currently known.
+ </description>
+ </method>
+ <method name="get_mesh" qualifiers="const">
+ <return type="Mesh">
+ </return>
+ <description>
+ If provided by the ARVR Interface this returns a mesh object for the anchor. For an anchor this can be a shape related to the object being tracked or it can be a mesh that provides topology related to the anchor and can be used to create shadows/reflections on surfaces or for generating collision shapes.
</description>
</method>
<method name="get_plane" qualifiers="const">
<return type="Plane">
</return>
<description>
- Returns a plane aligned with our anchor, handy for intersection testing
+ Returns a plane aligned with our anchor; handy for intersection testing.
</description>
</method>
<method name="get_size" qualifiers="const">
@@ -47,6 +52,15 @@
The anchor's id. You can set this before the anchor itself exists. The first anchor gets an id of [code]1[/code], the second an id of [code]2[/code], etc. When anchors get removed, the engine can then assign the corresponding id to new anchors. The most common situation where anchors 'disappear' is when the AR server identifies that two anchors represent different parts of the same plane and merges them.
</member>
</members>
+ <signals>
+ <signal name="mesh_updated">
+ <argument index="0" name="mesh" type="Mesh">
+ </argument>
+ <description>
+ Emitted when the mesh associated with the anchor changes or when one becomes available. This is especially important for topology that is constantly being mesh_updated.
+ </description>
+ </signal>
+ </signals>
<constants>
</constants>
</class>
diff --git a/doc/classes/ARVRCamera.xml b/doc/classes/ARVRCamera.xml
index e74b435e11..1c468f193f 100644
--- a/doc/classes/ARVRCamera.xml
+++ b/doc/classes/ARVRCamera.xml
@@ -1,16 +1,14 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="ARVRCamera" inherits="Camera" category="Core" version="3.1">
+<class name="ARVRCamera" inherits="Camera" category="Core" version="3.2">
<brief_description>
- A camera node with a few overrules for AR/VR applied such as location tracking.
+ A camera node with a few overrules for AR/VR applied, such as location tracking.
</brief_description>
<description>
- This is a helper spatial node for our camera, note that if stereoscopic rendering is applicable (VR-HMD) most of the camera properties are ignored as the HMD information overrides them. The only properties that can be trusted are the near and far planes.
- 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.
+ This is a helper spatial node for our camera; note that, if stereoscopic rendering is applicable (VR-HMD), most of the camera properties are ignored, as the HMD information overrides them. The only properties that can be trusted are the near and far planes.
+ 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>
</tutorials>
- <demos>
- </demos>
<methods>
</methods>
<constants>
diff --git a/doc/classes/ARVRController.xml b/doc/classes/ARVRController.xml
index d3d6fce537..c2b7fb2c08 100644
--- a/doc/classes/ARVRController.xml
+++ b/doc/classes/ARVRController.xml
@@ -1,17 +1,15 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="ARVRController" inherits="Spatial" category="Core" version="3.1">
+<class name="ARVRController" inherits="Spatial" category="Core" version="3.2">
<brief_description>
A spatial node representing a spatially tracked controller.
</brief_description>
<description>
- This is a helper spatial node that is linked to the tracking of controllers. It also offers several handy pass throughs to the state of buttons and such on the controllers.
- Controllers are linked by their id. You can create controller nodes before the controllers are available. Say your game always uses two controllers (one for each hand) you can predefine the controllers with id 1 and 2 and they will become active as soon as the controllers are identified. If you expect additional controllers to be used you should react to the signals and add ARVRController nodes to your scene.
+ This is a helper spatial node that is linked to the tracking of controllers. It also offers several handy passthroughs to the state of buttons and such on the controllers.
+ Controllers are linked by their id. You can create controller nodes before the controllers are available. Say your game always uses two controllers (one for each hand) you can predefine the controllers with id 1 and 2 and they will become active as soon as the controllers are identified. If you expect additional controllers to be used, you should react to the signals and add ARVRController nodes to your scene.
The position of the controller node is automatically updated by the ARVR Server. This makes this node ideal to add child nodes to visualise the controller.
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
<method name="get_controller_name" qualifiers="const">
<return type="String">
@@ -50,6 +48,13 @@
Returns the ID of the joystick object bound to this. Every controller tracked by the ARVR Server that has buttons and axis will also be registered as a joystick within Godot. This means that all the normal joystick tracking and input mapping will work for buttons and axis found on the AR/VR controllers. This ID is purely offered as information so you can link up the controller with its joystick entry.
</description>
</method>
+ <method name="get_mesh" qualifiers="const">
+ <return type="Mesh">
+ </return>
+ <description>
+ If provided by the ARVR Interface this returns a mesh associated with the controller. This can be used to visualise the controller.
+ </description>
+ </method>
<method name="is_button_pressed" qualifiers="const">
<return type="int">
</return>
@@ -64,7 +69,7 @@
<member name="controller_id" type="int" setter="set_controller_id" getter="get_controller_id">
The controller's id.
A controller id of 0 is unbound and will always result in an inactive node. Controller id 1 is reserved for the first controller that identifies itself as the left hand controller and id 2 is reserved for the first controller that identifies itself as the right hand controller.
- For any other controller that the [ARVRServer] detects we continue with controller id 3.
+ For any other controller that the [ARVRServer] detects, we continue with controller id 3.
When a controller is turned off, its slot is freed. This ensures controllers will keep the same id even when controllers with lower ids are turned off.
</member>
<member name="rumble" type="float" setter="set_rumble" getter="get_rumble">
@@ -86,6 +91,13 @@
Emitted when a button on this controller is released.
</description>
</signal>
+ <signal name="mesh_updated">
+ <argument index="0" name="mesh" type="Mesh">
+ </argument>
+ <description>
+ Emitted when the mesh associated with the controller changes or when one becomes available. Generally speaking this will be a static mesh after becoming available.
+ </description>
+ </signal>
</signals>
<constants>
</constants>
diff --git a/doc/classes/ARVRInterface.xml b/doc/classes/ARVRInterface.xml
index bf72902410..c286811b5d 100644
--- a/doc/classes/ARVRInterface.xml
+++ b/doc/classes/ARVRInterface.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="ARVRInterface" inherits="Reference" category="Core" version="3.1">
+<class name="ARVRInterface" inherits="Reference" category="Core" version="3.2">
<brief_description>
Base class for ARVR interface implementation.
</brief_description>
@@ -9,9 +9,14 @@
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
+ <method name="get_camera_feed_id">
+ <return type="int">
+ </return>
+ <description>
+ If this is an AR interface that requires displaying a camera feed as the background, this method returns the feed id in the [CameraServer] for this interface.
+ </description>
+ </method>
<method name="get_capabilities" qualifiers="const">
<return type="int">
</return>
@@ -55,7 +60,7 @@
<return type="bool">
</return>
<description>
- Returns true if the current output of this interface is in stereo.
+ Returns [code]true[/code] if the current output of this interface is in stereo.
</description>
</method>
<method name="uninitialize">
diff --git a/doc/classes/ARVROrigin.xml b/doc/classes/ARVROrigin.xml
index 80626338f2..758f00a9ca 100644
--- a/doc/classes/ARVROrigin.xml
+++ b/doc/classes/ARVROrigin.xml
@@ -1,18 +1,16 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="ARVROrigin" inherits="Spatial" category="Core" version="3.1">
+<class name="ARVROrigin" inherits="Spatial" category="Core" version="3.2">
<brief_description>
Our origin point in AR/VR.
</brief_description>
<description>
This is a special node within the AR/VR system that maps the physical location of the center of our tracking space to the virtual location within our game world.
There should be only one of these nodes in your scene and you must have one. All the ARVRCamera, ARVRController and ARVRAnchor nodes should be direct children of this node for spatial tracking to work correctly.
- It is the position of this node that you update when you're character needs to move through your game world while we're not moving in the real world. Movement in the real world is always in relation to this origin point.
+ It is the position of this node that you update when your character needs to move through your game world while we're not moving in the real world. Movement in the real world is always in relation to this origin point.
So say that your character is driving a car, the ARVROrigin node should be a child node of this car. If you implement a teleport system to move your character, you change the position of this node. Etc.
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
</methods>
<members>
diff --git a/doc/classes/ARVRPositionalTracker.xml b/doc/classes/ARVRPositionalTracker.xml
index e703de36f4..de8b6b0620 100644
--- a/doc/classes/ARVRPositionalTracker.xml
+++ b/doc/classes/ARVRPositionalTracker.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="ARVRPositionalTracker" inherits="Object" category="Core" version="3.1">
+<class name="ARVRPositionalTracker" inherits="Object" category="Core" version="3.2">
<brief_description>
A tracked object
</brief_description>
@@ -10,8 +10,6 @@
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
<method name="get_hand" qualifiers="const">
<return type="int" enum="ARVRPositionalTracker.TrackerHand">
@@ -27,6 +25,13 @@
If this is a controller that is being tracked the controller will also be represented by a joystick entry with this id.
</description>
</method>
+ <method name="get_mesh" qualifiers="const">
+ <return type="Mesh">
+ </return>
+ <description>
+ Returns the mesh related to a controller or anchor point if one is available.
+ </description>
+ </method>
<method name="get_name" qualifiers="const">
<return type="String">
</return>
diff --git a/doc/classes/ARVRServer.xml b/doc/classes/ARVRServer.xml
index a7d3e46684..6f5a76943f 100644
--- a/doc/classes/ARVRServer.xml
+++ b/doc/classes/ARVRServer.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="ARVRServer" inherits="Object" category="Core" version="3.1">
+<class name="ARVRServer" inherits="Object" category="Core" version="3.2">
<brief_description>
This is our AR/VR Server.
</brief_description>
@@ -8,8 +8,6 @@
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
<method name="center_on_hmd">
<return type="void">
@@ -56,7 +54,7 @@
<return type="int">
</return>
<description>
- Get the number of interfaces currently registered with the AR/VR server. If you're game supports multiple AR/VR platforms you can look through the available interface and either present the user with a selection or simply try an initialize each interface and use the first one that returns true.
+ Get the number of interfaces currently registered with the AR/VR server. If your game supports multiple AR/VR platforms, you can look through the available interface, and either present the user with a selection or simply try an initialize each interface and use the first one that returns [code]true[/code].
</description>
</method>
<method name="get_interfaces" qualifiers="const">
diff --git a/doc/classes/AStar.xml b/doc/classes/AStar.xml
index 482566ee9f..81722535c2 100644
--- a/doc/classes/AStar.xml
+++ b/doc/classes/AStar.xml
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="AStar" inherits="Reference" category="Core" version="3.1">
+<class name="AStar" inherits="Reference" category="Core" version="3.2">
<brief_description>
- AStar class representation that uses vectors as edges.
+ AStar class representation that uses 3d-vectors as edges.
</brief_description>
<description>
A* (A star) is a computer algorithm that is widely used in pathfinding and graph traversal, the process of plotting an efficiently directed path between multiple points. It enjoys widespread use due to its performance and accuracy. Godot's A* implementation make use of vectors as points.
@@ -9,8 +9,6 @@
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
<method name="_compute_cost" qualifiers="virtual">
<return type="float">
@@ -47,8 +45,7 @@
Adds a new point at the given position with the given identifier. The algorithm prefers points with lower [code]weight_scale[/code] to form a path. The [code]id[/code] must be 0 or larger, and the [code]weight_scale[/code] must be 1 or larger.
[codeblock]
var as = AStar.new()
-
- as.add_point(1, Vector3(1,0,0), 4) # Adds the point (1,0,0) with weight_scale=4 and id=1
+ as.add_point(1, Vector3(1, 0, 0), 4) # Adds the point (1, 0, 0) with weight_scale 4 and id 1
[/codeblock]
If there already exists a point for the given id, its position and weight scale are updated to the given values.
</description>
@@ -81,15 +78,12 @@
<argument index="2" name="bidirectional" type="bool" default="true">
</argument>
<description>
- Creates a segment between the given points.
+ Creates a segment between the given points. If [code]bidirectional[/code] is [code]false[/code], only movement from [code]id[/code] to [code]to_id[/code] is allowed, not the reverse direction.
[codeblock]
var as = AStar.new()
-
- as.add_point(1, Vector3(1,1,0))
- as.add_point(2, Vector3(0,5,0))
-
- as.connect_points(1, 2, false) # If bidirectional=false it's only possible to go from point 1 to point 2
- # and not from point 2 to point 1.
+ as.add_point(1, Vector3(1, 1, 0))
+ as.add_point(2, Vector3(0, 5, 0))
+ as.connect_points(1, 2, false)
[/codeblock]
</description>
</method>
@@ -129,15 +123,12 @@
Returns the closest position to [code]to_position[/code] that resides inside a segment between two connected points.
[codeblock]
var as = AStar.new()
-
- as.add_point(1, Vector3(0,0,0))
- as.add_point(2, Vector3(0,5,0))
-
+ as.add_point(1, Vector3(0, 0, 0))
+ as.add_point(2, Vector3(0, 5, 0))
as.connect_points(1, 2)
-
- var res = as.get_closest_position_in_segment(Vector3(3,3,0)) # returns (0, 3, 0)
+ var res = as.get_closest_position_in_segment(Vector3(3, 3, 0)) # returns (0, 3, 0)
[/codeblock]
- The result is in the segment that goes from [code]y=0[/code] to [code]y=5[/code]. It's the closest position in the segment to the given point.
+ The result is in the segment that goes from [code]y = 0[/code] to [code]y = 5[/code]. It's the closest position in the segment to the given point.
</description>
</method>
<method name="get_id_path">
@@ -151,11 +142,10 @@
Returns an array with the ids of the points that form the path found by AStar between the given points. The array is ordered from the starting point to the ending point of the path.
[codeblock]
var as = AStar.new()
-
- as.add_point(1, Vector3(0,0,0))
- as.add_point(2, Vector3(0,1,0), 1) # default weight is 1
- as.add_point(3, Vector3(1,1,0))
- as.add_point(4, Vector3(2,0,0))
+ as.add_point(1, Vector3(0, 0, 0))
+ as.add_point(2, Vector3(0, 1, 0), 1) # default weight is 1
+ as.add_point(3, Vector3(1, 1, 0))
+ as.add_point(4, Vector3(2, 0, 0))
as.connect_points(1, 2, false)
as.connect_points(2, 3, false)
@@ -177,11 +167,10 @@
Returns an array with the ids of the points that form the connect with the given point.
[codeblock]
var as = AStar.new()
-
- as.add_point(1, Vector3(0,0,0))
- as.add_point(2, Vector3(0,1,0))
- as.add_point(3, Vector3(1,1,0))
- as.add_point(4, Vector3(2,0,0))
+ as.add_point(1, Vector3(0, 0, 0))
+ as.add_point(2, Vector3(0, 1, 0))
+ as.add_point(3, Vector3(1, 1, 0))
+ as.add_point(4, Vector3(2, 0, 0))
as.connect_points(1, 2, true)
as.connect_points(1, 3, true)
@@ -235,6 +224,15 @@
Returns whether a point associated with the given id exists.
</description>
</method>
+ <method name="is_point_disabled" qualifiers="const">
+ <return type="bool">
+ </return>
+ <argument index="0" name="id" type="int">
+ </argument>
+ <description>
+ Returns whether a point is disabled or not for pathfinding. By default, all points are enabled.
+ </description>
+ </method>
<method name="remove_point">
<return type="void">
</return>
@@ -244,6 +242,17 @@
Removes the point associated with the given id from the points pool.
</description>
</method>
+ <method name="set_point_disabled">
+ <return type="void">
+ </return>
+ <argument index="0" name="id" type="int">
+ </argument>
+ <argument index="1" name="disabled" type="bool" default="true">
+ </argument>
+ <description>
+ Disables or enables the specified point for pathfinding. Useful for making a temporary obstacle.
+ </description>
+ </method>
<method name="set_point_position">
<return type="void">
</return>
diff --git a/doc/classes/AStar2D.xml b/doc/classes/AStar2D.xml
new file mode 100644
index 0000000000..b86e53d4d4
--- /dev/null
+++ b/doc/classes/AStar2D.xml
@@ -0,0 +1,258 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<class name="AStar2D" inherits="Reference" category="Core" version="3.2">
+ <brief_description>
+ AStar class representation that uses 2d-vectors as edges.
+ </brief_description>
+ <description>
+ This is a wrapper for the [AStar] class which uses 2D vectors instead of 3D vectors.
+ </description>
+ <tutorials>
+ </tutorials>
+ <methods>
+ <method name="add_point">
+ <return type="void">
+ </return>
+ <argument index="0" name="id" type="int">
+ </argument>
+ <argument index="1" name="position" type="Vector2">
+ </argument>
+ <argument index="2" name="weight_scale" type="float" default="1.0">
+ </argument>
+ <description>
+ Adds a new point at the given position with the given identifier. The algorithm prefers points with lower [code]weight_scale[/code] to form a path. The [code]id[/code] must be 0 or larger, and the [code]weight_scale[/code] must be 1 or larger.
+ [codeblock]
+ var as = AStar2D.new()
+ as.add_point(1, Vector2(1, 0), 4) # Adds the point (1, 0) with weight_scale 4 and id 1
+ [/codeblock]
+ If there already exists a point for the given id, its position and weight scale are updated to the given values.
+ </description>
+ </method>
+ <method name="are_points_connected" qualifiers="const">
+ <return type="bool">
+ </return>
+ <argument index="0" name="id" type="int">
+ </argument>
+ <argument index="1" name="to_id" type="int">
+ </argument>
+ <description>
+ Returns whether there is a connection/segment between the given points.
+ </description>
+ </method>
+ <method name="clear">
+ <return type="void">
+ </return>
+ <description>
+ Clears all the points and segments.
+ </description>
+ </method>
+ <method name="connect_points">
+ <return type="void">
+ </return>
+ <argument index="0" name="id" type="int">
+ </argument>
+ <argument index="1" name="to_id" type="int">
+ </argument>
+ <argument index="2" name="bidirectional" type="bool" default="true">
+ </argument>
+ <description>
+ Creates a segment between the given points. If [code]bidirectional[/code] is [code]false[/code], only movement from [code]id[/code] to [code]to_id[/code] is allowed, not the reverse direction.
+ [codeblock]
+ var as = AStar2D.new()
+ as.add_point(1, Vector2(1, 1))
+ as.add_point(2, Vector2(0, 5))
+ as.connect_points(1, 2, false)
+ [/codeblock]
+ </description>
+ </method>
+ <method name="disconnect_points">
+ <return type="void">
+ </return>
+ <argument index="0" name="id" type="int">
+ </argument>
+ <argument index="1" name="to_id" type="int">
+ </argument>
+ <description>
+ Deletes the segment between the given points.
+ </description>
+ </method>
+ <method name="get_available_point_id" qualifiers="const">
+ <return type="int">
+ </return>
+ <description>
+ Returns the next available point id with no point associated to it.
+ </description>
+ </method>
+ <method name="get_closest_point" qualifiers="const">
+ <return type="int">
+ </return>
+ <argument index="0" name="to_position" type="Vector2">
+ </argument>
+ <description>
+ Returns the id of the closest point to [code]to_position[/code]. Returns -1 if there are no points in the points pool.
+ </description>
+ </method>
+ <method name="get_closest_position_in_segment" qualifiers="const">
+ <return type="Vector2">
+ </return>
+ <argument index="0" name="to_position" type="Vector2">
+ </argument>
+ <description>
+ Returns the closest position to [code]to_position[/code] that resides inside a segment between two connected points.
+ [codeblock]
+ var as = AStar2D.new()
+ as.add_point(1, Vector2(0, 0))
+ as.add_point(2, Vector2(0, 5))
+ as.connect_points(1, 2)
+ var res = as.get_closest_position_in_segment(Vector2(3, 3)) # returns (0, 3)
+ [/codeblock]
+ The result is in the segment that goes from [code]y = 0[/code] to [code]y = 5[/code]. It's the closest position in the segment to the given point.
+ </description>
+ </method>
+ <method name="get_id_path">
+ <return type="PoolIntArray">
+ </return>
+ <argument index="0" name="from_id" type="int">
+ </argument>
+ <argument index="1" name="to_id" type="int">
+ </argument>
+ <description>
+ Returns an array with the ids of the points that form the path found by AStar2D between the given points. The array is ordered from the starting point to the ending point of the path.
+ [codeblock]
+ var as = AStar2D.new()
+ as.add_point(1, Vector2(0, 0))
+ as.add_point(2, Vector2(0, 1), 1) # default weight is 1
+ as.add_point(3, Vector2(1, 1))
+ as.add_point(4, Vector2(2, 0))
+
+ as.connect_points(1, 2, false)
+ as.connect_points(2, 3, false)
+ as.connect_points(4, 3, false)
+ as.connect_points(1, 4, false)
+ as.connect_points(5, 4, false)
+
+ var res = as.get_id_path(1, 3) # returns [1, 2, 3]
+ [/codeblock]
+ If you change the 2nd point's weight to 3, then the result will be [code][1, 4, 3][/code] instead, because now even though the distance is longer, it's "easier" to get through point 4 than through point 2.
+ </description>
+ </method>
+ <method name="get_point_connections">
+ <return type="PoolIntArray">
+ </return>
+ <argument index="0" name="id" type="int">
+ </argument>
+ <description>
+ Returns an array with the ids of the points that form the connect with the given point.
+ [codeblock]
+ var as = AStar2D.new()
+ as.add_point(1, Vector2(0, 0))
+ as.add_point(2, Vector2(0, 1))
+ as.add_point(3, Vector2(1, 1))
+ as.add_point(4, Vector2(2, 0))
+
+ as.connect_points(1, 2, true)
+ as.connect_points(1, 3, true)
+
+ var neighbors = as.get_point_connections(1) # returns [2, 3]
+ [/codeblock]
+ </description>
+ </method>
+ <method name="get_point_path">
+ <return type="PoolVector2Array">
+ </return>
+ <argument index="0" name="from_id" type="int">
+ </argument>
+ <argument index="1" name="to_id" type="int">
+ </argument>
+ <description>
+ Returns an array with the points that are in the path found by AStar2D between the given points. The array is ordered from the starting point to the ending point of the path.
+ </description>
+ </method>
+ <method name="get_point_position" qualifiers="const">
+ <return type="Vector2">
+ </return>
+ <argument index="0" name="id" type="int">
+ </argument>
+ <description>
+ Returns the position of the point associated with the given id.
+ </description>
+ </method>
+ <method name="get_point_weight_scale" qualifiers="const">
+ <return type="float">
+ </return>
+ <argument index="0" name="id" type="int">
+ </argument>
+ <description>
+ Returns the weight scale of the point associated with the given id.
+ </description>
+ </method>
+ <method name="get_points">
+ <return type="Array">
+ </return>
+ <description>
+ Returns an array of all points.
+ </description>
+ </method>
+ <method name="has_point" qualifiers="const">
+ <return type="bool">
+ </return>
+ <argument index="0" name="id" type="int">
+ </argument>
+ <description>
+ Returns whether a point associated with the given id exists.
+ </description>
+ </method>
+ <method name="is_point_disabled" qualifiers="const">
+ <return type="bool">
+ </return>
+ <argument index="0" name="id" type="int">
+ </argument>
+ <description>
+ Returns whether a point is disabled or not for pathfinding. By default, all points are enabled.
+ </description>
+ </method>
+ <method name="remove_point">
+ <return type="void">
+ </return>
+ <argument index="0" name="id" type="int">
+ </argument>
+ <description>
+ Removes the point associated with the given id from the points pool.
+ </description>
+ </method>
+ <method name="set_point_disabled">
+ <return type="void">
+ </return>
+ <argument index="0" name="id" type="int">
+ </argument>
+ <argument index="1" name="disabled" type="bool" default="true">
+ </argument>
+ <description>
+ Disables or enables the specified point for pathfinding. Useful for making a temporary obstacle.
+ </description>
+ </method>
+ <method name="set_point_position">
+ <return type="void">
+ </return>
+ <argument index="0" name="id" type="int">
+ </argument>
+ <argument index="1" name="position" type="Vector2">
+ </argument>
+ <description>
+ Sets the position for the point with the given id.
+ </description>
+ </method>
+ <method name="set_point_weight_scale">
+ <return type="void">
+ </return>
+ <argument index="0" name="id" type="int">
+ </argument>
+ <argument index="1" name="weight_scale" type="float">
+ </argument>
+ <description>
+ Sets the [code]weight_scale[/code] for the point with the given id.
+ </description>
+ </method>
+ </methods>
+ <constants>
+ </constants>
+</class>
diff --git a/doc/classes/AcceptDialog.xml b/doc/classes/AcceptDialog.xml
index 7e871d68cb..3ea280cba3 100644
--- a/doc/classes/AcceptDialog.xml
+++ b/doc/classes/AcceptDialog.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="AcceptDialog" inherits="WindowDialog" category="Core" version="3.1">
+<class name="AcceptDialog" inherits="WindowDialog" category="Core" version="3.2">
<brief_description>
Base dialog for user notification.
</brief_description>
@@ -8,8 +8,6 @@
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
<method name="add_button">
<return type="Button">
@@ -38,14 +36,14 @@
<return type="Label">
</return>
<description>
- Return the label used for built-in text.
+ Returns the label used for built-in text.
</description>
</method>
<method name="get_ok">
<return type="Button">
</return>
<description>
- Return the OK Button.
+ Returns the OK Button.
</description>
</method>
<method name="register_text_enter">
@@ -59,12 +57,15 @@
</method>
</methods>
<members>
+ <member name="dialog_autowrap" type="bool" setter="set_autowrap" getter="has_autowrap">
+ Sets autowrapping for the text in the dialog.
+ </member>
<member name="dialog_hide_on_ok" type="bool" setter="set_hide_on_ok" getter="get_hide_on_ok">
- If [code]true[/code] the dialog is hidden when the OK button is pressed. You can set it to [code]false[/code] if you want to do e.g. input validation when receiving the [signal confirmed] signal, and handle hiding the dialog in your own logic. Default value: [code]true[/code].
+ If [code]true[/code], the dialog is hidden when the OK button is pressed. You can set it to [code]false[/code] if you want to do e.g. input validation when receiving the [signal confirmed] signal, and handle hiding the dialog in your own logic. Default value: [code]true[/code].
Note: Some nodes derived from this class can have a different default value, and potentially their own built-in logic overriding this setting. For example [FileDialog] defaults to [code]false[/code], and has its own input validation code that is called when you press OK, which eventually hides the dialog if the input is valid. As such this property can't be used in [FileDialog] to disable hiding the dialog when pressing OK.
</member>
<member name="dialog_text" type="String" setter="set_text" getter="get_text">
- The text displayed by this dialog.
+ The text displayed by the dialog.
</member>
</members>
<signals>
diff --git a/doc/classes/AnimatedSprite.xml b/doc/classes/AnimatedSprite.xml
index a41ed0e689..da85f91367 100644
--- a/doc/classes/AnimatedSprite.xml
+++ b/doc/classes/AnimatedSprite.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="AnimatedSprite" inherits="Node2D" category="Core" version="3.1">
+<class name="AnimatedSprite" inherits="Node2D" category="Core" version="3.2">
<brief_description>
Sprite node that can use multiple textures for animation.
</brief_description>
@@ -8,14 +8,12 @@
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
<method name="is_playing" qualifiers="const">
<return type="bool">
</return>
<description>
- Return true if an animation if currently being played.
+ Returns [code]true[/code] if an animation if currently being played.
</description>
</method>
<method name="play">
@@ -23,8 +21,10 @@
</return>
<argument index="0" name="anim" type="String" default="&quot;&quot;">
</argument>
+ <argument index="1" name="backwards" type="bool" default="false">
+ </argument>
<description>
- Play the animation set in parameter. If no parameter is provided, the current animation is played.
+ Play the animation set in parameter. If no parameter is provided, the current animation is played. Property [code]backwards[/code] plays the animation in reverse if set to [code]true[/code].
</description>
</method>
<method name="stop">
@@ -40,13 +40,13 @@
The current animation from the [code]frames[/code] resource. If this value changes, the [code]frame[/code] counter is reset.
</member>
<member name="centered" type="bool" setter="set_centered" getter="is_centered">
- If [code]true[/code] texture will be centered. Default value: [code]true[/code].
+ If [code]true[/code], texture will be centered. Default value: [code]true[/code].
</member>
<member name="flip_h" type="bool" setter="set_flip_h" getter="is_flipped_h">
- If [code]true[/code] texture is flipped horizontally. Default value: [code]false[/code].
+ If [code]true[/code], texture is flipped horizontally. Default value: [code]false[/code].
</member>
<member name="flip_v" type="bool" setter="set_flip_v" getter="is_flipped_v">
- If [code]true[/code] texture is flipped vertically. Default value: [code]false[/code].
+ If [code]true[/code], texture is flipped vertically. Default value: [code]false[/code].
</member>
<member name="frame" type="int" setter="set_frame" getter="get_frame">
The displayed animation frame's index.
@@ -58,9 +58,10 @@
The texture's drawing offset.
</member>
<member name="playing" type="bool" setter="_set_playing" getter="_is_playing">
- If [code]true[/code] the [member animation] is currently playing.
+ If [code]true[/code], the [member animation] is currently playing.
</member>
<member name="speed_scale" type="float" setter="set_speed_scale" getter="get_speed_scale">
+ The animation speed is multiplied by this value.
</member>
</members>
<signals>
diff --git a/doc/classes/AnimatedSprite3D.xml b/doc/classes/AnimatedSprite3D.xml
index 733d565676..96196f7601 100644
--- a/doc/classes/AnimatedSprite3D.xml
+++ b/doc/classes/AnimatedSprite3D.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="AnimatedSprite3D" inherits="SpriteBase3D" category="Core" version="3.1">
+<class name="AnimatedSprite3D" inherits="SpriteBase3D" category="Core" version="3.2">
<brief_description>
2D sprite node in 3D world, that can use multiple 2D textures for animation.
</brief_description>
@@ -8,14 +8,12 @@
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
<method name="is_playing" qualifiers="const">
<return type="bool">
</return>
<description>
- Return true if an animation if currently being played.
+ Returns [code]true[/code] if an animation if currently being played.
</description>
</method>
<method name="play">
@@ -46,7 +44,7 @@
The [SpriteFrames] resource containing the animation(s).
</member>
<member name="playing" type="bool" setter="_set_playing" getter="_is_playing">
- If [code]true[/code] the [member animation] is currently playing.
+ If [code]true[/code], the [member animation] is currently playing.
</member>
</members>
<signals>
diff --git a/doc/classes/AnimatedTexture.xml b/doc/classes/AnimatedTexture.xml
index 9dc58ed195..2009139474 100644
--- a/doc/classes/AnimatedTexture.xml
+++ b/doc/classes/AnimatedTexture.xml
@@ -1,13 +1,15 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="AnimatedTexture" inherits="Texture" category="Core" version="3.1">
+<class name="AnimatedTexture" inherits="Texture" category="Core" version="3.2">
<brief_description>
+ Proxy texture for simple frame-based animations.
</brief_description>
<description>
+ [AnimatedTexture] is a resource format for frame-based animations, where multiple textures can be chained automatically with a predefined delay for each frame. Unlike [AnimationPlayer] or [AnimatedSprite], it isn't a [Node], but has the advantage of being usable anywhere a [Texture] resource can be used, e.g. in a [TileSet].
+ The playback of the animation is controlled by the [member fps] property as well as each frame's optional delay (see [method set_frame_delay]). The animation loops, i.e. it will restart at frame 0 automatically after playing the last frame.
+ [AnimatedTexture] currently requires all frame textures to have the same size, otherwise the bigger ones will be cropped to match the smallest one.
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
<method name="get_frame_delay" qualifiers="const">
<return type="float">
@@ -15,6 +17,7 @@
<argument index="0" name="frame" type="int">
</argument>
<description>
+ Returns the given frame's delay value.
</description>
</method>
<method name="get_frame_texture" qualifiers="const">
@@ -23,6 +26,7 @@
<argument index="0" name="frame" type="int">
</argument>
<description>
+ Returns the given frame's [Texture].
</description>
</method>
<method name="set_frame_delay">
@@ -33,6 +37,14 @@
<argument index="1" name="delay" type="float">
</argument>
<description>
+ Sets an additional delay (in seconds) between this frame and the next one, that will be added to the time interval defined by [member fps]. By default, frames have no delay defined. If a delay value is defined, the final time interval between this frame and the next will be [code]1.0 / fps + delay[/code].
+ For example, for an animation with 3 frames, 2 FPS and a frame delay on the second frame of 1.2, the resulting playback will be:
+ [codeblock]
+ Frame 0: 0.5 s (1 / fps)
+ Frame 1: 1.7 s (1 / fps + 1.2)
+ Frame 2: 0.5 s (1 / fps)
+ Total duration: 2.7 s
+ [/codeblock]
</description>
</method>
<method name="set_frame_texture">
@@ -43,15 +55,23 @@
<argument index="1" name="texture" type="Texture">
</argument>
<description>
+ Assigns a [Texture] to the given frame. Frame IDs start at 0, so the first frame has ID 0, and the last frame of the animation has ID [member frames] - 1.
+ You can define any number of textures up to [constant MAX_FRAMES], but keep in mind that only frames from 0 to [member frames] - 1 will be part of the animation.
</description>
</method>
</methods>
<members>
<member name="fps" type="float" setter="set_fps" getter="get_fps">
+ Animation speed in frames per second. This value defines the default time interval between two frames of the animation, and thus the overall duration of the animation loop based on the [member frames] property. A value of 0 means no predefined number of frames per second, the animation will play according to each frame's frame delay (see [method set_frame_delay]). Default value: 4.
+ For example, an animation with 8 frames, no frame delay and a [code]fps[/code] value of 2 will run for 4 seconds, with each frame lasting 0.5 seconds.
</member>
<member name="frames" type="int" setter="set_frames" getter="get_frames">
+ Number of frames to use in the animation. While you can create the frames independently with [method set_frame_texture], you need to set this value for the animation to take new frames into account. The maximum number of frames is [constant MAX_FRAMES]. Default value: 1.
</member>
</members>
<constants>
+ <constant name="MAX_FRAMES" value="256">
+ The maximum number of frames supported by [AnimatedTexture]. If you need more frames in your animation, use [AnimationPlayer] or [AnimatedSprite].
+ </constant>
</constants>
</class>
diff --git a/doc/classes/Animation.xml b/doc/classes/Animation.xml
index 169fbcd5a8..c79903cb80 100644
--- a/doc/classes/Animation.xml
+++ b/doc/classes/Animation.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="Animation" inherits="Resource" category="Core" version="3.1">
+<class name="Animation" inherits="Resource" category="Core" version="3.2">
<brief_description>
Contains data used to animate everything in the engine.
</brief_description>
@@ -19,8 +19,6 @@
<tutorials>
<link>https://docs.godotengine.org/en/latest/tutorials/animation/index.html</link>
</tutorials>
- <demos>
- </demos>
<methods>
<method name="add_track">
<return type="int">
@@ -265,14 +263,14 @@
<argument index="0" name="path" type="NodePath">
</argument>
<description>
- Return the index of the specified track. If the track is not found, return -1.
+ Returns the index of the specified track. If the track is not found, return -1.
</description>
</method>
<method name="get_track_count" qualifiers="const">
<return type="int">
</return>
<description>
- Return the amount of tracks in the animation.
+ Returns the amount of tracks in the animation.
</description>
</method>
<method name="method_track_get_key_indices" qualifiers="const">
@@ -285,7 +283,7 @@
<argument index="2" name="delta" type="float">
</argument>
<description>
- Return all the key indices of a method track, given a position and delta time.
+ Returns all the key indices of a method track, given a position and delta time.
</description>
</method>
<method name="method_track_get_name" qualifiers="const">
@@ -296,7 +294,7 @@
<argument index="1" name="key_idx" type="int">
</argument>
<description>
- Return the method name of a method track.
+ Returns the method name of a method track.
</description>
</method>
<method name="method_track_get_params" qualifiers="const">
@@ -307,7 +305,7 @@
<argument index="1" name="key_idx" type="int">
</argument>
<description>
- Return the arguments values to be called on a method track for a given key in a given track.
+ Returns the arguments values to be called on a method track for a given key in a given track.
</description>
</method>
<method name="remove_track">
@@ -347,7 +345,7 @@
<argument index="0" name="idx" type="int">
</argument>
<description>
- Return the interpolation type of a given track, from the INTERPOLATION_* enum.
+ Returns the interpolation type of a given track, from the INTERPOLATION_* enum.
</description>
</method>
<method name="track_get_key_count" qualifiers="const">
@@ -356,7 +354,7 @@
<argument index="0" name="idx" type="int">
</argument>
<description>
- Return the amount of keys in a given track.
+ Returns the amount of keys in a given track.
</description>
</method>
<method name="track_get_key_time" qualifiers="const">
@@ -367,7 +365,7 @@
<argument index="1" name="key_idx" type="int">
</argument>
<description>
- Return the time at which the key is located.
+ Returns the time at which the key is located.
</description>
</method>
<method name="track_get_key_transition" qualifiers="const">
@@ -378,7 +376,7 @@
<argument index="1" name="key_idx" type="int">
</argument>
<description>
- Return the transition curve (easing) for a specific key (see built-in math function "ease").
+ Returns the transition curve (easing) for a specific key (see built-in math function "ease").
</description>
</method>
<method name="track_get_key_value" qualifiers="const">
@@ -389,7 +387,7 @@
<argument index="1" name="key_idx" type="int">
</argument>
<description>
- Return the value of a given key in a given track.
+ Returns the value of a given key in a given track.
</description>
</method>
<method name="track_get_path" qualifiers="const">
@@ -440,7 +438,7 @@
<argument index="0" name="idx" type="int">
</argument>
<description>
- Return true if the given track is imported. Else, return false.
+ Returns [code]true[/code] if the given track is imported. Else, return [code]false[/code].
</description>
</method>
<method name="track_move_down">
@@ -452,6 +450,17 @@
Move a track down.
</description>
</method>
+ <method name="track_move_to">
+ <return type="void">
+ </return>
+ <argument index="0" name="idx" type="int">
+ </argument>
+ <argument index="1" name="to_idx" type="int">
+ </argument>
+ <description>
+ Changes the index position of track [code]idx[/code] to the one defined in [code]to_idx[/code].
+ </description>
+ </method>
<method name="track_move_up">
<return type="void">
</return>
@@ -513,7 +522,7 @@
<argument index="1" name="interpolation" type="bool">
</argument>
<description>
- If [code]true[/code] the track at [code]idx[/code] wraps the interpolation loop.
+ If [code]true[/code], the track at [code]idx[/code] wraps the interpolation loop.
</description>
</method>
<method name="track_set_interpolation_type">
@@ -527,6 +536,19 @@
Set the interpolation type of a given track, from the INTERPOLATION_* enum.
</description>
</method>
+ <method name="track_set_key_time">
+ <return type="void">
+ </return>
+ <argument index="0" name="idx" type="int">
+ </argument>
+ <argument index="1" name="key_idx" type="int">
+ </argument>
+ <argument index="2" name="time" type="float">
+ </argument>
+ <description>
+ Set the time of an existing key.
+ </description>
+ </method>
<method name="track_set_key_transition">
<return type="void">
</return>
@@ -573,6 +595,7 @@
<argument index="1" name="with_idx" type="int">
</argument>
<description>
+ Swaps the track [code]idx[/code]'s index position with the track [code]with_idx[/code].
</description>
</method>
<method name="transform_track_insert_key">
@@ -600,7 +623,7 @@
<argument index="1" name="time_sec" type="float">
</argument>
<description>
- Return the interpolated value of a transform track at a given time (in seconds). An array consisting of 3 elements: position ([Vector3]), rotation ([Quat]) and scale ([Vector3]).
+ Returns the interpolated value of a transform track at a given time (in seconds). An array consisting of 3 elements: position ([Vector3]), rotation ([Quat]) and scale ([Vector3]).
</description>
</method>
<method name="value_track_get_key_indices" qualifiers="const">
@@ -613,7 +636,7 @@
<argument index="2" name="delta" type="float">
</argument>
<description>
- Return all the key indices of a value track, given a position and delta time.
+ Returns all the key indices of a value track, given a position and delta time.
</description>
</method>
<method name="value_track_get_update_mode" qualifiers="const">
@@ -622,7 +645,7 @@
<argument index="0" name="idx" type="int">
</argument>
<description>
- Return the update mode of a value track.
+ Returns the update mode of a value track.
</description>
</method>
<method name="value_track_set_update_mode">
@@ -648,6 +671,12 @@
The animation step value.
</member>
</members>
+ <signals>
+ <signal name="tracks_changed">
+ <description>
+ </description>
+ </signal>
+ </signals>
<constants>
<constant name="TYPE_VALUE" value="0" enum="TrackType">
Value tracks set values in node properties, but only those which can be Interpolated.
diff --git a/doc/classes/AnimationNode.xml b/doc/classes/AnimationNode.xml
index 0f16c5e4a9..23f7a316d9 100644
--- a/doc/classes/AnimationNode.xml
+++ b/doc/classes/AnimationNode.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="AnimationNode" inherits="Resource" category="Core" version="3.1">
+<class name="AnimationNode" inherits="Resource" category="Core" version="3.2">
<brief_description>
Base resource for [AnimationTree] nodes.
</brief_description>
@@ -9,8 +9,6 @@
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
<method name="add_input">
<return type="void">
@@ -54,7 +52,7 @@
<argument index="5" name="optimize" type="bool" default="true">
</argument>
<description>
- Blend an input. This is only useful for nodes created for an AnimationBlendTree. Time is a delta, unless "seek" is true, in which case it is absolute. A filter mode may be optionally passed.
+ Blend an input. This is only useful for nodes created for an [AnimationNodeBlendTree]. Time is a delta, unless "seek" is [code]true[/code], in which case it is absolute. A filter mode may be optionally passed.
</description>
</method>
<method name="blend_node">
@@ -105,7 +103,7 @@
<return type="int">
</return>
<description>
- Amount of inputs in this node, only useful for nodes that go into [AnimationBlendTree].
+ Amount of inputs in this node, only useful for nodes that go into [AnimationNodeBlendTree].
</description>
</method>
<method name="get_input_name">
@@ -139,15 +137,14 @@
<return type="Array">
</return>
<description>
- Get the property information for parameter. Parameters are custom local memory used for your nodes, given a resource can be reused in multiple trees.
- Format is similar to [Object.get_property_list]
+ Get the property information for parameter. Parameters are custom local memory used for your nodes, given a resource can be reused in multiple trees. Format is similar to [method Object.get_property_list].
</description>
</method>
<method name="has_filter" qualifiers="virtual">
<return type="String">
</return>
<description>
- Return true whether you want the blend tree editor to display filter editing on this node.
+ Returns [code]true[/code] whether you want the blend tree editor to display filter editing on this node.
</description>
</method>
<method name="is_path_filtered" qualifiers="const">
@@ -156,7 +153,7 @@
<argument index="0" name="path" type="NodePath">
</argument>
<description>
- Return true wether a given path is filtered.
+ Returns [code]true[/code] whether a given path is filtered.
</description>
</method>
<method name="process" qualifiers="virtual">
@@ -167,7 +164,7 @@
<argument index="1" name="seek" type="bool">
</argument>
<description>
- Called when a custom node is processed. The argument "time" is relative, unless "seek" is true (in which case it is absolute).
+ Called when a custom node is processed. The argument "time" is relative, unless "seek" is [code]true[/code] (in which case it is absolute).
Here, call the [method blend_input], [method blend_node] or [method blend_animation] functions.
You can also use [method get_parameter] and [method set_parameter] to modify local memory.
This function returns the time left for the current animation to finish (if unsure, just pass the value from the main blend being called).
@@ -207,7 +204,7 @@
</methods>
<members>
<member name="filter_enabled" type="bool" setter="set_filter_enabled" getter="is_filter_enabled">
- Return whether filtering is enabled.
+ Returns whether filtering is enabled.
</member>
</members>
<signals>
@@ -218,6 +215,7 @@
</signal>
<signal name="tree_changed">
<description>
+ Emitted by nodes that inherit from this class and that have an internal tree when one of their nodes changes. The nodes that emit this signal are [AnimationNodeBlendSpace1D], [AnimationNodeBlendSpace2D], [AnimationNodeStateMachine], and [AnimationNodeBlendTree].
</description>
</signal>
</signals>
diff --git a/doc/classes/AnimationNodeAdd2.xml b/doc/classes/AnimationNodeAdd2.xml
index 9297faa1b7..890d6f8b49 100644
--- a/doc/classes/AnimationNodeAdd2.xml
+++ b/doc/classes/AnimationNodeAdd2.xml
@@ -1,17 +1,18 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="AnimationNodeAdd2" inherits="AnimationNode" category="Core" version="3.1">
+<class name="AnimationNodeAdd2" inherits="AnimationNode" category="Core" version="3.2">
<brief_description>
+ Blends two animations additively inside of an [AnimationNodeBlendTree].
</brief_description>
<description>
+ 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>
</tutorials>
- <demos>
- </demos>
<methods>
</methods>
<members>
<member name="sync" type="bool" setter="set_use_sync" getter="is_using_sync">
+ If [code]true[/code], sets the [code]optimization[/code] to [code]false[/code] when calling [method AnimationNode.blend_input], forcing the blended animations to update every frame.
</member>
</members>
<constants>
diff --git a/doc/classes/AnimationNodeAdd3.xml b/doc/classes/AnimationNodeAdd3.xml
index deb8d74a38..7747c333bf 100644
--- a/doc/classes/AnimationNodeAdd3.xml
+++ b/doc/classes/AnimationNodeAdd3.xml
@@ -1,17 +1,22 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="AnimationNodeAdd3" inherits="AnimationNode" category="Core" version="3.1">
+<class name="AnimationNodeAdd3" inherits="AnimationNode" category="Core" version="3.2">
<brief_description>
+ Blends two of three animations additively inside of an [AnimationNodeBlendTree].
</brief_description>
<description>
+ A resource to add to an [AnimationNodeBlendTree]. Blends two animations together additively out of three based on a value in the [code][-1.0, 1.0][/code] range.
+ This node has three inputs:
+ - The base animation to add to
+ - A -add animation to blend with when the blend amount is in the [code][-1.0, 0.0][/code] range.
+ - A +add animation to blend with when the blend amount is in the [code][0.0, 1.0][/code] range
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
</methods>
<members>
<member name="sync" type="bool" setter="set_use_sync" getter="is_using_sync">
+ If [code]true[/code], sets the [code]optimization[/code] to [code]false[/code] when calling [method AnimationNode.blend_input], forcing the blended animations to update every frame.
</member>
</members>
<constants>
diff --git a/doc/classes/AnimationNodeAnimation.xml b/doc/classes/AnimationNodeAnimation.xml
index de8e918f68..420a702d38 100644
--- a/doc/classes/AnimationNodeAnimation.xml
+++ b/doc/classes/AnimationNodeAnimation.xml
@@ -1,17 +1,18 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="AnimationNodeAnimation" inherits="AnimationRootNode" category="Core" version="3.1">
+<class name="AnimationNodeAnimation" inherits="AnimationRootNode" category="Core" version="3.2">
<brief_description>
+ Input animation to use in an [AnimationNodeBlendTree].
</brief_description>
<description>
+ 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>
</tutorials>
- <demos>
- </demos>
<methods>
</methods>
<members>
<member name="animation" type="String" setter="set_animation" getter="get_animation">
+ Animation to use as an output. It is one of the animations provided by [member AnimationTree.anim_player].
</member>
</members>
<constants>
diff --git a/doc/classes/AnimationNodeBlend2.xml b/doc/classes/AnimationNodeBlend2.xml
index 42bb12d9d0..9358c5eeef 100644
--- a/doc/classes/AnimationNodeBlend2.xml
+++ b/doc/classes/AnimationNodeBlend2.xml
@@ -1,17 +1,18 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="AnimationNodeBlend2" inherits="AnimationNode" category="Core" version="3.1">
+<class name="AnimationNodeBlend2" inherits="AnimationNode" category="Core" version="3.2">
<brief_description>
+ Blends two animations linearly inside of an [AnimationNodeBlendTree].
</brief_description>
<description>
+ 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>
</tutorials>
- <demos>
- </demos>
<methods>
</methods>
<members>
<member name="sync" type="bool" setter="set_use_sync" getter="is_using_sync">
+ If [code]true[/code], sets the [code]optimization[/code] to [code]false[/code] when calling [method AnimationNode.blend_input], forcing the blended animations to update every frame.
</member>
</members>
<constants>
diff --git a/doc/classes/AnimationNodeBlend3.xml b/doc/classes/AnimationNodeBlend3.xml
index cd3d9f9bc8..f4a108f930 100644
--- a/doc/classes/AnimationNodeBlend3.xml
+++ b/doc/classes/AnimationNodeBlend3.xml
@@ -1,17 +1,22 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="AnimationNodeBlend3" inherits="AnimationNode" category="Core" version="3.1">
+<class name="AnimationNodeBlend3" inherits="AnimationNode" category="Core" version="3.2">
<brief_description>
+ Blends two of three animations linearly inside of an [AnimationNodeBlendTree].
</brief_description>
<description>
+ A resource to add to an [AnimationNodeBlendTree]. Blends two animations together linearly out of three based on a value in the [code][-1.0, 1.0][/code] range.
+ This node has three inputs:
+ - The base animation
+ - A -blend animation to blend with when the blend amount is in the [code][-1.0, 0.0][/code] range.
+ - A +blend animation to blend with when the blend amount is in the [code][0.0, 1.0][/code] range
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
</methods>
<members>
<member name="sync" type="bool" setter="set_use_sync" getter="is_using_sync">
+ If [code]true[/code], sets the [code]optimization[/code] to [code]false[/code] when calling [method AnimationNode.blend_input], forcing the blended animations to update every frame.
</member>
</members>
<constants>
diff --git a/doc/classes/AnimationNodeBlendSpace1D.xml b/doc/classes/AnimationNodeBlendSpace1D.xml
index 2113948b2e..6fb5c6312b 100644
--- a/doc/classes/AnimationNodeBlendSpace1D.xml
+++ b/doc/classes/AnimationNodeBlendSpace1D.xml
@@ -1,13 +1,16 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="AnimationNodeBlendSpace1D" inherits="AnimationRootNode" category="Core" version="3.1">
+<class name="AnimationNodeBlendSpace1D" inherits="AnimationRootNode" category="Core" version="3.2">
<brief_description>
+ Blends linearly between two of any number of [AnimationNode] of any type placed on a virtual axis.
</brief_description>
<description>
+ A resource to add to an [AnimationNodeBlendTree].
+ This is a virtual axis on which you can add any type of [AnimationNode] using [method add_blend_point].
+ Outputs the linear blend of the two [code]AnimationNode[/code] closest to the node's current [code]value[/code].
+ You can set the extents of the axis using the [member min_space] and [member max_space].
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
<method name="add_blend_point">
<return type="void">
@@ -19,12 +22,14 @@
<argument index="2" name="at_index" type="int" default="-1">
</argument>
<description>
+ Add a new point that represents a [code]node[/code] on the virtual axis at a given position set by [code]pos[/code]. You can insert it at a specific index using the [code]at_index[/code] argument. If you use the default value for [code]at_index[/code] , the point is inserted at the end of the blend points array.
</description>
</method>
<method name="get_blend_point_count" qualifiers="const">
<return type="int">
</return>
<description>
+ Returns the number of points on the blend axis.
</description>
</method>
<method name="get_blend_point_node" qualifiers="const">
@@ -33,6 +38,7 @@
<argument index="0" name="point" type="int">
</argument>
<description>
+ Returns the [code]AnimationNode[/code] referenced by the point at index [code]point[/code].
</description>
</method>
<method name="get_blend_point_position" qualifiers="const">
@@ -41,6 +47,7 @@
<argument index="0" name="point" type="int">
</argument>
<description>
+ Returns the position of the point at index [code]point[/code].
</description>
</method>
<method name="remove_blend_point">
@@ -49,6 +56,7 @@
<argument index="0" name="point" type="int">
</argument>
<description>
+ Removes the point at index [code]point[/code] from the blend axis.
</description>
</method>
<method name="set_blend_point_node">
@@ -59,6 +67,7 @@
<argument index="1" name="node" type="AnimationRootNode">
</argument>
<description>
+ Changes the AnimationNode referenced by the point at index [code]point[/code].
</description>
</method>
<method name="set_blend_point_position">
@@ -69,17 +78,22 @@
<argument index="1" name="pos" type="float">
</argument>
<description>
+ Updates the position of the point at index [code]point[/code] on the blend axis.
</description>
</method>
</methods>
<members>
<member name="max_space" type="float" setter="set_max_space" getter="get_max_space">
+ The blend space's axis's upper limit for the points' position. See [method add_blend_point].
</member>
<member name="min_space" type="float" setter="set_min_space" getter="get_min_space">
+ The blend space's axis's lower limit for the points' position. See [method add_blend_point].
</member>
<member name="snap" type="float" setter="set_snap" getter="get_snap">
+ Position increment to snap to when moving a point on the axis.
</member>
<member name="value_label" type="String" setter="set_value_label" getter="get_value_label">
+ Label of the virtual axis of the blend space.
</member>
</members>
<constants>
diff --git a/doc/classes/AnimationNodeBlendSpace2D.xml b/doc/classes/AnimationNodeBlendSpace2D.xml
index 55e27fc331..6567098d6c 100644
--- a/doc/classes/AnimationNodeBlendSpace2D.xml
+++ b/doc/classes/AnimationNodeBlendSpace2D.xml
@@ -1,13 +1,15 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="AnimationNodeBlendSpace2D" inherits="AnimationRootNode" category="Core" version="3.1">
+<class name="AnimationNodeBlendSpace2D" inherits="AnimationRootNode" category="Core" version="3.2">
<brief_description>
+ Blends linearly between three [AnimationNode] of any type placed in a 2d space.
</brief_description>
<description>
+ A resource to add to an [AnimationNodeBlendTree].
+ This node allows you to blend linearly between three animations using a [Vector2] weight.
+ 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>
</tutorials>
- <demos>
- </demos>
<methods>
<method name="add_blend_point">
<return type="void">
@@ -19,6 +21,7 @@
<argument index="2" name="at_index" type="int" default="-1">
</argument>
<description>
+ Add a new point that represents a [code]node[/code] at the position set by [code]pos[/code]. You can insert it at a specific index using the [code]at_index[/code] argument. If you use the default value for [code]at_index[/code] , the point is inserted at the end of the blend points array.
</description>
</method>
<method name="add_triangle">
@@ -33,12 +36,14 @@
<argument index="3" name="at_index" type="int" default="-1">
</argument>
<description>
+ Creates a new triangle using three points [code]x[/code], [code]y[/code], and [code]z[/code]. Triangles can overlap. You can insert the triangle at a specific index using the [code]at_index[/code] argument. If you use the default value for [code]at_index[/code] , the point is inserted at the end of the blend points array.
</description>
</method>
<method name="get_blend_point_count" qualifiers="const">
<return type="int">
</return>
<description>
+ Returns the number of points in the blend space.
</description>
</method>
<method name="get_blend_point_node" qualifiers="const">
@@ -47,6 +52,7 @@
<argument index="0" name="point" type="int">
</argument>
<description>
+ Returns the [code]AnimationRootNode[/code] referenced by the point at index [code]point[/code].
</description>
</method>
<method name="get_blend_point_position" qualifiers="const">
@@ -55,12 +61,14 @@
<argument index="0" name="point" type="int">
</argument>
<description>
+ Returns the position of the point at index [code]point[/code].
</description>
</method>
<method name="get_triangle_count" qualifiers="const">
<return type="int">
</return>
<description>
+ Returns the number of triangles in the blend space.
</description>
</method>
<method name="get_triangle_point">
@@ -71,6 +79,7 @@
<argument index="1" name="point" type="int">
</argument>
<description>
+ Returns the position of the point at index [code]point[/code] in the triangle of index [code]triangle[/code].
</description>
</method>
<method name="remove_blend_point">
@@ -79,6 +88,7 @@
<argument index="0" name="point" type="int">
</argument>
<description>
+ Removes the point at index [code]point[/code] from the blend space.
</description>
</method>
<method name="remove_triangle">
@@ -87,6 +97,7 @@
<argument index="0" name="triangle" type="int">
</argument>
<description>
+ Removes the triangle at index [code]triangle[/code] from the blend space.
</description>
</method>
<method name="set_blend_point_node">
@@ -97,6 +108,7 @@
<argument index="1" name="node" type="AnimationRootNode">
</argument>
<description>
+ Changes the AnimationNode referenced by the point at index [code]point[/code].
</description>
</method>
<method name="set_blend_point_position">
@@ -107,31 +119,49 @@
<argument index="1" name="pos" type="Vector2">
</argument>
<description>
+ Updates the position of the point at index [code]point[/code] on the blend axis.
</description>
</method>
</methods>
<members>
<member name="auto_triangles" type="bool" setter="set_auto_triangles" getter="get_auto_triangles">
+ If true, the blend space is triangulated automatically. The mesh updates every time you add or remove points with [method add_blend_point] and [method remove_blend_point].
</member>
<member name="blend_mode" type="int" setter="set_blend_mode" getter="get_blend_mode" enum="AnimationNodeBlendSpace2D.BlendMode">
+ Controls the interpolation between animations. See [enum BlendMode] constants.
</member>
<member name="max_space" type="Vector2" setter="set_max_space" getter="get_max_space">
+ The blend space's X and Y axes' upper limit for the points' position. See [method add_blend_point].
</member>
<member name="min_space" type="Vector2" setter="set_min_space" getter="get_min_space">
+ The blend space's X and Y axes' lower limit for the points' position. See [method add_blend_point].
</member>
<member name="snap" type="Vector2" setter="set_snap" getter="get_snap">
+ Position increment to snap to when moving a point.
</member>
<member name="x_label" type="String" setter="set_x_label" getter="get_x_label">
+ Name of the blend space's X axis.
</member>
<member name="y_label" type="String" setter="set_y_label" getter="get_y_label">
+ Name of the blend space's Y axis.
</member>
</members>
+ <signals>
+ <signal name="triangles_updated">
+ <description>
+ Emitted every time the blend space's triangles are created, removed, or when one of their vertices changes position.
+ </description>
+ </signal>
+ </signals>
<constants>
<constant name="BLEND_MODE_INTERPOLATED" value="0" enum="BlendMode">
+ The interpolation between animations is linear.
</constant>
<constant name="BLEND_MODE_DISCRETE" value="1" enum="BlendMode">
+ The blend space plays the animation of the node the blending position is closest to. Useful for frame-by-frame 2D animations.
</constant>
<constant name="BLEND_MODE_DISCRETE_CARRY" value="2" enum="BlendMode">
+ Similar to [constant BLEND_MODE_DISCRETE], but starts the new animation at the last animation's playback position.
</constant>
</constants>
</class>
diff --git a/doc/classes/AnimationNodeBlendTree.xml b/doc/classes/AnimationNodeBlendTree.xml
index cd28232908..6454a26a04 100644
--- a/doc/classes/AnimationNodeBlendTree.xml
+++ b/doc/classes/AnimationNodeBlendTree.xml
@@ -1,13 +1,11 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="AnimationNodeBlendTree" inherits="AnimationRootNode" category="Core" version="3.1">
+<class name="AnimationNodeBlendTree" inherits="AnimationRootNode" category="Core" version="3.2">
<brief_description>
</brief_description>
<description>
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
<method name="add_node">
<return type="void">
diff --git a/doc/classes/AnimationNodeOneShot.xml b/doc/classes/AnimationNodeOneShot.xml
index 12cb9775a2..b6a6459c9e 100644
--- a/doc/classes/AnimationNodeOneShot.xml
+++ b/doc/classes/AnimationNodeOneShot.xml
@@ -1,13 +1,11 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="AnimationNodeOneShot" inherits="AnimationNode" category="Core" version="3.1">
+<class name="AnimationNodeOneShot" inherits="AnimationNode" category="Core" version="3.2">
<brief_description>
</brief_description>
<description>
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
<method name="get_mix_mode" qualifiers="const">
<return type="int" enum="AnimationNodeOneShot.MixMode">
diff --git a/doc/classes/AnimationNodeOutput.xml b/doc/classes/AnimationNodeOutput.xml
index 98a41bc9cb..bfe28319c6 100644
--- a/doc/classes/AnimationNodeOutput.xml
+++ b/doc/classes/AnimationNodeOutput.xml
@@ -1,13 +1,11 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="AnimationNodeOutput" inherits="AnimationNode" category="Core" version="3.1">
+<class name="AnimationNodeOutput" inherits="AnimationNode" category="Core" version="3.2">
<brief_description>
</brief_description>
<description>
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
</methods>
<constants>
diff --git a/doc/classes/AnimationNodeStateMachine.xml b/doc/classes/AnimationNodeStateMachine.xml
index ed4098d938..2834f83d2f 100644
--- a/doc/classes/AnimationNodeStateMachine.xml
+++ b/doc/classes/AnimationNodeStateMachine.xml
@@ -1,13 +1,17 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="AnimationNodeStateMachine" inherits="AnimationRootNode" category="Core" version="3.1">
+<class name="AnimationNodeStateMachine" inherits="AnimationRootNode" category="Core" version="3.2">
<brief_description>
+ State machine for control of animations.
</brief_description>
<description>
+ Contains multiple nodes representing animation states, connected in a graph. Nodes transitions can be configured to happen automatically or via code, using a shortest-path algorithm. Retrieve the AnimationNodeStateMachinePlayback object from the [AnimationTree] node to control it programatically. Example:
+ [codeblock]
+ var state_machine = $AnimationTree.get("parameters/playback")
+ state_machine.travel("some_state")
+ [/codeblock]
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
<method name="add_node">
<return type="void">
@@ -19,6 +23,7 @@
<argument index="2" name="position" type="Vector2" default="Vector2( 0, 0 )">
</argument>
<description>
+ Adds a new node to the graph. The [code]position[/code] is used for display in the editor.
</description>
</method>
<method name="add_transition">
@@ -31,18 +36,21 @@
<argument index="2" name="transition" type="AnimationNodeStateMachineTransition">
</argument>
<description>
+ Adds a transition between the given nodes.
</description>
</method>
<method name="get_end_node" qualifiers="const">
<return type="String">
</return>
<description>
+ Returns the graph's end node.
</description>
</method>
<method name="get_graph_offset" qualifiers="const">
<return type="Vector2">
</return>
<description>
+ Returns the draw offset of the graph. Used for display in the editor.
</description>
</method>
<method name="get_node" qualifiers="const">
@@ -51,6 +59,7 @@
<argument index="0" name="name" type="String">
</argument>
<description>
+ Returns the animation node with the given name.
</description>
</method>
<method name="get_node_name" qualifiers="const">
@@ -59,6 +68,7 @@
<argument index="0" name="node" type="AnimationNode">
</argument>
<description>
+ Returns the given animation node's name.
</description>
</method>
<method name="get_node_position" qualifiers="const">
@@ -67,12 +77,14 @@
<argument index="0" name="name" type="String">
</argument>
<description>
+ Returns the given node's coordinates. Used for display in the editor.
</description>
</method>
<method name="get_start_node" qualifiers="const">
<return type="String">
</return>
<description>
+ Returns the graph's end node.
</description>
</method>
<method name="get_transition" qualifiers="const">
@@ -81,12 +93,14 @@
<argument index="0" name="idx" type="int">
</argument>
<description>
+ Returns the given transition.
</description>
</method>
<method name="get_transition_count" qualifiers="const">
<return type="int">
</return>
<description>
+ Returns the number of connections in the graph.
</description>
</method>
<method name="get_transition_from" qualifiers="const">
@@ -95,6 +109,7 @@
<argument index="0" name="idx" type="int">
</argument>
<description>
+ Returns the given transition's start node.
</description>
</method>
<method name="get_transition_to" qualifiers="const">
@@ -103,6 +118,7 @@
<argument index="0" name="idx" type="int">
</argument>
<description>
+ Returns the given transition's end node.
</description>
</method>
<method name="has_node" qualifiers="const">
@@ -111,6 +127,7 @@
<argument index="0" name="name" type="String">
</argument>
<description>
+ Returns [code]true[/code] if the graph contains the given node.
</description>
</method>
<method name="has_transition" qualifiers="const">
@@ -121,6 +138,7 @@
<argument index="1" name="to" type="String">
</argument>
<description>
+ Returns [code]true[/code] if there is a transition between the given nodes.
</description>
</method>
<method name="remove_node">
@@ -129,6 +147,7 @@
<argument index="0" name="name" type="String">
</argument>
<description>
+ Deletes the given node from the graph.
</description>
</method>
<method name="remove_transition">
@@ -139,6 +158,7 @@
<argument index="1" name="to" type="String">
</argument>
<description>
+ Deletes the given transition.
</description>
</method>
<method name="remove_transition_by_index">
@@ -147,6 +167,7 @@
<argument index="0" name="idx" type="int">
</argument>
<description>
+ Deletes the given transition.
</description>
</method>
<method name="rename_node">
@@ -157,6 +178,7 @@
<argument index="1" name="new_name" type="String">
</argument>
<description>
+ Renames the given node.
</description>
</method>
<method name="set_end_node">
@@ -165,14 +187,16 @@
<argument index="0" name="name" type="String">
</argument>
<description>
+ Sets the given node as the graph end point.
</description>
</method>
<method name="set_graph_offset">
<return type="void">
</return>
- <argument index="0" name="name" type="Vector2">
+ <argument index="0" name="offset" type="Vector2">
</argument>
<description>
+ Sets the draw offset of the graph. Used for display in the editor.
</description>
</method>
<method name="set_node_position">
@@ -183,6 +207,7 @@
<argument index="1" name="position" type="Vector2">
</argument>
<description>
+ Sets the node's coordinates. Used for display in the editor.
</description>
</method>
<method name="set_start_node">
@@ -191,6 +216,7 @@
<argument index="0" name="name" type="String">
</argument>
<description>
+ Sets the given node as the graph start point.
</description>
</method>
</methods>
diff --git a/doc/classes/AnimationNodeStateMachinePlayback.xml b/doc/classes/AnimationNodeStateMachinePlayback.xml
index 6bf9504efb..796d92d7d6 100644
--- a/doc/classes/AnimationNodeStateMachinePlayback.xml
+++ b/doc/classes/AnimationNodeStateMachinePlayback.xml
@@ -1,18 +1,23 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="AnimationNodeStateMachinePlayback" inherits="Resource" category="Core" version="3.1">
+<class name="AnimationNodeStateMachinePlayback" inherits="Resource" category="Core" version="3.2">
<brief_description>
+ Playback control for AnimationNodeStateMachine.
</brief_description>
<description>
+ Allows control of [AnimationTree] state machines created with [AnimationNodeStateMachine]. Retrieve with [code]$AnimationTree.get("parameters/playback")[/code]. Example:
+ [codeblock]
+ var state_machine = $AnimationTree.get("parameters/playback")
+ state_machine.travel("some_state")
+ [/codeblock]
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
<method name="get_current_node" qualifiers="const">
<return type="String">
</return>
<description>
+ Returns the currently playing animation state.
</description>
</method>
<method name="get_travel_path" qualifiers="const">
@@ -25,6 +30,7 @@
<return type="bool">
</return>
<description>
+ Returns [code]true[/code] if an animation is playing.
</description>
</method>
<method name="start">
@@ -33,12 +39,14 @@
<argument index="0" name="node" type="String">
</argument>
<description>
+ Starts playing the given animation.
</description>
</method>
<method name="stop">
<return type="void">
</return>
<description>
+ Stops the currently playing animation.
</description>
</method>
<method name="travel">
@@ -47,6 +55,7 @@
<argument index="0" name="to_node" type="String">
</argument>
<description>
+ Transitions from the current state to another one, following the shortest path.
</description>
</method>
</methods>
diff --git a/doc/classes/AnimationNodeStateMachineTransition.xml b/doc/classes/AnimationNodeStateMachineTransition.xml
index e07a9fc980..aeb44a789b 100644
--- a/doc/classes/AnimationNodeStateMachineTransition.xml
+++ b/doc/classes/AnimationNodeStateMachineTransition.xml
@@ -1,27 +1,34 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="AnimationNodeStateMachineTransition" inherits="Resource" category="Core" version="3.1">
+<class name="AnimationNodeStateMachineTransition" inherits="Resource" category="Core" version="3.2">
<brief_description>
</brief_description>
<description>
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
</methods>
<members>
<member name="advance_condition" type="String" setter="set_advance_condition" getter="get_advance_condition">
+ 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/latest/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 "idle":
+ [codeblock]
+ $animation_tree["parameters/conditions/idle"] = is_on_floor and linear_velocity.x == 0
+ [/codeblock]
</member>
<member name="auto_advance" type="bool" setter="set_auto_advance" getter="has_auto_advance">
+ Turn on the transition automatically when this state is reached. This works best with [code]SWITCH_MODE_AT_END[/code].
</member>
<member name="disabled" type="bool" setter="set_disabled" getter="is_disabled">
+ Don't use this transition during [method AnimationNodeStateMachinePlayback.travel] or [member auto_advance].
</member>
<member name="priority" type="int" setter="set_priority" getter="get_priority">
+ Lower priority transitions are preferred when travelling through the tree via [method AnimationNodeStateMachinePlayback.travel] or [member auto_advance].
</member>
<member name="switch_mode" type="int" setter="set_switch_mode" getter="get_switch_mode" enum="AnimationNodeStateMachineTransition.SwitchMode">
+ The transition type.
</member>
<member name="xfade_time" type="float" setter="set_xfade_time" getter="get_xfade_time">
+ The time to cross-fade between this state and the next.
</member>
</members>
<signals>
@@ -32,10 +39,13 @@
</signals>
<constants>
<constant name="SWITCH_MODE_IMMEDIATE" value="0" enum="SwitchMode">
+ Switch to the next state immediately. The current state will end and blend into the beginning of the new one.
</constant>
<constant name="SWITCH_MODE_SYNC" value="1" enum="SwitchMode">
+ Switch to the next state immediately, but will seek the new state to the playback position of the old state.
</constant>
<constant name="SWITCH_MODE_AT_END" value="2" enum="SwitchMode">
+ Wait for the current state playback to end, then switch to the beginning of the next state animation.
</constant>
</constants>
</class>
diff --git a/doc/classes/AnimationNodeTimeScale.xml b/doc/classes/AnimationNodeTimeScale.xml
index 226c855b83..9ce773c4e2 100644
--- a/doc/classes/AnimationNodeTimeScale.xml
+++ b/doc/classes/AnimationNodeTimeScale.xml
@@ -1,13 +1,11 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="AnimationNodeTimeScale" inherits="AnimationNode" category="Core" version="3.1">
+<class name="AnimationNodeTimeScale" inherits="AnimationNode" category="Core" version="3.2">
<brief_description>
</brief_description>
<description>
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
</methods>
<constants>
diff --git a/doc/classes/AnimationNodeTimeSeek.xml b/doc/classes/AnimationNodeTimeSeek.xml
index 707b09a4a5..d593f5489c 100644
--- a/doc/classes/AnimationNodeTimeSeek.xml
+++ b/doc/classes/AnimationNodeTimeSeek.xml
@@ -1,13 +1,11 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="AnimationNodeTimeSeek" inherits="AnimationNode" category="Core" version="3.1">
+<class name="AnimationNodeTimeSeek" inherits="AnimationNode" category="Core" version="3.2">
<brief_description>
</brief_description>
<description>
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
</methods>
<constants>
diff --git a/doc/classes/AnimationNodeTransition.xml b/doc/classes/AnimationNodeTransition.xml
index 317bc5ed69..311d0e8486 100644
--- a/doc/classes/AnimationNodeTransition.xml
+++ b/doc/classes/AnimationNodeTransition.xml
@@ -1,13 +1,11 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="AnimationNodeTransition" inherits="AnimationNode" category="Core" version="3.1">
+<class name="AnimationNodeTransition" inherits="AnimationNode" category="Core" version="3.2">
<brief_description>
</brief_description>
<description>
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
</methods>
<members>
diff --git a/doc/classes/AnimationPlayer.xml b/doc/classes/AnimationPlayer.xml
index 3b3638a4f3..ff91db2e28 100644
--- a/doc/classes/AnimationPlayer.xml
+++ b/doc/classes/AnimationPlayer.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="AnimationPlayer" inherits="Node" category="Core" version="3.1">
+<class name="AnimationPlayer" inherits="Node" category="Core" version="3.2">
<brief_description>
Container and player of [Animation] resources.
</brief_description>
@@ -10,8 +10,6 @@
<link>https://docs.godotengine.org/en/latest/getting_started/step_by_step/animations.html</link>
<link>https://docs.godotengine.org/en/latest/tutorials/animation/index.html</link>
</tutorials>
- <demos>
- </demos>
<methods>
<method name="add_animation">
<return type="int" enum="Error">
@@ -30,7 +28,7 @@
<argument index="0" name="delta" type="float">
</argument>
<description>
- Shifts position in the animation timeline. Delta is the time in seconds to shift.
+ Shifts position in the animation timeline. Delta is the time in seconds to shift. Events between the current frame and [code]delta[/code] are handled.
</description>
</method>
<method name="animation_get_next" qualifiers="const">
@@ -57,7 +55,7 @@
<return type="void">
</return>
<description>
- [code]AnimationPlayer[/code] caches animated nodes. It may not notice if a node disappears, so clear_caches forces it to update the cache again.
+ [AnimationPlayer] caches animated nodes. It may not notice if a node disappears, so clear_caches forces it to update the cache again.
</description>
</method>
<method name="clear_queue">
@@ -110,13 +108,19 @@
Get the actual playing speed of current animation or 0 if not playing. This speed is the [code]playback_speed[/code] property multiplied by [code]custom_speed[/code] argument specified when calling the [code]play[/code] method.
</description>
</method>
+ <method name="get_queue">
+ <return type="PoolStringArray">
+ </return>
+ <description>
+ </description>
+ </method>
<method name="has_animation" qualifiers="const">
<return type="bool">
</return>
<argument index="0" name="name" type="String">
</argument>
<description>
- Returns [code]true[/code] if the [code]AnimationPlayer[/code] stores an [Animation] with key [code]name[/code].
+ Returns [code]true[/code] if the [AnimationPlayer] stores an [Animation] with key [code]name[/code].
</description>
</method>
<method name="is_playing" qualifiers="const">
@@ -138,7 +142,8 @@
<argument index="3" name="from_end" type="bool" default="false">
</argument>
<description>
- Play the animation with key [code]name[/code]. Custom speed and blend times can be set. If custom speed is negative (-1), 'from_end' being true can play the animation backwards.
+ Play the animation with key [code]name[/code]. Custom speed and blend times can be set. If custom speed is negative (-1), 'from_end' being [code]true[/code] can play the animation backwards.
+ If the animation has been paused by [code]stop(true)[/code] it will be resumed. Calling [code]play()[/code] without arguments will also resume the animation.
</description>
</method>
<method name="play_backwards">
@@ -150,6 +155,7 @@
</argument>
<description>
Play the animation with key [code]name[/code] in reverse.
+ If the animation has been paused by [code]stop(true)[/code] it will be resumed backwards. Calling [code]play_backwards()[/code] without arguments will also resume the animation backwards.
</description>
</method>
<method name="queue">
@@ -189,7 +195,7 @@
<argument index="1" name="update" type="bool" default="false">
</argument>
<description>
- Seek the animation to the [code]seconds[/code] point in time (in seconds). If [code]update[/code] is [code]true[/code], the animation updates too, otherwise it updates at process time.
+ Seek the animation to the [code]seconds[/code] point in time (in seconds). If [code]update[/code] is [code]true[/code], the animation updates too, otherwise it updates at process time. Events between the current frame and [code]seconds[/code] are skipped.
</description>
</method>
<method name="set_blend_time">
@@ -211,7 +217,8 @@
<argument index="0" name="reset" type="bool" default="true">
</argument>
<description>
- Stop the currently playing animation. If [code]reset[/code] is [code]true[/code], the anim position is reset to [code]0[/code].
+ Stop the currently playing animation. If [code]reset[/code] is [code]true[/code], the animation position is reset to [code]0[/code] and the playback speed is reset to [code]1.0[/code].
+ If [code]reset[/code] is [code]false[/code], then calling [code]play()[/code] without arguments or [code]play("same_as_before")[/code] will resume the animation. Works the same for the [code]play_backwards()[/code] method.
</description>
</method>
</methods>
@@ -231,6 +238,9 @@
<member name="current_animation_position" type="float" setter="" getter="get_current_animation_position">
The position (in seconds) of the currently playing animation.
</member>
+ <member name="method_call_mode" type="int" setter="set_method_call_mode" getter="get_method_call_mode" enum="AnimationPlayer.AnimationMethodCallMode">
+ The call mode to use for Call Method tracks. Default value: [code]ANIMATION_METHOD_CALL_DEFERRED[/code].
+ </member>
<member name="playback_active" type="bool" setter="set_active" getter="is_active">
If [code]true[/code], updates animations in response to process-related notifications. Default value: [code]true[/code].
</member>
@@ -286,5 +296,11 @@
<constant name="ANIMATION_PROCESS_MANUAL" value="2" enum="AnimationProcessMode">
Do not process animation. Use the 'advance' method to process the animation manually.
</constant>
+ <constant name="ANIMATION_METHOD_CALL_DEFERRED" value="0" enum="AnimationMethodCallMode">
+ Batch method calls during the animation process, then do the calls after events are processed. This avoids bugs involving deleting nodes or modifying the AnimationPlayer while playing.
+ </constant>
+ <constant name="ANIMATION_METHOD_CALL_IMMEDIATE" value="1" enum="AnimationMethodCallMode">
+ Make method calls immediately when reached in the animation.
+ </constant>
</constants>
</class>
diff --git a/doc/classes/AnimationRootNode.xml b/doc/classes/AnimationRootNode.xml
index dab2c12373..735f3215e9 100644
--- a/doc/classes/AnimationRootNode.xml
+++ b/doc/classes/AnimationRootNode.xml
@@ -1,13 +1,11 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="AnimationRootNode" inherits="AnimationNode" category="Core" version="3.1">
+<class name="AnimationRootNode" inherits="AnimationNode" category="Core" version="3.2">
<brief_description>
</brief_description>
<description>
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
</methods>
<constants>
diff --git a/doc/classes/AnimationTrackEditPlugin.xml b/doc/classes/AnimationTrackEditPlugin.xml
index f322a556b1..2dcabb051f 100644
--- a/doc/classes/AnimationTrackEditPlugin.xml
+++ b/doc/classes/AnimationTrackEditPlugin.xml
@@ -1,13 +1,11 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="AnimationTrackEditPlugin" inherits="Reference" category="Core" version="3.1">
+<class name="AnimationTrackEditPlugin" inherits="Reference" category="Core" version="3.2">
<brief_description>
</brief_description>
<description>
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
</methods>
<constants>
diff --git a/doc/classes/AnimationTree.xml b/doc/classes/AnimationTree.xml
index 9a6a75079c..f3dc1ecc1e 100644
--- a/doc/classes/AnimationTree.xml
+++ b/doc/classes/AnimationTree.xml
@@ -1,13 +1,13 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="AnimationTree" inherits="Node" category="Core" version="3.1">
+<class name="AnimationTree" inherits="Node" category="Core" version="3.2">
<brief_description>
</brief_description>
<description>
</description>
<tutorials>
+ <link>https://docs.godotengine.org/en/latest/tutorials/animation/animation_tree.html</link>
+ <link>https://github.com/godotengine/tps-demo</link>
</tutorials>
- <demos>
- </demos>
<methods>
<method name="advance">
<return type="void">
diff --git a/doc/classes/AnimationTreePlayer.xml b/doc/classes/AnimationTreePlayer.xml
index a081c64f6d..818565e0dc 100644
--- a/doc/classes/AnimationTreePlayer.xml
+++ b/doc/classes/AnimationTreePlayer.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="AnimationTreePlayer" inherits="Node" category="Core" version="3.1">
+<class name="AnimationTreePlayer" inherits="Node" category="Core" version="3.2">
<brief_description>
Animation Player that uses a node graph for blending Animations.
</brief_description>
@@ -9,8 +9,6 @@
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
<method name="add_node">
<return type="void">
@@ -29,7 +27,7 @@
<argument index="0" name="delta" type="float">
</argument>
<description>
- Shifts position in the animation timeline. Delta is the time in seconds to shift.
+ Shifts position in the animation timeline. Delta is the time in seconds to shift. Events between the current frame and [code]delta[/code] are handled.
</description>
</method>
<method name="animation_node_get_animation" qualifiers="const">
@@ -38,7 +36,7 @@
<argument index="0" name="id" type="String">
</argument>
<description>
- Returns the [AnimationPlayer]'s [Animation] bound to the [code]AnimationTreePlayer[/code]'s animation node with name [code]id[/code].
+ Returns the [AnimationPlayer]'s [Animation] bound to the [AnimationTreePlayer]'s animation node with name [code]id[/code].
</description>
</method>
<method name="animation_node_get_master_animation" qualifiers="const">
@@ -66,7 +64,7 @@
<argument index="1" name="animation" type="Animation">
</argument>
<description>
- Binds a new [Animation] from the [member master_player] to the [code]AnimationTreePlayer[/code]'s animation node with name [code]id[/code].
+ Binds a new [Animation] from the [member master_player] to the [AnimationTreePlayer]'s animation node with name [code]id[/code].
</description>
</method>
<method name="animation_node_set_filter_path">
@@ -258,7 +256,7 @@
<argument index="0" name="id" type="String">
</argument>
<description>
- Return the input count for a given node. Different types of nodes have different amount of inputs.
+ Returns the input count for a given node. Different types of nodes have different amount of inputs.
</description>
</method>
<method name="node_get_input_source" qualifiers="const">
@@ -269,7 +267,7 @@
<argument index="1" name="idx" type="int">
</argument>
<description>
- Return the input source for a given node input.
+ Returns the input source for a given node input.
</description>
</method>
<method name="node_get_position" qualifiers="const">
@@ -472,7 +470,7 @@
<return type="void">
</return>
<description>
- Resets this [code]AnimationTreePlayer[/code].
+ Resets this [AnimationTreePlayer].
</description>
</method>
<method name="timescale_node_get_scale" qualifiers="const">
@@ -607,14 +605,14 @@
</methods>
<members>
<member name="active" type="bool" setter="set_active" getter="is_active">
- If [code]true[/code] the [code]AnimationTreePlayer[/code] is able to play animations. Default value: [code]false[/code].
+ If [code]true[/code], the [AnimationTreePlayer] is able to play animations. Default value: [code]false[/code].
</member>
<member name="base_path" type="NodePath" setter="set_base_path" getter="get_base_path">
The node from which to relatively access other nodes. Default value: [code]".."[/code].
It accesses the Bones, so it should point to the same Node the AnimationPlayer would point its Root Node at.
</member>
<member name="master_player" type="NodePath" setter="set_master_player" getter="get_master_player">
- The path to the [AnimationPlayer] from which this [code]AnimationTreePlayer[/code] binds animations to animation nodes.
+ The path to the [AnimationPlayer] from which this [AnimationTreePlayer] binds animations to animation nodes.
Once set, Animation nodes can be added to the AnimationTreePlayer.
</member>
<member name="playback_process_mode" type="int" setter="set_animation_process_mode" getter="get_animation_process_mode" enum="AnimationTreePlayer.AnimationProcessMode">
diff --git a/doc/classes/Area.xml b/doc/classes/Area.xml
index 970d09a2ac..c39c570be9 100644
--- a/doc/classes/Area.xml
+++ b/doc/classes/Area.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="Area" inherits="CollisionObject" category="Core" version="3.1">
+<class name="Area" inherits="CollisionObject" category="Core" version="3.2">
<brief_description>
General purpose area node for detection and 3D physics influence.
</brief_description>
@@ -8,8 +8,6 @@
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
<method name="get_collision_layer_bit" qualifiers="const">
<return type="bool">
@@ -33,7 +31,7 @@
<return type="Array">
</return>
<description>
- Returns a list of intersecting [code]Area[/code]s. For performance reasons (collisions are all processed at the same time) this list is modified once during the physics step, not immediately after objects are moved. Consider using signals instead.
+ Returns a list of intersecting [Area]s. For performance reasons (collisions are all processed at the same time) this list is modified once during the physics step, not immediately after objects are moved. Consider using signals instead.
</description>
</method>
<method name="get_overlapping_bodies" qualifiers="const">
@@ -49,7 +47,7 @@
<argument index="0" name="area" type="Node">
</argument>
<description>
- If [code]true[/code] the given area overlaps the Area. Note that the result of this test is not immediate after moving objects. For performance, list of overlaps is updated once per frame and before the physics step. Consider using signals instead.
+ If [code]true[/code], the given area overlaps the Area. Note that the result of this test is not immediate after moving objects. For performance, list of overlaps is updated once per frame and before the physics step. Consider using signals instead.
</description>
</method>
<method name="overlaps_body" qualifiers="const">
@@ -58,7 +56,7 @@
<argument index="0" name="body" type="Node">
</argument>
<description>
- If [code]true[/code] the given body overlaps the Area. Note that the result of this test is not immediate after moving objects. For performance, list of overlaps is updated once per frame and before the physics step. Consider using signals instead.
+ If [code]true[/code], the given body overlaps the Area. Note that the result of this test is not immediate after moving objects. For performance, list of overlaps is updated once per frame and before the physics step. Consider using signals instead.
</description>
</method>
<method name="set_collision_layer_bit">
@@ -69,7 +67,7 @@
<argument index="1" name="value" type="bool">
</argument>
<description>
- Set/clear individual bits on the layer mask. This simplifies editing this [code]Area[code]'s layers.
+ Set/clear individual bits on the layer mask. This simplifies editing this [Area]'s layers.
</description>
</method>
<method name="set_collision_mask_bit">
@@ -80,7 +78,7 @@
<argument index="1" name="value" type="bool">
</argument>
<description>
- Set/clear individual bits on the collision mask. This simplifies editing which [code]Area[/code] layers this [code]Area[/code] scans.
+ Set/clear individual bits on the collision mask. This simplifies editing which [Area] layers this [Area] scans.
</description>
</method>
</methods>
@@ -92,10 +90,10 @@
The name of the area's audio bus.
</member>
<member name="audio_bus_override" type="bool" setter="set_audio_bus_override" getter="is_overriding_audio_bus">
- If [code]true[/code] the area's audio bus overrides the default audio bus. Default value: [code]false[/code].
+ If [code]true[/code], the area's audio bus overrides the default audio bus. Default value: [code]false[/code].
</member>
<member name="collision_layer" type="int" setter="set_collision_layer" getter="get_collision_layer">
- The area's physics layer(s). Collidable objects can exist in any of 32 different layers. A contact is detected if object A is in any of the layers that object B scans, or object B is in any layers that object A scans. See also [code]collision_mask[/code].
+ The area's physics layer(s). Collidable objects can exist in any of 32 different layers. A contact is detected if object A is in any of the layers that object B scans, or object B is in any layers that object A scans. See also [member collision_mask].
</member>
<member name="collision_mask" type="int" setter="set_collision_mask" getter="get_collision_mask">
The physics layers this area scans to determine collision detection.
@@ -107,19 +105,19 @@
The falloff factor for point gravity. The greater the value, the faster gravity decreases with distance.
</member>
<member name="gravity_point" type="bool" setter="set_gravity_is_point" getter="is_gravity_a_point">
- If [code]true[/code] gravity is calculated from a point (set via [code]gravity_vec[/code]). Also see [code]space_override[/code]. Default value: [code]false[/code].
+ If [code]true[/code], gravity is calculated from a point (set via [member gravity_vec]). Also see [member space_override]. Default value: [code]false[/code].
</member>
<member name="gravity_vec" type="Vector3" setter="set_gravity_vector" getter="get_gravity_vector">
- The area's gravity vector (not normalized). If gravity is a point (see [method is_gravity_a_point]), this will be the point of attraction.
+ The area's gravity vector (not normalized). If gravity is a point (see [member gravity_point]), this will be the point of attraction.
</member>
<member name="linear_damp" type="float" setter="set_linear_damp" getter="get_linear_damp">
The rate at which objects stop moving in this area. Represents the linear velocity lost per second. Values range from [code]0[/code] (no damping) to [code]1[/code] (full damping).
</member>
<member name="monitorable" type="bool" setter="set_monitorable" getter="is_monitorable">
- If [code]true[/code] other monitoring areas can detect this area. Default value: [code]true[/code].
+ If [code]true[/code], other monitoring areas can detect this area. Default value: [code]true[/code].
</member>
<member name="monitoring" type="bool" setter="set_monitoring" getter="is_monitoring">
- If [code]true[/code] the area detects bodies or areas entering and exiting it. Default value: [code]true[/code].
+ If [code]true[/code], the area detects bodies or areas entering and exiting it. Default value: [code]true[/code].
</member>
<member name="priority" type="float" setter="set_priority" getter="get_priority">
The area's priority. Higher priority areas are processed first. Default value: 0.
@@ -128,7 +126,7 @@
The degree to which this area applies reverb to its associated audio. Ranges from [code]0[/code] to [code]1[/code] with [code]0.1[/code] precision.
</member>
<member name="reverb_bus_enable" type="bool" setter="set_use_reverb_bus" getter="is_using_reverb_bus">
- If [code]true[/code] the area applies reverb to its associated audio.
+ If [code]true[/code], the area applies reverb to its associated audio.
</member>
<member name="reverb_bus_name" type="String" setter="set_reverb_bus" getter="get_reverb_bus">
The reverb bus name to use for this area's associated audio.
@@ -137,7 +135,7 @@
The degree to which this area's reverb is a uniform effect. Ranges from [code]0[/code] to [code]1[/code] with [code]0.1[/code] precision.
</member>
<member name="space_override" type="int" setter="set_space_override_mode" getter="get_space_override_mode" enum="Area.SpaceOverride">
- Override mode for gravity and damping calculations within this area. See the SPACE_OVERRIDE_* constants for values.
+ Override mode for gravity and damping calculations within this area. See [enum Area.SpaceOverride] for possible values.
</member>
</members>
<signals>
@@ -227,16 +225,16 @@
This area does not affect gravity/damping.
</constant>
<constant name="SPACE_OVERRIDE_COMBINE" value="1" enum="SpaceOverride">
- This area adds its gravity/damping values to whatever has been calculated so far (in [code]priority[/code] order).
+ This area adds its gravity/damping values to whatever has been calculated so far (in [member priority] order).
</constant>
<constant name="SPACE_OVERRIDE_COMBINE_REPLACE" value="2" enum="SpaceOverride">
- This area adds its gravity/damping values to whatever has been calculated so far (in [code]priority[/code] order), ignoring any lower priority areas.
+ This area adds its gravity/damping values to whatever has been calculated so far (in [member priority] order), ignoring any lower priority areas.
</constant>
<constant name="SPACE_OVERRIDE_REPLACE" value="3" enum="SpaceOverride">
This area replaces any gravity/damping, even the defaults, ignoring any lower priority areas.
</constant>
<constant name="SPACE_OVERRIDE_REPLACE_COMBINE" value="4" enum="SpaceOverride">
- This area replaces any gravity/damping calculated so far (in [code]priority[/code] order), but keeps calculating the rest of the areas.
+ This area replaces any gravity/damping calculated so far (in [member priority] order), but keeps calculating the rest of the areas.
</constant>
</constants>
</class>
diff --git a/doc/classes/Area2D.xml b/doc/classes/Area2D.xml
index b77a931201..8d28ddc889 100644
--- a/doc/classes/Area2D.xml
+++ b/doc/classes/Area2D.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="Area2D" inherits="CollisionObject2D" category="Core" version="3.1">
+<class name="Area2D" inherits="CollisionObject2D" category="Core" version="3.2">
<brief_description>
2D area for detection and 2D physics influence.
</brief_description>
@@ -8,8 +8,6 @@
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
<method name="get_collision_layer_bit" qualifiers="const">
<return type="bool">
@@ -17,7 +15,7 @@
<argument index="0" name="bit" type="int">
</argument>
<description>
- Return an individual bit on the layer mask. Describes whether other areas will collide with this one on the given layer.
+ Returns an individual bit on the layer mask. Describes whether other areas will collide with this one on the given layer.
</description>
</method>
<method name="get_collision_mask_bit" qualifiers="const">
@@ -26,14 +24,14 @@
<argument index="0" name="bit" type="int">
</argument>
<description>
- Return an individual bit on the collision mask. Describes whether this area will collide with others on the given layer.
+ Returns an individual bit on the collision mask. Describes whether this area will collide with others on the given layer.
</description>
</method>
<method name="get_overlapping_areas" qualifiers="const">
<return type="Array">
</return>
<description>
- Returns a list of intersecting [code]Area2D[/code]s. For performance reasons (collisions are all processed at the same time) this list is modified once during the physics step, not immediately after objects are moved. Consider using signals instead.
+ Returns a list of intersecting [Area2D]s. For performance reasons (collisions are all processed at the same time) this list is modified once during the physics step, not immediately after objects are moved. Consider using signals instead.
</description>
</method>
<method name="get_overlapping_bodies" qualifiers="const">
@@ -49,7 +47,7 @@
<argument index="0" name="area" type="Node">
</argument>
<description>
- If [code]true[/code] the given area overlaps the Area2D. Note that the result of this test is not immediate after moving objects. For performance, list of overlaps is updated once per frame and before the physics step. Consider using signals instead.
+ If [code]true[/code], the given area overlaps the Area2D. Note that the result of this test is not immediate after moving objects. For performance, list of overlaps is updated once per frame and before the physics step. Consider using signals instead.
</description>
</method>
<method name="overlaps_body" qualifiers="const">
@@ -58,7 +56,7 @@
<argument index="0" name="body" type="Node">
</argument>
<description>
- If [code]true[/code] the given body overlaps the Area2D. Note that the result of this test is not immediate after moving objects. For performance, list of overlaps is updated once per frame and before the physics step. Consider using signals instead.
+ If [code]true[/code], the given body overlaps the Area2D. Note that the result of this test is not immediate after moving objects. For performance, list of overlaps is updated once per frame and before the physics step. Consider using signals instead.
</description>
</method>
<method name="set_collision_layer_bit">
@@ -92,10 +90,10 @@
The name of the area's audio bus.
</member>
<member name="audio_bus_override" type="bool" setter="set_audio_bus_override" getter="is_overriding_audio_bus">
- If [code]true[/code] the area's audio bus overrides the default audio bus. Default value: [code]false[/code].
+ If [code]true[/code], the area's audio bus overrides the default audio bus. Default value: [code]false[/code].
</member>
<member name="collision_layer" type="int" setter="set_collision_layer" getter="get_collision_layer">
- The area's physics layer(s). Collidable objects can exist in any of 32 different layers. A contact is detected if object A is in any of the layers that object B scans, or object B is in any layers that object A scans. See also [code]collision_mask[/code].
+ The area's physics layer(s). Collidable objects can exist in any of 32 different layers. A contact is detected if object A is in any of the layers that object B scans, or object B is in any layers that object A scans. See also [member collision_mask].
</member>
<member name="collision_mask" type="int" setter="set_collision_mask" getter="get_collision_mask">
The physics layers this area scans to determine collision detection.
@@ -107,25 +105,25 @@
The falloff factor for point gravity. The greater the value, the faster gravity decreases with distance.
</member>
<member name="gravity_point" type="bool" setter="set_gravity_is_point" getter="is_gravity_a_point">
- If [code]true[/code] gravity is calculated from a point (set via [code]gravity_vec[/code]). Also see [code]space_override[/code]. Default value: [code]false[/code].
+ If [code]true[/code], gravity is calculated from a point (set via [member gravity_vec]). Also see [member space_override]. Default value: [code]false[/code].
</member>
<member name="gravity_vec" type="Vector2" setter="set_gravity_vector" getter="get_gravity_vector">
- The area's gravity vector (not normalized). If gravity is a point (see [method is_gravity_a_point]), this will be the point of attraction.
+ The area's gravity vector (not normalized). If gravity is a point (see [member gravity_point]), this will be the point of attraction.
</member>
<member name="linear_damp" type="float" setter="set_linear_damp" getter="get_linear_damp">
The rate at which objects stop moving in this area. Represents the linear velocity lost per second. Values range from [code]0[/code] (no damping) to [code]1[/code] (full damping).
</member>
<member name="monitorable" type="bool" setter="set_monitorable" getter="is_monitorable">
- If [code]true[/code] other monitoring areas can detect this area. Default value: [code]true[/code].
+ If [code]true[/code], other monitoring areas can detect this area. Default value: [code]true[/code].
</member>
<member name="monitoring" type="bool" setter="set_monitoring" getter="is_monitoring">
- If [code]true[/code] the area detects bodies or areas entering and exiting it. Default value: [code]true[/code].
+ If [code]true[/code], the area detects bodies or areas entering and exiting it. Default value: [code]true[/code].
</member>
<member name="priority" type="float" setter="set_priority" getter="get_priority">
The area's priority. Higher priority areas are processed first. Default value: 0.
</member>
<member name="space_override" type="int" setter="set_space_override_mode" getter="get_space_override_mode" enum="Area2D.SpaceOverride">
- Override mode for gravity and damping calculations within this area. See the SPACE_OVERRIDE_* constants for values.
+ Override mode for gravity and damping calculations within this area. See [enum Area2D.SpaceOverride] for possible values.
</member>
</members>
<signals>
@@ -215,16 +213,16 @@
This area does not affect gravity/damping.
</constant>
<constant name="SPACE_OVERRIDE_COMBINE" value="1" enum="SpaceOverride">
- This area adds its gravity/damping values to whatever has been calculated so far (in [code]priority[/code] order).
+ This area adds its gravity/damping values to whatever has been calculated so far (in [member priority] order).
</constant>
<constant name="SPACE_OVERRIDE_COMBINE_REPLACE" value="2" enum="SpaceOverride">
- This area adds its gravity/damping values to whatever has been calculated so far (in [code]priority[/code] order), ignoring any lower priority areas.
+ This area adds its gravity/damping values to whatever has been calculated so far (in [member priority] order), ignoring any lower priority areas.
</constant>
<constant name="SPACE_OVERRIDE_REPLACE" value="3" enum="SpaceOverride">
This area replaces any gravity/damping, even the defaults, ignoring any lower priority areas.
</constant>
<constant name="SPACE_OVERRIDE_REPLACE_COMBINE" value="4" enum="SpaceOverride">
- This area replaces any gravity/damping calculated so far (in [code]priority[/code] order), but keeps calculating the rest of the areas.
+ This area replaces any gravity/damping calculated so far (in [member priority] order), but keeps calculating the rest of the areas.
</constant>
</constants>
</class>
diff --git a/doc/classes/Array.xml b/doc/classes/Array.xml
index b013b3c4ae..75194fbf76 100644
--- a/doc/classes/Array.xml
+++ b/doc/classes/Array.xml
@@ -1,10 +1,10 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="Array" category="Built-In Types" version="3.1">
+<class name="Array" category="Built-In Types" version="3.2">
<brief_description>
Generic array datatype.
</brief_description>
<description>
- Generic array, contains several elements of any type, accessible by a numerical index starting at 0. Negative indices can be used to count from the back, like in Python (-1 is the last element, -2 the second to last, etc.). Example:
+ Generic array which can contain several elements of any type, accessible by a numerical index starting at 0. Negative indices can be used to count from the back, like in Python (-1 is the last element, -2 the second to last, etc.). Example:
[codeblock]
var array = ["One", 2, 3, "Four"]
print(array[0]) # One
@@ -17,8 +17,6 @@
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
<method name="Array">
<return type="Array">
@@ -26,7 +24,7 @@
<argument index="0" name="from" type="PoolColorArray">
</argument>
<description>
- Construct an array from a [PoolColorArray].
+ Constructs an array from a [PoolColorArray].
</description>
</method>
<method name="Array">
@@ -35,7 +33,7 @@
<argument index="0" name="from" type="PoolVector3Array">
</argument>
<description>
- Construct an array from a [PoolVector3Array].
+ Constructs an array from a [PoolVector3Array].
</description>
</method>
<method name="Array">
@@ -44,7 +42,7 @@
<argument index="0" name="from" type="PoolVector2Array">
</argument>
<description>
- Construct an array from a [PoolVector2Array].
+ Constructs an array from a [PoolVector2Array].
</description>
</method>
<method name="Array">
@@ -53,7 +51,7 @@
<argument index="0" name="from" type="PoolStringArray">
</argument>
<description>
- Construct an array from a [PoolStringArray].
+ Constructs an array from a [PoolStringArray].
</description>
</method>
<method name="Array">
@@ -62,7 +60,7 @@
<argument index="0" name="from" type="PoolRealArray">
</argument>
<description>
- Construct an array from a [PoolRealArray].
+ Constructs an array from a [PoolRealArray].
</description>
</method>
<method name="Array">
@@ -71,7 +69,7 @@
<argument index="0" name="from" type="PoolIntArray">
</argument>
<description>
- Construct an array from a [PoolIntArray].
+ Constructs an array from a [PoolIntArray].
</description>
</method>
<method name="Array">
@@ -80,21 +78,21 @@
<argument index="0" name="from" type="PoolByteArray">
</argument>
<description>
- Construct an array from a [PoolByteArray].
+ Constructs an array from a [PoolByteArray].
</description>
</method>
<method name="append">
<argument index="0" name="value" type="Variant">
</argument>
<description>
- Append an element at the end of the array (alias of [method push_back]).
+ Appends an element at the end of the array (alias of [method push_back]).
</description>
</method>
<method name="back">
<return type="Variant">
</return>
<description>
- Returns the last element of the array if the array is not empty (size&gt;0).
+ Returns the last element of the array if the array is not empty.
</description>
</method>
<method name="bsearch">
@@ -105,7 +103,7 @@
<argument index="1" name="before" type="bool" default="True">
</argument>
<description>
- Finds the index of an existing value (or the insertion index that maintains sorting order, if the value is not yet present in the array) using binary search. Optionally, a before specifier can be passed. If false, the returned index comes after all existing entries of the value in the array. Note that calling bsearch on an unsorted array results in unexpected behavior.
+ Finds the index of an existing value (or the insertion index that maintains sorting order, if the value is not yet present in the array) using binary search. Optionally, a before specifier can be passed. If [code]false[/code], the returned index comes after all existing entries of the value in the array. Note that calling bsearch on an unsorted array results in unexpected behavior.
</description>
</method>
<method name="bsearch_custom">
@@ -120,12 +118,12 @@
<argument index="3" name="before" type="bool" default="True">
</argument>
<description>
- Finds the index of an existing value (or the insertion index that maintains sorting order, if the value is not yet present in the array) using binary search and a custom comparison method. Optionally, a before specifier can be passed. If false, the returned index comes after all existing entries of the value in the array. The custom method receives two arguments (an element from the array and the value searched for) and must return true if the first argument is less than the second, and return false otherwise. Note that calling bsearch on an unsorted array results in unexpected behavior.
+ Finds the index of an existing value (or the insertion index that maintains sorting order, if the value is not yet present in the array) using binary search and a custom comparison method. Optionally, a before specifier can be passed. If [code]false[/code], the returned index comes after all existing entries of the value in the array. The custom method receives two arguments (an element from the array and the value searched for) and must return [code]true[/code] if the first argument is less than the second, and return [code]false[/code] otherwise. Note that calling bsearch on an unsorted array results in unexpected behavior.
</description>
</method>
<method name="clear">
<description>
- Clear the array (resize to 0).
+ Clears the array (resizes to 0).
</description>
</method>
<method name="count">
@@ -134,7 +132,7 @@
<argument index="0" name="value" type="Variant">
</argument>
<description>
- Return the amount of times an element is in the array.
+ Returns the number of times an element is in the array.
</description>
</method>
<method name="duplicate">
@@ -144,21 +142,21 @@
</argument>
<description>
Returns a copy of the array.
- If [code]deep[/code] is [code]true[/code], a deep copy is be performed: all nested arrays and dictionaries are duplicated and will not be shared with the original array. If [code]false[/code], a shallow copy is made and references to the original nested arrays and dictionaries are kept, so that modifying a sub-array or dictionary in the copy will also impact those referenced in the source array.
+ If [code]deep[/code] is [code]true[/code], a deep copy is performed: all nested arrays and dictionaries are duplicated and will not be shared with the original array. If [code]false[/code], a shallow copy is made and references to the original nested arrays and dictionaries are kept, so that modifying a sub-array or dictionary in the copy will also impact those referenced in the source array.
</description>
</method>
<method name="empty">
<return type="bool">
</return>
<description>
- Return true if the array is empty (size==0).
+ Returns [code]true[/code] if the array is empty.
</description>
</method>
<method name="erase">
<argument index="0" name="value" type="Variant">
</argument>
<description>
- Remove the first occurrence of a value from the array.
+ Removes the first occurrence of a value from the array.
</description>
</method>
<method name="find">
@@ -185,7 +183,7 @@
<return type="Variant">
</return>
<description>
- Returns the first element of the array if the array is not empty (size&gt;0).
+ Returns the first element of the array if the array is not empty.
</description>
</method>
<method name="has">
@@ -194,12 +192,12 @@
<argument index="0" name="value" type="Variant">
</argument>
<description>
- Return true if the array contains given value.
+ Returns [code]true[/code] if the array contains the given value.
[codeblock]
- [ "inside", 7 ].has("inside") == true
- [ "inside", 7 ].has("outside") == false
- [ "inside", 7 ].has(7) == true
- [ "inside", 7 ].has("7") == false
+ ["inside", 7].has("inside") == true
+ ["inside", 7].has("outside") == false
+ ["inside", 7].has(7) == true
+ ["inside", 7].has("7") == false
[/codeblock]
</description>
</method>
@@ -207,7 +205,7 @@
<return type="int">
</return>
<description>
- Return a hashed integer value representing the array contents.
+ Returns a hashed integer value representing the array contents.
</description>
</method>
<method name="insert">
@@ -216,68 +214,68 @@
<argument index="1" name="value" type="Variant">
</argument>
<description>
- Insert a new element at a given position in the array. The position must be valid, or at the end of the array ([code]pos == size()[/code]).
+ Inserts a new element at a given position in the array. The position must be valid, or at the end of the array ([code]pos == size()[/code]).
</description>
</method>
<method name="invert">
<description>
- Reverse the order of the elements in the array.
+ Reverses the order of the elements in the array.
</description>
</method>
<method name="max">
<return type="Variant">
</return>
<description>
- Return maximum value contained in the array if all elements are of comparable types. If the elements can't be compared, [code]null[/code] is returned.
+ Returns the maximum value contained in the array if all elements are of comparable types. If the elements can't be compared, [code]null[/code] is returned.
</description>
</method>
<method name="min">
<return type="Variant">
</return>
<description>
- Return minimum value contained in the array if all elements are of comparable types. If the elements can't be compared, [code]null[/code] is returned.
+ Returns the minimum value contained in the array if all elements are of comparable types. If the elements can't be compared, [code]null[/code] is returned.
</description>
</method>
<method name="pop_back">
<return type="Variant">
</return>
<description>
- Remove the last element of the array.
+ Removes the last element of the array.
</description>
</method>
<method name="pop_front">
<return type="Variant">
</return>
<description>
- Remove the first element of the array.
+ Removes the first element of the array.
</description>
</method>
<method name="push_back">
<argument index="0" name="value" type="Variant">
</argument>
<description>
- Append an element at the end of the array.
+ Appends an element at the end of the array.
</description>
</method>
<method name="push_front">
<argument index="0" name="value" type="Variant">
</argument>
<description>
- Add an element at the beginning of the array.
+ Adds an element at the beginning of the array.
</description>
</method>
<method name="remove">
<argument index="0" name="position" type="int">
</argument>
<description>
- Remove an element from the array by index.
+ Removes an element from the array by index.
</description>
</method>
<method name="resize">
<argument index="0" name="size" type="int">
</argument>
<description>
- Resize the array to contain a different number of elements. If the array size is smaller, elements are cleared, if bigger, new elements are Null.
+ Resizes the array to contain a different number of elements. If the array size is smaller, elements are cleared, if bigger, new elements are Null.
</description>
</method>
<method name="rfind">
@@ -293,19 +291,19 @@
</method>
<method name="shuffle">
<description>
- Shuffle the array such that the items will have a random order.
+ Shuffles the array such that the items will have a random order. This method uses the global random number generator common to methods such as [method @GDScript.randi]. Call [method @GDScript.randomize] to ensure that a new seed will be used each time if you want non-reproducible shuffling.
</description>
</method>
<method name="size">
<return type="int">
</return>
<description>
- Return the amount of elements in the array.
+ Returns the number of elements in the array.
</description>
</method>
<method name="sort">
<description>
- Sort the array using natural order.
+ Sorts the array. Note: strings are sorted in alphabetical, not natural order.
</description>
</method>
<method name="sort_custom">
@@ -314,7 +312,7 @@
<argument index="1" name="func" type="String">
</argument>
<description>
- Sort the array using a custom method. The arguments are an object that holds the method and the name of such method. The custom method receives two arguments (a pair of elements from the array) and must return true if the first argument is less than the second, and return false otherwise.
+ Sorts the array using a custom method. The arguments are an object that holds the method and the name of such method. The custom method receives two arguments (a pair of elements from the array) and must return [code]true[/code] if the first argument is less than the second, and return [code]false[/code] otherwise.
[b]Note:[/b] you cannot randomize the return value as the heapsort algorithm expects a deterministic result. Doing so will result in unexpected behavior.
[codeblock]
class MyCustomSorter:
diff --git a/doc/classes/ArrayMesh.xml b/doc/classes/ArrayMesh.xml
index 7806cf4ce4..d44e3c54c9 100644
--- a/doc/classes/ArrayMesh.xml
+++ b/doc/classes/ArrayMesh.xml
@@ -1,14 +1,15 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="ArrayMesh" inherits="Mesh" category="Core" version="3.1">
+<class name="ArrayMesh" inherits="Mesh" category="Core" version="3.2">
<brief_description>
+ [Mesh] type that provides utility for constructing a surface from arrays.
</brief_description>
<description>
- The [code]ArrayMesh[/code] is used to construct a [Mesh] by specifying the attributes as arrays. The most basic example is the creation of a single triangle
+ The [ArrayMesh] is used to construct a [Mesh] by specifying the attributes as arrays. The most basic example is the creation of a single triangle
[codeblock]
var vertices = PoolVector3Array()
- vertices.push_back(Vector3(0,1,0))
- vertices.push_back(Vector3(1,0,0))
- vertices.push_back(Vector3(0,0,1))
+ vertices.push_back(Vector3(0, 1, 0))
+ vertices.push_back(Vector3(1, 0, 0))
+ vertices.push_back(Vector3(0, 0, 1))
# Initialize the ArrayMesh.
var arr_mesh = ArrayMesh.new()
var arrays = []
@@ -23,8 +24,6 @@
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
<method name="add_blend_shape">
<return type="void">
@@ -32,6 +31,7 @@
<argument index="0" name="name" type="String">
</argument>
<description>
+ Add name for a blend shape that will be added with [method add_surface_from_arrays]. Must be called before surface is added.
</description>
</method>
<method name="add_surface_from_arrays">
@@ -53,25 +53,18 @@
Godot uses clockwise winding order for front faces of triangle primitive modes.
</description>
</method>
- <method name="center_geometry">
- <return type="void">
- </return>
- <description>
- Centers the geometry.
- </description>
- </method>
<method name="clear_blend_shapes">
<return type="void">
</return>
<description>
- Remove all blend shapes from this [code]ArrayMesh[/code].
+ Remove all blend shapes from this [ArrayMesh].
</description>
</method>
<method name="get_blend_shape_count" qualifiers="const">
<return type="int">
</return>
<description>
- Returns the number of blend shapes that the [code]ArrayMesh[/code] holds.
+ Returns the number of blend shapes that the [ArrayMesh] holds.
</description>
</method>
<method name="get_blend_shape_name" qualifiers="const">
@@ -91,14 +84,14 @@
<argument index="1" name="texel_size" type="float">
</argument>
<description>
- Will perform a UV unwrap on the [code]ArrayMesh[/code] to prepare the mesh for lightmapping.
+ Will perform a UV unwrap on the [ArrayMesh] to prepare the mesh for lightmapping.
</description>
</method>
<method name="regen_normalmaps">
<return type="void">
</return>
<description>
- Will regenerate normal maps for the [code]ArrayMesh[/code].
+ Will regenerate normal maps for the [ArrayMesh].
</description>
</method>
<method name="surface_find_by_name" qualifiers="const">
@@ -107,7 +100,7 @@
<argument index="0" name="name" type="String">
</argument>
<description>
- Return the index of the first surface with this name held within this [code]ArrayMesh[/code]. If none are found -1 is returned.
+ Returns the index of the first surface with this name held within this [ArrayMesh]. If none are found -1 is returned.
</description>
</method>
<method name="surface_get_array_index_len" qualifiers="const">
@@ -116,7 +109,7 @@
<argument index="0" name="surf_idx" type="int">
</argument>
<description>
- Return the length in indices of the index array in the requested surface (see [method add_surface_from_arrays]).
+ Returns the length in indices of the index array in the requested surface (see [method add_surface_from_arrays]).
</description>
</method>
<method name="surface_get_array_len" qualifiers="const">
@@ -125,7 +118,7 @@
<argument index="0" name="surf_idx" type="int">
</argument>
<description>
- Return the length in vertices of the vertex array in the requested surface (see [method add_surface_from_arrays]).
+ Returns the length in vertices of the vertex array in the requested surface (see [method add_surface_from_arrays]).
</description>
</method>
<method name="surface_get_format" qualifiers="const">
@@ -134,7 +127,7 @@
<argument index="0" name="surf_idx" type="int">
</argument>
<description>
- Return the format mask of the requested surface (see [method add_surface_from_arrays]).
+ Returns the format mask of the requested surface (see [method add_surface_from_arrays]).
</description>
</method>
<method name="surface_get_name" qualifiers="const">
@@ -152,7 +145,7 @@
<argument index="0" name="surf_idx" type="int">
</argument>
<description>
- Return the primitive type of the requested surface (see [method add_surface_from_arrays]).
+ Returns the primitive type of the requested surface (see [method add_surface_from_arrays]).
</description>
</method>
<method name="surface_remove">
@@ -164,17 +157,6 @@
Remove a surface at position surf_idx, shifting greater surfaces one surf_idx slot down.
</description>
</method>
- <method name="surface_set_material">
- <return type="void">
- </return>
- <argument index="0" name="surf_idx" type="int">
- </argument>
- <argument index="1" name="material" type="Material">
- </argument>
- <description>
- Set a [Material] for a given surface. Surface will be rendered using this material.
- </description>
- </method>
<method name="surface_set_name">
<return type="void">
</return>
@@ -196,6 +178,7 @@
<argument index="2" name="data" type="PoolByteArray">
</argument>
<description>
+ Updates a specified region of mesh arrays on GPU. Warning: only use if you know what you are doing. You can easily cause crashes by calling this function with improper arguments.
</description>
</method>
</methods>
@@ -203,7 +186,7 @@
<member name="blend_shape_mode" type="int" setter="set_blend_shape_mode" getter="get_blend_shape_mode" enum="Mesh.BlendShapeMode">
</member>
<member name="custom_aabb" type="AABB" setter="set_custom_aabb" getter="get_custom_aabb">
- An overriding bounding box for this mesh.
+ Overrides the [AABB] with one defined by user for use with frustum culling. Especially useful to avoid unnexpected culling when using a shader to offset vertices.
</member>
</members>
<constants>
@@ -214,31 +197,31 @@
Amount of weights/bone indices per vertex (always 4).
</constant>
<constant name="ARRAY_VERTEX" value="0" enum="ArrayType">
- Vertex array (array of [Vector3] vertices).
+ [PoolVector3Array], [PoolVector2Array], or [Array] of vertex positions.
</constant>
<constant name="ARRAY_NORMAL" value="1" enum="ArrayType">
- Normal array (array of [Vector3] normals).
+ [PoolVector3Array] of vertex normals.
</constant>
<constant name="ARRAY_TANGENT" value="2" enum="ArrayType">
- Tangent array, array of groups of 4 floats. first 3 floats determine the tangent, and the last the binormal direction as -1 or 1.
+ [PoolRealArray] of vertex tangents. Each element in groups of 4 floats, first 3 floats determine the tangent, and the last the binormal direction as -1 or 1.
</constant>
<constant name="ARRAY_COLOR" value="3" enum="ArrayType">
- Vertex array (array of [Color] colors).
+ [PoolColorArray] of vertex colors.
</constant>
<constant name="ARRAY_TEX_UV" value="4" enum="ArrayType">
- UV array (array of [Vector3] UVs or float array of groups of 2 floats (u,v)).
+ [PoolVector2Array] for UV coordinates.
</constant>
<constant name="ARRAY_TEX_UV2" value="5" enum="ArrayType">
- Second UV array (array of [Vector3] UVs or float array of groups of 2 floats (u,v)).
+ [PoolVector2Array] for second UV coordinates.
</constant>
<constant name="ARRAY_BONES" value="6" enum="ArrayType">
- Array of bone indices, as a float array. Each element in groups of 4 floats.
+ [PoolRealArray] or [PoolIntArray] of bone indices. Each element in groups of 4 floats.
</constant>
<constant name="ARRAY_WEIGHTS" value="7" enum="ArrayType">
- Array of bone weights, as a float array. Each element in groups of 4 floats.
+ [PoolRealArray] of bone weights. Each element in groups of 4 floats.
</constant>
<constant name="ARRAY_INDEX" value="8" enum="ArrayType">
- [Array] of integers used as indices referencing vertices, colors, normals, tangents, and textures. All of those arrays must have the same number of elements as the vertex array. No index can be beyond the vertex array size. When this index array is present, it puts the function into "index mode," where the index selects the *i*'th vertex, normal, tangent, color, UV, etc. This means if you want to have different normals or colors along an edge, you have to duplicate the vertices.
+ [PoolIntArray] of integers used as indices referencing vertices, colors, normals, tangents, and textures. All of those arrays must have the same number of elements as the vertex array. No index can be beyond the vertex array size. When this index array is present, it puts the function into "index mode," where the index selects the *i*'th vertex, normal, tangent, color, UV, etc. This means if you want to have different normals or colors along an edge, you have to duplicate the vertices.
For triangles, the index array is interpreted as triples, referring to the vertices of each triangle. For lines, the index array is in pairs indicating the start and end of each line.
</constant>
<constant name="ARRAY_MAX" value="9" enum="ArrayType">
diff --git a/doc/classes/AtlasTexture.xml b/doc/classes/AtlasTexture.xml
index 409c40e809..e573512f5a 100644
--- a/doc/classes/AtlasTexture.xml
+++ b/doc/classes/AtlasTexture.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="AtlasTexture" inherits="Texture" category="Core" version="3.1">
+<class name="AtlasTexture" inherits="Texture" category="Core" version="3.2">
<brief_description>
Packs multiple small textures in a single, bigger one. Helps to optimize video memory costs and render calls.
</brief_description>
@@ -9,8 +9,6 @@
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
</methods>
<members>
@@ -18,7 +16,7 @@
The texture that contains the atlas. Can be any [Texture] subtype.
</member>
<member name="filter_clip" type="bool" setter="set_filter_clip" getter="has_filter_clip">
- If [code]true[/code] clips the area outside of the region to avoid bleeding of the surrounding texture pixels.
+ If [code]true[/code], clips the area outside of the region to avoid bleeding of the surrounding texture pixels.
</member>
<member name="margin" type="Rect2" setter="set_margin" getter="get_margin">
The margin around the region. The [Rect2]'s 'size' parameter ('w' and 'h' in the editor) resizes the texture so it fits within the margin.
diff --git a/doc/classes/AudioBusLayout.xml b/doc/classes/AudioBusLayout.xml
index c43da3e233..771e0390d3 100644
--- a/doc/classes/AudioBusLayout.xml
+++ b/doc/classes/AudioBusLayout.xml
@@ -1,15 +1,13 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="AudioBusLayout" inherits="Resource" category="Core" version="3.1">
+<class name="AudioBusLayout" inherits="Resource" category="Core" version="3.2">
<brief_description>
Stores information about the audiobusses.
</brief_description>
<description>
- Stores position, muting, solo, bypass, effects, effect position, volume, and the connections between busses. See [AudioServer] for usage.
+ Stores position, muting, solo, bypass, effects, effect position, volume, and the connections between buses. See [AudioServer] for usage.
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
</methods>
<constants>
diff --git a/doc/classes/AudioEffect.xml b/doc/classes/AudioEffect.xml
index acbc96e70e..7c21d04b03 100644
--- a/doc/classes/AudioEffect.xml
+++ b/doc/classes/AudioEffect.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="AudioEffect" inherits="Resource" category="Core" version="3.1">
+<class name="AudioEffect" inherits="Resource" category="Core" version="3.2">
<brief_description>
Audio Effect For Audio.
</brief_description>
@@ -8,8 +8,6 @@
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
</methods>
<constants>
diff --git a/doc/classes/AudioEffectAmplify.xml b/doc/classes/AudioEffectAmplify.xml
index 3582ddc4f7..9fd3e73b12 100644
--- a/doc/classes/AudioEffectAmplify.xml
+++ b/doc/classes/AudioEffectAmplify.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="AudioEffectAmplify" inherits="AudioEffect" category="Core" version="3.1">
+<class name="AudioEffectAmplify" inherits="AudioEffect" category="Core" version="3.2">
<brief_description>
Adds a Amplify audio effect to an Audio bus.
Increases or decreases the volume of the selected audio bus.
@@ -9,8 +9,6 @@
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
</methods>
<members>
diff --git a/doc/classes/AudioEffectBandLimitFilter.xml b/doc/classes/AudioEffectBandLimitFilter.xml
index c9ddbd5b9a..1b511dfab0 100644
--- a/doc/classes/AudioEffectBandLimitFilter.xml
+++ b/doc/classes/AudioEffectBandLimitFilter.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="AudioEffectBandLimitFilter" inherits="AudioEffectFilter" category="Core" version="3.1">
+<class name="AudioEffectBandLimitFilter" inherits="AudioEffectFilter" category="Core" version="3.2">
<brief_description>
Adds a band limit filter to the Audio Bus.
</brief_description>
@@ -8,8 +8,6 @@
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
</methods>
<constants>
diff --git a/doc/classes/AudioEffectBandPassFilter.xml b/doc/classes/AudioEffectBandPassFilter.xml
index 7f4c9f4632..8df922da3a 100644
--- a/doc/classes/AudioEffectBandPassFilter.xml
+++ b/doc/classes/AudioEffectBandPassFilter.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="AudioEffectBandPassFilter" inherits="AudioEffectFilter" category="Core" version="3.1">
+<class name="AudioEffectBandPassFilter" inherits="AudioEffectFilter" category="Core" version="3.2">
<brief_description>
Adds a band pass filter to the Audio Bus.
</brief_description>
@@ -8,8 +8,6 @@
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
</methods>
<constants>
diff --git a/doc/classes/AudioEffectChorus.xml b/doc/classes/AudioEffectChorus.xml
index 43e14b3964..f85755df08 100644
--- a/doc/classes/AudioEffectChorus.xml
+++ b/doc/classes/AudioEffectChorus.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="AudioEffectChorus" inherits="AudioEffect" category="Core" version="3.1">
+<class name="AudioEffectChorus" inherits="AudioEffect" category="Core" version="3.2">
<brief_description>
Adds a chorus audio effect.
</brief_description>
@@ -8,8 +8,6 @@
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
</methods>
<members>
diff --git a/doc/classes/AudioEffectCompressor.xml b/doc/classes/AudioEffectCompressor.xml
index fa81bcf030..78b8047987 100644
--- a/doc/classes/AudioEffectCompressor.xml
+++ b/doc/classes/AudioEffectCompressor.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="AudioEffectCompressor" inherits="AudioEffect" category="Core" version="3.1">
+<class name="AudioEffectCompressor" inherits="AudioEffect" category="Core" version="3.2">
<brief_description>
Adds a Compressor audio effect to an Audio bus.
Reduces sounds that exceed a certain threshold level, smooths out the dynamics and increases the overall volume.
@@ -14,8 +14,6 @@
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
</methods>
<members>
diff --git a/doc/classes/AudioEffectDelay.xml b/doc/classes/AudioEffectDelay.xml
index 7c9d11111c..0e19a4a89f 100644
--- a/doc/classes/AudioEffectDelay.xml
+++ b/doc/classes/AudioEffectDelay.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="AudioEffectDelay" inherits="AudioEffect" category="Core" version="3.1">
+<class name="AudioEffectDelay" inherits="AudioEffect" category="Core" version="3.2">
<brief_description>
Adds a Delay audio effect to an Audio bus. Plays input signal back after a period of time.
Two tap delay and feedback options.
@@ -9,8 +9,6 @@
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
</methods>
<members>
@@ -18,7 +16,7 @@
Output percent of original sound. At 0, only delayed sounds are output. Value can range from 0 to 1. Default value: [code]1[/code].
</member>
<member name="feedback/active" type="bool" setter="set_feedback_active" getter="is_feedback_active">
- If [code]true[/code] feedback is enabled. Default value: [code]false[/code].
+ If [code]true[/code], feedback is enabled. Default value: [code]false[/code].
</member>
<member name="feedback/delay_ms" type="float" setter="set_feedback_delay_ms" getter="get_feedback_delay_ms">
Feedback delay time in milliseconds. Default value: [code]340[/code].
diff --git a/doc/classes/AudioEffectDistortion.xml b/doc/classes/AudioEffectDistortion.xml
index 74d12df554..4393f942f0 100644
--- a/doc/classes/AudioEffectDistortion.xml
+++ b/doc/classes/AudioEffectDistortion.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="AudioEffectDistortion" inherits="AudioEffect" category="Core" version="3.1">
+<class name="AudioEffectDistortion" inherits="AudioEffect" category="Core" version="3.2">
<brief_description>
Adds a Distortion audio effect to an Audio bus.
Modify the sound to make it dirty.
@@ -10,8 +10,6 @@
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
</methods>
<members>
diff --git a/doc/classes/AudioEffectEQ.xml b/doc/classes/AudioEffectEQ.xml
index 35a6f7557d..fef3868d02 100644
--- a/doc/classes/AudioEffectEQ.xml
+++ b/doc/classes/AudioEffectEQ.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="AudioEffectEQ" inherits="AudioEffect" category="Core" version="3.1">
+<class name="AudioEffectEQ" inherits="AudioEffect" category="Core" version="3.2">
<brief_description>
Base class for audio equalizers. Gives you control over frequencies.
Use it to create a custom equalizer if [AudioEffectEQ6], [AudioEffectEQ10] or [AudioEffectEQ21] don't fit your needs.
@@ -9,8 +9,6 @@
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
<method name="get_band_count" qualifiers="const">
<return type="int">
diff --git a/doc/classes/AudioEffectEQ10.xml b/doc/classes/AudioEffectEQ10.xml
index daca342ace..e9fd0d72cb 100644
--- a/doc/classes/AudioEffectEQ10.xml
+++ b/doc/classes/AudioEffectEQ10.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="AudioEffectEQ10" inherits="AudioEffectEQ" category="Core" version="3.1">
+<class name="AudioEffectEQ10" inherits="AudioEffectEQ" category="Core" version="3.2">
<brief_description>
Adds a 10-band equalizer audio effect to an Audio bus. Gives you control over frequencies from 31 Hz to 16000 Hz.
Each frequency can be modulated between -60/+24 dB.
@@ -20,8 +20,6 @@
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
</methods>
<constants>
diff --git a/doc/classes/AudioEffectEQ21.xml b/doc/classes/AudioEffectEQ21.xml
index 99d35604fc..d1b39d9824 100644
--- a/doc/classes/AudioEffectEQ21.xml
+++ b/doc/classes/AudioEffectEQ21.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="AudioEffectEQ21" inherits="AudioEffectEQ" category="Core" version="3.1">
+<class name="AudioEffectEQ21" inherits="AudioEffectEQ" category="Core" version="3.2">
<brief_description>
Adds a 21-band equalizer audio effect to an Audio bus. Gives you control over frequencies from 22 Hz to 22000 Hz.
Each frequency can be modulated between -60/+24 dB.
@@ -31,8 +31,6 @@
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
</methods>
<constants>
diff --git a/doc/classes/AudioEffectEQ6.xml b/doc/classes/AudioEffectEQ6.xml
index 047c4c960f..d40471dbd6 100644
--- a/doc/classes/AudioEffectEQ6.xml
+++ b/doc/classes/AudioEffectEQ6.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="AudioEffectEQ6" inherits="AudioEffectEQ" category="Core" version="3.1">
+<class name="AudioEffectEQ6" inherits="AudioEffectEQ" category="Core" version="3.2">
<brief_description>
Adds a 6-band equalizer audio effect to an Audio bus. Gives you control over frequencies from 32 Hz to 10000 Hz.
Each frequency can be modulated between -60/+24 dB.
@@ -16,8 +16,6 @@
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
</methods>
<constants>
diff --git a/doc/classes/AudioEffectFilter.xml b/doc/classes/AudioEffectFilter.xml
index 5a86c092a0..5ed4ae28db 100644
--- a/doc/classes/AudioEffectFilter.xml
+++ b/doc/classes/AudioEffectFilter.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="AudioEffectFilter" inherits="AudioEffect" category="Core" version="3.1">
+<class name="AudioEffectFilter" inherits="AudioEffect" category="Core" version="3.2">
<brief_description>
Adds a filter to the Audio Bus.
</brief_description>
@@ -8,8 +8,6 @@
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
</methods>
<members>
diff --git a/doc/classes/AudioEffectHighPassFilter.xml b/doc/classes/AudioEffectHighPassFilter.xml
index 6c97199cb9..3a486acab8 100644
--- a/doc/classes/AudioEffectHighPassFilter.xml
+++ b/doc/classes/AudioEffectHighPassFilter.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="AudioEffectHighPassFilter" inherits="AudioEffectFilter" category="Core" version="3.1">
+<class name="AudioEffectHighPassFilter" inherits="AudioEffectFilter" category="Core" version="3.2">
<brief_description>
Adds a high pass filter to the Audio Bus.
</brief_description>
@@ -8,8 +8,6 @@
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
</methods>
<constants>
diff --git a/doc/classes/AudioEffectHighShelfFilter.xml b/doc/classes/AudioEffectHighShelfFilter.xml
index ca2312ba6a..cccd18afcc 100644
--- a/doc/classes/AudioEffectHighShelfFilter.xml
+++ b/doc/classes/AudioEffectHighShelfFilter.xml
@@ -1,13 +1,11 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="AudioEffectHighShelfFilter" inherits="AudioEffectFilter" category="Core" version="3.1">
+<class name="AudioEffectHighShelfFilter" inherits="AudioEffectFilter" category="Core" version="3.2">
<brief_description>
</brief_description>
<description>
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
</methods>
<constants>
diff --git a/doc/classes/@NativeScript.xml b/doc/classes/AudioEffectInstance.xml
index 2bf1dc7a7c..eb8bcfdf2a 100644
--- a/doc/classes/@NativeScript.xml
+++ b/doc/classes/AudioEffectInstance.xml
@@ -1,13 +1,11 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="@NativeScript" category="Core" version="3.1">
+<class name="AudioEffectInstance" inherits="Reference" category="Core" version="3.2">
<brief_description>
</brief_description>
<description>
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
</methods>
<constants>
diff --git a/doc/classes/AudioEffectLimiter.xml b/doc/classes/AudioEffectLimiter.xml
index 9e791f02d7..c17816bb87 100644
--- a/doc/classes/AudioEffectLimiter.xml
+++ b/doc/classes/AudioEffectLimiter.xml
@@ -1,16 +1,14 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="AudioEffectLimiter" inherits="AudioEffect" category="Core" version="3.1">
+<class name="AudioEffectLimiter" inherits="AudioEffect" category="Core" version="3.2">
<brief_description>
Adds a soft clip Limiter audio effect to an Audio bus.
</brief_description>
<description>
- A limiter is similar to a compressor, but it’s less flexible and designed to disallow sound going over a given dB threshold. Adding one in the Master Bus is always recommended to reduce the effects of clipping.
+ A limiter is similar to a compressor, but it's less flexible and designed to disallow sound going over a given dB threshold. Adding one in the Master Bus is always recommended to reduce the effects of clipping.
Soft clipping starts to reduce the peaks a little below the threshold level and progressively increases its effect as the input level increases such that the threshold is never exceeded.
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
</methods>
<members>
diff --git a/doc/classes/AudioEffectLowPassFilter.xml b/doc/classes/AudioEffectLowPassFilter.xml
index 7048a56e6c..9402045150 100644
--- a/doc/classes/AudioEffectLowPassFilter.xml
+++ b/doc/classes/AudioEffectLowPassFilter.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="AudioEffectLowPassFilter" inherits="AudioEffectFilter" category="Core" version="3.1">
+<class name="AudioEffectLowPassFilter" inherits="AudioEffectFilter" category="Core" version="3.2">
<brief_description>
Adds a low pass filter to the Audio Bus.
</brief_description>
@@ -8,8 +8,6 @@
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
</methods>
<constants>
diff --git a/doc/classes/AudioEffectLowShelfFilter.xml b/doc/classes/AudioEffectLowShelfFilter.xml
index aadbf30eaa..1e60e637fc 100644
--- a/doc/classes/AudioEffectLowShelfFilter.xml
+++ b/doc/classes/AudioEffectLowShelfFilter.xml
@@ -1,13 +1,11 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="AudioEffectLowShelfFilter" inherits="AudioEffectFilter" category="Core" version="3.1">
+<class name="AudioEffectLowShelfFilter" inherits="AudioEffectFilter" category="Core" version="3.2">
<brief_description>
</brief_description>
<description>
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
</methods>
<constants>
diff --git a/doc/classes/AudioEffectNotchFilter.xml b/doc/classes/AudioEffectNotchFilter.xml
index 0378934890..00e950b43a 100644
--- a/doc/classes/AudioEffectNotchFilter.xml
+++ b/doc/classes/AudioEffectNotchFilter.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="AudioEffectNotchFilter" inherits="AudioEffectFilter" category="Core" version="3.1">
+<class name="AudioEffectNotchFilter" inherits="AudioEffectFilter" category="Core" version="3.2">
<brief_description>
Adds a notch filter to the Audio Bus.
</brief_description>
@@ -8,8 +8,6 @@
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
</methods>
<constants>
diff --git a/doc/classes/AudioEffectPanner.xml b/doc/classes/AudioEffectPanner.xml
index cbd14de905..7d01a73b0b 100644
--- a/doc/classes/AudioEffectPanner.xml
+++ b/doc/classes/AudioEffectPanner.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="AudioEffectPanner" inherits="AudioEffect" category="Core" version="3.1">
+<class name="AudioEffectPanner" inherits="AudioEffect" category="Core" version="3.2">
<brief_description>
Adds a Panner audio effect to an Audio bus. Pans sound left or right.
</brief_description>
@@ -8,8 +8,6 @@
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
</methods>
<members>
diff --git a/doc/classes/AudioEffectPhaser.xml b/doc/classes/AudioEffectPhaser.xml
index 10566d089b..c42b5f59ee 100644
--- a/doc/classes/AudioEffectPhaser.xml
+++ b/doc/classes/AudioEffectPhaser.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="AudioEffectPhaser" inherits="AudioEffect" category="Core" version="3.1">
+<class name="AudioEffectPhaser" inherits="AudioEffect" category="Core" version="3.2">
<brief_description>
Adds a Phaser audio effect to an Audio bus.
Combines the original signal with a copy that is slightly out of phase with the original.
@@ -9,8 +9,6 @@
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
</methods>
<members>
diff --git a/doc/classes/AudioEffectPitchShift.xml b/doc/classes/AudioEffectPitchShift.xml
index 99095bae44..7d6c5f2b20 100644
--- a/doc/classes/AudioEffectPitchShift.xml
+++ b/doc/classes/AudioEffectPitchShift.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="AudioEffectPitchShift" inherits="AudioEffect" category="Core" version="3.1">
+<class name="AudioEffectPitchShift" inherits="AudioEffect" category="Core" version="3.2">
<brief_description>
Adds a Pitch shift audio effect to an Audio bus.
Raises or lowers the pitch of original sound.
@@ -9,8 +9,6 @@
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
</methods>
<members>
diff --git a/doc/classes/AudioEffectRecord.xml b/doc/classes/AudioEffectRecord.xml
index b7771fc9c5..d6e678f276 100644
--- a/doc/classes/AudioEffectRecord.xml
+++ b/doc/classes/AudioEffectRecord.xml
@@ -1,13 +1,11 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="AudioEffectRecord" inherits="AudioEffect" category="Core" version="3.1">
+<class name="AudioEffectRecord" inherits="AudioEffect" category="Core" version="3.2">
<brief_description>
</brief_description>
<description>
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
<method name="get_recording" qualifiers="const">
<return type="AudioStreamSample">
diff --git a/doc/classes/AudioEffectReverb.xml b/doc/classes/AudioEffectReverb.xml
index 008c644466..8c9652eee2 100644
--- a/doc/classes/AudioEffectReverb.xml
+++ b/doc/classes/AudioEffectReverb.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="AudioEffectReverb" inherits="AudioEffect" category="Core" version="3.1">
+<class name="AudioEffectReverb" inherits="AudioEffect" category="Core" version="3.2">
<brief_description>
Adds a Reverb audio effect to an Audio bus.
Simulates the sound of acoustic environments such as rooms, concert halls, caverns, or an open spaces.
@@ -9,8 +9,6 @@
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
</methods>
<members>
@@ -23,7 +21,7 @@
<member name="hipass" type="float" setter="set_hpf" getter="get_hpf">
High-pass filter passes signals with a frequency higher than a certain cutoff frequency and attenuates signals with frequencies lower than the cutoff frequency. Value can range from 0 to 1. Default value: [code]0[/code].
</member>
- <member name="predelay_feedback" type="float" setter="set_predelay_msec" getter="get_predelay_msec">
+ <member name="predelay_feedback" type="float" setter="set_predelay_feedback" getter="get_predelay_feedback">
Output percent of predelay. Value can range from 0 to 1. Default value: [code]1[/code].
</member>
<member name="predelay_msec" type="float" setter="set_predelay_msec" getter="get_predelay_msec">
diff --git a/doc/classes/AudioEffectSpectrumAnalyzer.xml b/doc/classes/AudioEffectSpectrumAnalyzer.xml
new file mode 100644
index 0000000000..8a71991437
--- /dev/null
+++ b/doc/classes/AudioEffectSpectrumAnalyzer.xml
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<class name="AudioEffectSpectrumAnalyzer" inherits="AudioEffect" category="Core" version="3.2">
+ <brief_description>
+ </brief_description>
+ <description>
+ </description>
+ <tutorials>
+ </tutorials>
+ <methods>
+ </methods>
+ <members>
+ <member name="buffer_length" type="float" setter="set_buffer_length" getter="get_buffer_length">
+ </member>
+ <member name="fft_size" type="int" setter="set_fft_size" getter="get_fft_size" enum="AudioEffectSpectrumAnalyzer.FFT_Size">
+ </member>
+ <member name="tap_back_pos" type="float" setter="set_tap_back_pos" getter="get_tap_back_pos">
+ </member>
+ </members>
+ <constants>
+ <constant name="FFT_SIZE_256" value="0" enum="FFT_Size">
+ </constant>
+ <constant name="FFT_SIZE_512" value="1" enum="FFT_Size">
+ </constant>
+ <constant name="FFT_SIZE_1024" value="2" enum="FFT_Size">
+ </constant>
+ <constant name="FFT_SIZE_2048" value="3" enum="FFT_Size">
+ </constant>
+ <constant name="FFT_SIZE_4096" value="4" enum="FFT_Size">
+ </constant>
+ <constant name="FFT_SIZE_MAX" value="5" enum="FFT_Size">
+ </constant>
+ </constants>
+</class>
diff --git a/doc/classes/AudioEffectSpectrumAnalyzerInstance.xml b/doc/classes/AudioEffectSpectrumAnalyzerInstance.xml
new file mode 100644
index 0000000000..f4620f9905
--- /dev/null
+++ b/doc/classes/AudioEffectSpectrumAnalyzerInstance.xml
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<class name="AudioEffectSpectrumAnalyzerInstance" inherits="AudioEffectInstance" category="Core" version="3.2">
+ <brief_description>
+ </brief_description>
+ <description>
+ </description>
+ <tutorials>
+ </tutorials>
+ <methods>
+ <method name="get_magnitude_for_frequency_range" qualifiers="const">
+ <return type="Vector2">
+ </return>
+ <argument index="0" name="from_hz" type="float">
+ </argument>
+ <argument index="1" name="to_hz" type="float">
+ </argument>
+ <argument index="2" name="mode" type="int" enum="AudioEffectSpectrumAnalyzerInstance.MagnitudeMode" default="1">
+ </argument>
+ <description>
+ </description>
+ </method>
+ </methods>
+ <constants>
+ <constant name="MAGNITUDE_AVERAGE" value="0" enum="MagnitudeMode">
+ </constant>
+ <constant name="MAGNITUDE_MAX" value="1" enum="MagnitudeMode">
+ </constant>
+ </constants>
+</class>
diff --git a/doc/classes/AudioEffectStereoEnhance.xml b/doc/classes/AudioEffectStereoEnhance.xml
index ae296d81a0..95bc6128f2 100644
--- a/doc/classes/AudioEffectStereoEnhance.xml
+++ b/doc/classes/AudioEffectStereoEnhance.xml
@@ -1,13 +1,11 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="AudioEffectStereoEnhance" inherits="AudioEffect" category="Core" version="3.1">
+<class name="AudioEffectStereoEnhance" inherits="AudioEffect" category="Core" version="3.2">
<brief_description>
</brief_description>
<description>
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
</methods>
<members>
diff --git a/doc/classes/AudioServer.xml b/doc/classes/AudioServer.xml
index 3ae5454e65..6dc1600cf2 100644
--- a/doc/classes/AudioServer.xml
+++ b/doc/classes/AudioServer.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="AudioServer" inherits="Object" category="Core" version="3.1">
+<class name="AudioServer" inherits="Object" category="Core" version="3.2">
<brief_description>
Server interface for low level audio access.
</brief_description>
@@ -9,8 +9,6 @@
<tutorials>
<link>https://docs.godotengine.org/en/latest/tutorials/audio/audio_buses.html</link>
</tutorials>
- <demos>
- </demos>
<methods>
<method name="add_bus">
<return type="void">
@@ -58,14 +56,23 @@
<return type="AudioBusLayout">
</return>
<description>
- Generates an [AudioBusLayout] using the available busses and effects.
+ Generates an [AudioBusLayout] using the available buses and effects.
+ </description>
+ </method>
+ <method name="get_bus_channels" qualifiers="const">
+ <return type="int">
+ </return>
+ <argument index="0" name="bus_idx" type="int">
+ </argument>
+ <description>
+ Returns the amount of channels of the bus at index [code]bus_idx[/code].
</description>
</method>
<method name="get_bus_count" qualifiers="const">
<return type="int">
</return>
<description>
- Returns the number of available busses.
+ Returns the number of available buses.
</description>
</method>
<method name="get_bus_effect">
@@ -88,6 +95,18 @@
Returns the number of effects on the bus at [code]bus_idx[/code].
</description>
</method>
+ <method name="get_bus_effect_instance">
+ <return type="AudioEffectInstance">
+ </return>
+ <argument index="0" name="bus_idx" type="int">
+ </argument>
+ <argument index="1" name="effect_idx" type="int">
+ </argument>
+ <argument index="2" name="channel" type="int" default="0">
+ </argument>
+ <description>
+ </description>
+ </method>
<method name="get_bus_index" qualifiers="const">
<return type="int">
</return>
@@ -165,6 +184,12 @@
Returns the sample rate at the output of the audioserver.
</description>
</method>
+ <method name="get_output_latency" qualifiers="const">
+ <return type="float">
+ </return>
+ <description>
+ </description>
+ </method>
<method name="get_speaker_mode" qualifiers="const">
<return type="int" enum="AudioServer.SpeakerMode">
</return>
@@ -172,13 +197,25 @@
Returns the speaker configuration.
</description>
</method>
+ <method name="get_time_since_last_mix" qualifiers="const">
+ <return type="float">
+ </return>
+ <description>
+ </description>
+ </method>
+ <method name="get_time_to_next_mix" qualifiers="const">
+ <return type="float">
+ </return>
+ <description>
+ </description>
+ </method>
<method name="is_bus_bypassing_effects" qualifiers="const">
<return type="bool">
</return>
<argument index="0" name="bus_idx" type="int">
</argument>
<description>
- If [code]true[/code] the bus at index [code]bus_idx[/code] is bypassing effects.
+ If [code]true[/code], the bus at index [code]bus_idx[/code] is bypassing effects.
</description>
</method>
<method name="is_bus_effect_enabled" qualifiers="const">
@@ -189,7 +226,7 @@
<argument index="1" name="effect_idx" type="int">
</argument>
<description>
- If [code]true[/code] the effect at index [code]effect_idx[/code] on the bus at index [code]bus_idx[/code] is enabled.
+ If [code]true[/code], the effect at index [code]effect_idx[/code] on the bus at index [code]bus_idx[/code] is enabled.
</description>
</method>
<method name="is_bus_mute" qualifiers="const">
@@ -198,7 +235,7 @@
<argument index="0" name="bus_idx" type="int">
</argument>
<description>
- If [code]true[/code] the bus at index [code]bus_idx[/code] is muted.
+ If [code]true[/code], the bus at index [code]bus_idx[/code] is muted.
</description>
</method>
<method name="is_bus_solo" qualifiers="const">
@@ -207,7 +244,7 @@
<argument index="0" name="bus_idx" type="int">
</argument>
<description>
- If [code]true[/code] the bus at index [code]bus_idx[/code] is in solo mode.
+ If [code]true[/code], the bus at index [code]bus_idx[/code] is in solo mode.
</description>
</method>
<method name="lock">
@@ -256,7 +293,7 @@
<argument index="1" name="enable" type="bool">
</argument>
<description>
- If [code]true[/code] the bus at index [code]bus_idx[/code] is bypassing effects.
+ If [code]true[/code], the bus at index [code]bus_idx[/code] is bypassing effects.
</description>
</method>
<method name="set_bus_count">
@@ -265,7 +302,7 @@
<argument index="0" name="amount" type="int">
</argument>
<description>
- Adds and removes busses to make the number of busses match [code]amount[/code].
+ Adds and removes buses to make the number of buses match [code]amount[/code].
</description>
</method>
<method name="set_bus_effect_enabled">
@@ -278,7 +315,7 @@
<argument index="2" name="enabled" type="bool">
</argument>
<description>
- If [code]true[/code] the effect at index [code]effect_idx[/code] on the bus at index [code]bus_idx[/code] is enabled.
+ If [code]true[/code], the effect at index [code]effect_idx[/code] on the bus at index [code]bus_idx[/code] is enabled.
</description>
</method>
<method name="set_bus_layout">
@@ -298,7 +335,7 @@
<argument index="1" name="enable" type="bool">
</argument>
<description>
- If [code]true[/code] the bus at index [code]bus_idx[/code] is muted.
+ If [code]true[/code], the bus at index [code]bus_idx[/code] is muted.
</description>
</method>
<method name="set_bus_name">
@@ -331,7 +368,7 @@
<argument index="1" name="enable" type="bool">
</argument>
<description>
- If [code]true[/code] the bus at index [code]bus_idx[/code] is in solo mode.
+ If [code]true[/code], the bus at index [code]bus_idx[/code] is in solo mode.
</description>
</method>
<method name="set_bus_volume_db">
diff --git a/doc/classes/AudioStream.xml b/doc/classes/AudioStream.xml
index 96ce53b14f..15662b7eff 100644
--- a/doc/classes/AudioStream.xml
+++ b/doc/classes/AudioStream.xml
@@ -1,16 +1,14 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="AudioStream" inherits="Resource" category="Core" version="3.1">
+<class name="AudioStream" inherits="Resource" category="Core" version="3.2">
<brief_description>
Base class for audio streams.
</brief_description>
<description>
- Base class for audio streams. Audio streams are used for music playback, or other types of streamed sounds that don't fit or require more flexibility than a [Sample].
+ 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>https://docs.godotengine.org/en/latest/tutorials/audio/audio_streams.html</link>
</tutorials>
- <demos>
- </demos>
<methods>
<method name="get_length" qualifiers="const">
<return type="float">
diff --git a/doc/classes/AudioStreamGenerator.xml b/doc/classes/AudioStreamGenerator.xml
new file mode 100644
index 0000000000..ab06ddd710
--- /dev/null
+++ b/doc/classes/AudioStreamGenerator.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<class name="AudioStreamGenerator" inherits="AudioStream" category="Core" version="3.2">
+ <brief_description>
+ </brief_description>
+ <description>
+ </description>
+ <tutorials>
+ </tutorials>
+ <methods>
+ </methods>
+ <members>
+ <member name="buffer_length" type="float" setter="set_buffer_length" getter="get_buffer_length">
+ </member>
+ <member name="mix_rate" type="float" setter="set_mix_rate" getter="get_mix_rate">
+ </member>
+ </members>
+ <constants>
+ </constants>
+</class>
diff --git a/doc/classes/AudioStreamGeneratorPlayback.xml b/doc/classes/AudioStreamGeneratorPlayback.xml
new file mode 100644
index 0000000000..310b58c4e5
--- /dev/null
+++ b/doc/classes/AudioStreamGeneratorPlayback.xml
@@ -0,0 +1,55 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<class name="AudioStreamGeneratorPlayback" inherits="AudioStreamPlaybackResampled" category="Core" version="3.2">
+ <brief_description>
+ </brief_description>
+ <description>
+ </description>
+ <tutorials>
+ </tutorials>
+ <methods>
+ <method name="can_push_buffer" qualifiers="const">
+ <return type="bool">
+ </return>
+ <argument index="0" name="amount" type="int">
+ </argument>
+ <description>
+ </description>
+ </method>
+ <method name="clear_buffer">
+ <return type="void">
+ </return>
+ <description>
+ </description>
+ </method>
+ <method name="get_frames_available" qualifiers="const">
+ <return type="int">
+ </return>
+ <description>
+ </description>
+ </method>
+ <method name="get_skips" qualifiers="const">
+ <return type="int">
+ </return>
+ <description>
+ </description>
+ </method>
+ <method name="push_buffer">
+ <return type="bool">
+ </return>
+ <argument index="0" name="frames" type="PoolVector2Array">
+ </argument>
+ <description>
+ </description>
+ </method>
+ <method name="push_frame">
+ <return type="bool">
+ </return>
+ <argument index="0" name="frame" type="Vector2">
+ </argument>
+ <description>
+ </description>
+ </method>
+ </methods>
+ <constants>
+ </constants>
+</class>
diff --git a/doc/classes/AudioStreamMicrophone.xml b/doc/classes/AudioStreamMicrophone.xml
index 079555d17e..afa60655ea 100644
--- a/doc/classes/AudioStreamMicrophone.xml
+++ b/doc/classes/AudioStreamMicrophone.xml
@@ -1,13 +1,11 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="AudioStreamMicrophone" inherits="AudioStream" category="Core" version="3.1">
+<class name="AudioStreamMicrophone" inherits="AudioStream" category="Core" version="3.2">
<brief_description>
</brief_description>
<description>
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
</methods>
<constants>
diff --git a/doc/classes/AudioStreamPlayback.xml b/doc/classes/AudioStreamPlayback.xml
index 0960935ad9..773a396bc4 100644
--- a/doc/classes/AudioStreamPlayback.xml
+++ b/doc/classes/AudioStreamPlayback.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="AudioStreamPlayback" inherits="Reference" category="Core" version="3.1">
+<class name="AudioStreamPlayback" inherits="Reference" category="Core" version="3.2">
<brief_description>
Meta class for playing back audio.
</brief_description>
@@ -8,8 +8,6 @@
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
</methods>
<constants>
diff --git a/doc/classes/AudioStreamPlaybackResampled.xml b/doc/classes/AudioStreamPlaybackResampled.xml
new file mode 100644
index 0000000000..07e7e70bf1
--- /dev/null
+++ b/doc/classes/AudioStreamPlaybackResampled.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<class name="AudioStreamPlaybackResampled" inherits="AudioStreamPlayback" category="Core" version="3.2">
+ <brief_description>
+ </brief_description>
+ <description>
+ </description>
+ <tutorials>
+ </tutorials>
+ <methods>
+ </methods>
+ <constants>
+ </constants>
+</class>
diff --git a/doc/classes/AudioStreamPlayer.xml b/doc/classes/AudioStreamPlayer.xml
index be4e4f137a..c6ec45f15e 100644
--- a/doc/classes/AudioStreamPlayer.xml
+++ b/doc/classes/AudioStreamPlayer.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="AudioStreamPlayer" inherits="Node" category="Core" version="3.1">
+<class name="AudioStreamPlayer" inherits="Node" category="Core" version="3.2">
<brief_description>
Plays back audio.
</brief_description>
@@ -7,11 +7,8 @@
Plays background audio.
</description>
<tutorials>
- <link>https://docs.godotengine.org/en/latest/learning/features/audio/index.html</link>
<link>https://docs.godotengine.org/en/latest/tutorials/audio/audio_streams.html</link>
</tutorials>
- <demos>
- </demos>
<methods>
<method name="get_playback_position">
<return type="float">
@@ -20,6 +17,12 @@
Returns the position in the [AudioStream] in seconds.
</description>
</method>
+ <method name="get_stream_playback">
+ <return type="AudioStreamPlayback">
+ </return>
+ <description>
+ </description>
+ </method>
<method name="play">
<return type="void">
</return>
@@ -48,7 +51,7 @@
</methods>
<members>
<member name="autoplay" type="bool" setter="set_autoplay" getter="is_autoplay_enabled">
- If [code]true[/code] audio plays when added to scene tree. Default value: [code]false[/code].
+ If [code]true[/code], audio plays when added to scene tree. Default value: [code]false[/code].
</member>
<member name="bus" type="String" setter="set_bus" getter="get_bus">
Bus on which this audio is playing.
@@ -60,7 +63,7 @@
Changes the pitch and the tempo of the audio.
</member>
<member name="playing" type="bool" setter="_set_playing" getter="is_playing">
- If [code]true[/code] audio is playing.
+ If [code]true[/code], audio is playing.
</member>
<member name="stream" type="AudioStream" setter="set_stream" getter="get_stream">
The [AudioStream] object to be played.
diff --git a/doc/classes/AudioStreamPlayer2D.xml b/doc/classes/AudioStreamPlayer2D.xml
index 3b81894c14..51bf5e7574 100644
--- a/doc/classes/AudioStreamPlayer2D.xml
+++ b/doc/classes/AudioStreamPlayer2D.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="AudioStreamPlayer2D" inherits="Node2D" category="Core" version="3.1">
+<class name="AudioStreamPlayer2D" inherits="Node2D" category="Core" version="3.2">
<brief_description>
Plays audio in 2D.
</brief_description>
@@ -7,11 +7,8 @@
Plays audio that dampens with distance from screen center.
</description>
<tutorials>
- <link>https://docs.godotengine.org/en/latest/learning/features/audio/index.html</link>
<link>https://docs.godotengine.org/en/latest/tutorials/audio/audio_streams.html</link>
</tutorials>
- <demos>
- </demos>
<methods>
<method name="get_playback_position">
<return type="float">
@@ -20,6 +17,12 @@
Returns the position in the [AudioStream].
</description>
</method>
+ <method name="get_stream_playback">
+ <return type="AudioStreamPlayback">
+ </return>
+ <description>
+ </description>
+ </method>
<method name="play">
<return type="void">
</return>
@@ -54,7 +57,7 @@
Dampens audio over distance with this as an exponent.
</member>
<member name="autoplay" type="bool" setter="set_autoplay" getter="is_autoplay_enabled">
- If [code]true[/code] audio plays when added to scene tree. Default value: [code]false[/code].
+ If [code]true[/code], audio plays when added to scene tree. Default value: [code]false[/code].
</member>
<member name="bus" type="String" setter="set_bus" getter="get_bus">
Bus on which this audio is playing.
@@ -66,7 +69,7 @@
Changes the pitch and the tempo of the audio.
</member>
<member name="playing" type="bool" setter="_set_playing" getter="is_playing">
- If [code]true[/code] audio is playing.
+ If [code]true[/code], audio is playing.
</member>
<member name="stream" type="AudioStream" setter="set_stream" getter="get_stream">
The [AudioStream] object to be played.
diff --git a/doc/classes/AudioStreamPlayer3D.xml b/doc/classes/AudioStreamPlayer3D.xml
index 5841f1f6dc..2bd3ac1eaa 100644
--- a/doc/classes/AudioStreamPlayer3D.xml
+++ b/doc/classes/AudioStreamPlayer3D.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="AudioStreamPlayer3D" inherits="Spatial" category="Core" version="3.1">
+<class name="AudioStreamPlayer3D" inherits="Spatial" category="Core" version="3.2">
<brief_description>
Plays 3D sound in 3D space.
</brief_description>
@@ -7,11 +7,8 @@
Plays a sound effect with directed sound effects, dampens with distance if needed, generates effect of hearable position in space.
</description>
<tutorials>
- <link>https://docs.godotengine.org/en/latest/learning/features/audio/index.html</link>
<link>https://docs.godotengine.org/en/latest/tutorials/audio/audio_streams.html</link>
</tutorials>
- <demos>
- </demos>
<methods>
<method name="get_playback_position">
<return type="float">
@@ -20,6 +17,12 @@
Returns the position in the [AudioStream].
</description>
</method>
+ <method name="get_stream_playback">
+ <return type="AudioStreamPlayback">
+ </return>
+ <description>
+ </description>
+ </method>
<method name="play">
<return type="void">
</return>
@@ -57,10 +60,10 @@
Amount how much the filter affects the loudness, in dB.
</member>
<member name="attenuation_model" type="int" setter="set_attenuation_model" getter="get_attenuation_model" enum="AudioStreamPlayer3D.AttenuationModel">
- Decides if audio should get quieter with distance linearly, quadratically or logarithmically.
+ Decides if audio should get quieter with distance linearly, quadratically, logarithmically, or not be affected by distance, effectively disabling attenuation.
</member>
<member name="autoplay" type="bool" setter="set_autoplay" getter="is_autoplay_enabled">
- If [code]true[/code] audio plays when added to scene tree. Default value: [code]false[/code].
+ If [code]true[/code], audio plays when added to scene tree. Default value: [code]false[/code].
</member>
<member name="bus" type="String" setter="set_bus" getter="get_bus">
Bus on which this audio is playing.
@@ -72,7 +75,7 @@
The angle in which the audio reaches cameras undampened.
</member>
<member name="emission_angle_enabled" type="bool" setter="set_emission_angle_enabled" getter="is_emission_angle_enabled">
- If [code]true[/code] the audio should be dampened according to the direction of the sound.
+ If [code]true[/code], the audio should be dampened according to the direction of the sound.
</member>
<member name="emission_angle_filter_attenuation_db" type="float" setter="set_emission_angle_filter_attenuation_db" getter="get_emission_angle_filter_attenuation_db">
dampens audio if camera is outside of 'emission_angle_degrees' and 'emission_angle_enabled' is set by this factor, in dB.
@@ -121,6 +124,9 @@
<constant name="ATTENUATION_LOGARITHMIC" value="2" enum="AttenuationModel">
Logarithmic dampening of loudness according to distance.
</constant>
+ <constant name="ATTENUATION_DISABLED" value="3" enum="AttenuationModel">
+ No dampening of loudness according to distance.
+ </constant>
<constant name="OUT_OF_RANGE_MIX" value="0" enum="OutOfRangeMode">
Mix this audio in, even when it's out of range.
</constant>
diff --git a/doc/classes/AudioStreamRandomPitch.xml b/doc/classes/AudioStreamRandomPitch.xml
index 992c731d47..49aa5a0192 100644
--- a/doc/classes/AudioStreamRandomPitch.xml
+++ b/doc/classes/AudioStreamRandomPitch.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="AudioStreamRandomPitch" inherits="AudioStream" category="Core" version="3.1">
+<class name="AudioStreamRandomPitch" inherits="AudioStream" category="Core" version="3.2">
<brief_description>
Plays audio with random pitch tweaking.
</brief_description>
@@ -8,8 +8,6 @@
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
</methods>
<members>
diff --git a/doc/classes/AudioStreamSample.xml b/doc/classes/AudioStreamSample.xml
index 9e56cc6016..4bcf8ea791 100644
--- a/doc/classes/AudioStreamSample.xml
+++ b/doc/classes/AudioStreamSample.xml
@@ -1,22 +1,23 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="AudioStreamSample" inherits="AudioStream" category="Core" version="3.1">
+<class name="AudioStreamSample" inherits="AudioStream" category="Core" version="3.2">
<brief_description>
- Plays audio.
+ Stores audio data loaded from [code].wav[/code] files.
</brief_description>
<description>
- Plays audio, can loop.
+ AudioStreamSample stores sound samples loaded from [code].wav[/code] files. To play the stored sound use an [AudioStreamPlayer] (for background music) or [AudioStreamPlayer2D]/[AudioStreamPlayer3D] (for positional audio). The sound can be looped.
+ This class can also be used to store dynamically generated PCM audio data.
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
<method name="save_to_wav">
- <return type="void">
+ <return type="int" enum="Error">
</return>
<argument index="0" name="path" type="String">
</argument>
<description>
+ Saves the AudioStreamSample as a WAV file to [code]path[/code]. Samples with IMA ADPCM format can't be saved.
+ Note that a [code].wav[/code] extension is automatically appended to [code]path[/code] if it is missing.
</description>
</method>
</methods>
@@ -62,5 +63,8 @@
<constant name="LOOP_PING_PONG" value="2" enum="LoopMode">
Audio loops the data between loop_begin and loop_end playing back and forth.
</constant>
+ <constant name="LOOP_BACKWARD" value="3" enum="LoopMode">
+ Audio loops the data between loop_begin and loop_end playing backward only.
+ </constant>
</constants>
</class>
diff --git a/doc/classes/BackBufferCopy.xml b/doc/classes/BackBufferCopy.xml
index 62c97feaf9..65e8774c59 100644
--- a/doc/classes/BackBufferCopy.xml
+++ b/doc/classes/BackBufferCopy.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="BackBufferCopy" inherits="Node2D" category="Core" version="3.1">
+<class name="BackBufferCopy" inherits="Node2D" category="Core" version="3.2">
<brief_description>
Copies a region of the screen (or the whole screen) to a buffer so it can be accessed with [code]SCREEN_TEXTURE[/code] in the [code]texture()[/code] function.
</brief_description>
@@ -8,8 +8,6 @@
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
</methods>
<members>
diff --git a/doc/classes/BakedLightmap.xml b/doc/classes/BakedLightmap.xml
index 8e27dc8d5d..735e55cd39 100644
--- a/doc/classes/BakedLightmap.xml
+++ b/doc/classes/BakedLightmap.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="BakedLightmap" inherits="VisualInstance" category="Core" version="3.1">
+<class name="BakedLightmap" inherits="VisualInstance" category="Core" version="3.2">
<brief_description>
Prerendered indirect light map for a scene.
</brief_description>
@@ -9,8 +9,6 @@
<tutorials>
<link>https://docs.godotengine.org/en/latest/tutorials/3d/baked_lightmaps.html</link>
</tutorials>
- <demos>
- </demos>
<methods>
<method name="bake">
<return type="int" enum="BakedLightmap.BakeError">
@@ -39,7 +37,7 @@
Size of affected area.
</member>
<member name="bake_hdr" type="bool" setter="set_hdr" getter="is_hdr">
- If [code]true[/code] lightmap can capture light values greater than [code]1.0[/code]. Turning this off will result in a smaller lightmap. Default value:[code]false[/code].
+ If [code]true[/code], lightmap can capture light values greater than [code]1.0[/code]. Turning this off will result in a smaller lightmap. Default value:[code]false[/code].
</member>
<member name="bake_mode" type="int" setter="set_bake_mode" getter="get_bake_mode" enum="BakedLightmap.BakeMode">
Lightmapping mode. See [enum BakeMode].
diff --git a/doc/classes/BakedLightmapData.xml b/doc/classes/BakedLightmapData.xml
index 8ee10b0b8b..75f3187434 100644
--- a/doc/classes/BakedLightmapData.xml
+++ b/doc/classes/BakedLightmapData.xml
@@ -1,13 +1,11 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="BakedLightmapData" inherits="Resource" category="Core" version="3.1">
+<class name="BakedLightmapData" inherits="Resource" category="Core" version="3.2">
<brief_description>
</brief_description>
<description>
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
<method name="add_user">
<return type="void">
diff --git a/doc/classes/BaseButton.xml b/doc/classes/BaseButton.xml
index 9c0459511c..6d1a7a8f87 100644
--- a/doc/classes/BaseButton.xml
+++ b/doc/classes/BaseButton.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="BaseButton" inherits="Control" category="Core" version="3.1">
+<class name="BaseButton" inherits="Control" category="Core" version="3.2">
<brief_description>
Base class for different kinds of buttons.
</brief_description>
@@ -8,8 +8,6 @@
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
<method name="_pressed" qualifiers="virtual">
<return type="void">
@@ -31,14 +29,14 @@
<return type="int" enum="BaseButton.DrawMode">
</return>
<description>
- Return the visual state used to draw the button. This is useful mainly when implementing your own draw code by either overriding _draw() or connecting to "draw" signal. The visual state of the button is defined by the DRAW_* enum.
+ Returns the visual state used to draw the button. This is useful mainly when implementing your own draw code by either overriding _draw() or connecting to "draw" signal. The visual state of the button is defined by the DRAW_* enum.
</description>
</method>
<method name="is_hovered" qualifiers="const">
<return type="bool">
</return>
<description>
- Return true if the mouse has entered the button and has not left it yet.
+ Returns [code]true[/code] if the mouse has entered the button and has not left it yet.
</description>
</method>
</methods>
@@ -48,28 +46,31 @@
</member>
<member name="button_mask" type="int" setter="set_button_mask" getter="get_button_mask">
Binary mask to choose which mouse buttons this button will respond to.
- To allow both left-click and right-click, set this to 3, because it's BUTTON_MASK_LEFT | BUTTON_MASK_RIGHT.
+ To allow both left-click and right-click, use [code]BUTTON_MASK_LEFT | BUTTON_MASK_RIGHT[/code].
</member>
<member name="disabled" type="bool" setter="set_disabled" getter="is_disabled">
- If [code]true[/code] the button is in disabled state and can't be clicked or toggled.
+ If [code]true[/code], the button is in disabled state and can't be clicked or toggled.
</member>
<member name="enabled_focus_mode" type="int" setter="set_enabled_focus_mode" getter="get_enabled_focus_mode" enum="Control.FocusMode">
- Focus access mode to use when switching between enabled/disabled (see [method Control.set_focus_mode] and [member disabled]).
+ Focus access mode to use when switching between enabled/disabled (see [member Control.focus_mode] and [member disabled]).
</member>
<member name="group" type="ButtonGroup" setter="set_button_group" getter="get_button_group">
[ButtonGroup] associated to the button.
</member>
+ <member name="keep_pressed_outside" type="bool" setter="set_keep_pressed_outside" getter="is_keep_pressed_outside">
+ If [code]true[/code], the button stays pressed when moving the cursor outside the button while pressing it. Default value: [code]false[/code].
+ </member>
<member name="pressed" type="bool" setter="set_pressed" getter="is_pressed">
- If [code]true[/code] the button's state is pressed. Means the button is pressed down or toggled (if toggle_mode is active).
+ If [code]true[/code], the button's state is pressed. Means the button is pressed down or toggled (if toggle_mode is active).
</member>
<member name="shortcut" type="ShortCut" setter="set_shortcut" getter="get_shortcut">
- [Shortcut] associated to the button.
+ [ShortCut] associated to the button.
</member>
<member name="shortcut_in_tooltip" type="bool" setter="set_shortcut_in_tooltip" getter="is_shortcut_in_tooltip_enabled">
- If [code]true[/code] the button will add information about its shortcut in the tooltip.
+ If [code]true[/code], the button will add information about its shortcut in the tooltip.
</member>
<member name="toggle_mode" type="bool" setter="set_toggle_mode" getter="is_toggle_mode">
- If [code]true[/code] the button is in toggle mode. Makes the button flip state between pressed and unpressed each time its area is clicked.
+ If [code]true[/code], the button is in toggle mode. Makes the button flip state between pressed and unpressed each time its area is clicked.
</member>
</members>
<signals>
@@ -92,7 +93,7 @@
<argument index="0" name="button_pressed" type="bool">
</argument>
<description>
- This signal is emitted when the button was just toggled between pressed and normal states (only if toggle_mode is active). The new state is contained in the [i]pressed[/i] argument.
+ This signal is emitted when the button was just toggled between pressed and normal states (only if toggle_mode is active). The new state is contained in the [i]button_pressed[/i] argument.
</description>
</signal>
</signals>
diff --git a/doc/classes/Basis.xml b/doc/classes/Basis.xml
index 95f6346321..ae7a3ff323 100644
--- a/doc/classes/Basis.xml
+++ b/doc/classes/Basis.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="Basis" category="Built-In Types" version="3.1">
+<class name="Basis" category="Built-In Types" version="3.2">
<brief_description>
3x3 matrix datatype.
</brief_description>
@@ -9,10 +9,7 @@
</description>
<tutorials>
<link>https://docs.godotengine.org/en/latest/tutorials/3d/using_transforms.html</link>
- <link>https://docs.godotengine.org/en/latest/tutorials/math/rotations.html</link>
</tutorials>
- <demos>
- </demos>
<methods>
<method name="Basis">
<return type="Basis">
@@ -60,7 +57,7 @@
<return type="float">
</return>
<description>
- Return the determinant of the matrix.
+ Returns the determinant of the matrix.
</description>
</method>
<method name="get_euler">
@@ -77,6 +74,12 @@
This function considers a discretization of rotations into 24 points on unit sphere, lying along the vectors (x,y,z) with each component being either -1,0 or 1, and returns the index of the point best representing the orientation of the object. It is mainly used by the grid map editor. For further details, refer to Godot source code.
</description>
</method>
+ <method name="get_rotation_quat">
+ <return type="Quat">
+ </return>
+ <description>
+ </description>
+ </method>
<method name="get_scale">
<return type="Vector3">
</return>
@@ -88,14 +91,24 @@
<return type="Basis">
</return>
<description>
- Return the inverse of the matrix.
+ Returns the inverse of the matrix.
+ </description>
+ </method>
+ <method name="is_equal_approx">
+ <return type="bool">
+ </return>
+ <argument index="0" name="b" type="Basis">
+ </argument>
+ <argument index="1" name="epsilon" type="float" default="0.00001">
+ </argument>
+ <description>
</description>
</method>
<method name="orthonormalized">
<return type="Basis">
</return>
<description>
- Return the orthonormalized version of the matrix (useful to call from time to time to avoid rounding error for orthogonal matrices). This performs a Gram-Schmidt orthonormalization on the basis of the matrix.
+ Returns the orthonormalized version of the matrix (useful to call from time to time to avoid rounding error for orthogonal matrices). This performs a Gram-Schmidt orthonormalization on the basis of the matrix.
</description>
</method>
<method name="rotated">
@@ -160,7 +173,7 @@
<return type="Basis">
</return>
<description>
- Return the transposed version of the matrix.
+ Returns the transposed version of the matrix.
</description>
</method>
<method name="xform">
@@ -169,7 +182,7 @@
<argument index="0" name="v" type="Vector3">
</argument>
<description>
- Return a vector transformed (multiplied) by the matrix.
+ Returns a vector transformed (multiplied) by the matrix.
</description>
</method>
<method name="xform_inv">
@@ -178,7 +191,7 @@
<argument index="0" name="v" type="Vector3">
</argument>
<description>
- Return a vector transformed (multiplied) by the transposed matrix. Note that this results in a multiplication by the inverse of the matrix only if it represents a rotation-reflection.
+ Returns a vector transformed (multiplied) by the transposed matrix. Note that this results in a multiplication by the inverse of the matrix only if it represents a rotation-reflection.
</description>
</method>
</methods>
diff --git a/doc/classes/BitMap.xml b/doc/classes/BitMap.xml
index 7fe6a2acef..7f03c22b70 100644
--- a/doc/classes/BitMap.xml
+++ b/doc/classes/BitMap.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="BitMap" inherits="Resource" category="Core" version="3.1">
+<class name="BitMap" inherits="Resource" category="Core" version="3.2">
<brief_description>
Boolean matrix.
</brief_description>
@@ -8,8 +8,6 @@
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
<method name="create">
<return type="void">
@@ -17,7 +15,7 @@
<argument index="0" name="size" type="Vector2">
</argument>
<description>
- Creates a bitmap with the specified size, filled with false.
+ Creates a bitmap with the specified size, filled with [code]false[/code].
</description>
</method>
<method name="create_from_image_alpha">
@@ -28,7 +26,7 @@
<argument index="1" name="threshold" type="float" default="0.1">
</argument>
<description>
- Creates a bitmap that matches the given image dimensions, every element of the bitmap is set to false if the alpha value of the image at that position is equal to [code]threshold[/code] or less, and true in other case.
+ Creates a bitmap that matches the given image dimensions, every element of the bitmap is set to [code]false[/code] if the alpha value of the image at that position is equal to [code]threshold[/code] or less, and [code]true[/code] in other case.
</description>
</method>
<method name="get_bit" qualifiers="const">
@@ -51,7 +49,7 @@
<return type="int">
</return>
<description>
- Returns the amount of bitmap elements that are set to true.
+ Returns the amount of bitmap elements that are set to [code]true[/code].
</description>
</method>
<method name="grow_mask">
@@ -88,7 +86,7 @@
<method name="set_bit_rect">
<return type="void">
</return>
- <argument index="0" name="p_rect" type="Rect2">
+ <argument index="0" name="rect" type="Rect2">
</argument>
<argument index="1" name="bit" type="bool">
</argument>
diff --git a/doc/classes/BitmapFont.xml b/doc/classes/BitmapFont.xml
index c943caf636..149d92e870 100644
--- a/doc/classes/BitmapFont.xml
+++ b/doc/classes/BitmapFont.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="BitmapFont" inherits="Font" category="Core" version="3.1">
+<class name="BitmapFont" inherits="Font" category="Core" version="3.2">
<brief_description>
Renders text using [code]*.fnt[/code] fonts.
</brief_description>
@@ -8,8 +8,6 @@
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
<method name="add_char">
<return type="void">
@@ -38,7 +36,7 @@
<argument index="2" name="kerning" type="int">
</argument>
<description>
- Adds a kerning pair to the [code]BitmapFont[/code] as a difference. Kerning pairs are special cases where a typeface advance is determined by the next character.
+ Adds a kerning pair to the [BitmapFont] as a difference. Kerning pairs are special cases where a typeface advance is determined by the next character.
</description>
</method>
<method name="add_texture">
@@ -47,7 +45,7 @@
<argument index="0" name="texture" type="Texture">
</argument>
<description>
- Adds a texture to the [code]BitmapFont[/code].
+ Adds a texture to the [BitmapFont].
</description>
</method>
<method name="clear">
@@ -110,7 +108,7 @@
Ascent (number of pixels above the baseline).
</member>
<member name="distance_field" type="bool" setter="set_distance_field_hint" getter="is_distance_field_hint">
- If [code]true[/code] distance field hint is enabled.
+ If [code]true[/code], distance field hint is enabled.
</member>
<member name="fallback" type="BitmapFont" setter="set_fallback" getter="get_fallback">
The fallback font.
diff --git a/doc/classes/Bone2D.xml b/doc/classes/Bone2D.xml
index 7e714305cd..757c6c6a34 100644
--- a/doc/classes/Bone2D.xml
+++ b/doc/classes/Bone2D.xml
@@ -1,37 +1,45 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="Bone2D" inherits="Node2D" category="Core" version="3.1">
+<class name="Bone2D" inherits="Node2D" category="Core" version="3.2">
<brief_description>
+ Joint used with [Skeleton2D] to control and animate other nodes.
</brief_description>
<description>
+ Use a hierarchy of [code]Bone2D[/code] bound to a [Skeleton2D] to control, and animate other [Node2D] nodes.
+ You can use [code]Bone2D[/code] and [code]Skeleton2D[/code] nodes to animate 2D meshes created with the Polygon 2D UV editor.
+ Each bone has a [member rest] transform that you can reset to with [method apply_rest]. These rest poses are relative to the bone's parent.
+ If in the editor, you can set the rest pose of an entire skeleton using a menu option, from the code, you need to iterate over the bones to set their individual rest poses.
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
<method name="apply_rest">
<return type="void">
</return>
<description>
+ Stores the node's current transforms in [member rest].
</description>
</method>
<method name="get_index_in_skeleton" qualifiers="const">
<return type="int">
</return>
<description>
+ Returns the node's index as part of the entire skeleton. See [Skeleton2D].
</description>
</method>
<method name="get_skeleton_rest" qualifiers="const">
<return type="Transform2D">
</return>
<description>
+ Returns the node's [member rest] [code]Transform2D[/code] if it doesn't have a parent, or its rest pose relative to its parent.
</description>
</method>
</methods>
<members>
<member name="default_length" type="float" setter="set_default_length" getter="get_default_length">
+ Length of the bone's representation drawn in the editor's viewport in pixels.
</member>
<member name="rest" type="Transform2D" setter="set_rest" getter="get_rest">
+ Rest transform of the bone. You can reset the node's transforms to this value using [method apply_rest].
</member>
</members>
<constants>
diff --git a/doc/classes/BoneAttachment.xml b/doc/classes/BoneAttachment.xml
index a85453a415..109cac4fa3 100644
--- a/doc/classes/BoneAttachment.xml
+++ b/doc/classes/BoneAttachment.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="BoneAttachment" inherits="Spatial" category="Core" version="3.1">
+<class name="BoneAttachment" inherits="Spatial" category="Core" version="3.2">
<brief_description>
A node that will attach to a bone.
</brief_description>
@@ -8,8 +8,6 @@
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
</methods>
<members>
diff --git a/doc/classes/BoxContainer.xml b/doc/classes/BoxContainer.xml
index 3fbad58a24..9aa69e4164 100644
--- a/doc/classes/BoxContainer.xml
+++ b/doc/classes/BoxContainer.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="BoxContainer" inherits="Container" category="Core" version="3.1">
+<class name="BoxContainer" inherits="Container" category="Core" version="3.2">
<brief_description>
Base class for box containers.
</brief_description>
@@ -8,8 +8,6 @@
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
<method name="add_spacer">
<return type="void">
diff --git a/doc/classes/BoxShape.xml b/doc/classes/BoxShape.xml
index d98a188870..3678c0e393 100644
--- a/doc/classes/BoxShape.xml
+++ b/doc/classes/BoxShape.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="BoxShape" inherits="Shape" category="Core" version="3.1">
+<class name="BoxShape" inherits="Shape" category="Core" version="3.2">
<brief_description>
Box shape resource.
</brief_description>
@@ -8,8 +8,6 @@
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
</methods>
<members>
diff --git a/doc/classes/Button.xml b/doc/classes/Button.xml
index 382a538f2b..5d3027e347 100644
--- a/doc/classes/Button.xml
+++ b/doc/classes/Button.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="Button" inherits="BaseButton" category="Core" version="3.1">
+<class name="Button" inherits="BaseButton" category="Core" version="3.2">
<brief_description>
Standard themed Button.
</brief_description>
@@ -8,8 +8,6 @@
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
</methods>
<members>
diff --git a/doc/classes/ButtonGroup.xml b/doc/classes/ButtonGroup.xml
index e839c3e750..cd2a8d7307 100644
--- a/doc/classes/ButtonGroup.xml
+++ b/doc/classes/ButtonGroup.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="ButtonGroup" inherits="Resource" category="Core" version="3.1">
+<class name="ButtonGroup" inherits="Resource" category="Core" version="3.2">
<brief_description>
Group of Buttons.
</brief_description>
@@ -9,21 +9,22 @@
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
+ <method name="get_buttons">
+ <return type="Array">
+ </return>
+ <description>
+ Returns an [Array] of [Button]s who have this as their [ButtonGroup] (see [member BaseButton.group]).
+ </description>
+ </method>
<method name="get_pressed_button">
<return type="BaseButton">
</return>
<description>
- Return the pressed button.
+ Returns the current pressed button.
</description>
</method>
</methods>
<constants>
</constants>
- <theme_items>
- <theme_item name="panel" type="StyleBox">
- </theme_item>
- </theme_items>
</class>
diff --git a/doc/classes/CPUParticles.xml b/doc/classes/CPUParticles.xml
index c778cd56b3..c9c92102f3 100644
--- a/doc/classes/CPUParticles.xml
+++ b/doc/classes/CPUParticles.xml
@@ -1,13 +1,14 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="CPUParticles" inherits="GeometryInstance" category="Core" version="3.1">
+<class name="CPUParticles" inherits="GeometryInstance" category="Core" version="3.2">
<brief_description>
+ CPU-based 3D particle emitter.
</brief_description>
<description>
+ CPU-based 3D particle node used to create a variety of particle systems and effects.
+ See also [Particles], which provides the same functionality with hardware acceleration, but may not run on older devices.
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
<method name="convert_from_particles">
<return type="void">
@@ -15,55 +16,77 @@
<argument index="0" name="particles" type="Node">
</argument>
<description>
+ Sets this node's properties to match a given [Particles] node with an assigned [ParticlesMaterial].
</description>
</method>
<method name="restart">
<return type="void">
</return>
<description>
+ Restarts the particle emitter.
</description>
</method>
</methods>
<members>
<member name="amount" type="int" setter="set_amount" getter="get_amount">
+ Number of particles emitted in one emission cycle.
</member>
<member name="angle" type="float" setter="set_param" getter="get_param">
+ Initial rotation applied to each particle, in degrees.
</member>
<member name="angle_curve" type="Curve" setter="set_param_curve" getter="get_param_curve">
+ Each particle's rotation will be animated along this [Curve].
</member>
<member name="angle_random" type="float" setter="set_param_randomness" getter="get_param_randomness">
+ Rotation randomness ratio. Default value: [code]0[/code].
</member>
<member name="angular_velocity" type="float" setter="set_param" getter="get_param">
+ Initial angular velocity applied to each particle. Sets the speed of rotation of the particle.
</member>
<member name="angular_velocity_curve" type="Curve" setter="set_param_curve" getter="get_param_curve">
+ Each particle's angular velocity will vary along this [Curve].
</member>
<member name="angular_velocity_random" type="float" setter="set_param_randomness" getter="get_param_randomness">
+ Angular velocity randomness ratio. Default value: [code]0[/code].
</member>
<member name="anim_offset" type="float" setter="set_param" getter="get_param">
+ Particle animation offset.
</member>
<member name="anim_offset_curve" type="Curve" setter="set_param_curve" getter="get_param_curve">
+ Each particle's animation offset will vary along this [Curve].
</member>
<member name="anim_offset_random" type="float" setter="set_param_randomness" getter="get_param_randomness">
+ Animation offset randomness ratio. Default value: [code]0[/code].
</member>
<member name="anim_speed" type="float" setter="set_param" getter="get_param">
+ Particle animation speed.
</member>
<member name="anim_speed_curve" type="Curve" setter="set_param_curve" getter="get_param_curve">
+ Each particle's animation speed will vary along this [Curve].
</member>
<member name="anim_speed_random" type="float" setter="set_param_randomness" getter="get_param_randomness">
+ Animation speed randomness ratio. Default value: [code]0[/code].
</member>
<member name="color" type="Color" setter="set_color" getter="get_color">
+ Unused for 3D particles.
</member>
<member name="color_ramp" type="Gradient" setter="set_color_ramp" getter="get_color_ramp">
+ Unused for 3D particles.
</member>
<member name="damping" type="float" setter="set_param" getter="get_param">
+ The rate at which particles lose velocity.
</member>
<member name="damping_curve" type="Curve" setter="set_param_curve" getter="get_param_curve">
+ Damping will vary along this [Curve].
</member>
<member name="damping_random" type="float" setter="set_param_randomness" getter="get_param_randomness">
+ Damping randomness ratio. Default value: [code]0[/code].
</member>
<member name="draw_order" type="int" setter="set_draw_order" getter="get_draw_order" enum="CPUParticles.DrawOrder">
+ Particle draw order. Uses [enum DrawOrder] values. Default value: [constant DRAW_ORDER_INDEX].
</member>
<member name="emission_box_extents" type="Vector3" setter="set_emission_box_extents" getter="get_emission_box_extents">
+ The rectangle's extents if [member emission_shape] is set to [constant EMISSION_SHAPE_BOX].
</member>
<member name="emission_colors" type="PoolColorArray" setter="set_emission_colors" getter="get_emission_colors">
</member>
@@ -72,124 +95,199 @@
<member name="emission_points" type="PoolVector3Array" setter="set_emission_points" getter="get_emission_points">
</member>
<member name="emission_shape" type="int" setter="set_emission_shape" getter="get_emission_shape" enum="CPUParticles.EmissionShape">
+ Particles will be emitted inside this region. Use [enum EmissionShape] for values. Default value: [constant EMISSION_SHAPE_POINT].
</member>
<member name="emission_sphere_radius" type="float" setter="set_emission_sphere_radius" getter="get_emission_sphere_radius">
+ The sphere's radius if [enum EmissionShape] is set to [constant EMISSION_SHAPE_SPHERE].
</member>
<member name="emitting" type="bool" setter="set_emitting" getter="is_emitting">
+ If [code]true[/code], particles are being emitted. Default value: [code]true[/code].
</member>
<member name="explosiveness" type="float" setter="set_explosiveness_ratio" getter="get_explosiveness_ratio">
+ How rapidly particles in an emission cycle are emitted. If greater than [code]0[/code], there will be a gap in emissions before the next cycle begins. Default value: [code]0[/code].
</member>
<member name="fixed_fps" type="int" setter="set_fixed_fps" getter="get_fixed_fps">
+ The particle system's frame rate is fixed to a value. For instance, changing the value to 2 will make the particles render at 2 frames per second. Note this does not slow down the particle system itself.
</member>
<member name="flag_align_y" type="bool" setter="set_particle_flag" getter="get_particle_flag">
+ Align y-axis of particle with the direction of its velocity.
</member>
<member name="flag_disable_z" type="bool" setter="set_particle_flag" getter="get_particle_flag">
+ If [code]true[/code], particles will not move on the z axis. Default value: [code]false[/code].
</member>
<member name="flag_rotate_y" type="bool" setter="set_particle_flag" getter="get_particle_flag">
+ If [code]true[/code], particles rotate around y-axis by [member angle].
</member>
<member name="flatness" type="float" setter="set_flatness" getter="get_flatness">
+ Amount of [member spread] in Y/Z plane. A value of [code]1[/code] restricts particles to X/Z plane. Default [code]0[/code].
</member>
<member name="fract_delta" type="bool" setter="set_fractional_delta" getter="get_fractional_delta">
+ If [code]true[/code], results in fractional delta calculation which has a smoother particles display effect. Default value: [code]true[/code]
</member>
<member name="gravity" type="Vector3" setter="set_gravity" getter="get_gravity">
+ Gravity applied to every particle. Default value: [code](0, -9.8, 0)[/code].
</member>
<member name="hue_variation" type="float" setter="set_param" getter="get_param">
+ Initial hue variation applied to each particle.
</member>
<member name="hue_variation_curve" type="Curve" setter="set_param_curve" getter="get_param_curve">
+ Each particle's hue will vary along this [Curve].
</member>
<member name="hue_variation_random" type="float" setter="set_param_randomness" getter="get_param_randomness">
+ Hue variation randomness ratio. Default value: [code]0[/code].
</member>
<member name="initial_velocity" type="float" setter="set_param" getter="get_param">
+ Initial velocity magnitude for each particle. Direction comes from [member spread] and the node's orientation.
</member>
<member name="initial_velocity_random" type="float" setter="set_param_randomness" getter="get_param_randomness">
+ Initial velocity randomness ratio. Default value: [code]0[/code].
</member>
<member name="lifetime" type="float" setter="set_lifetime" getter="get_lifetime">
+ Amount of time each particle will exist. Default value: [code]1[/code].
</member>
<member name="linear_accel" type="float" setter="set_param" getter="get_param">
+ Linear acceleration applied to each particle in the direction of motion.
</member>
<member name="linear_accel_curve" type="Curve" setter="set_param_curve" getter="get_param_curve">
+ Each particle's linear acceleration will vary along this [Curve].
</member>
<member name="linear_accel_random" type="float" setter="set_param_randomness" getter="get_param_randomness">
+ Linear acceleration randomness ratio. Default value: [code]0[/code].
</member>
<member name="local_coords" type="bool" setter="set_use_local_coordinates" getter="get_use_local_coordinates">
+ If [code]true[/code], particles use the parent node's coordinate space. If [code]false[/code], they use global coordinates. Default value: [code]true[/code].
</member>
<member name="mesh" type="Mesh" setter="set_mesh" getter="get_mesh">
+ The [Mesh] used for each particle. If [code]null[/code], particles will be spheres.
</member>
<member name="one_shot" type="bool" setter="set_one_shot" getter="get_one_shot">
+ If [code]true[/code], only one emission cycle occurs. If set [code]true[/code] during a cycle, emission will stop at the cycle's end. Default value: [code]false[/code].
+ </member>
+ <member name="orbit_velocity" type="float" setter="set_param" getter="get_param">
+ Orbital velocity applied to each particle. Makes the particles circle around origin in the local XY plane. Specified in number of full rotations around origin per second.
+ This property is only available when [member flag_disable_z] is [code]true[/code].
+ </member>
+ <member name="orbit_velocity_curve" type="Curve" setter="set_param_curve" getter="get_param_curve">
+ Each particle's orbital velocity will vary along this [Curve].
+ </member>
+ <member name="orbit_velocity_random" type="float" setter="set_param_randomness" getter="get_param_randomness">
+ Orbital velocity randomness ratio. Default value: [code]0[/code].
</member>
<member name="preprocess" type="float" setter="set_pre_process_time" getter="get_pre_process_time">
+ Particle system starts as if it had already run for this many seconds.
</member>
<member name="radial_accel" type="float" setter="set_param" getter="get_param">
+ Radial acceleration applied to each particle. Makes particle accelerate away from origin.
</member>
<member name="radial_accel_curve" type="Curve" setter="set_param_curve" getter="get_param_curve">
+ Each particle's radial acceleration will vary along this [Curve].
</member>
<member name="radial_accel_random" type="float" setter="set_param_randomness" getter="get_param_randomness">
+ Radial acceleration randomness ratio. Default value: [code]0[/code].
</member>
<member name="randomness" type="float" setter="set_randomness_ratio" getter="get_randomness_ratio">
+ Emission lifetime randomness ratio. Default value: [code]0[/code].
</member>
- <member name="scale" type="float" setter="set_param" getter="get_param">
+ <member name="scale_amount" type="float" setter="set_param" getter="get_param">
+ Initial scale applied to each particle.
</member>
- <member name="scale_curve" type="Curve" setter="set_param_curve" getter="get_param_curve">
+ <member name="scale_amount_curve" type="Curve" setter="set_param_curve" getter="get_param_curve">
+ Each particle's scale will vary along this [Curve].
</member>
- <member name="scale_random" type="float" setter="set_param_randomness" getter="get_param_randomness">
+ <member name="scale_amount_random" type="float" setter="set_param_randomness" getter="get_param_randomness">
+ Scale randomness ratio. Default value: [code]0[/code].
</member>
<member name="speed_scale" type="float" setter="set_speed_scale" getter="get_speed_scale">
+ Particle system's running speed scaling ratio. Default value: [code]1[/code]. A value of [code]0[/code] can be used to pause the particles.
</member>
<member name="spread" type="float" setter="set_spread" getter="get_spread">
+ Each particle's initial direction range from [code]+spread[/code] to [code]-spread[/code] degrees. Default value: [code]45[/code].
</member>
<member name="tangential_accel" type="float" setter="set_param" getter="get_param">
+ Tangential acceleration applied to each particle. Tangential acceleration is perpendicular to the particle's velocity giving the particles a swirling motion.
</member>
<member name="tangential_accel_curve" type="Curve" setter="set_param_curve" getter="get_param_curve">
+ Each particle's tangential acceleration will vary along this [Curve].
</member>
<member name="tangential_accel_random" type="float" setter="set_param_randomness" getter="get_param_randomness">
+ Tangential acceleration randomness ratio. Default value: [code]0[/code].
</member>
</members>
<constants>
<constant name="DRAW_ORDER_INDEX" value="0" enum="DrawOrder">
+ Particles are drawn in the order emitted.
</constant>
<constant name="DRAW_ORDER_LIFETIME" value="1" enum="DrawOrder">
+ Particles are drawn in order of remaining lifetime.
</constant>
<constant name="DRAW_ORDER_VIEW_DEPTH" value="2" enum="DrawOrder">
+ Particles are drawn in order of depth.
</constant>
<constant name="PARAM_INITIAL_LINEAR_VELOCITY" value="0" enum="Parameter">
+ Use with [method set_param], [method set_param_randomness], and [method set_param_texture] to set initial velocity properties.
</constant>
<constant name="PARAM_ANGULAR_VELOCITY" value="1" enum="Parameter">
+ Use with [method set_param], [method set_param_randomness], and [method set_param_texture] to set angular velocity properties.
</constant>
- <constant name="PARAM_LINEAR_ACCEL" value="2" enum="Parameter">
+ <constant name="PARAM_ORBIT_VELOCITY" value="2" enum="Parameter">
+ Use with [method set_param], [method set_param_randomness], and [method set_param_texture] to set orbital velocity properties.
</constant>
- <constant name="PARAM_RADIAL_ACCEL" value="3" enum="Parameter">
+ <constant name="PARAM_LINEAR_ACCEL" value="3" enum="Parameter">
+ Use with [method set_param], [method set_param_randomness], and [method set_param_texture] to set linear acceleration properties.
</constant>
- <constant name="PARAM_TANGENTIAL_ACCEL" value="4" enum="Parameter">
+ <constant name="PARAM_RADIAL_ACCEL" value="4" enum="Parameter">
+ Use with [method set_param], [method set_param_randomness], and [method set_param_texture] to set radial acceleration properties.
</constant>
- <constant name="PARAM_DAMPING" value="5" enum="Parameter">
+ <constant name="PARAM_TANGENTIAL_ACCEL" value="5" enum="Parameter">
+ Use with [method set_param], [method set_param_randomness], and [method set_param_texture] to set tangential acceleration properties.
</constant>
- <constant name="PARAM_ANGLE" value="6" enum="Parameter">
+ <constant name="PARAM_DAMPING" value="6" enum="Parameter">
+ Use with [method set_param], [method set_param_randomness], and [method set_param_texture] to set damping properties.
</constant>
- <constant name="PARAM_SCALE" value="7" enum="Parameter">
+ <constant name="PARAM_ANGLE" value="7" enum="Parameter">
+ Use with [method set_param], [method set_param_randomness], and [method set_param_texture] to set angle properties.
</constant>
- <constant name="PARAM_HUE_VARIATION" value="8" enum="Parameter">
+ <constant name="PARAM_SCALE" value="8" enum="Parameter">
+ Use with [method set_param], [method set_param_randomness], and [method set_param_texture] to set scale properties.
</constant>
- <constant name="PARAM_ANIM_SPEED" value="9" enum="Parameter">
+ <constant name="PARAM_HUE_VARIATION" value="9" enum="Parameter">
+ Use with [method set_param], [method set_param_randomness], and [method set_param_texture] to set hue variation properties.
</constant>
- <constant name="PARAM_ANIM_OFFSET" value="10" enum="Parameter">
+ <constant name="PARAM_ANIM_SPEED" value="10" enum="Parameter">
+ Use with [method set_param], [method set_param_randomness], and [method set_param_texture] to set animation speed properties.
</constant>
- <constant name="PARAM_MAX" value="11" enum="Parameter">
+ <constant name="PARAM_ANIM_OFFSET" value="11" enum="Parameter">
+ Use with [method set_param], [method set_param_randomness], and [method set_param_texture] to set animation offset properties.
+ </constant>
+ <constant name="PARAM_MAX" value="12" enum="Parameter">
+ Represents the size of the [enum Parameter] enum.
</constant>
<constant name="FLAG_ALIGN_Y_TO_VELOCITY" value="0" enum="Flags">
+ Use with [method set_flag] to set [member flag_align_y].
</constant>
<constant name="FLAG_ROTATE_Y" value="1" enum="Flags">
+ Use with [method set_flag] to set [member flag_rotate_y].
+ </constant>
+ <constant name="FLAG_DISABLE_Z" value="2" enum="Flags">
+ Use with [method set_flag] to set [member flag_disable_z].
</constant>
<constant name="FLAG_MAX" value="3" enum="Flags">
+ Represents the size of the [enum Flags] enum.
</constant>
<constant name="EMISSION_SHAPE_POINT" value="0" enum="EmissionShape">
+ All particles will be emitted from a single point.
</constant>
<constant name="EMISSION_SHAPE_SPHERE" value="1" enum="EmissionShape">
+ Particles will be emitted in the volume of a sphere.
</constant>
<constant name="EMISSION_SHAPE_BOX" value="2" enum="EmissionShape">
+ Particles will be emitted in the volume of a box.
</constant>
<constant name="EMISSION_SHAPE_POINTS" value="3" enum="EmissionShape">
+ Particles will be emitted at a position chosen randomly among [member emission_points]. Particle color will be modulated by [member emission_colors].
</constant>
<constant name="EMISSION_SHAPE_DIRECTED_POINTS" value="4" enum="EmissionShape">
+ Particles will be emitted at a position chosen randomly among [member emission_points]. Particle velocity and rotation will be set based on [member emission_normals]. Particle color will be modulated by [member emission_colors].
</constant>
</constants>
</class>
diff --git a/doc/classes/CPUParticles2D.xml b/doc/classes/CPUParticles2D.xml
index bae725d47c..7283d5084c 100644
--- a/doc/classes/CPUParticles2D.xml
+++ b/doc/classes/CPUParticles2D.xml
@@ -1,13 +1,15 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="CPUParticles2D" inherits="Node2D" category="Core" version="3.1">
+<class name="CPUParticles2D" inherits="Node2D" category="Core" version="3.2">
<brief_description>
+ CPU-based 2D particle emitter.
</brief_description>
<description>
+ CPU-based 2D particle node used to create a variety of particle systems and effects.
+ See also [Particles2D], which provides the same functionality with hardware acceleration, but may not run on older devices.
</description>
<tutorials>
+ <link>https://docs.godotengine.org/en/latest/tutorials/2d/particle_systems_2d.html</link>
</tutorials>
- <demos>
- </demos>
<methods>
<method name="convert_from_particles">
<return type="void">
@@ -15,53 +17,74 @@
<argument index="0" name="particles" type="Node">
</argument>
<description>
+ Sets this node's properties to match a given [Particles2D] node with an assigned [ParticlesMaterial].
</description>
</method>
<method name="restart">
<return type="void">
</return>
<description>
+ Restarts the particle emitter.
</description>
</method>
</methods>
<members>
<member name="amount" type="int" setter="set_amount" getter="get_amount">
+ Number of particles emitted in one emission cycle.
</member>
<member name="angle" type="float" setter="set_param" getter="get_param">
+ Initial rotation applied to each particle, in degrees.
</member>
<member name="angle_curve" type="Curve" setter="set_param_curve" getter="get_param_curve">
+ Each particle's rotation will be animated along this [Curve].
</member>
<member name="angle_random" type="float" setter="set_param_randomness" getter="get_param_randomness">
+ Rotation randomness ratio. Default value: [code]0[/code].
</member>
<member name="angular_velocity" type="float" setter="set_param" getter="get_param">
+ Initial angular velocity applied to each particle. Sets the speed of rotation of the particle.
</member>
<member name="angular_velocity_curve" type="Curve" setter="set_param_curve" getter="get_param_curve">
+ Each particle's angular velocity will vary along this [Curve].
</member>
<member name="angular_velocity_random" type="float" setter="set_param_randomness" getter="get_param_randomness">
+ Angular velocity randomness ratio. Default value: [code]0[/code].
</member>
<member name="anim_offset" type="float" setter="set_param" getter="get_param">
+ Particle animation offset.
</member>
<member name="anim_offset_curve" type="Curve" setter="set_param_curve" getter="get_param_curve">
+ Each particle's animation offset will vary along this [Curve].
</member>
<member name="anim_offset_random" type="float" setter="set_param_randomness" getter="get_param_randomness">
+ Animation offset randomness ratio. Default value: [code]0[/code].
</member>
<member name="anim_speed" type="float" setter="set_param" getter="get_param">
+ Particle animation speed.
</member>
<member name="anim_speed_curve" type="Curve" setter="set_param_curve" getter="get_param_curve">
+ Each particle's animation speed will vary along this [Curve].
</member>
<member name="anim_speed_random" type="float" setter="set_param_randomness" getter="get_param_randomness">
+ Animation speed randomness ratio. Default value: [code]0[/code].
</member>
<member name="color" type="Color" setter="set_color" getter="get_color">
+ Each particle's initial color. If [member texture] is defined, it will be multiplied by this color.
</member>
<member name="color_ramp" type="Gradient" setter="set_color_ramp" getter="get_color_ramp">
+ Each particle's color will vary along this [Gradient].
</member>
<member name="damping" type="float" setter="set_param" getter="get_param">
+ The rate at which particles lose velocity.
</member>
<member name="damping_curve" type="Curve" setter="set_param_curve" getter="get_param_curve">
+ Damping will vary along this [Curve].
</member>
<member name="damping_random" type="float" setter="set_param_randomness" getter="get_param_randomness">
+ Damping randomness ratio. Default value: [code]0[/code].
</member>
<member name="draw_order" type="int" setter="set_draw_order" getter="get_draw_order" enum="CPUParticles2D.DrawOrder">
+ Particle draw order. Uses [enum DrawOrder] values. Default value: [constant DRAW_ORDER_INDEX].
</member>
<member name="emission_colors" type="PoolColorArray" setter="set_emission_colors" getter="get_emission_colors">
</member>
@@ -70,122 +93,194 @@
<member name="emission_points" type="PoolVector2Array" setter="set_emission_points" getter="get_emission_points">
</member>
<member name="emission_rect_extents" type="Vector2" setter="set_emission_rect_extents" getter="get_emission_rect_extents">
+ The rectangle's extents if [member emission_shape] is set to [constant EMISSION_SHAPE_RECTANGLE].
</member>
<member name="emission_shape" type="int" setter="set_emission_shape" getter="get_emission_shape" enum="CPUParticles2D.EmissionShape">
+ Particles will be emitted inside this region. Use [enum EmissionShape] for values. Default value: [constant EMISSION_SHAPE_POINT].
</member>
<member name="emission_sphere_radius" type="float" setter="set_emission_sphere_radius" getter="get_emission_sphere_radius">
+ The sphere's radius if [member emission_shape] is set to [constant EMISSION_SHAPE_SPHERE].
</member>
<member name="emitting" type="bool" setter="set_emitting" getter="is_emitting">
+ If [code]true[/code], particles are being emitted. Default value: [code]true[/code].
</member>
<member name="explosiveness" type="float" setter="set_explosiveness_ratio" getter="get_explosiveness_ratio">
+ How rapidly particles in an emission cycle are emitted. If greater than [code]0[/code], there will be a gap in emissions before the next cycle begins. Default value: [code]0[/code].
</member>
<member name="fixed_fps" type="int" setter="set_fixed_fps" getter="get_fixed_fps">
+ The particle system's frame rate is fixed to a value. For instance, changing the value to 2 will make the particles render at 2 frames per second. Note this does not slow down the simulation of the particle system itself.
</member>
<member name="flag_align_y" type="bool" setter="set_particle_flag" getter="get_particle_flag">
+ Align y-axis of particle with the direction of its velocity.
</member>
<member name="flatness" type="float" setter="set_flatness" getter="get_flatness">
</member>
<member name="fract_delta" type="bool" setter="set_fractional_delta" getter="get_fractional_delta">
+ If [code]true[/code], results in fractional delta calculation which has a smoother particles display effect. Default value: [code]true[/code]
</member>
<member name="gravity" type="Vector2" setter="set_gravity" getter="get_gravity">
+ Gravity applied to every particle. Default value: [code](0, 98)[/code].
</member>
<member name="hue_variation" type="float" setter="set_param" getter="get_param">
+ Initial hue variation applied to each particle.
</member>
<member name="hue_variation_curve" type="Curve" setter="set_param_curve" getter="get_param_curve">
+ Each particle's hue will vary along this [Curve].
</member>
<member name="hue_variation_random" type="float" setter="set_param_randomness" getter="get_param_randomness">
+ Hue variation randomness ratio. Default value: [code]0[/code].
</member>
<member name="initial_velocity" type="float" setter="set_param" getter="get_param">
+ Initial velocity magnitude for each particle. Direction comes from [member spread] and the node's orientation.
</member>
<member name="initial_velocity_random" type="float" setter="set_param_randomness" getter="get_param_randomness">
+ Initial velocity randomness ratio. Default value: [code]0[/code].
</member>
<member name="lifetime" type="float" setter="set_lifetime" getter="get_lifetime">
+ Amount of time each particle will exist. Default value: [code]1[/code].
</member>
<member name="linear_accel" type="float" setter="set_param" getter="get_param">
+ Linear acceleration applied to each particle in the direction of motion.
</member>
<member name="linear_accel_curve" type="Curve" setter="set_param_curve" getter="get_param_curve">
+ Each particle's linear acceleration will vary along this [Curve].
</member>
<member name="linear_accel_random" type="float" setter="set_param_randomness" getter="get_param_randomness">
+ Linear acceleration randomness ratio. Default value: [code]0[/code].
</member>
<member name="local_coords" type="bool" setter="set_use_local_coordinates" getter="get_use_local_coordinates">
+ If [code]true[/code], particles use the parent node's coordinate space. If [code]false[/code], they use global coordinates. Default value: [code]true[/code].
</member>
<member name="normalmap" type="Texture" setter="set_normalmap" getter="get_normalmap">
+ Normal map to be used for the [member texture] property.
</member>
<member name="one_shot" type="bool" setter="set_one_shot" getter="get_one_shot">
+ If [code]true[/code], only one emission cycle occurs. If set [code]true[/code] during a cycle, emission will stop at the cycle's end. Default value: [code]false[/code].
+ </member>
+ <member name="orbit_velocity" type="float" setter="set_param" getter="get_param">
+ Orbital velocity applied to each particle. Makes the particles circle around origin. Specified in number of full rotations around origin per second.
+ </member>
+ <member name="orbit_velocity_curve" type="Curve" setter="set_param_curve" getter="get_param_curve">
+ Each particle's orbital velocity will vary along this [Curve].
+ </member>
+ <member name="orbit_velocity_random" type="float" setter="set_param_randomness" getter="get_param_randomness">
+ Orbital velocity randomness ratio. Default value: [code]0[/code].
</member>
<member name="preprocess" type="float" setter="set_pre_process_time" getter="get_pre_process_time">
+ Particle system starts as if it had already run for this many seconds.
</member>
<member name="radial_accel" type="float" setter="set_param" getter="get_param">
+ Radial acceleration applied to each particle. Makes particle accelerate away from origin.
</member>
<member name="radial_accel_curve" type="Curve" setter="set_param_curve" getter="get_param_curve">
+ Each particle's radial acceleration will vary along this [Curve].
</member>
<member name="radial_accel_random" type="float" setter="set_param_randomness" getter="get_param_randomness">
+ Radial acceleration randomness ratio. Default value: [code]0[/code].
</member>
<member name="randomness" type="float" setter="set_randomness_ratio" getter="get_randomness_ratio">
+ Emission lifetime randomness ratio. Default value: [code]0[/code].
</member>
- <member name="scale" type="float" setter="set_param" getter="get_param">
+ <member name="scale_amount" type="float" setter="set_param" getter="get_param">
+ Initial scale applied to each particle.
</member>
- <member name="scale_curve" type="Curve" setter="set_param_curve" getter="get_param_curve">
+ <member name="scale_amount_curve" type="Curve" setter="set_param_curve" getter="get_param_curve">
+ Each particle's scale will vary along this [Curve].
</member>
- <member name="scale_random" type="float" setter="set_param_randomness" getter="get_param_randomness">
+ <member name="scale_amount_random" type="float" setter="set_param_randomness" getter="get_param_randomness">
+ Scale randomness ratio. Default value: [code]0[/code].
</member>
<member name="speed_scale" type="float" setter="set_speed_scale" getter="get_speed_scale">
+ Particle system's running speed scaling ratio. Default value: [code]1[/code]. A value of [code]0[/code] can be used to pause the particles.
</member>
<member name="spread" type="float" setter="set_spread" getter="get_spread">
+ Each particle's initial direction range from [code]+spread[/code] to [code]-spread[/code] degrees. Default value: [code]45[/code].
</member>
<member name="tangential_accel" type="float" setter="set_param" getter="get_param">
+ Tangential acceleration applied to each particle. Tangential acceleration is perpendicular to the particle's velocity giving the particles a swirling motion.
</member>
<member name="tangential_accel_curve" type="Curve" setter="set_param_curve" getter="get_param_curve">
+ Each particle's tangential acceleration will vary along this [Curve].
</member>
<member name="tangential_accel_random" type="float" setter="set_param_randomness" getter="get_param_randomness">
+ Tangential acceleration randomness ratio. Default value: [code]0[/code].
</member>
<member name="texture" type="Texture" setter="set_texture" getter="get_texture">
+ Particle texture. If [code]null[/code] particles will be squares.
</member>
</members>
<constants>
<constant name="DRAW_ORDER_INDEX" value="0" enum="DrawOrder">
+ Particles are drawn in the order emitted.
</constant>
<constant name="DRAW_ORDER_LIFETIME" value="1" enum="DrawOrder">
+ Particles are drawn in order of remaining lifetime.
</constant>
<constant name="PARAM_INITIAL_LINEAR_VELOCITY" value="0" enum="Parameter">
+ Use with [method set_param], [method set_param_randomness], and [method set_param_texture] to set initial velocity properties.
</constant>
<constant name="PARAM_ANGULAR_VELOCITY" value="1" enum="Parameter">
+ Use with [method set_param], [method set_param_randomness], and [method set_param_texture] to set angular velocity properties.
</constant>
<constant name="PARAM_ORBIT_VELOCITY" value="2" enum="Parameter">
+ Use with [method set_param], [method set_param_randomness], and [method set_param_texture] to set orbital velocity properties.
</constant>
<constant name="PARAM_LINEAR_ACCEL" value="3" enum="Parameter">
+ Use with [method set_param], [method set_param_randomness], and [method set_param_texture] to set linear acceleration properties.
</constant>
<constant name="PARAM_RADIAL_ACCEL" value="4" enum="Parameter">
+ Use with [method set_param], [method set_param_randomness], and [method set_param_texture] to set radial acceleration properties.
</constant>
<constant name="PARAM_TANGENTIAL_ACCEL" value="5" enum="Parameter">
+ Use with [method set_param], [method set_param_randomness], and [method set_param_texture] to set tangential acceleration properties.
</constant>
<constant name="PARAM_DAMPING" value="6" enum="Parameter">
+ Use with [method set_param], [method set_param_randomness], and [method set_param_texture] to set damping properties.
</constant>
<constant name="PARAM_ANGLE" value="7" enum="Parameter">
+ Use with [method set_param], [method set_param_randomness], and [method set_param_texture] to set angle properties.
</constant>
<constant name="PARAM_SCALE" value="8" enum="Parameter">
+ Use with [method set_param], [method set_param_randomness], and [method set_param_texture] to set scale properties.
</constant>
<constant name="PARAM_HUE_VARIATION" value="9" enum="Parameter">
+ Use with [method set_param], [method set_param_randomness], and [method set_param_texture] to set hue variation properties.
</constant>
<constant name="PARAM_ANIM_SPEED" value="10" enum="Parameter">
+ Use with [method set_param], [method set_param_randomness], and [method set_param_texture] to set animation speed properties.
</constant>
<constant name="PARAM_ANIM_OFFSET" value="11" enum="Parameter">
+ Use with [method set_param], [method set_param_randomness], and [method set_param_texture] to set animation offset properties.
</constant>
<constant name="PARAM_MAX" value="12" enum="Parameter">
+ Represents the size of the [enum Parameter] enum.
</constant>
<constant name="FLAG_ALIGN_Y_TO_VELOCITY" value="0" enum="Flags">
+ Use with [method set_flag] to set [member flag_align_y].
+ </constant>
+ <constant name="FLAG_ROTATE_Y" value="1" enum="Flags">
+ Present for consistency with 3D particle nodes, not used in 2D.
+ </constant>
+ <constant name="FLAG_DISABLE_Z" value="2" enum="Flags">
+ Present for consistency with 3D particle nodes, not used in 2D.
</constant>
- <constant name="FLAG_MAX" value="1" enum="Flags">
+ <constant name="FLAG_MAX" value="3" enum="Flags">
+ Represents the size of the [enum Flags] enum.
</constant>
<constant name="EMISSION_SHAPE_POINT" value="0" enum="EmissionShape">
+ All particles will be emitted from a single point.
</constant>
- <constant name="EMISSION_SHAPE_CIRCLE" value="1" enum="EmissionShape">
+ <constant name="EMISSION_SHAPE_SPHERE" value="1" enum="EmissionShape">
+ Particles will be emitted on the surface of a sphere flattened to two dimensions.
</constant>
<constant name="EMISSION_SHAPE_RECTANGLE" value="2" enum="EmissionShape">
+ Particles will be emitted in the area of a rectangle.
</constant>
<constant name="EMISSION_SHAPE_POINTS" value="3" enum="EmissionShape">
+ Particles will be emitted at a position chosen randomly among [member emission_points]. Particle color will be modulated by [member emission_colors].
</constant>
<constant name="EMISSION_SHAPE_DIRECTED_POINTS" value="4" enum="EmissionShape">
+ Particles will be emitted at a position chosen randomly among [member emission_points]. Particle velocity and rotation will be set based on [member emission_normals]. Particle color will be modulated by [member emission_colors].
</constant>
</constants>
</class>
diff --git a/doc/classes/Camera.xml b/doc/classes/Camera.xml
index c7eb365891..cc869d28a2 100644
--- a/doc/classes/Camera.xml
+++ b/doc/classes/Camera.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="Camera" inherits="Spatial" category="Core" version="3.1">
+<class name="Camera" inherits="Spatial" category="Core" version="3.2">
<brief_description>
Camera node, displays from a point of view.
</brief_description>
@@ -8,8 +8,6 @@
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
<method name="clear_current">
<return type="void">
@@ -17,7 +15,14 @@
<argument index="0" name="enable_next" type="bool" default="true">
</argument>
<description>
- If this is the current Camera, remove it from being current. If [code]enable_next[/code] is true, request to make the next Camera current, if any.
+ If this is the current Camera, remove it from being current. If [code]enable_next[/code] is [code]true[/code], request to make the next Camera current, if any.
+ </description>
+ </method>
+ <method name="get_camera_rid" qualifiers="const">
+ <return type="RID">
+ </return>
+ <description>
+ Returns the camera's RID from the [VisualServer].
</description>
</method>
<method name="get_camera_transform" qualifiers="const">
@@ -35,6 +40,12 @@
<description>
</description>
</method>
+ <method name="get_frustum" qualifiers="const">
+ <return type="Array">
+ </return>
+ <description>
+ </description>
+ </method>
<method name="is_position_behind" qualifiers="const">
<return type="bool">
</return>
@@ -65,8 +76,10 @@
</return>
<argument index="0" name="screen_point" type="Vector2">
</argument>
+ <argument index="1" name="z_depth" type="float" default="0">
+ </argument>
<description>
- Returns the 3D point in worldspace that maps to the given 2D coordinate in the [Viewport] rectangle.
+ Returns the 3D point in worldspace that maps to the given 2D coordinate in the [Viewport] rectangle on a plane that is the given distance into the scene away from the camera.
</description>
</method>
<method name="project_ray_normal" qualifiers="const">
@@ -97,6 +110,20 @@
<description>
</description>
</method>
+ <method name="set_frustum">
+ <return type="void">
+ </return>
+ <argument index="0" name="size" type="float">
+ </argument>
+ <argument index="1" name="offset" type="Vector2">
+ </argument>
+ <argument index="2" name="z_near" type="float">
+ </argument>
+ <argument index="3" name="z_far" type="float">
+ </argument>
+ <description>
+ </description>
+ </method>
<method name="set_orthogonal">
<return type="void">
</return>
@@ -138,7 +165,7 @@
The culling mask that describes which 3D render layers are rendered by this camera.
</member>
<member name="current" type="bool" setter="set_current" getter="is_current">
- If [code]true[/code] the ancestor [Viewport] is currently using this Camera. Default value: [code]false[/code].
+ If [code]true[/code], the ancestor [Viewport] is currently using this Camera. Default value: [code]false[/code].
</member>
<member name="doppler_tracking" type="int" setter="set_doppler_tracking" getter="get_doppler_tracking" enum="Camera.DopplerTracking">
If not [code]DOPPLER_TRACKING_DISABLED[/code] this Camera will simulate the Doppler effect for objects changed in particular [code]_process[/code] methods. Default value: [code]DOPPLER_TRACKING_DISABLED[/code].
@@ -152,6 +179,8 @@
<member name="fov" type="float" setter="set_fov" getter="get_fov">
The camera's field of view angle (in degrees). Only applicable in perspective mode. Since [member keep_aspect] locks one axis, [code]fov[/code] sets the other axis' field of view angle.
</member>
+ <member name="frustum_offset" type="Vector2" setter="set_frustum_offset" getter="get_frustum_offset">
+ </member>
<member name="h_offset" type="float" setter="set_h_offset" getter="get_h_offset">
The horizontal (X) offset of the Camera viewport.
</member>
@@ -176,7 +205,9 @@
Perspective Projection (object's size on the screen becomes smaller when far away).
</constant>
<constant name="PROJECTION_ORTHOGONAL" value="1" enum="Projection">
- Orthogonal Projection (objects remain the same size on the screen no matter how far away they are).
+ Orthogonal Projection (objects remain the same size on the screen no matter how far away they are; also known as orthographic projection).
+ </constant>
+ <constant name="PROJECTION_FRUSTUM" value="2" enum="Projection">
</constant>
<constant name="KEEP_WIDTH" value="0" enum="KeepAspect">
Preserves the horizontal aspect ratio.
diff --git a/doc/classes/Camera2D.xml b/doc/classes/Camera2D.xml
index 39cc1b84b3..fcc99123d2 100644
--- a/doc/classes/Camera2D.xml
+++ b/doc/classes/Camera2D.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="Camera2D" inherits="Node2D" category="Core" version="3.1">
+<class name="Camera2D" inherits="Node2D" category="Core" version="3.2">
<brief_description>
Camera node for 2D scenes.
</brief_description>
@@ -9,8 +9,6 @@
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
<method name="align">
<return type="void">
@@ -23,7 +21,7 @@
<return type="void">
</return>
<description>
- Removes any [code]Camera2D[/code] from the ancestor [Viewport]'s internal currently-assigned camera.
+ Removes any [Camera2D] from the ancestor [Viewport]'s internal currently-assigned camera.
</description>
</method>
<method name="force_update_scroll">
@@ -37,14 +35,14 @@
<return type="Vector2">
</return>
<description>
- Return the camera position.
+ Returns the camera position.
</description>
</method>
<method name="get_camera_screen_center" qualifiers="const">
<return type="Vector2">
</return>
<description>
- Returns the location of the [code]Camera2D[/code]'s screen-center, relative to the origin.
+ Returns the location of the [Camera2D]'s screen-center, relative to the origin.
</description>
</method>
<method name="make_current">
@@ -68,16 +66,16 @@
The Camera2D's anchor point. See [code]ANCHOR_MODE_*[/code] constants.
</member>
<member name="current" type="bool" setter="_set_current" getter="is_current">
- If [code]true[/code] the camera is the active camera for the current scene. Only one camera can be current, so setting a different camera [code]current[/code] will disable this one.
+ If [code]true[/code], the camera is the active camera for the current scene. Only one camera can be current, so setting a different camera [code]current[/code] will disable this one.
</member>
<member name="custom_viewport" type="Node" setter="set_custom_viewport" getter="get_custom_viewport">
- The custom [Viewport] node attached to the [code]Camera2D[/code]. If null or not a [Viewport], uses the default viewport instead.
+ The custom [Viewport] node attached to the [Camera2D]. If null or not a [Viewport], uses the default viewport instead.
</member>
<member name="drag_margin_bottom" type="float" setter="set_drag_margin" getter="get_drag_margin">
Bottom margin needed to drag the camera. A value of [code]1[/code] makes the camera move only when reaching the edge of the screen.
</member>
<member name="drag_margin_h_enabled" type="bool" setter="set_h_drag_enabled" getter="is_h_drag_enabled">
- If [code]true[/code] the camera only moves when reaching the horizontal drag margins. If [code]false[/code] the camera moves horizontally regardless of margins. Default value: [code]true[/code].
+ If [code]true[/code], the camera only moves when reaching the horizontal drag margins. If [code]false[/code], the camera moves horizontally regardless of margins. Default value: [code]true[/code].
</member>
<member name="drag_margin_left" type="float" setter="set_drag_margin" getter="get_drag_margin">
Left margin needed to drag the camera. A value of [code]1[/code] makes the camera move only when reaching the edge of the screen.
@@ -89,16 +87,16 @@
Top margin needed to drag the camera. A value of [code]1[/code] makes the camera move only when reaching the edge of the screen.
</member>
<member name="drag_margin_v_enabled" type="bool" setter="set_v_drag_enabled" getter="is_v_drag_enabled">
- If [code]true[/code] the camera only moves when reaching the vertical drag margins. If [code]false[/code] the camera moves vertically regardless of margins. Default value: [code]true[/code].
+ If [code]true[/code], the camera only moves when reaching the vertical drag margins. If [code]false[/code], the camera moves vertically regardless of margins. Default value: [code]true[/code].
</member>
<member name="editor_draw_drag_margin" type="bool" setter="set_margin_drawing_enabled" getter="is_margin_drawing_enabled">
- If [code]true[/code] draws the camera's drag margin rectangle in the editor. Default value: [code]false[/code]
+ If [code]true[/code], draws the camera's drag margin rectangle in the editor. Default value: [code]false[/code]
</member>
<member name="editor_draw_limits" type="bool" setter="set_limit_drawing_enabled" getter="is_limit_drawing_enabled">
- If [code]true[/code] draws the camera's limits rectangle in the editor. Default value: [code]true[/code]
+ If [code]true[/code], draws the camera's limits rectangle in the editor. Default value: [code]true[/code]
</member>
<member name="editor_draw_screen" type="bool" setter="set_screen_drawing_enabled" getter="is_screen_drawing_enabled">
- If [code]true[/code] draws the camera's screen rectangle in the editor. Default value: [code]false[/code]
+ If [code]true[/code], draws the camera's screen rectangle in the editor. Default value: [code]false[/code]
</member>
<member name="limit_bottom" type="int" setter="set_limit" getter="get_limit">
Bottom scroll limit in pixels. The camera stops moving when reaching this value.
@@ -110,7 +108,7 @@
Right scroll limit in pixels. The camera stops moving when reaching this value.
</member>
<member name="limit_smoothed" type="bool" setter="set_limit_smoothing_enabled" getter="is_limit_smoothing_enabled">
- If [code]true[/code] the camera smoothly stops when reaches its limits. Default value: [code]false[/code]
+ If [code]true[/code], the camera smoothly stops when reaches its limits. Default value: [code]false[/code]
</member>
<member name="limit_top" type="int" setter="set_limit" getter="get_limit">
Top scroll limit in pixels. The camera stops moving when reaching this value.
@@ -124,11 +122,13 @@
<member name="offset_v" type="float" setter="set_v_offset" getter="get_v_offset">
The vertical offset of the camera, relative to the drag margins. Default value: [code]0[/code]
</member>
+ <member name="process_mode" type="int" setter="set_process_mode" getter="get_process_mode" enum="Camera2D.Camera2DProcessMode">
+ </member>
<member name="rotating" type="bool" setter="set_rotating" getter="is_rotating">
- If [code]true[/code] the camera rotates with the target. Default value: [code]false[/code]
+ If [code]true[/code], the camera rotates with the target. Default value: [code]false[/code]
</member>
<member name="smoothing_enabled" type="bool" setter="set_enable_follow_smoothing" getter="is_follow_smoothing_enabled">
- If [code]true[/code] the camera smoothly moves towards the target at [member smoothing_speed]. Default value: [code]false[/code]
+ If [code]true[/code], the camera smoothly moves towards the target at [member smoothing_speed]. Default value: [code]false[/code]
</member>
<member name="smoothing_speed" type="float" setter="set_follow_smoothing" getter="get_follow_smoothing">
Speed in pixels per second of the camera's smoothing effect when [member smoothing_enabled] is [code]true[/code]
@@ -144,5 +144,9 @@
<constant name="ANCHOR_MODE_DRAG_CENTER" value="1" enum="AnchorMode">
The camera's position takes into account vertical/horizontal offsets and the screen size.
</constant>
+ <constant name="CAMERA2D_PROCESS_PHYSICS" value="0" enum="Camera2DProcessMode">
+ </constant>
+ <constant name="CAMERA2D_PROCESS_IDLE" value="1" enum="Camera2DProcessMode">
+ </constant>
</constants>
</class>
diff --git a/doc/classes/CameraFeed.xml b/doc/classes/CameraFeed.xml
new file mode 100644
index 0000000000..4611b9c507
--- /dev/null
+++ b/doc/classes/CameraFeed.xml
@@ -0,0 +1,64 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<class name="CameraFeed" inherits="Reference" category="Core" version="3.2">
+ <brief_description>
+ A camera feed gives you access to a single physical camera attached to your device.
+ </brief_description>
+ <description>
+ A camera feed gives you access to a single physical camera attached to your device.
+ When enabled Godot will start capturing frames from the camera which can then be used. Do note that many cameras will return YCbCr images which are split into two textures and need to be combined in a shader. Godot does this automatically for you if you set the environment to show the camera image in the background.
+ </description>
+ <tutorials>
+ </tutorials>
+ <methods>
+ <method name="get_id" qualifiers="const">
+ <return type="int">
+ </return>
+ <description>
+ Get unique id for this feed
+ </description>
+ </method>
+ <method name="get_name" qualifiers="const">
+ <return type="String">
+ </return>
+ <description>
+ Get name of the camera
+ </description>
+ </method>
+ <method name="get_position" qualifiers="const">
+ <return type="int" enum="CameraFeed.FeedPosition">
+ </return>
+ <description>
+ Position of camera on the device.
+ </description>
+ </method>
+ </methods>
+ <members>
+ <member name="feed_is_active" type="bool" setter="set_active" getter="is_active">
+ </member>
+ <member name="feed_transform" type="Transform2D" setter="set_transform" getter="get_transform">
+ </member>
+ </members>
+ <constants>
+ <constant name="FEED_NOIMAGE" value="0" enum="FeedDataType">
+ No image set for the feed.
+ </constant>
+ <constant name="FEED_RGB" value="1" enum="FeedDataType">
+ Feed supplies RGB images.
+ </constant>
+ <constant name="FEED_YCBCR" value="2" enum="FeedDataType">
+ Feed supplies YCbCr images that need to be converted to RGB.
+ </constant>
+ <constant name="FEED_YCBCR_SEP" value="3" enum="FeedDataType">
+ Feed supplies separate Y and CbCr images that need to be combined and converted to RGB.
+ </constant>
+ <constant name="FEED_UNSPECIFIED" value="0" enum="FeedPosition">
+ Unspecified position.
+ </constant>
+ <constant name="FEED_FRONT" value="1" enum="FeedPosition">
+ Camera is mounted at the front of the device.
+ </constant>
+ <constant name="FEED_BACK" value="2" enum="FeedPosition">
+ Camera is moutned at the back of the device.
+ </constant>
+ </constants>
+</class>
diff --git a/doc/classes/CameraServer.xml b/doc/classes/CameraServer.xml
new file mode 100644
index 0000000000..ee41f08ec6
--- /dev/null
+++ b/doc/classes/CameraServer.xml
@@ -0,0 +1,83 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<class name="CameraServer" inherits="Object" category="Core" version="3.2">
+ <brief_description>
+ Our camera server keeps track of different cameras accessible in Godot. These are external cameras such as webcams or the cameras on your phone.
+ </brief_description>
+ <description>
+ </description>
+ <tutorials>
+ </tutorials>
+ <methods>
+ <method name="add_feed">
+ <return type="void">
+ </return>
+ <argument index="0" name="feed" type="CameraFeed">
+ </argument>
+ <description>
+ Adds a camera feed to the camera server.
+ </description>
+ </method>
+ <method name="feeds">
+ <return type="Array">
+ </return>
+ <description>
+ Returns an array of [CameraFeed]s.
+ </description>
+ </method>
+ <method name="get_feed">
+ <return type="CameraFeed">
+ </return>
+ <argument index="0" name="index" type="int">
+ </argument>
+ <description>
+ Returns the [CameraFeed] with this id.
+ </description>
+ </method>
+ <method name="get_feed_count">
+ <return type="int">
+ </return>
+ <description>
+ Returns the number of [CameraFeed]s registered.
+ </description>
+ </method>
+ <method name="remove_feed">
+ <return type="void">
+ </return>
+ <argument index="0" name="feed" type="CameraFeed">
+ </argument>
+ <description>
+ Removes a [CameraFeed].
+ </description>
+ </method>
+ </methods>
+ <signals>
+ <signal name="camera_feed_added">
+ <argument index="0" name="id" type="int">
+ </argument>
+ <description>
+ Emitted when a [CameraFeed] is added (webcam is plugged in).
+ </description>
+ </signal>
+ <signal name="camera_feed_removed">
+ <argument index="0" name="id" type="int">
+ </argument>
+ <description>
+ Emitted when a [CameraFeed] is removed (webcam is removed).
+ </description>
+ </signal>
+ </signals>
+ <constants>
+ <constant name="FEED_RGBA_IMAGE" value="0" enum="FeedImage">
+ The RGBA camera image.
+ </constant>
+ <constant name="FEED_YCBCR_IMAGE" value="0" enum="FeedImage">
+ The YCbCr camera image.
+ </constant>
+ <constant name="FEED_Y_IMAGE" value="0" enum="FeedImage">
+ The Y component camera image.
+ </constant>
+ <constant name="FEED_CBCR_IMAGE" value="1" enum="FeedImage">
+ The CbCr component camera image.
+ </constant>
+ </constants>
+</class>
diff --git a/doc/classes/CameraTexture.xml b/doc/classes/CameraTexture.xml
new file mode 100644
index 0000000000..02f7f8bf58
--- /dev/null
+++ b/doc/classes/CameraTexture.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<class name="CameraTexture" inherits="Texture" category="Core" version="3.2">
+ <brief_description>
+ This texture gives access to the camera texture provided by a [CameraFeed]. Note that many cameras supply YCbCr images which need to be converted in a shader.
+ </brief_description>
+ <description>
+ </description>
+ <tutorials>
+ </tutorials>
+ <methods>
+ </methods>
+ <members>
+ <member name="camera_feed_id" type="int" setter="set_camera_feed_id" getter="get_camera_feed_id">
+ Id of the [CameraFeed] for which we want to display the image.
+ </member>
+ <member name="camera_is_active" type="bool" setter="set_camera_active" getter="get_camera_active">
+ Convenience property that gives access to the active property of the [CameraFeed].
+ </member>
+ <member name="which_feed" type="int" setter="set_which_feed" getter="get_which_feed" enum="CameraServer.FeedImage">
+ Which image within the [CameraFeed] we want access to, important if the camera image is split in a Y and CbCr component.
+ </member>
+ </members>
+ <constants>
+ </constants>
+</class>
diff --git a/doc/classes/CanvasItem.xml b/doc/classes/CanvasItem.xml
index 4bae656740..2426471a49 100644
--- a/doc/classes/CanvasItem.xml
+++ b/doc/classes/CanvasItem.xml
@@ -1,21 +1,19 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="CanvasItem" inherits="Node" category="Core" version="3.1">
+<class name="CanvasItem" inherits="Node" category="Core" version="3.2">
<brief_description>
Base class of anything 2D.
</brief_description>
<description>
- Base class of anything 2D. Canvas items are laid out in a tree and children inherit and extend the transform of their parent. CanvasItem is extended by [Control], for anything GUI related, and by [Node2D] for anything 2D engine related.
- Any CanvasItem can draw. For this, the "update" function must be called, then NOTIFICATION_DRAW will be received on idle time to request redraw. Because of this, canvas items don't need to be redraw on every frame, improving the performance significantly. Several functions for drawing on the CanvasItem are provided (see draw_* functions). They can only be used inside the notification, signal or _draw() overrides function, though.
- Canvas items are draw in tree order. By default, children are on top of their parents so a root CanvasItem will be drawn behind everything (this can be changed per item though).
- Canvas items can also be hidden (hiding also their subtree). They provide many means for changing standard parameters such as opacity (for it and the subtree) and self opacity, blend mode.
+ Base class of anything 2D. Canvas items are laid out in a tree; children inherit and extend their parent's transform. CanvasItem is extended by [Control] for anything GUI-related, and by [Node2D] for anything related to the 2D engine.
+ Any CanvasItem can draw. For this, [method update] must be called, then [constant NOTIFICATION_DRAW] will be received on idle time to request redraw. Because of this, canvas items don't need to be redrawn on every frame, improving the performance significantly. Several functions for drawing on the CanvasItem are provided (see [code]draw_*[/code] functions). However, they can only be used inside the [method Object._notification], signal or [method _draw] virtual functions.
+ Canvas items are drawn in tree order. By default, children are on top of their parents so a root CanvasItem will be drawn behind everything. This behavior can be changed on a per-item basis.
+ A CanvasItem can also be hidden, which will also hide its children. It provides many ways to change parameters such as modulation (for itself and its children) and self modulation (only for itself), as well as its blend mode.
Ultimately, a transform notification can be requested, which will notify the node that its global position changed in case the parent tree changed.
</description>
<tutorials>
<link>https://docs.godotengine.org/en/latest/tutorials/2d/2d_transforms.html</link>
<link>https://docs.godotengine.org/en/latest/tutorials/2d/custom_drawing_in_2d.html</link>
</tutorials>
- <demos>
- </demos>
<methods>
<method name="_draw" qualifiers="virtual">
<return type="void">
@@ -38,7 +36,7 @@
<argument index="4" name="modulate" type="Color" default="Color( 1, 1, 1, 1 )">
</argument>
<description>
- Draws a string character using a custom font. Returns the advance, depending on the char width and kerning with an optional next char.
+ Draws a string character using a custom font. Returns the advance, depending on the character width and kerning with an optional next character.
</description>
</method>
<method name="draw_circle">
@@ -99,6 +97,10 @@
</argument>
<argument index="2" name="normal_map" type="Texture" default="null">
</argument>
+ <argument index="3" name="transform" type="Transform2D" default="Transform2D( 1, 0, 0, 1, 0, 0 )">
+ </argument>
+ <argument index="4" name="modulate" type="Color" default="Color( 1, 1, 1, 1 )">
+ </argument>
<description>
</description>
</method>
@@ -114,7 +116,7 @@
<argument index="3" name="antialiased" type="bool" default="false">
</argument>
<description>
- Draws multiple, parallel lines with a uniform [code]color[/code] and [code]width[/code] and optional antialiasing.
+ Draws multiple, parallel lines with a uniform [code]color[/code]. [code]width[/code] and [code]antialiased[/code] are currently not implemented and have no effect.
</description>
</method>
<method name="draw_multiline_colors">
@@ -135,7 +137,7 @@
<method name="draw_multimesh">
<return type="void">
</return>
- <argument index="0" name="mesh" type="Mesh">
+ <argument index="0" name="multimesh" type="MultiMesh">
</argument>
<argument index="1" name="texture" type="Texture">
</argument>
@@ -209,7 +211,7 @@
<argument index="5" name="normal_map" type="Texture" default="null">
</argument>
<description>
- Draws a custom primitive, 1 point for a point, 2 points for a line, 3 points for a triangle and 4 points for a quad.
+ Draws a custom primitive. 1 point for a point, 2 points for a line, 3 points for a triangle and 4 points for a quad.
</description>
</method>
<method name="draw_rect">
@@ -306,7 +308,7 @@
<argument index="5" name="normal_map" type="Texture" default="null">
</argument>
<description>
- Draws a textured rectangle at a given position, optionally modulated by a color. Transpose swaps the x and y coordinates when reading the texture.
+ Draws a textured rectangle at a given position, optionally modulated by a color. If [code]transpose[/code] is [code]true[/code], the texture will have its X and Y coordinates swapped.
</description>
</method>
<method name="draw_texture_rect_region">
@@ -327,7 +329,7 @@
<argument index="6" name="clip_uv" type="bool" default="true">
</argument>
<description>
- Draws a textured rectangle region at a given position, optionally modulated by a color. Transpose swaps the x and y coordinates when reading the texture.
+ Draws a textured rectangle region at a given position, optionally modulated by a color. If [code]transpose[/code] is [code]true[/code], the texture will have its X and Y coordinates swapped.
</description>
</method>
<method name="force_update_transform">
@@ -340,14 +342,14 @@
<return type="RID">
</return>
<description>
- Return the [RID] of the [World2D] canvas where this item is in.
+ Returns the [RID] of the [World2D] canvas where this item is in.
</description>
</method>
<method name="get_canvas_item" qualifiers="const">
<return type="RID">
</return>
<description>
- Return the canvas item RID used by [VisualServer] for this item.
+ Returns the canvas item RID used by [VisualServer] for this item.
</description>
</method>
<method name="get_canvas_transform" qualifiers="const">
@@ -417,7 +419,7 @@
<return type="void">
</return>
<description>
- Hide the CanvasItem currently visible.
+ Hide the CanvasItem if it's currently visible.
</description>
</method>
<method name="is_local_transform_notification_enabled" qualifiers="const">
@@ -431,7 +433,7 @@
<return type="bool">
</return>
<description>
- Return if set as toplevel. See [method set_as_toplevel].
+ Returns [code]true[/code] if the node is set as top-level. See [method set_as_toplevel].
</description>
</method>
<method name="is_transform_notification_enabled" qualifiers="const">
@@ -472,7 +474,7 @@
<argument index="0" name="enable" type="bool">
</argument>
<description>
- Sets as top level. This means that it will not inherit transform from parent canvas items.
+ If [code]enable[/code] is [code]true[/code], the node won't inherit its transform from parent canvas items.
</description>
</method>
<method name="set_notify_local_transform">
@@ -497,41 +499,41 @@
<return type="void">
</return>
<description>
- Show the CanvasItem currently hidden.
+ Show the CanvasItem if it's currently hidden. For controls that inherit [Popup], the correct way to make them visible is to call one of the multiple [code]popup*()[/code] functions instead.
</description>
</method>
<method name="update">
<return type="void">
</return>
<description>
- Queue the CanvasItem for update. [code]NOTIFICATION_DRAW[/code] will be called on idle time to request redraw.
+ Queue the CanvasItem for update. [constant NOTIFICATION_DRAW] will be called on idle time to request redraw.
</description>
</method>
</methods>
<members>
<member name="light_mask" type="int" setter="set_light_mask" getter="get_light_mask">
- The rendering layers in which this [code]CanvasItem[/code] responds to [Light2D] nodes. Default value: [code]1[/code].
+ The rendering layers in which this [CanvasItem] responds to [Light2D] nodes. Default value: [code]1[/code].
</member>
<member name="material" type="Material" setter="set_material" getter="get_material">
- The material applied to textures on this [code]CanvasItem[/code]. Default value: [code]null[/code].
+ The material applied to textures on this [CanvasItem]. Default value: [code]null[/code].
</member>
<member name="modulate" type="Color" setter="set_modulate" getter="get_modulate">
- The color applied to textures on this [code]CanvasItem[/code]. Default value: [code]Color(1, 1, 1, 1)[/code] (opaque "white").
+ The color applied to textures on this [CanvasItem]. Default value: [code]Color(1, 1, 1, 1)[/code] (opaque "white").
</member>
<member name="self_modulate" type="Color" setter="set_self_modulate" getter="get_self_modulate">
- The color applied to textures on this [code]CanvasItem[/code]. This is not inherited by children [code]CanvasItem[/code]s. Default value: [code]Color(1, 1, 1, 1)[/code] (opaque "white")..
+ The color applied to textures on this [CanvasItem]. This is not inherited by children [CanvasItem]s. Default value: [code]Color(1, 1, 1, 1)[/code] (opaque "white")..
</member>
<member name="show_behind_parent" type="bool" setter="set_draw_behind_parent" getter="is_draw_behind_parent_enabled">
- If [code]true[/code] the object draws behind its parent. Default value: [code]false[/code].
+ If [code]true[/code], the object draws behind its parent. Default value: [code]false[/code].
</member>
<member name="show_on_top" type="bool" setter="_set_on_top" getter="_is_on_top">
- If [code]true[/code] the object draws on top of its parent. Default value: [code]true[/code].
+ If [code]true[/code], the object draws on top of its parent. Default value: [code]true[/code].
</member>
<member name="use_parent_material" type="bool" setter="set_use_parent_material" getter="get_use_parent_material">
- If [code]true[/code] the parent [code]CanvasItem[/code]'s [member material] property is used as this one's material. Default value: [code]false[/code].
+ If [code]true[/code], the parent [CanvasItem]'s [member material] property is used as this one's material. Default value: [code]false[/code].
</member>
<member name="visible" type="bool" setter="set_visible" getter="is_visible">
- If [code]true[/code] this [code]CanvasItem[/code] is drawn. Default value: [code]true[/code].
+ If [code]true[/code], this [CanvasItem] is drawn. Default value: [code]true[/code]. For controls that inherit [Popup], the correct way to make them visible is to call one of the multiple [code]popup*()[/code] functions instead.
</member>
</members>
<signals>
@@ -573,22 +575,22 @@
Mix blending mode. Colors are assumed to be premultiplied by the alpha (opacity) value.
</constant>
<constant name="BLEND_MODE_DISABLED" value="5" enum="BlendMode">
- Disable blending mode. Colors including alpha are written as is. Only applicable for render targets with a transparent background. No lighting will be applied.
+ Disable blending mode. Colors including alpha are written as-is. Only applicable for render targets with a transparent background. No lighting will be applied.
</constant>
- <constant name="NOTIFICATION_TRANSFORM_CHANGED" value="29">
- Canvas item transform has changed. Notification is only received if enabled by [method set_notify_transform] or [method set_notify_local_transform].
+ <constant name="NOTIFICATION_TRANSFORM_CHANGED" value="2000">
+ The CanvasItem's transform has changed. This notification is only received if enabled by [method set_notify_transform] or [method set_notify_local_transform].
</constant>
<constant name="NOTIFICATION_DRAW" value="30">
- CanvasItem is requested to draw.
+ The CanvasItem is requested to draw.
</constant>
<constant name="NOTIFICATION_VISIBILITY_CHANGED" value="31">
- Canvas item visibility has changed.
+ The CanvasItem's visibility has changed.
</constant>
<constant name="NOTIFICATION_ENTER_CANVAS" value="32">
- Canvas item has entered the canvas.
+ The CanvasItem has entered the canvas.
</constant>
<constant name="NOTIFICATION_EXIT_CANVAS" value="33">
- Canvas item has exited the canvas.
+ The CanvasItem has exited the canvas.
</constant>
</constants>
</class>
diff --git a/doc/classes/CanvasItemMaterial.xml b/doc/classes/CanvasItemMaterial.xml
index 69d873f446..f125c2be0d 100644
--- a/doc/classes/CanvasItemMaterial.xml
+++ b/doc/classes/CanvasItemMaterial.xml
@@ -1,15 +1,13 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="CanvasItemMaterial" inherits="Material" category="Core" version="3.1">
+<class name="CanvasItemMaterial" inherits="Material" category="Core" version="3.2">
<brief_description>
A material for [CanvasItem]s.
</brief_description>
<description>
- [code]CanvasItemMaterial[/code]s provide a means of modifying the textures associated with a CanvasItem. They specialize in describing blend and lighting behaviors for textures. Use a [ShaderMaterial] to more fully customize a material's interactions with a [CanvasItem].
+ [CanvasItemMaterial]s provide a means of modifying the textures associated with a CanvasItem. They specialize in describing blend and lighting behaviors for textures. Use a [ShaderMaterial] to more fully customize a material's interactions with a [CanvasItem].
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
</methods>
<members>
diff --git a/doc/classes/CanvasLayer.xml b/doc/classes/CanvasLayer.xml
index c39b47ab07..d152442b85 100644
--- a/doc/classes/CanvasLayer.xml
+++ b/doc/classes/CanvasLayer.xml
@@ -1,17 +1,15 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="CanvasLayer" inherits="Node" category="Core" version="3.1">
+<class name="CanvasLayer" inherits="Node" category="Core" version="3.2">
<brief_description>
Canvas drawing layer.
</brief_description>
<description>
- Canvas drawing layer. [CanvasItem] nodes that are direct or indirect children of a [code]CanvasLayer[/code] 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 [code]CanvasLayer[/code] 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).
+ 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>https://docs.godotengine.org/en/latest/tutorials/2d/2d_transforms.html</link>
<link>https://docs.godotengine.org/en/latest/tutorials/2d/canvas_layers.html</link>
</tutorials>
- <demos>
- </demos>
<methods>
<method name="get_canvas" qualifiers="const">
<return type="RID">
@@ -23,7 +21,11 @@
</methods>
<members>
<member name="custom_viewport" type="Node" setter="set_custom_viewport" getter="get_custom_viewport">
- The custom [Viewport] node assigned to the [code]CanvasLayer[/code]. If null, uses the default viewport instead.
+ The custom [Viewport] node assigned to the [CanvasLayer]. If null, uses the default viewport instead.
+ </member>
+ <member name="follow_viewport_enable" type="bool" setter="set_follow_viewport" getter="is_following_viewport">
+ </member>
+ <member name="follow_viewport_scale" type="float" setter="set_follow_viewport_scale" getter="get_follow_viewport_scale">
</member>
<member name="layer" type="int" setter="set_layer" getter="get_layer">
Layer index for draw order. Lower values are drawn first. Default value: [code]1[/code].
diff --git a/doc/classes/CanvasModulate.xml b/doc/classes/CanvasModulate.xml
index 7740423cf5..c409b690e7 100644
--- a/doc/classes/CanvasModulate.xml
+++ b/doc/classes/CanvasModulate.xml
@@ -1,15 +1,13 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="CanvasModulate" inherits="Node2D" category="Core" version="3.1">
+<class name="CanvasModulate" inherits="Node2D" category="Core" version="3.2">
<brief_description>
Tint the entire canvas.
</brief_description>
<description>
- [code]CanvasModulate[/code] tints the canvas elements using its assigned [code]color[/code].
+ [CanvasModulate] tints the canvas elements using its assigned [code]color[/code].
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
</methods>
<members>
diff --git a/doc/classes/CapsuleMesh.xml b/doc/classes/CapsuleMesh.xml
index 3500701290..eba440a84e 100644
--- a/doc/classes/CapsuleMesh.xml
+++ b/doc/classes/CapsuleMesh.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="CapsuleMesh" inherits="PrimitiveMesh" category="Core" version="3.1">
+<class name="CapsuleMesh" inherits="PrimitiveMesh" category="Core" version="3.2">
<brief_description>
Class representing a capsule-shaped [PrimitiveMesh].
</brief_description>
@@ -8,8 +8,6 @@
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
</methods>
<members>
diff --git a/doc/classes/CapsuleShape.xml b/doc/classes/CapsuleShape.xml
index 0c00288783..c867dcf326 100644
--- a/doc/classes/CapsuleShape.xml
+++ b/doc/classes/CapsuleShape.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="CapsuleShape" inherits="Shape" category="Core" version="3.1">
+<class name="CapsuleShape" inherits="Shape" category="Core" version="3.2">
<brief_description>
Capsule shape for collisions.
</brief_description>
@@ -8,8 +8,6 @@
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
</methods>
<members>
diff --git a/doc/classes/CapsuleShape2D.xml b/doc/classes/CapsuleShape2D.xml
index f05b194601..c7724314d6 100644
--- a/doc/classes/CapsuleShape2D.xml
+++ b/doc/classes/CapsuleShape2D.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="CapsuleShape2D" inherits="Shape2D" category="Core" version="3.1">
+<class name="CapsuleShape2D" inherits="Shape2D" category="Core" version="3.2">
<brief_description>
Capsule shape for 2D collisions.
</brief_description>
@@ -8,8 +8,6 @@
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
</methods>
<members>
diff --git a/doc/classes/CenterContainer.xml b/doc/classes/CenterContainer.xml
index 41c8cf7100..5460831ce3 100644
--- a/doc/classes/CenterContainer.xml
+++ b/doc/classes/CenterContainer.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="CenterContainer" inherits="Container" category="Core" version="3.1">
+<class name="CenterContainer" inherits="Container" category="Core" version="3.2">
<brief_description>
Keeps children controls centered.
</brief_description>
@@ -8,13 +8,11 @@
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
</methods>
<members>
<member name="use_top_left" type="bool" setter="set_use_top_left" getter="is_using_top_left">
- If [code]true[/code] centers children relative to the [code]CenterContainer[/code]'s top left corner. Default value: [code]false[/code].
+ If [code]true[/code], centers children relative to the [CenterContainer]'s top left corner. Default value: [code]false[/code].
</member>
</members>
<constants>
diff --git a/doc/classes/CheckBox.xml b/doc/classes/CheckBox.xml
index a2a7cf85e8..d486b5fad2 100644
--- a/doc/classes/CheckBox.xml
+++ b/doc/classes/CheckBox.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="CheckBox" inherits="Button" category="Core" version="3.1">
+<class name="CheckBox" inherits="Button" category="Core" version="3.2">
<brief_description>
Binary choice user interface widget.
</brief_description>
@@ -8,8 +8,6 @@
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
</methods>
<constants>
diff --git a/doc/classes/CheckButton.xml b/doc/classes/CheckButton.xml
index 24875017fe..04344c1834 100644
--- a/doc/classes/CheckButton.xml
+++ b/doc/classes/CheckButton.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="CheckButton" inherits="Button" category="Core" version="3.1">
+<class name="CheckButton" inherits="Button" category="Core" version="3.2">
<brief_description>
Checkable button.
</brief_description>
@@ -8,8 +8,6 @@
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
</methods>
<constants>
@@ -43,8 +41,12 @@
</theme_item>
<theme_item name="off" type="Texture">
</theme_item>
+ <theme_item name="off_disabled" type="Texture">
+ </theme_item>
<theme_item name="on" type="Texture">
</theme_item>
+ <theme_item name="on_disabled" type="Texture">
+ </theme_item>
<theme_item name="pressed" type="StyleBox">
</theme_item>
</theme_items>
diff --git a/doc/classes/CircleShape2D.xml b/doc/classes/CircleShape2D.xml
index db84c82e48..7c8bf923f4 100644
--- a/doc/classes/CircleShape2D.xml
+++ b/doc/classes/CircleShape2D.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="CircleShape2D" inherits="Shape2D" category="Core" version="3.1">
+<class name="CircleShape2D" inherits="Shape2D" category="Core" version="3.2">
<brief_description>
Circular shape for 2D collisions.
</brief_description>
@@ -8,8 +8,6 @@
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
</methods>
<members>
diff --git a/doc/classes/ClassDB.xml b/doc/classes/ClassDB.xml
index e215585b74..ddbe66380a 100644
--- a/doc/classes/ClassDB.xml
+++ b/doc/classes/ClassDB.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="ClassDB" inherits="Object" category="Core" version="3.1">
+<class name="ClassDB" inherits="Object" category="Core" version="3.2">
<brief_description>
Class information repository.
</brief_description>
@@ -8,8 +8,6 @@
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
<method name="can_instance" qualifiers="const">
<return type="bool">
@@ -17,7 +15,7 @@
<argument index="0" name="class" type="String">
</argument>
<description>
- Returns true if you can instance objects from the specified 'class', false in other case.
+ Returns [code]true[/code] if you can instance objects from the specified 'class', [code]false[/code] in other case.
</description>
</method>
<method name="class_exists" qualifiers="const">
@@ -68,7 +66,7 @@
<argument index="1" name="no_inheritance" type="bool" default="false">
</argument>
<description>
- Returns an array with all the methods of 'class' or its ancestry if 'no_inheritance' is false. Every element of the array is a [Dictionary] with the following keys: args, default_args, flags, id, name, return: (class_name, hint, hint_string, name, type, usage).
+ Returns an array with all the methods of 'class' or its ancestry if 'no_inheritance' is [code]false[/code]. Every element of the array is a [Dictionary] with the following keys: args, default_args, flags, id, name, return: (class_name, hint, hint_string, name, type, usage).
</description>
</method>
<method name="class_get_property" qualifiers="const">
@@ -90,7 +88,7 @@
<argument index="1" name="no_inheritance" type="bool" default="false">
</argument>
<description>
- Returns an array with all the properties of 'class' or its ancestry if 'no_inheritance' is false.
+ Returns an array with all the properties of 'class' or its ancestry if 'no_inheritance' is [code]false[/code].
</description>
</method>
<method name="class_get_signal" qualifiers="const">
@@ -112,7 +110,7 @@
<argument index="1" name="no_inheritance" type="bool" default="false">
</argument>
<description>
- Returns an array with all the signals of 'class' or its ancestry if 'no_inheritance' is false. Every element of the array is a [Dictionary] as described in [method class_get_signal].
+ Returns an array with all the signals of 'class' or its ancestry if 'no_inheritance' 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_integer_constant" qualifiers="const">
@@ -123,7 +121,7 @@
<argument index="1" name="name" type="String">
</argument>
<description>
- Return whether 'class' or its ancestry has an integer constant called 'name' or not.
+ Returns whether 'class' or its ancestry has an integer constant called 'name' or not.
</description>
</method>
<method name="class_has_method" qualifiers="const">
@@ -136,7 +134,7 @@
<argument index="2" name="no_inheritance" type="bool" default="false">
</argument>
<description>
- Return whether 'class' (or its ancestry if 'no_inheritance' is false) has a method called 'method' or not.
+ Returns whether 'class' (or its ancestry if 'no_inheritance' is false) has a method called 'method' or not.
</description>
</method>
<method name="class_has_signal" qualifiers="const">
@@ -147,7 +145,7 @@
<argument index="1" name="signal" type="String">
</argument>
<description>
- Return whether 'class' or its ancestry has a signal called 'signal' or not.
+ Returns whether 'class' or its ancestry has a signal called 'signal' or not.
</description>
</method>
<method name="class_set_property" qualifiers="const">
diff --git a/doc/classes/ClippedCamera.xml b/doc/classes/ClippedCamera.xml
index 509ddb01fc..c6dcd6cd96 100644
--- a/doc/classes/ClippedCamera.xml
+++ b/doc/classes/ClippedCamera.xml
@@ -1,13 +1,11 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="ClippedCamera" inherits="Camera" category="Core" version="3.1">
+<class name="ClippedCamera" inherits="Camera" category="Core" version="3.2">
<brief_description>
</brief_description>
<description>
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
<method name="add_exception">
<return type="void">
@@ -31,6 +29,12 @@
<description>
</description>
</method>
+ <method name="get_clip_offset" qualifiers="const">
+ <return type="float">
+ </return>
+ <description>
+ </description>
+ </method>
<method name="get_collision_mask_bit" qualifiers="const">
<return type="bool">
</return>
diff --git a/doc/classes/CollisionObject.xml b/doc/classes/CollisionObject.xml
index 5e4e740498..cb10530006 100644
--- a/doc/classes/CollisionObject.xml
+++ b/doc/classes/CollisionObject.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="CollisionObject" inherits="Spatial" category="Core" version="3.1">
+<class name="CollisionObject" inherits="Spatial" category="Core" version="3.2">
<brief_description>
Base node for collision objects.
</brief_description>
@@ -8,8 +8,6 @@
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
<method name="_input_event" qualifiers="virtual">
<return type="void">
@@ -57,7 +55,7 @@
<argument index="0" name="owner_id" type="int">
</argument>
<description>
- If [code]true[/code] the shape owner and its shapes are disabled.
+ If [code]true[/code], the shape owner and its shapes are disabled.
</description>
</method>
<method name="remove_shape_owner">
@@ -166,7 +164,7 @@
<argument index="1" name="disabled" type="bool">
</argument>
<description>
- If [code]true[/code] disables the given shape owner.
+ If [code]true[/code], disables the given shape owner.
</description>
</method>
<method name="shape_owner_set_transform">
@@ -183,10 +181,10 @@
</methods>
<members>
<member name="input_capture_on_drag" type="bool" setter="set_capture_input_on_drag" getter="get_capture_input_on_drag">
- If [code]true[/code] the [code]CollisionObject[/code] will continue to receive input events as the mouse is dragged across its shapes. Default value: [code]false[/code].
+ If [code]true[/code], the [CollisionObject] will continue to receive input events as the mouse is dragged across its shapes. Default value: [code]false[/code].
</member>
<member name="input_ray_pickable" type="bool" setter="set_ray_pickable" getter="is_ray_pickable">
- If [code]true[/code] the [CollisionObject]'s shapes will respond to [RayCast]s. Default value: [code]true[/code].
+ If [code]true[/code], the [CollisionObject]'s shapes will respond to [RayCast]s. Default value: [code]true[/code].
</member>
</members>
<signals>
diff --git a/doc/classes/CollisionObject2D.xml b/doc/classes/CollisionObject2D.xml
index b507204f0d..f847893a39 100644
--- a/doc/classes/CollisionObject2D.xml
+++ b/doc/classes/CollisionObject2D.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="CollisionObject2D" inherits="Node2D" category="Core" version="3.1">
+<class name="CollisionObject2D" inherits="Node2D" category="Core" version="3.2">
<brief_description>
Base node for 2D collision objects.
</brief_description>
@@ -8,8 +8,6 @@
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
<method name="_input_event" qualifiers="virtual">
<return type="void">
@@ -40,6 +38,14 @@
Returns the object's [RID].
</description>
</method>
+ <method name="get_shape_owner_one_way_collision_margin" qualifiers="const">
+ <return type="float">
+ </return>
+ <argument index="0" name="owner_id" type="int">
+ </argument>
+ <description>
+ </description>
+ </method>
<method name="get_shape_owners">
<return type="Array">
</return>
@@ -53,7 +59,7 @@
<argument index="0" name="owner_id" type="int">
</argument>
<description>
- If [code]true[/code] the shape owner and its shapes are disabled.
+ If [code]true[/code], the shape owner and its shapes are disabled.
</description>
</method>
<method name="is_shape_owner_one_way_collision_enabled" qualifiers="const">
@@ -62,7 +68,7 @@
<argument index="0" name="owner_id" type="int">
</argument>
<description>
- Returns [code]true[/code] if collisions for the shape owner originating from this [code]CollisionObject2D[/code] will not be reported to collided with [code]CollisionObject2D[/code]s.
+ Returns [code]true[/code] if collisions for the shape owner originating from this [CollisionObject2D] will not be reported to collided with [CollisionObject2D]s.
</description>
</method>
<method name="remove_shape_owner">
@@ -171,7 +177,7 @@
<argument index="1" name="disabled" type="bool">
</argument>
<description>
- If [code]true[/code] disables the given shape owner.
+ If [code]true[/code], disables the given shape owner.
</description>
</method>
<method name="shape_owner_set_one_way_collision">
@@ -182,7 +188,17 @@
<argument index="1" name="enable" type="bool">
</argument>
<description>
- If [code]enable[/code] is [code]true[/code], collisions for the shape owner originating from this [code]CollisionObject2D[/code] will not be reported to collided with [code]CollisionObject2D[/code]s.
+ If [code]enable[/code] is [code]true[/code], collisions for the shape owner originating from this [CollisionObject2D] will not be reported to collided with [CollisionObject2D]s.
+ </description>
+ </method>
+ <method name="shape_owner_set_one_way_collision_margin">
+ <return type="void">
+ </return>
+ <argument index="0" name="owner_id" type="int">
+ </argument>
+ <argument index="1" name="margin" type="float">
+ </argument>
+ <description>
</description>
</method>
<method name="shape_owner_set_transform">
@@ -199,7 +215,7 @@
</methods>
<members>
<member name="input_pickable" type="bool" setter="set_pickable" getter="is_pickable">
- 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.
+ 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.
</member>
</members>
<signals>
@@ -211,17 +227,17 @@
<argument index="2" name="shape_idx" type="int">
</argument>
<description>
- Emitted when an input event occurs and [code]input_pickable[/code] is [code]true[/code]. See [method _input_event] for details.
+ Emitted when an input event occurs. Requires [code]input_pickable[/code] to be [code]true[/code] and at least one [code]collision_layer[/code] bit to be set. See [method _input_event] for details.
</description>
</signal>
<signal name="mouse_entered">
<description>
- Emitted when the mouse pointer enters any of this object's shapes.
+ Emitted when the mouse pointer enters any of this object's shapes. Requires [code]input_pickable[/code] to be [code]true[/code] and at least one [code]collision_layer[/code] bit to be set.
</description>
</signal>
<signal name="mouse_exited">
<description>
- Emitted when the mouse pointer exits all this object's shapes.
+ Emitted when the mouse pointer exits all this object's shapes. Requires [code]input_pickable[/code] to be [code]true[/code] and at least one [code]collision_layer[/code] bit to be set.
</description>
</signal>
</signals>
diff --git a/doc/classes/CollisionPolygon.xml b/doc/classes/CollisionPolygon.xml
index 28e9ba4217..85eb17cae7 100644
--- a/doc/classes/CollisionPolygon.xml
+++ b/doc/classes/CollisionPolygon.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="CollisionPolygon" inherits="Spatial" category="Core" version="3.1">
+<class name="CollisionPolygon" inherits="Spatial" category="Core" version="3.2">
<brief_description>
Editor-only class for defining a collision polygon in 3D space.
</brief_description>
@@ -8,8 +8,6 @@
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
</methods>
<members>
@@ -17,10 +15,10 @@
Length that the resulting collision extends in either direction perpendicular to its polygon.
</member>
<member name="disabled" type="bool" setter="set_disabled" getter="is_disabled">
- If true, no collision will be produced.
+ If [code]true[/code], no collision will be produced.
</member>
<member name="polygon" type="PoolVector2Array" setter="set_polygon" getter="get_polygon">
- Array of vertices which define the polygon.
+ Array of vertices which define the polygon. Note that the returned value is a copy of the original. Methods which mutate the size or properties of the return value will not impact the original polygon. To change properties of the polygon, assign it to a temporary variable and make changes before reassigning the [code]polygon[/code] member.
</member>
</members>
<constants>
diff --git a/doc/classes/CollisionPolygon2D.xml b/doc/classes/CollisionPolygon2D.xml
index 5b940e7ff1..3d609fa965 100644
--- a/doc/classes/CollisionPolygon2D.xml
+++ b/doc/classes/CollisionPolygon2D.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="CollisionPolygon2D" inherits="Node2D" category="Core" version="3.1">
+<class name="CollisionPolygon2D" inherits="Node2D" category="Core" version="3.2">
<brief_description>
Defines a 2D collision polygon.
</brief_description>
@@ -8,8 +8,6 @@
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
</methods>
<members>
@@ -17,13 +15,15 @@
Collision build mode. Use one of the [code]BUILD_*[/code] constants. Default value: [code]BUILD_SOLIDS[/code].
</member>
<member name="disabled" type="bool" setter="set_disabled" getter="is_disabled">
- If [code]true[/code] no collisions will be detected.
+ If [code]true[/code], no collisions will be detected.
</member>
<member name="one_way_collision" type="bool" setter="set_one_way_collision" getter="is_one_way_collision_enabled">
- If [code]true[/code] only edges that face up, relative to CollisionPolygon2D's rotation, will collide with other objects.
+ If [code]true[/code], only edges that face up, relative to CollisionPolygon2D's rotation, will collide with other objects.
+ </member>
+ <member name="one_way_collision_margin" type="float" setter="set_one_way_collision_margin" getter="get_one_way_collision_margin">
</member>
<member name="polygon" type="PoolVector2Array" setter="set_polygon" getter="get_polygon">
- The polygon's list of vertices. The final point will be connected to the first.
+ The polygon's list of vertices. The final point will be connected to the first. The returned value is a clone of the PoolVector2Array, not a reference.
</member>
</members>
<constants>
diff --git a/doc/classes/CollisionShape.xml b/doc/classes/CollisionShape.xml
index 740a6b7ab1..3f2e550e83 100644
--- a/doc/classes/CollisionShape.xml
+++ b/doc/classes/CollisionShape.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="CollisionShape" inherits="Spatial" category="Core" version="3.1">
+<class name="CollisionShape" inherits="Spatial" category="Core" version="3.2">
<brief_description>
Node that represents collision shape data in 3D space.
</brief_description>
@@ -9,8 +9,6 @@
<tutorials>
<link>https://docs.godotengine.org/en/latest/tutorials/physics/physics_introduction.html</link>
</tutorials>
- <demos>
- </demos>
<methods>
<method name="make_convex_from_brothers">
<return type="void">
diff --git a/doc/classes/CollisionShape2D.xml b/doc/classes/CollisionShape2D.xml
index d3c616ee3d..97dc230f22 100644
--- a/doc/classes/CollisionShape2D.xml
+++ b/doc/classes/CollisionShape2D.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="CollisionShape2D" inherits="Node2D" category="Core" version="3.1">
+<class name="CollisionShape2D" inherits="Node2D" category="Core" version="3.2">
<brief_description>
Node that represents collision shape data in 2D space.
</brief_description>
@@ -9,8 +9,6 @@
<tutorials>
<link>https://docs.godotengine.org/en/latest/tutorials/physics/physics_introduction.html</link>
</tutorials>
- <demos>
- </demos>
<methods>
</methods>
<members>
@@ -20,6 +18,8 @@
<member name="one_way_collision" type="bool" setter="set_one_way_collision" getter="is_one_way_collision_enabled">
Sets whether this collision shape should only detect collision on one side (top or bottom).
</member>
+ <member name="one_way_collision_margin" type="float" setter="set_one_way_collision_margin" getter="get_one_way_collision_margin">
+ </member>
<member name="shape" type="Shape2D" setter="set_shape" getter="get_shape">
The actual shape owned by this collision shape.
</member>
diff --git a/doc/classes/Color.xml b/doc/classes/Color.xml
index 82a10fbaa4..30e80fa512 100644
--- a/doc/classes/Color.xml
+++ b/doc/classes/Color.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="Color" category="Built-In Types" version="3.1">
+<class name="Color" category="Built-In Types" version="3.2">
<brief_description>
Color in RGBA format with some support for ARGB format.
</brief_description>
@@ -9,8 +9,6 @@
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
<method name="Color">
<return type="Color">
@@ -19,11 +17,6 @@
</argument>
<description>
Constructs a color from an HTML hexadecimal color string in ARGB or RGB format. See also [method @GDScript.ColorN].
- The following string formats are supported:
- [code]"#ff00ff00"[/code] - ARGB format with '#'
- [code]"ff00ff00"[/code] - ARGB format
- [code]"#ff00ff"[/code] - RGB format with '#'
- [code]"ff00ff"[/code] - RGB format
[codeblock]
# Each of the following creates the same color RGBA(178, 217, 10, 255)
var c1 = Color("#ffb2d90a") # ARGB format with '#'
@@ -57,7 +50,7 @@
<description>
Constructs a color from an RGB profile using values between 0 and 1. Alpha will always be 1.
[codeblock]
- var c = Color(0.2, 1.0, .7) # Equivalent to RGBA(51, 255, 178, 255)
+ var c = Color(0.2, 1.0, 0.7) # Equivalent to RGBA(51, 255, 178, 255)
[/codeblock]
</description>
</method>
@@ -75,7 +68,7 @@
<description>
Constructs a color from an RGBA profile using values between 0 and 1.
[codeblock]
- var c = Color(0.2, 1.0, .7, .8) # Equivalent to RGBA(51, 255, 178, 204)
+ var c = Color(0.2, 1.0, 0.7, 0.8) # Equivalent to RGBA(51, 255, 178, 204)
[/codeblock]
</description>
</method>
@@ -88,8 +81,8 @@
Returns a new color resulting from blending this color over another. If the color is opaque, the result is also opaque. The second color may have a range of alpha values.
[codeblock]
var bg = Color(0.0, 1.0, 0.0, 0.5) # Green with alpha of 50%
- var fg = Color(1.0, 0.0, 0.0, .5) # Red with alpha of 50%
- var blendedColor = bg.blend(fg) # Brown with alpha of 75%
+ var fg = Color(1.0, 0.0, 0.0, 0.5) # Red with alpha of 50%
+ var blended_color = bg.blend(fg) # Brown with alpha of 75%
[/codeblock]
</description>
</method>
@@ -99,8 +92,8 @@
<description>
Returns the most contrasting color.
[codeblock]
- var c = Color(.3, .4, .9)
- var contrastedColor = c.contrasted() # Equivalent to RGBA(204, 229, 102, 255)
+ var c = Color(0.3, 0.4, 0.9)
+ var contrasted_color = c.contrasted() # Equivalent to RGBA(204, 229, 102, 255)
[/codeblock]
</description>
</method>
@@ -110,7 +103,7 @@
<argument index="0" name="amount" type="float">
</argument>
<description>
- Returns a new color resulting from making this color darker by the specified percentage (0-1).
+ Returns a new color resulting from making this color darker by the specified percentage (ratio from 0 to 1).
[codeblock]
var green = Color(0.0, 1.0, 0.0)
var darkgreen = green.darkened(0.2) # 20% darker than regular green
@@ -140,7 +133,7 @@
</return>
<description>
Returns the color's grayscale representation.
- The gray is calculated by [code](r + g + b) / 3[/code].
+ The gray value is calculated as [code](r + g + b) / 3[/code].
[codeblock]
var c = Color(0.2, 0.45, 0.82)
var gray = c.gray() # a value of 0.466667
@@ -151,10 +144,10 @@
<return type="Color">
</return>
<description>
- Returns the inverted color [code](1 - r, 1 - g, 1 - b, 1 - a)[/code].
+ Returns the inverted color [code](1 - r, 1 - g, 1 - b, a)[/code].
[codeblock]
- var c = Color(.3, .4, .9)
- var invertedColor = c.inverted() # a color of an RGBA(178, 153, 26, 255)
+ var c = Color(0.3, 0.4, 0.9)
+ var inverted_color = c.inverted() # a color of an RGBA(178, 153, 26, 255)
[/codeblock]
</description>
</method>
@@ -164,7 +157,7 @@
<argument index="0" name="amount" type="float">
</argument>
<description>
- Returns a new color resulting from making this color lighter by the specified percentage (0-1).
+ Returns a new color resulting from making this color lighter by the specified percentage (ratio from 0 to 1).
[codeblock]
var green = Color(0.0, 1.0, 0.0)
var lightgreen = green.lightened(0.2) # 20% lighter than regular green
@@ -179,7 +172,7 @@
<argument index="1" name="t" type="float">
</argument>
<description>
- Returns the linear interpolation with another color. The value t is between 0 and 1.
+ Returns the linear interpolation with another color. The interpolation factor [code]t[/code] is between 0 and 1.
[codeblock]
var c1 = Color(1.0, 0.0, 0.0)
var c2 = Color(0.0, 1.0, 0.0)
@@ -193,7 +186,7 @@
<description>
Returns the color's 32-bit integer in ABGR format (each byte represents a component of the ABGR profile). ABGR is the reversed version of the default format.
[codeblock]
- var c = Color(1, .5, .2)
+ var c = Color(1, 0.5, 0.2)
print(c.to_abgr32()) # Prints 4281565439
[/codeblock]
</description>
@@ -204,7 +197,7 @@
<description>
Returns the color's 64-bit integer in ABGR format (each word represents a component of the ABGR profile). ABGR is the reversed version of the default format.
[codeblock]
- var c = Color(1, .5, .2)
+ var c = Color(1, 0.5, 0.2)
print(c.to_abgr64()) # Prints -225178692812801
[/codeblock]
</description>
@@ -215,7 +208,7 @@
<description>
Returns the color's 32-bit integer in ARGB format (each byte represents a component of the ARGB profile). ARGB is more compatible with DirectX.
[codeblock]
- var c = Color(1, .5, .2)
+ var c = Color(1, 0.5, 0.2)
print(c.to_argb32()) # Prints 4294934323
[/codeblock]
</description>
@@ -226,7 +219,7 @@
<description>
Returns the color's 64-bit integer in ARGB format (each word represents a component of the ARGB profile). ARGB is more compatible with DirectX.
[codeblock]
- var c = Color(1, .5, .2)
+ var c = Color(1, 0.5, 0.2)
print(c.to_argb64()) # Prints -2147470541
[/codeblock]
</description>
@@ -240,7 +233,7 @@
Returns the color's HTML hexadecimal color string in ARGB format (ex: [code]ff34f822[/code]).
Setting [code]with_alpha[/code] to [code]false[/code] excludes alpha from the hexadecimal string.
[codeblock]
- var c = Color(1, 1, 1, .5)
+ var c = Color(1, 1, 1, 0.5)
var s1 = c.to_html() # Results "7fffffff"
var s2 = c.to_html(false) # Results 'ffffff'
[/codeblock]
@@ -252,7 +245,7 @@
<description>
Returns the color's 32-bit integer in RGBA format (each byte represents a component of the RGBA profile). RGBA is Godot's default format.
[codeblock]
- var c = Color(1, .5, .2)
+ var c = Color(1, 0.5, 0.2)
print(c.to_rgba32()) # Prints 4286526463
[/codeblock]
</description>
@@ -263,7 +256,7 @@
<description>
Returns the color's 64-bit integer in RGBA format (each word represents a component of the RGBA profile). RGBA is Godot's default format.
[codeblock]
- var c = Color(1, .5, .2)
+ var c = Color(1, 0.5, 0.2)
print(c.to_rgba64()) # Prints -140736629309441
[/codeblock]
</description>
@@ -573,6 +566,8 @@
</constant>
<constant name="tomato" value="Color( 1, 0.39, 0.28, 1 )">
</constant>
+ <constant name="transparent" value="Color( 1, 1, 1, 0 )">
+ </constant>
<constant name="turquoise" value="Color( 0.25, 0.88, 0.82, 1 )">
</constant>
<constant name="violet" value="Color( 0.93, 0.51, 0.93, 1 )">
diff --git a/doc/classes/ColorPicker.xml b/doc/classes/ColorPicker.xml
index 554e6b5632..1fefc719b7 100644
--- a/doc/classes/ColorPicker.xml
+++ b/doc/classes/ColorPicker.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="ColorPicker" inherits="BoxContainer" category="Core" version="3.1">
+<class name="ColorPicker" inherits="BoxContainer" category="Core" version="3.2">
<brief_description>
Color picker control.
</brief_description>
@@ -8,8 +8,6 @@
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
<method name="add_preset">
<return type="void">
@@ -20,19 +18,44 @@
Adds the given color to a list of color presets. The presets are displayed in the color picker and the user will be able to select them. Note: the presets list is only for [i]this[/i] color picker.
</description>
</method>
+ <method name="erase_preset">
+ <return type="void">
+ </return>
+ <argument index="0" name="color" type="Color">
+ </argument>
+ <description>
+ Remove the given color from the list of color presets of this color picker.
+ </description>
+ </method>
+ <method name="get_presets" qualifiers="const">
+ <return type="PoolColorArray">
+ </return>
+ <description>
+ Returns the list of colors in the presets of the color picker.
+ </description>
+ </method>
</methods>
<members>
<member name="color" type="Color" setter="set_pick_color" getter="get_pick_color">
The currently selected color.
</member>
<member name="deferred_mode" type="bool" setter="set_deferred_mode" getter="is_deferred_mode">
- If [code]true[/code] the color will apply only after the user releases the mouse button, otherwise it will apply immediately even in mouse motion event (which can cause performance issues).
+ If [code]true[/code], the color will apply only after the user releases the mouse button, otherwise it will apply immediately even in mouse motion event (which can cause performance issues).
</member>
<member name="edit_alpha" type="bool" setter="set_edit_alpha" getter="is_editing_alpha">
- If [code]true[/code] shows an alpha channel slider (transparency).
+ If [code]true[/code], shows an alpha channel slider (transparency).
+ </member>
+ <member name="presets_enabled" type="bool" setter="set_presets_enabled" getter="are_presets_enabled">
+ </member>
+ <member name="presets_visible" type="bool" setter="set_presets_visible" getter="are_presets_visible">
+ </member>
+ <member name="hsv_mode" type="bool" setter="set_hsv_mode" getter="is_hsv_mode">
+ If [code]true[/code], allows to edit color with Hue/Saturation/Value sliders.
+ [b]Note:[/b] Cannot be enabled if raw mode is on.
</member>
<member name="raw_mode" type="bool" setter="set_raw_mode" getter="is_raw_mode">
- If [code]true[/code] allows the color R, G, B component values to go beyond 1.0, which can be used for certain special operations that require it (like tinting without darkening or rendering sprites in HDR).
+ If [code]true[/code], allows the color R, G, B component values to go beyond 1.0, which can be used for certain special operations that require it (like tinting without darkening or rendering sprites in HDR).
+ [b]Note:[/b] Cannot be enabled if hsv mode is on.
</member>
</members>
<signals>
@@ -43,6 +66,20 @@
Emitted when the color is changed.
</description>
</signal>
+ <signal name="preset_added">
+ <argument index="0" name="color" type="Color">
+ </argument>
+ <description>
+ Emitted when a preset is added.
+ </description>
+ </signal>
+ <signal name="preset_removed">
+ <argument index="0" name="color" type="Color">
+ </argument>
+ <description>
+ Emitted when a preset is removed.
+ </description>
+ </signal>
</signals>
<constants>
</constants>
diff --git a/doc/classes/ColorPickerButton.xml b/doc/classes/ColorPickerButton.xml
index 8bc6d05bd4..3e4911cac3 100644
--- a/doc/classes/ColorPickerButton.xml
+++ b/doc/classes/ColorPickerButton.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="ColorPickerButton" inherits="Button" category="Core" version="3.1">
+<class name="ColorPickerButton" inherits="Button" category="Core" version="3.2">
<brief_description>
Button that pops out a [ColorPicker].
</brief_description>
@@ -8,8 +8,6 @@
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
<method name="get_picker">
<return type="ColorPicker">
@@ -31,7 +29,7 @@
The currently selected color.
</member>
<member name="edit_alpha" type="bool" setter="set_edit_alpha" getter="is_editing_alpha">
- If [code]true[/code] the alpha channel in the displayed [ColorPicker] will be visible. Default value: [code]true[/code].
+ If [code]true[/code], the alpha channel in the displayed [ColorPicker] will be visible. Default value: [code]true[/code].
</member>
</members>
<signals>
diff --git a/doc/classes/ColorRect.xml b/doc/classes/ColorRect.xml
index e1bffb719e..d659ebdfcd 100644
--- a/doc/classes/ColorRect.xml
+++ b/doc/classes/ColorRect.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="ColorRect" inherits="Control" category="Core" version="3.1">
+<class name="ColorRect" inherits="Control" category="Core" version="3.2">
<brief_description>
Colored rectangle.
</brief_description>
@@ -8,8 +8,6 @@
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
</methods>
<members>
diff --git a/doc/classes/ConcavePolygonShape.xml b/doc/classes/ConcavePolygonShape.xml
index f4958d88d0..62d42f4eb4 100644
--- a/doc/classes/ConcavePolygonShape.xml
+++ b/doc/classes/ConcavePolygonShape.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="ConcavePolygonShape" inherits="Shape" category="Core" version="3.1">
+<class name="ConcavePolygonShape" inherits="Shape" category="Core" version="3.2">
<brief_description>
Concave polygon shape.
</brief_description>
@@ -8,14 +8,12 @@
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
<method name="get_faces" qualifiers="const">
<return type="PoolVector3Array">
</return>
<description>
- Return the faces (an array of triangles).
+ Returns the faces (an array of triangles).
</description>
</method>
<method name="set_faces">
diff --git a/doc/classes/ConcavePolygonShape2D.xml b/doc/classes/ConcavePolygonShape2D.xml
index a653872353..5414fe42c5 100644
--- a/doc/classes/ConcavePolygonShape2D.xml
+++ b/doc/classes/ConcavePolygonShape2D.xml
@@ -1,21 +1,19 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="ConcavePolygonShape2D" inherits="Shape2D" category="Core" version="3.1">
+<class name="ConcavePolygonShape2D" inherits="Shape2D" category="Core" version="3.2">
<brief_description>
Concave polygon 2D shape resource for physics.
</brief_description>
<description>
Concave polygon 2D shape resource for physics. It is made out of segments and is very optimal for complex polygonal concave collisions. It is really not advised to use for [RigidBody2D] nodes. A CollisionPolygon2D in convex decomposition mode (solids) or several convex objects are advised for that instead. Otherwise, a concave polygon 2D shape is better for static collisions.
- The main difference between a [ConvexPolygonShape2D] and a [code]ConcavePolygonShape2D[/code] is that a concave polygon assumes it is concave and uses a more complex method of collision detection, and a convex one forces itself to be convex in order to speed up collision detection.
+ The main difference between a [ConvexPolygonShape2D] and a [ConcavePolygonShape2D] is that a concave polygon assumes it is concave and uses a more complex method of collision detection, and a convex one forces itself to be convex in order to speed up collision detection.
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
</methods>
<members>
<member name="segments" type="PoolVector2Array" setter="set_segments" getter="get_segments">
- The array of points that make up the [code]ConcavePolygonShape2D[/code]'s line segments.
+ The array of points that make up the [ConcavePolygonShape2D]'s line segments.
</member>
</members>
<constants>
diff --git a/doc/classes/ConeTwistJoint.xml b/doc/classes/ConeTwistJoint.xml
index d6b2f191a4..cd2289d715 100644
--- a/doc/classes/ConeTwistJoint.xml
+++ b/doc/classes/ConeTwistJoint.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="ConeTwistJoint" inherits="Joint" category="Core" version="3.1">
+<class name="ConeTwistJoint" inherits="Joint" category="Core" version="3.2">
<brief_description>
A twist joint between two 3D bodies.
</brief_description>
@@ -10,8 +10,6 @@
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
</methods>
<members>
@@ -28,7 +26,7 @@
<member name="swing_span" type="float" setter="_set_swing_span" getter="_get_swing_span">
Swing is rotation from side to side, around the axis perpendicular to the twist axis.
The swing span defines, how much rotation will not get corrected allong the swing axis.
- Could be defined as looseness in the [code]ConeTwistJoint[/code].
+ Could be defined as looseness in the [ConeTwistJoint].
If below 0.05, this behaviour is locked. Default value: [code]PI/4[/code].
</member>
<member name="twist_span" type="float" setter="_set_twist_span" getter="_get_twist_span">
@@ -40,7 +38,7 @@
<constant name="PARAM_SWING_SPAN" value="0" enum="Param">
Swing is rotation from side to side, around the axis perpendicular to the twist axis.
The swing span defines, how much rotation will not get corrected allong the swing axis.
- Could be defined as looseness in the [code]ConeTwistJoint[/code].
+ Could be defined as looseness in the [ConeTwistJoint].
If below 0.05, this behaviour is locked. Default value: [code]PI/4[/code].
</constant>
<constant name="PARAM_TWIST_SPAN" value="1" enum="Param">
diff --git a/doc/classes/ConfigFile.xml b/doc/classes/ConfigFile.xml
index 703043294b..68831a886a 100644
--- a/doc/classes/ConfigFile.xml
+++ b/doc/classes/ConfigFile.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="ConfigFile" inherits="Reference" category="Core" version="3.1">
+<class name="ConfigFile" inherits="Reference" category="Core" version="3.2">
<brief_description>
Helper class to handle INI-style files.
</brief_description>
@@ -29,8 +29,6 @@
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
<method name="erase_section">
<return type="void">
diff --git a/doc/classes/ConfirmationDialog.xml b/doc/classes/ConfirmationDialog.xml
index 461f48420a..6124bc29b0 100644
--- a/doc/classes/ConfirmationDialog.xml
+++ b/doc/classes/ConfirmationDialog.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="ConfirmationDialog" inherits="AcceptDialog" category="Core" version="3.1">
+<class name="ConfirmationDialog" inherits="AcceptDialog" category="Core" version="3.2">
<brief_description>
Dialog for confirmation of actions.
</brief_description>
@@ -8,14 +8,12 @@
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
<method name="get_cancel">
<return type="Button">
</return>
<description>
- Return the cancel button.
+ Returns the cancel button.
</description>
</method>
</methods>
diff --git a/doc/classes/Container.xml b/doc/classes/Container.xml
index db365db233..8a3aac88b5 100644
--- a/doc/classes/Container.xml
+++ b/doc/classes/Container.xml
@@ -1,16 +1,14 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="Container" inherits="Control" category="Core" version="3.1">
+<class name="Container" inherits="Control" category="Core" version="3.2">
<brief_description>
Base node for containers.
</brief_description>
<description>
- Base node for containers. A [code]Container[/code] contains other controls and automatically arranges them in a certain way.
+ Base node for containers. A [Container] contains other controls and automatically arranges them in a certain way.
A Control can inherit this to create custom container classes.
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
<method name="fit_child_in_rect">
<return type="void">
diff --git a/doc/classes/Control.xml b/doc/classes/Control.xml
index 76a475e49d..fea706987c 100644
--- a/doc/classes/Control.xml
+++ b/doc/classes/Control.xml
@@ -1,23 +1,21 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="Control" inherits="CanvasItem" category="Core" version="3.1">
+<class name="Control" inherits="CanvasItem" category="Core" version="3.2">
<brief_description>
All User Interface nodes inherit from Control. A control's anchors and margins adapt its position and size relative to its parent.
</brief_description>
<description>
- Base class for all User Interface or [i]UI[/i] related nodes. [code]Control[/code] features a bounding rectangle that defines its extents, an anchor position relative to its parent and margins that represent an offset to the anchor. The margins update automatically when the node, any of its parents, or the screen size change.
- For more information on Godot's UI system, anchors, margins, and containers, see the related tutorials in the manual. To build flexible UIs, you'll need a mix of UI elements that inherit from [code]Control[/code] and [Container] nodes.
+ Base class for all User Interface or [i]UI[/i] related nodes. [Control] features a bounding rectangle that defines its extents, an anchor position relative to its parent control or the current viewport, and margins that represent an offset to the anchor. The margins update automatically when the node, any of its parents, or the screen size change.
+ For more information on Godot's UI system, anchors, margins, and containers, see the related tutorials in the manual. To build flexible UIs, you'll need a mix of UI elements that inherit from [Control] and [Container] nodes.
[b]User Interface nodes and input[/b]
Godot sends input events to the scene's root node first, by calling [method Node._input]. [method Node._input] forwards the event down the node tree to the nodes under the mouse cursor, or on keyboard focus. To do so, it calls [method MainLoop._input_event]. Call [method accept_event] so no other node receives the event. Once you accepted an input, it becomes handled so [method Node._unhandled_input] will not process it.
- Only one [code]Control[/code] node can be in keyboard focus. Only the node in focus will receive keyboard events. To get the focus, call [method grab_focus]. [code]Control[/code] nodes lose focus when another node grabs it, or if you hide the node in focus.
- Set [member mouse_filter] to MOUSE_FILTER_IGNORE to tell a [code]Control[/code] node to ignore mouse or touch events. You'll need it if you place an icon on top of a button.
- [Theme] resources change the Control's appearance. If you change the [Theme] on a [code]Control[/code] node, it affects all of its children. To override some of the theme's parameters, call one of the [code]add_*_override[/code] methods, like [method add_font_override]. You can override the theme with the inspector.
+ Only one [Control] node can be in keyboard focus. Only the node in focus will receive keyboard events. To get the focus, call [method grab_focus]. [Control] nodes lose focus when another node grabs it, or if you hide the node in focus.
+ Set [member mouse_filter] to [constant MOUSE_FILTER_IGNORE] to tell a [Control] node to ignore mouse or touch events. You'll need it if you place an icon on top of a button.
+ [Theme] resources change the Control's appearance. If you change the [Theme] on a [Control] node, it affects all of its children. To override some of the theme's parameters, call one of the [code]add_*_override[/code] methods, like [method add_font_override]. You can override the theme with the inspector.
</description>
<tutorials>
<link>https://docs.godotengine.org/en/latest/tutorials/gui/index.html</link>
<link>https://docs.godotengine.org/en/latest/tutorials/2d/custom_drawing_in_2d.html</link>
</tutorials>
- <demos>
- </demos>
<methods>
<method name="_clips_input" qualifiers="virtual">
<return type="bool">
@@ -120,7 +118,7 @@
<argument index="1" name="stylebox" type="StyleBox">
</argument>
<description>
- Overrides the [code]name[/code] [Stylebox] in the [member theme] resource the node uses. If [code]stylebox[/code] is empty, Godot clears the override.
+ Overrides the [code]name[/code] [StyleBox] in the [member theme] resource the node uses. If [code]stylebox[/code] is empty, Godot clears the override.
</description>
</method>
<method name="can_drop_data" qualifiers="virtual">
@@ -223,7 +221,7 @@
<argument index="0" name="position" type="Vector2">
</argument>
<description>
- Godot calls this method to get data that can be dragged and dropped onto controls that expect drop data. Return null if there is no data to drag. Controls that want to receive drop data should implement [method can_drop_data] and [method drop_data]. [code]position[/code] is local to this control. Drag may be forced with [method force_drag].
+ Godot calls this method to get data that can be dragged and dropped onto controls that expect drop data. Returns null if there is no data to drag. Controls that want to receive drop data should implement [method can_drop_data] and [method drop_data]. [code]position[/code] is local to this control. Drag may be forced with [method force_drag].
A preview that will follow the mouse that should represent the data can be set with [method set_drag_preview]. A good time to set the preview is in this method.
[codeblock]
extends Control
@@ -340,7 +338,7 @@
<return type="void">
</return>
<description>
- Steal the focus from another control and become the focused control (see [method set_focus_mode]).
+ Steal the focus from another control and become the focused control (see [member focus_mode]).
</description>
</method>
<method name="has_color" qualifiers="const">
@@ -514,7 +512,7 @@
</return>
<argument index="0" name="preset" type="int" enum="Control.LayoutPreset">
</argument>
- <argument index="1" name="keep_margin" type="bool" default="false">
+ <argument index="1" name="keep_margins" type="bool" default="false">
</argument>
<description>
</description>
@@ -576,6 +574,16 @@
Sets [member margin_right] and [member margin_bottom] at the same time.
</description>
</method>
+ <method name="set_global_position">
+ <return type="void">
+ </return>
+ <argument index="0" name="position" type="Vector2">
+ </argument>
+ <argument index="1" name="keep_margins" type="bool" default="false">
+ </argument>
+ <description>
+ </description>
+ </method>
<method name="set_margins_preset">
<return type="void">
</return>
@@ -588,6 +596,16 @@
<description>
</description>
</method>
+ <method name="set_position">
+ <return type="void">
+ </return>
+ <argument index="0" name="position" type="Vector2">
+ </argument>
+ <argument index="1" name="keep_margins" type="bool" default="false">
+ </argument>
+ <description>
+ </description>
+ </method>
<method name="set_rotation">
<return type="void">
</return>
@@ -597,6 +615,16 @@
Sets the rotation (in radians).
</description>
</method>
+ <method name="set_size">
+ <return type="void">
+ </return>
+ <argument index="0" name="size" type="Vector2">
+ </argument>
+ <argument index="1" name="keep_margins" type="bool" default="false">
+ </argument>
+ <description>
+ </description>
+ </method>
<method name="show_modal">
<return type="void">
</return>
@@ -617,67 +645,76 @@
</methods>
<members>
<member name="anchor_bottom" type="float" setter="_set_anchor" getter="get_anchor">
- Anchors the bottom edge of the node to the origin, the center, or the end of its parent container. It changes how the bottom margin updates when the node moves or changes size. Use one of the [code]ANCHOR_*[/code] constants. Default value: [code]ANCHOR_BEGIN[/code].
+ Anchors the bottom edge of the node to the origin, the center, or the end of its parent control. It changes how the bottom margin updates when the node moves or changes size. You can use one of the [code]ANCHOR_*[/code] constants for convenience. Default value: [code]ANCHOR_BEGIN[/code].
</member>
<member name="anchor_left" type="float" setter="_set_anchor" getter="get_anchor">
- Anchors the left edge of the node to the origin, the center or the end of its parent container. It changes how the left margin updates when the node moves or changes size. Use one of the [code]ANCHOR_*[/code] constants. Default value: [code]ANCHOR_BEGIN[/code].
+ Anchors the left edge of the node to the origin, the center or the end of its parent control. It changes how the left margin updates when the node moves or changes size. You can use one of the [code]ANCHOR_*[/code] constants for convenience.Default value: [code]ANCHOR_BEGIN[/code].
</member>
<member name="anchor_right" type="float" setter="_set_anchor" getter="get_anchor">
- Anchors the right edge of the node to the origin, the center or the end of its parent container. It changes how the right margin updates when the node moves or changes size. Use one of the [code]ANCHOR_*[/code] constants. Default value: [code]ANCHOR_BEGIN[/code].
+ Anchors the right edge of the node to the origin, the center or the end of its parent control. It changes how the right margin updates when the node moves or changes size. You can use one of the [code]ANCHOR_*[/code] constants for convenience. Default value: [code]ANCHOR_BEGIN[/code].
</member>
<member name="anchor_top" type="float" setter="_set_anchor" getter="get_anchor">
- Anchors the top edge of the node to the origin, the center or the end of its parent container. It changes how the top margin updates when the node moves or changes size. Use one of the [code]ANCHOR_*[/code] constants. Default value: [code]ANCHOR_BEGIN[/code].
+ Anchors the top edge of the node to the origin, the center or the end of its parent control. It changes how the top margin updates when the node moves or changes size. You can use one of the [code]ANCHOR_*[/code] constants for convenience. Default value: [code]ANCHOR_BEGIN[/code].
</member>
<member name="focus_mode" type="int" setter="set_focus_mode" getter="get_focus_mode" enum="Control.FocusMode">
The focus access mode for the control (None, Click or All). Only one Control can be focused at the same time, and it will receive keyboard signals.
</member>
<member name="focus_neighbour_bottom" type="NodePath" setter="set_focus_neighbour" getter="get_focus_neighbour">
- Tells Godot which node it should give keyboard focus to if the user presses Tab, the down arrow on the keyboard, or down on a gamepad. The node must be a [code]Control[/code]. If this property is not set, Godot will give focus to the closest [code]Control[/code] to the bottom of this one.
- If the user presses Tab, Godot will give focus to the closest node to the right first, then to the bottom. If the user presses Shift+Tab, Godot will look to the left of the node, then above it.
+ Tells Godot which node it should give keyboard focus to if the user presses the down arrow on the keyboard or down on a gamepad by default. You can change the key by editing the [code]ui_down[/code] input action. The node must be a [Control]. If this property is not set, Godot will give focus to the closest [Control] to the bottom of this one.
</member>
<member name="focus_neighbour_left" type="NodePath" setter="set_focus_neighbour" getter="get_focus_neighbour">
- Tells Godot which node it should give keyboard focus to if the user presses Shift+Tab, the left arrow on the keyboard or left on a gamepad. The node must be a [code]Control[/code]. If this property is not set, Godot will give focus to the closest [code]Control[/code] to the left of this one.
+ Tells Godot which node it should give keyboard focus to if the user presses the left arrow on the keyboard or left on a gamepad by default. You can change the key by editing the [code]ui_left[/code] input action. The node must be a [Control]. If this property is not set, Godot will give focus to the closest [Control] to the left of this one.
</member>
<member name="focus_neighbour_right" type="NodePath" setter="set_focus_neighbour" getter="get_focus_neighbour">
- Tells Godot which node it should give keyboard focus to if the user presses Tab, the right arrow on the keyboard or right on a gamepad. The node must be a [code]Control[/code]. If this property is not set, Godot will give focus to the closest [code]Control[/code] to the bottom of this one.
+ Tells Godot which node it should give keyboard focus to if the user presses the right arrow on the keyboard or right on a gamepad by default. You can change the key by editing the [code]ui_right[/code] input action. The node must be a [Control]. If this property is not set, Godot will give focus to the closest [Control] to the bottom of this one.
</member>
<member name="focus_neighbour_top" type="NodePath" setter="set_focus_neighbour" getter="get_focus_neighbour">
- Tells Godot which node it should give keyboard focus to if the user presses Shift+Tab, the top arrow on the keyboard or top on a gamepad. The node must be a [code]Control[/code]. If this property is not set, Godot will give focus to the closest [code]Control[/code] to the bottom of this one.
+ Tells Godot which node it should give keyboard focus to if the user presses the top arrow on the keyboard or top on a gamepad by default. You can change the key by editing the [code]ui_top[/code] input action. The node must be a [Control]. If this property is not set, Godot will give focus to the closest [Control] to the bottom of this one.
</member>
<member name="focus_next" type="NodePath" setter="set_focus_next" getter="get_focus_next">
+ Tells Godot which node it should give keyboard focus to if the user presses Tab on a keyboard by default. You can change the key by editing the [code]ui_focus_next[/code] input action.
+ If this property is not set, Godot will select a "best guess" based on surrounding nodes in the scene tree.
</member>
<member name="focus_previous" type="NodePath" setter="set_focus_previous" getter="get_focus_previous">
+ Tells Godot which node it should give keyboard focus to if the user presses Shift+Tab on a keyboard by default. You can change the key by editing the [code]ui_focus_prev[/code] input action.
+ If this property is not set, Godot will select a "best guess" based on surrounding nodes in the scene tree.
</member>
<member name="grow_horizontal" type="int" setter="set_h_grow_direction" getter="get_h_grow_direction" enum="Control.GrowDirection">
+ Controls the direction on the horizontal axis in which the control should grow if its horizontal minimum size is changed to be greater than its current size, as the control always has to be at least the minimum size.
</member>
<member name="grow_vertical" type="int" setter="set_v_grow_direction" getter="get_v_grow_direction" enum="Control.GrowDirection">
+ Controls the direction on the vertical axis in which the control should grow if its vertical minimum size is changed to be greater than its current size, as the control always has to be at least the minimum size.
</member>
<member name="hint_tooltip" type="String" setter="set_tooltip" getter="_get_tooltip">
- Changes the tooltip text. The tooltip appears when the user's mouse cursor stays idle over this control for a few moments.
+ Changes the tooltip text. The tooltip appears when the user's mouse cursor stays idle over this control for a few moments, provided that the [member mouse_filter] property is not [constant MOUSE_FILTER_IGNORE].
</member>
<member name="margin_bottom" type="float" setter="set_margin" getter="get_margin">
- Distance between the node's bottom edge and its parent container, based on [member anchor_bottom].
- Margins are often controlled by one or multiple parent [Container] nodes. Margins update automatically when you move or resize the node.
+ Distance between the node's bottom edge and its parent control, based on [member anchor_bottom].
+ Margins are often controlled by one or multiple parent [Container] nodes, so you should not modify them manually if your node is a direct child of a [Container]. Margins update automatically when you move or resize the node.
</member>
<member name="margin_left" type="float" setter="set_margin" getter="get_margin">
- Distance between the node's left edge and its parent container, based on [member anchor_left].
+ Distance between the node's left edge and its parent control, based on [member anchor_left].
+ Margins are often controlled by one or multiple parent [Container] nodes, so you should not modify them manually if your node is a direct child of a [Container]. Margins update automatically when you move or resize the node.
</member>
<member name="margin_right" type="float" setter="set_margin" getter="get_margin">
- Distance between the node's right edge and its parent container, based on [member anchor_right].
+ Distance between the node's right edge and its parent control, based on [member anchor_right].
+ Margins are often controlled by one or multiple parent [Container] nodes, so you should not modify them manually if your node is a direct child of a [Container]. Margins update automatically when you move or resize the node.
</member>
<member name="margin_top" type="float" setter="set_margin" getter="get_margin">
- Distance between the node's top edge and its parent container, based on [member anchor_top].
+ Distance between the node's top edge and its parent control, based on [member anchor_top].
+ Margins are often controlled by one or multiple parent [Container] nodes, so you should not modify them manually if your node is a direct child of a [Container]. Margins update automatically when you move or resize the node.
</member>
<member name="mouse_default_cursor_shape" type="int" setter="set_default_cursor_shape" getter="get_default_cursor_shape" enum="Control.CursorShape">
The default cursor shape for this control. Useful for Godot plugins and applications or games that use the system's mouse cursors.
[b]Note:[/b] On Linux, shapes may vary depending on the cursor theme of the system.
</member>
<member name="mouse_filter" type="int" setter="set_mouse_filter" getter="get_mouse_filter" enum="Control.MouseFilter">
- Controls whether the control will be able to receive mouse button input events through [method _gui_input] and how these events should be handled. Use one of the [code]MOUSE_FILTER_*[/code] constants. See the constants to learn what each does.
+ Controls whether the control will be able to receive mouse button input events through [method _gui_input] and how these events should be handled. Also controls whether the control can receive the [signal mouse_entered], and [signal mouse_exited] signals. See the constants to learn what each does.
</member>
<member name="rect_clip_content" type="bool" setter="set_clip_contents" getter="is_clipping_contents">
+ Enables whether rendering of children should be clipped to this control's rectangle. If [code]true[/code], parts of a child which would be visibly outside of this control's rectangle will not be rendered.
</member>
- <member name="rect_global_position" type="Vector2" setter="set_global_position" getter="get_global_position">
+ <member name="rect_global_position" type="Vector2" setter="_set_global_position" getter="get_global_position">
The node's global position, relative to the world (usually to the top-left corner of the window).
</member>
<member name="rect_min_size" type="Vector2" setter="set_custom_minimum_size" getter="get_custom_minimum_size">
@@ -686,7 +723,7 @@
<member name="rect_pivot_offset" type="Vector2" setter="set_pivot_offset" getter="get_pivot_offset">
By default, the node's pivot is its top-left corner. When you change its [member rect_scale], it will scale around this pivot. Set this property to [member rect_size] / 2 to center the pivot in the node's rectangle.
</member>
- <member name="rect_position" type="Vector2" setter="set_position" getter="get_position">
+ <member name="rect_position" type="Vector2" setter="_set_position" getter="get_position">
The node's position, relative to its parent. It corresponds to the rectangle's top-left corner. The property is not affected by [member rect_pivot_offset].
</member>
<member name="rect_rotation" type="float" setter="set_rotation_degrees" getter="get_rotation_degrees">
@@ -695,7 +732,7 @@
<member name="rect_scale" type="Vector2" setter="set_scale" getter="get_scale">
The node's scale, relative to its [member rect_size]. Change this property to scale the node around its [member rect_pivot_offset].
</member>
- <member name="rect_size" type="Vector2" setter="set_size" getter="get_size">
+ <member name="rect_size" type="Vector2" setter="_set_size" getter="get_size">
The size of the node's bounding rectangle, in pixels. [Container] nodes update this property automatically.
</member>
<member name="size_flags_horizontal" type="int" setter="set_h_size_flags" getter="get_h_size_flags">
@@ -708,7 +745,7 @@
Tells the parent [Container] nodes how they should resize and place the node on the Y axis. Use one of the [code]SIZE_*[/code] constants to change the flags. See the constants to learn what each does.
</member>
<member name="theme" type="Theme" setter="set_theme" getter="get_theme">
- Changing this property replaces the current [Theme] resource this node and all its [code]Control[/code] children use.
+ Changing this property replaces the current [Theme] resource this node and all its [Control] children use.
</member>
</members>
<signals>
@@ -736,7 +773,7 @@
</signal>
<signal name="modal_closed">
<description>
- Emitted when a modal [code]Control[/code] is closed. See [method show_modal].
+ Emitted when a modal [Control] is closed. See [method show_modal].
</description>
</signal>
<signal name="mouse_entered">
@@ -786,17 +823,19 @@
Sent when the node loses focus.
</constant>
<constant name="NOTIFICATION_THEME_CHANGED" value="45">
- Sent when the node's [member theme] changes, right before Godot redraws the control. Happens when you call one of the [code]add_*_override[/code]
+ Sent when the node's [member theme] changes, right before Godot redraws the control. Happens when you call one of the [code]add_*_override[/code] methods.
</constant>
<constant name="NOTIFICATION_MODAL_CLOSE" value="46">
- Sent when an open modal dialog closes. See [member show_modal].
+ Sent when an open modal dialog closes. See [method show_modal].
</constant>
<constant name="NOTIFICATION_SCROLL_BEGIN" value="47">
+ Sent when this node is inside a [ScrollContainer] which has begun being scrolled.
</constant>
<constant name="NOTIFICATION_SCROLL_END" value="48">
+ Sent when this node is inside a [ScrollContainer] which has stopped being scrolled.
</constant>
<constant name="CURSOR_ARROW" value="0" enum="CursorShape">
- Show the system's arrow mouse cursor when the user hovers the node. Use with [method set_default_cursor_shape].
+ Show the system's arrow mouse cursor when the user hovers the node. Use with [member mouse_default_cursor_shape].
</constant>
<constant name="CURSOR_IBEAM" value="1" enum="CursorShape">
Show the system's I-beam mouse cursor when the user hovers the node. The I-beam pointer has a shape similar to "I". It tells the user they can highlight or insert text.
@@ -847,52 +886,52 @@
Show the system's help mouse cursor when the user hovers the node, a question mark.
</constant>
<constant name="PRESET_TOP_LEFT" value="0" enum="LayoutPreset">
- Snap all 4 anchors to the top-left of the parent container's bounds. Use with [method set_anchors_preset].
+ Snap all 4 anchors to the top-left of the parent control's bounds. Use with [method set_anchors_preset].
</constant>
<constant name="PRESET_TOP_RIGHT" value="1" enum="LayoutPreset">
- Snap all 4 anchors to the top-right of the parent container's bounds. Use with [method set_anchors_preset].
+ Snap all 4 anchors to the top-right of the parent control's bounds. Use with [method set_anchors_preset].
</constant>
<constant name="PRESET_BOTTOM_LEFT" value="2" enum="LayoutPreset">
- Snap all 4 anchors to the bottom-left of the parent container's bounds. Use with [method set_anchors_preset].
+ Snap all 4 anchors to the bottom-left of the parent control's bounds. Use with [method set_anchors_preset].
</constant>
<constant name="PRESET_BOTTOM_RIGHT" value="3" enum="LayoutPreset">
- Snap all 4 anchors to the bottom-right of the parent container's bounds. Use with [method set_anchors_preset].
+ Snap all 4 anchors to the bottom-right of the parent control's bounds. Use with [method set_anchors_preset].
</constant>
<constant name="PRESET_CENTER_LEFT" value="4" enum="LayoutPreset">
- Snap all 4 anchors to the center of the left edge of the parent container's bounds. Use with [method set_anchors_preset].
+ Snap all 4 anchors to the center of the left edge of the parent control's bounds. Use with [method set_anchors_preset].
</constant>
<constant name="PRESET_CENTER_TOP" value="5" enum="LayoutPreset">
- Snap all 4 anchors to the center of the top edge of the parent container's bounds. Use with [method set_anchors_preset].
+ Snap all 4 anchors to the center of the top edge of the parent control's bounds. Use with [method set_anchors_preset].
</constant>
<constant name="PRESET_CENTER_RIGHT" value="6" enum="LayoutPreset">
- Snap all 4 anchors to the center of the right edge of the parent container's bounds. Use with [method set_anchors_preset].
+ Snap all 4 anchors to the center of the right edge of the parent control's bounds. Use with [method set_anchors_preset].
</constant>
<constant name="PRESET_CENTER_BOTTOM" value="7" enum="LayoutPreset">
- Snap all 4 anchors to the center of the bottom edge of the parent container's bounds. Use with [method set_anchors_preset].
+ Snap all 4 anchors to the center of the bottom edge of the parent control's bounds. Use with [method set_anchors_preset].
</constant>
<constant name="PRESET_CENTER" value="8" enum="LayoutPreset">
- Snap all 4 anchors to the center of the parent container's bounds. Use with [method set_anchors_preset].
+ Snap all 4 anchors to the center of the parent control's bounds. Use with [method set_anchors_preset].
</constant>
<constant name="PRESET_LEFT_WIDE" value="9" enum="LayoutPreset">
- Snap all 4 anchors to the left edge of the parent container. The left margin becomes relative to the left edge and the top margin relative to the top left corner of the node's parent. Use with [method set_anchors_preset].
+ Snap all 4 anchors to the left edge of the parent control. The left margin becomes relative to the left edge and the top margin relative to the top left corner of the node's parent. Use with [method set_anchors_preset].
</constant>
<constant name="PRESET_TOP_WIDE" value="10" enum="LayoutPreset">
- Snap all 4 anchors to the top edge of the parent container. The left margin becomes relative to the top left corner, the top margin relative to the top edge, and the right margin relative to the top right corner of the node's parent. Use with [method set_anchors_preset].
+ Snap all 4 anchors to the top edge of the parent control. The left margin becomes relative to the top left corner, the top margin relative to the top edge, and the right margin relative to the top right corner of the node's parent. Use with [method set_anchors_preset].
</constant>
<constant name="PRESET_RIGHT_WIDE" value="11" enum="LayoutPreset">
- Snap all 4 anchors to the right edge of the parent container. The right margin becomes relative to the right edge and the top margin relative to the top right corner of the node's parent. Use with [method set_anchors_preset].
+ Snap all 4 anchors to the right edge of the parent control. The right margin becomes relative to the right edge and the top margin relative to the top right corner of the node's parent. Use with [method set_anchors_preset].
</constant>
<constant name="PRESET_BOTTOM_WIDE" value="12" enum="LayoutPreset">
- Snap all 4 anchors to the bottom edge of the parent container. The left margin becomes relative to the bottom left corner, the bottom margin relative to the bottom edge, and the right margin relative to the bottom right corner of the node's parent. Use with [method set_anchors_preset].
+ Snap all 4 anchors to the bottom edge of the parent control. The left margin becomes relative to the bottom left corner, the bottom margin relative to the bottom edge, and the right margin relative to the bottom right corner of the node's parent. Use with [method set_anchors_preset].
</constant>
<constant name="PRESET_VCENTER_WIDE" value="13" enum="LayoutPreset">
- Snap all 4 anchors to a vertical line that cuts the parent container in half. Use with [method set_anchors_preset].
+ Snap all 4 anchors to a vertical line that cuts the parent control in half. Use with [method set_anchors_preset].
</constant>
<constant name="PRESET_HCENTER_WIDE" value="14" enum="LayoutPreset">
- Snap all 4 anchors to a horizontal line that cuts the parent container in half. Use with [method set_anchors_preset].
+ Snap all 4 anchors to a horizontal line that cuts the parent control in half. Use with [method set_anchors_preset].
</constant>
<constant name="PRESET_WIDE" value="15" enum="LayoutPreset">
- Snap all 4 anchors to the respective corners of the parent container. Set all 4 margins to 0 after you applied this preset and the [code]Control[/code] will fit its parent container. Use with [method set_anchors_preset].
+ Snap all 4 anchors to the respective corners of the parent control. Set all 4 margins to 0 after you applied this preset and the [Control] will fit its parent control. This is equivalent to to the "Full Rect" layout option in the editor. Use with [method set_anchors_preset].
</constant>
<constant name="PRESET_MODE_MINSIZE" value="0" enum="LayoutPresetMode">
</constant>
@@ -918,19 +957,22 @@
Tells the parent [Container] to align the node with its end, either the bottom or the right edge. It doesn't work with the fill or expand size flags. Use with [member size_flags_horizontal] and [member size_flags_vertical].
</constant>
<constant name="MOUSE_FILTER_STOP" value="0" enum="MouseFilter">
- The control will receive mouse button input events through [method _gui_input] if clicked on. These events are automatically marked as handled and they will not propagate further to other controls.
+ The control will receive mouse button input events through [method _gui_input] if clicked on. And the control will receive the [signal mouse_entered] and [signal mouse_exited] signals. These events are automatically marked as handled and they will not propagate further to other controls. This also results in blocking signals in other controls.
</constant>
<constant name="MOUSE_FILTER_PASS" value="1" enum="MouseFilter">
- The control will receive mouse button input events through [method _gui_input] if clicked on. If this control does not handle the event, the parent control (if any) will be considered for a mouse click, and so on until there is no more parent control to potentially handle it. Even if no control handled it at all, the event will still be handled automatically.
+ The control will receive mouse button input events through [method _gui_input] if clicked on. And the control will receive the [signal mouse_entered] and [signal mouse_exited] signals. If this control does not handle the event, the parent control (if any) will be considered, and so on until there is no more parent control to potentially handle it. This also allows signals to fire in other controls. Even if no control handled it at all, the event will still be handled automatically, so unhandled input will not be fired.
</constant>
<constant name="MOUSE_FILTER_IGNORE" value="2" enum="MouseFilter">
- The control will not receive mouse button input events through [method _gui_input] and will not block other controls from receiving these events. These events will also not be handled automatically.
+ The control will not receive mouse button input events through [method _gui_input]. Also the control will not receive the [signal mouse_entered] nor [signal mouse_exited] signals. This will not block other controls from receiving these events or firing the signals. Ignored events will not be handled automatically.
</constant>
<constant name="GROW_DIRECTION_BEGIN" value="0" enum="GrowDirection">
+ The control will grow to the left or top to make up if its minimum size is changed to be greater than its current size on the respective axis.
</constant>
<constant name="GROW_DIRECTION_END" value="1" enum="GrowDirection">
+ The control will grow to the right or bottom to make up if its minimum size is changed to be greater than its current size on the respective axis.
</constant>
<constant name="GROW_DIRECTION_BOTH" value="2" enum="GrowDirection">
+ The control will grow in both directions equally to make up if its minimum size is changed to be greater than its current size.
</constant>
<constant name="ANCHOR_BEGIN" value="0" enum="Anchor">
Snaps one of the 4 anchor's sides to the origin of the node's [code]Rect[/code], in the top left. Use it with one of the [code]anchor_*[/code] member variables, like [member anchor_left]. To change all 4 anchors at once, use [method set_anchors_preset].
diff --git a/doc/classes/ConvexPolygonShape.xml b/doc/classes/ConvexPolygonShape.xml
index 757b053ffe..31b4d08213 100644
--- a/doc/classes/ConvexPolygonShape.xml
+++ b/doc/classes/ConvexPolygonShape.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="ConvexPolygonShape" inherits="Shape" category="Core" version="3.1">
+<class name="ConvexPolygonShape" inherits="Shape" category="Core" version="3.2">
<brief_description>
Convex polygon shape for 3D physics.
</brief_description>
@@ -8,8 +8,6 @@
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
</methods>
<members>
diff --git a/doc/classes/ConvexPolygonShape2D.xml b/doc/classes/ConvexPolygonShape2D.xml
index 6b31149c2f..7add252481 100644
--- a/doc/classes/ConvexPolygonShape2D.xml
+++ b/doc/classes/ConvexPolygonShape2D.xml
@@ -1,16 +1,14 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="ConvexPolygonShape2D" inherits="Shape2D" category="Core" version="3.1">
+<class name="ConvexPolygonShape2D" inherits="Shape2D" category="Core" version="3.2">
<brief_description>
Convex Polygon Shape for 2D physics.
</brief_description>
<description>
Convex Polygon Shape for 2D physics. A convex polygon, whatever its shape, is internally decomposed into as many convex polygons as needed to ensure all collision checks against it are always done on convex polygons (which are faster to check).
- The main difference between a [code]ConvexPolygonShape2D[/code] and a [ConcavePolygonShape2D] is that a concave polygon assumes it is concave and uses a more complex method of collision detection, and a convex one forces itself to be convex in order to speed up collision detection.
+ The main difference between a [ConvexPolygonShape2D] and a [ConcavePolygonShape2D] is that a concave polygon assumes it is concave and uses a more complex method of collision detection, and a convex one forces itself to be convex in order to speed up collision detection.
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
<method name="set_point_cloud">
<return type="void">
@@ -18,7 +16,7 @@
<argument index="0" name="point_cloud" type="PoolVector2Array">
</argument>
<description>
- Currently, this method does nothing.
+ Based on the set of points provided, this creates and assigns the [member points] property using the convex hull algorithm. Removing all unneeded points. See [method Geometry.convex_hull_2d] for details.
</description>
</method>
</methods>
diff --git a/doc/classes/CubeMap.xml b/doc/classes/CubeMap.xml
index ac5359738e..f5d2823115 100644
--- a/doc/classes/CubeMap.xml
+++ b/doc/classes/CubeMap.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="CubeMap" inherits="Resource" category="Core" version="3.1">
+<class name="CubeMap" inherits="Resource" category="Core" version="3.2">
<brief_description>
A CubeMap is a 6 sided 3D texture.
</brief_description>
@@ -8,14 +8,12 @@
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
<method name="get_height" qualifiers="const">
<return type="int">
</return>
<description>
- Returns the [code]CubeMap[/code]'s height.
+ Returns the [CubeMap]'s height.
</description>
</method>
<method name="get_side" qualifiers="const">
@@ -24,14 +22,14 @@
<argument index="0" name="side" type="int" enum="CubeMap.Side">
</argument>
<description>
- Returns an [Image] for a side of the [code]CubeMap[/code] using one of the [code]SIDE_*[/code] constants or an integer 0-5.
+ Returns an [Image] for a side of the [CubeMap] using one of the [code]SIDE_*[/code] constants or an integer 0-5.
</description>
</method>
<method name="get_width" qualifiers="const">
<return type="int">
</return>
<description>
- Returns the [code]CubeMap[/code]'s width.
+ Returns the [CubeMap]'s width.
</description>
</method>
<method name="set_side">
@@ -42,48 +40,48 @@
<argument index="1" name="image" type="Image">
</argument>
<description>
- Sets an [Image] for a side of the [code]CubeMap[/code] using one of the [code]SIDE_*[/code] constants or an integer 0-5.
+ Sets an [Image] for a side of the [CubeMap] using one of the [code]SIDE_*[/code] constants or an integer 0-5.
</description>
</method>
</methods>
<members>
<member name="flags" type="int" setter="set_flags" getter="get_flags">
- The render flags for the [code]CubeMap[/code]. See the [code]FLAG_*[/code] constants for details.
+ The render flags for the [CubeMap]. See the [code]FLAG_*[/code] constants for details.
</member>
<member name="lossy_storage_quality" type="float" setter="set_lossy_storage_quality" getter="get_lossy_storage_quality">
- The lossy storage quality of the [code]CubeMap[/code] if the storage mode is set to STORAGE_COMPRESS_LOSSY.
+ The lossy storage quality of the [CubeMap] if the storage mode is set to STORAGE_COMPRESS_LOSSY.
</member>
<member name="storage_mode" type="int" setter="set_storage" getter="get_storage" enum="CubeMap.Storage">
- The [code]CubeMap[/code]'s storage mode. See [code]STORAGE_*[/code] constants.
+ The [CubeMap]'s storage mode. See [code]STORAGE_*[/code] constants.
</member>
</members>
<constants>
<constant name="STORAGE_RAW" value="0" enum="Storage">
- Store the [code]CubeMap[/code] without any compression.
+ Store the [CubeMap] without any compression.
</constant>
<constant name="STORAGE_COMPRESS_LOSSY" value="1" enum="Storage">
- Store the [code]CubeMap[/code] with strong compression that reduces image quality.
+ Store the [CubeMap] with strong compression that reduces image quality.
</constant>
<constant name="STORAGE_COMPRESS_LOSSLESS" value="2" enum="Storage">
- Store the [code]CubeMap[/code] with moderate compression that doesn't reduce image quality.
+ Store the [CubeMap] with moderate compression that doesn't reduce image quality.
</constant>
<constant name="SIDE_LEFT" value="0" enum="Side">
- Identifier for the left face of the [code]CubeMap[/code].
+ Identifier for the left face of the [CubeMap].
</constant>
<constant name="SIDE_RIGHT" value="1" enum="Side">
- Identifier for the right face of the [code]CubeMap[/code].
+ Identifier for the right face of the [CubeMap].
</constant>
<constant name="SIDE_BOTTOM" value="2" enum="Side">
- Identifier for the bottom face of the [code]CubeMap[/code].
+ Identifier for the bottom face of the [CubeMap].
</constant>
<constant name="SIDE_TOP" value="3" enum="Side">
- Identifier for the top face of the [code]CubeMap[/code].
+ Identifier for the top face of the [CubeMap].
</constant>
<constant name="SIDE_FRONT" value="4" enum="Side">
- Identifier for the front face of the [code]CubeMap[/code].
+ Identifier for the front face of the [CubeMap].
</constant>
<constant name="SIDE_BACK" value="5" enum="Side">
- Identifier for the back face of the [code]CubeMap[/code].
+ Identifier for the back face of the [CubeMap].
</constant>
<constant name="FLAG_MIPMAPS" value="1" enum="Flags">
Generate mipmaps, to enable smooth zooming out of the texture.
diff --git a/doc/classes/CubeMesh.xml b/doc/classes/CubeMesh.xml
index cef412bbde..6162474ed1 100644
--- a/doc/classes/CubeMesh.xml
+++ b/doc/classes/CubeMesh.xml
@@ -1,15 +1,14 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="CubeMesh" inherits="PrimitiveMesh" category="Core" version="3.1">
+<class name="CubeMesh" inherits="PrimitiveMesh" category="Core" version="3.2">
<brief_description>
Generate an axis-aligned cuboid [PrimitiveMesh].
</brief_description>
<description>
Generate an axis-aligned cuboid [PrimitiveMesh].
+ The cube's UV layout is arranged in a 3×2 layout that allows texturing each face individually. To apply the same texture on all faces, change the material's UV property to [code]Vector3(3, 2, 1)[/code].
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
</methods>
<members>
diff --git a/doc/classes/Curve.xml b/doc/classes/Curve.xml
index 490772e400..20afb03048 100644
--- a/doc/classes/Curve.xml
+++ b/doc/classes/Curve.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="Curve" inherits="Resource" category="Core" version="3.1">
+<class name="Curve" inherits="Resource" category="Core" version="3.2">
<brief_description>
A mathematic curve.
</brief_description>
@@ -8,8 +8,6 @@
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
<method name="add_point">
<return type="int">
diff --git a/doc/classes/Curve2D.xml b/doc/classes/Curve2D.xml
index ab9b27542c..3631711a8f 100644
--- a/doc/classes/Curve2D.xml
+++ b/doc/classes/Curve2D.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="Curve2D" inherits="Resource" category="Core" version="3.1">
+<class name="Curve2D" inherits="Resource" category="Core" version="3.2">
<brief_description>
Describes a Bezier curve in 2D space.
</brief_description>
@@ -9,8 +9,6 @@
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
<method name="add_point">
<return type="void">
@@ -24,8 +22,8 @@
<argument index="3" name="at_position" type="int" default="-1">
</argument>
<description>
- Adds a point to a curve, at "position", with control points "in" and "out".
- If "at_position" is given, the point is inserted before the point number "at_position", moving that point (and every point after) after the inserted point. If "at_position" is not given, or is an illegal value (at_position &lt;0 or at_position &gt;= [method get_point_count]), the point will be appended at the end of the point list.
+ Adds a point to a curve, at [code]position[/code], with control points [code]in[/code] and [code]out[/code].
+ If [code]at_position[/code] is given, the point is inserted before the point number [code]at_position[/code], moving that point (and every point after) after the inserted point. If [code]at_position[/code] is not given, or is an illegal value ([code]at_position &lt;0[/code] or [code]at_position &gt;= [method get_point_count][/code]), the point will be appended at the end of the point list.
</description>
</method>
<method name="clear_points">
@@ -39,7 +37,7 @@
<return type="float">
</return>
<description>
- Returns the total length of the curve, based on the cached points. Given enough density (see [method set_bake_interval]), it should be approximate enough.
+ Returns the total length of the curve, based on the cached points. Given enough density (see [member bake_interval]), it should be approximate enough.
</description>
</method>
<method name="get_baked_points" qualifiers="const">
@@ -82,7 +80,7 @@
<argument index="0" name="idx" type="int">
</argument>
<description>
- Returns the position of the control point leading to the vertex "idx". If the index is out of bounds, the function sends an error to the console, and returns (0, 0).
+ Returns the position of the control point leading to the vertex [code]idx[/code]. If the index is out of bounds, the function sends an error to the console, and returns [code](0, 0)[/code].
</description>
</method>
<method name="get_point_out" qualifiers="const">
@@ -91,7 +89,7 @@
<argument index="0" name="idx" type="int">
</argument>
<description>
- Returns the position of the control point leading out of the vertex "idx". If the index is out of bounds, the function sends an error to the console, and returns (0, 0).
+ Returns the position of the control point leading out of the vertex [code]idx[/code]. If the index is out of bounds, the function sends an error to the console, and returns [code](0, 0)[/code].
</description>
</method>
<method name="get_point_position" qualifiers="const">
@@ -100,7 +98,7 @@
<argument index="0" name="idx" type="int">
</argument>
<description>
- Returns the position of the vertex "idx". If the index is out of bounds, the function sends an error to the console, and returns (0, 0).
+ Returns the position of the vertex [code]idx[/code]. If the index is out of bounds, the function sends an error to the console, and returns [code](0, 0)[/code].
</description>
</method>
<method name="interpolate" qualifiers="const">
@@ -111,8 +109,8 @@
<argument index="1" name="t" type="float">
</argument>
<description>
- Returns the position between the vertex "idx" and the vertex "idx"+1, where "t" controls if the point is the first vertex (t = 0.0), the last vertex (t = 1.0), or in between. Values of "t" outside the range (0.0 &gt;= t &lt;=1) give strange, but predictable results.
- If "idx" is out of bounds it is truncated to the first or last vertex, and "t" is ignored. If the curve has no points, the function sends an error to the console, and returns (0, 0).
+ Returns the position between the vertex [code]idx[/code] and the vertex [code]idx + 1[/code], where [code]t[/code] controls if the point is the first vertex ([code]t = 0.0[/code]), the last vertex ([code]t = 1.0[/code]), or in between. Values of [code]t[/code] outside the range ([code]0.0 &gt;= t &lt;=1[/code]) give strange, but predictable results.
+ If [code]idx[/code] is out of bounds it is truncated to the first or last vertex, and [code]t[/code] is ignored. If the curve has no points, the function sends an error to the console, and returns [code](0, 0)[/code].
</description>
</method>
<method name="interpolate_baked" qualifiers="const">
@@ -123,8 +121,8 @@
<argument index="1" name="cubic" type="bool" default="false">
</argument>
<description>
- Returns a point within the curve at position "offset", where "offset" is measured as a pixel distance along the curve.
- To do that, it finds the two cached points where the "offset" lies between, then interpolates the values. This interpolation is cubic if "cubic" is set to true, or linear if set to false.
+ Returns a point within the curve at position [code]offset[/code], where [code]offset[/code] is measured as a pixel distance along the curve.
+ To do that, it finds the two cached points where the [code]offset[/code] lies between, then interpolates the values. This interpolation is cubic if [code]cubic[/code] is set to [code]true[/code], or linear if set to [code]false[/code].
Cubic interpolation tends to follow the curves better, but linear is faster (and often, precise enough).
</description>
</method>
@@ -134,7 +132,7 @@
<argument index="0" name="fofs" type="float">
</argument>
<description>
- Returns the position at the vertex "fofs". It calls [method interpolate] using the integer part of fofs as "idx", and its fractional part as "t".
+ Returns the position at the vertex [code]fofs[/code]. It calls [method interpolate] using the integer part of [code]fofs[/code] as [code]idx[/code], and its fractional part as [code]t[/code].
</description>
</method>
<method name="remove_point">
@@ -143,7 +141,7 @@
<argument index="0" name="idx" type="int">
</argument>
<description>
- Deletes the point "idx" from the curve. Sends an error to the console if "idx" is out of bounds.
+ Deletes the point [code]idx[/code] from the curve. Sends an error to the console if [code]idx[/code] is out of bounds.
</description>
</method>
<method name="set_point_in">
@@ -154,7 +152,7 @@
<argument index="1" name="position" type="Vector2">
</argument>
<description>
- Sets the position of the control point leading to the vertex "idx". If the index is out of bounds, the function sends an error to the console.
+ Sets the position of the control point leading to the vertex [code]idx[/code]. If the index is out of bounds, the function sends an error to the console.
</description>
</method>
<method name="set_point_out">
@@ -165,7 +163,7 @@
<argument index="1" name="position" type="Vector2">
</argument>
<description>
- Sets the position of the control point leading out of the vertex "idx". If the index is out of bounds, the function sends an error to the console.
+ Sets the position of the control point leading out of the vertex [code]idx[/code]. If the index is out of bounds, the function sends an error to the console.
</description>
</method>
<method name="set_point_position">
@@ -176,7 +174,7 @@
<argument index="1" name="position" type="Vector2">
</argument>
<description>
- Sets the position for the vertex "idx". If the index is out of bounds, the function sends an error to the console.
+ Sets the position for the vertex [code]idx[/code]. If the index is out of bounds, the function sends an error to the console.
</description>
</method>
<method name="tessellate" qualifiers="const">
@@ -189,8 +187,8 @@
<description>
Returns a list of points along the curve, with a curvature controlled point density. That is, the curvier parts will have more points than the straighter parts.
This approximation makes straight segments between each point, then subdivides those segments until the resulting shape is similar enough.
- "max_stages" controls how many subdivisions a curve segment may face before it is considered approximate enough. Each subdivision splits the segment in half, so the default 5 stages may mean up to 32 subdivisions per curve segment. Increase with care!
- "tolerance_degrees" controls how many degrees the midpoint of a segment may deviate from the real curve, before the segment has to be subdivided.
+ [code]max_stages[/code] controls how many subdivisions a curve segment may face before it is considered approximate enough. Each subdivision splits the segment in half, so the default 5 stages may mean up to 32 subdivisions per curve segment. Increase with care!
+ [code]tolerance_degrees[/code] controls how many degrees the midpoint of a segment may deviate from the real curve, before the segment has to be subdivided.
</description>
</method>
</methods>
diff --git a/doc/classes/Curve3D.xml b/doc/classes/Curve3D.xml
index c3ee309f0b..7fda8aaa93 100644
--- a/doc/classes/Curve3D.xml
+++ b/doc/classes/Curve3D.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="Curve3D" inherits="Resource" category="Core" version="3.1">
+<class name="Curve3D" inherits="Resource" category="Core" version="3.2">
<brief_description>
Describes a Bezier curve in 3D space.
</brief_description>
@@ -9,8 +9,6 @@
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
<method name="add_point">
<return type="void">
@@ -24,8 +22,8 @@
<argument index="3" name="at_position" type="int" default="-1">
</argument>
<description>
- Adds a point to a curve, at "position", with control points "in" and "out".
- If "at_position" is given, the point is inserted before the point number "at_position", moving that point (and every point after) after the inserted point. If "at_position" is not given, or is an illegal value (at_position &lt;0 or at_position &gt;= [method get_point_count]), the point will be appended at the end of the point list.
+ Adds a point to a curve, at [code]position[/code], with control points [code]in[/code] and [code]out[/code].
+ If [code]at_position[/code] is given, the point is inserted before the point number [code]at_position[/code], moving that point (and every point after) after the inserted point. If [code]at_position[/code] is not given, or is an illegal value ([code]at_position &lt;0[/code] or [code]at_position &gt;= [method get_point_count][/code]), the point will be appended at the end of the point list.
</description>
</method>
<method name="clear_points">
@@ -39,7 +37,7 @@
<return type="float">
</return>
<description>
- Returns the total length of the curve, based on the cached points. Given enough density (see [method set_bake_interval]), it should be approximate enough.
+ Returns the total length of the curve, based on the cached points. Given enough density (see [member bake_interval]), it should be approximate enough.
</description>
</method>
<method name="get_baked_points" qualifiers="const">
@@ -53,7 +51,7 @@
<return type="PoolRealArray">
</return>
<description>
- Returns the cache of tilts as a [RealArray].
+ Returns the cache of tilts as a [PoolRealArray].
</description>
</method>
<method name="get_baked_up_vectors" qualifiers="const">
@@ -70,7 +68,7 @@
<argument index="0" name="to_point" type="Vector3">
</argument>
<description>
- Returns the closest offset to [code]to_point[/code]. This offset is meant to be used in one of the interpolate_baked* methods.
+ Returns the closest offset to [code]to_point[/code]. This offset is meant to be used in [method interpolate_baked] or [method interpolate_baked_up_vector].
[code]to_point[/code] must be in this curve's local space.
</description>
</method>
@@ -97,7 +95,7 @@
<argument index="0" name="idx" type="int">
</argument>
<description>
- Returns the position of the control point leading to the vertex "idx". If the index is out of bounds, the function sends an error to the console, and returns (0, 0, 0).
+ Returns the position of the control point leading to the vertex [code]idx[/code]. If the index is out of bounds, the function sends an error to the console, and returns [code](0, 0, 0)[/code].
</description>
</method>
<method name="get_point_out" qualifiers="const">
@@ -106,7 +104,7 @@
<argument index="0" name="idx" type="int">
</argument>
<description>
- Returns the position of the control point leading out of the vertex "idx". If the index is out of bounds, the function sends an error to the console, and returns (0, 0, 0).
+ Returns the position of the control point leading out of the vertex [code]idx[/code]. If the index is out of bounds, the function sends an error to the console, and returns [code](0, 0, 0)[/code].
</description>
</method>
<method name="get_point_position" qualifiers="const">
@@ -115,7 +113,7 @@
<argument index="0" name="idx" type="int">
</argument>
<description>
- Returns the position of the vertex "idx". If the index is out of bounds, the function sends an error to the console, and returns (0, 0, 0).
+ Returns the position of the vertex [code]idx[/code]. If the index is out of bounds, the function sends an error to the console, and returns [code](0, 0, 0)[/code].
</description>
</method>
<method name="get_point_tilt" qualifiers="const">
@@ -124,7 +122,7 @@
<argument index="0" name="idx" type="int">
</argument>
<description>
- Returns the tilt angle in radians for the point "idx". If the index is out of bounds, the function sends an error to the console, and returns 0.
+ Returns the tilt angle in radians for the point [code]idx[/code]. If the index is out of bounds, the function sends an error to the console, and returns [code]0[/code].
</description>
</method>
<method name="interpolate" qualifiers="const">
@@ -135,8 +133,8 @@
<argument index="1" name="t" type="float">
</argument>
<description>
- Returns the position between the vertex "idx" and the vertex "idx"+1, where "t" controls if the point is the first vertex (t = 0.0), the last vertex (t = 1.0), or in between. Values of "t" outside the range (0.0 &gt;= t &lt;=1) give strange, but predictable results.
- If "idx" is out of bounds it is truncated to the first or last vertex, and "t" is ignored. If the curve has no points, the function sends an error to the console, and returns (0, 0, 0).
+ Returns the position between the vertex [code]idx[/code] and the vertex [code]idx + 1[/code], where [code]t[/code] controls if the point is the first vertex ([code]t = 0.0[/code]), the last vertex ([code]t = 1.0[/code]), or in between. Values of [code]t[/code] outside the range ([code]0.0 &gt;= t &lt;=1[/code]) give strange, but predictable results.
+ If [code]idx[/code] is out of bounds it is truncated to the first or last vertex, and [code]t[/code] is ignored. If the curve has no points, the function sends an error to the console, and returns [code](0, 0, 0)[/code].
</description>
</method>
<method name="interpolate_baked" qualifiers="const">
@@ -147,8 +145,8 @@
<argument index="1" name="cubic" type="bool" default="false">
</argument>
<description>
- Returns a point within the curve at position "offset", where "offset" is measured as a distance in 3D units along the curve.
- To do that, it finds the two cached points where the "offset" lies between, then interpolates the values. This interpolation is cubic if "cubic" is set to true, or linear if set to false.
+ Returns a point within the curve at position [code]offset[/code], where [code]offset[/code] is measured as a pixel distance along the curve.
+ To do that, it finds the two cached points where the [code]offset[/code] lies between, then interpolates the values. This interpolation is cubic if [code]cubic[/code] is set to [code]true[/code], or linear if set to [code]false[/code].
Cubic interpolation tends to follow the curves better, but linear is faster (and often, precise enough).
</description>
</method>
@@ -162,7 +160,7 @@
<description>
Returns an up vector within the curve at position [code]offset[/code], where [code]offset[/code] is measured as a distance in 3D units along the curve.
To do that, it finds the two cached up vectors where the [code]offset[/code] lies between, then interpolates the values. If [code]apply_tilt[/code] is [code]true[/code], an interpolated tilt is applied to the interpolated up vector.
- If the curve has no up vectors, the function sends an error to the console, and returns (0, 1, 0).
+ If the curve has no up vectors, the function sends an error to the console, and returns [code](0, 1, 0)[/code].
</description>
</method>
<method name="interpolatef" qualifiers="const">
@@ -171,7 +169,7 @@
<argument index="0" name="fofs" type="float">
</argument>
<description>
- Returns the position at the vertex "fofs". It calls [method interpolate] using the integer part of fofs as "idx", and its fractional part as "t".
+ Returns the position at the vertex [code]fofs[/code]. It calls [method interpolate] using the integer part of [code]fofs[/code] as [code]idx[/code], and its fractional part as [code]t[/code].
</description>
</method>
<method name="remove_point">
@@ -180,7 +178,7 @@
<argument index="0" name="idx" type="int">
</argument>
<description>
- Deletes the point "idx" from the curve. Sends an error to the console if "idx" is out of bounds.
+ Deletes the point [code]idx[/code] from the curve. Sends an error to the console if [code]idx[/code] is out of bounds.
</description>
</method>
<method name="set_point_in">
@@ -191,7 +189,7 @@
<argument index="1" name="position" type="Vector3">
</argument>
<description>
- Sets the position of the control point leading to the vertex "idx". If the index is out of bounds, the function sends an error to the console.
+ Sets the position of the control point leading to the vertex [code]idx[/code]. If the index is out of bounds, the function sends an error to the console.
</description>
</method>
<method name="set_point_out">
@@ -202,7 +200,7 @@
<argument index="1" name="position" type="Vector3">
</argument>
<description>
- Sets the position of the control point leading out of the vertex "idx". If the index is out of bounds, the function sends an error to the console.
+ Sets the position of the control point leading out of the vertex [code]idx[/code]. If the index is out of bounds, the function sends an error to the console.
</description>
</method>
<method name="set_point_position">
@@ -213,7 +211,7 @@
<argument index="1" name="position" type="Vector3">
</argument>
<description>
- Sets the position for the vertex "idx". If the index is out of bounds, the function sends an error to the console.
+ Sets the position for the vertex [code]idx[/code]. If the index is out of bounds, the function sends an error to the console.
</description>
</method>
<method name="set_point_tilt">
@@ -224,8 +222,8 @@
<argument index="1" name="tilt" type="float">
</argument>
<description>
- Sets the tilt angle in radians for the point "idx". If the index is out of bounds, the function sends an error to the console.
- The tilt controls the rotation along the look-at axis an object traveling the path would have. In the case of a curve controlling a [PathFollow] or [OrientedPathFollow], this tilt is an offset over the natural tilt the [PathFollow] or [OrientedPathFollow] calculates.
+ Sets the tilt angle in radians for the point [code]idx[/code]. If the index is out of bounds, the function sends an error to the console.
+ The tilt controls the rotation along the look-at axis an object traveling the path would have. In the case of a curve controlling a [PathFollow], this tilt is an offset over the natural tilt the [PathFollow] calculates.
</description>
</method>
<method name="tessellate" qualifiers="const">
@@ -238,8 +236,8 @@
<description>
Returns a list of points along the curve, with a curvature controlled point density. That is, the curvier parts will have more points than the straighter parts.
This approximation makes straight segments between each point, then subdivides those segments until the resulting shape is similar enough.
- "max_stages" controls how many subdivisions a curve segment may face before it is considered approximate enough. Each subdivision splits the segment in half, so the default 5 stages may mean up to 32 subdivisions per curve segment. Increase with care!
- "tolerance_degrees" controls how many degrees the midpoint of a segment may deviate from the real curve, before the segment has to be subdivided.
+ [code]max_stages[/code] controls how many subdivisions a curve segment may face before it is considered approximate enough. Each subdivision splits the segment in half, so the default 5 stages may mean up to 32 subdivisions per curve segment. Increase with care!
+ [code]tolerance_degrees[/code] controls how many degrees the midpoint of a segment may deviate from the real curve, before the segment has to be subdivided.
</description>
</method>
</methods>
@@ -248,7 +246,7 @@
The distance in meters between two adjacent cached points. Changing it forces the cache to be recomputed the next time the [method get_baked_points] or [method get_baked_length] function is called. The smaller the distance, the more points in the cache and the more memory it will consume, so use with care.
</member>
<member name="up_vector_enabled" type="bool" setter="set_up_vector_enabled" getter="is_up_vector_enabled">
- If [code]true[/code], the curve will bake up vectors used for orientation. See [OrientedPathFollow]. Changing it forces the cache to be recomputed.
+ If [code]true[/code], the curve will bake up vectors used for orientation. This is used when a [member PathFollow.rotation_mode] is set to [code]ROTATION_ORIENTED[/code], see [PathFollow] for details. Changing it forces the cache to be recomputed.
</member>
</members>
<constants>
diff --git a/doc/classes/CurveTexture.xml b/doc/classes/CurveTexture.xml
index 10e8a61f99..0184e1e6b6 100644
--- a/doc/classes/CurveTexture.xml
+++ b/doc/classes/CurveTexture.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="CurveTexture" inherits="Texture" category="Core" version="3.1">
+<class name="CurveTexture" inherits="Texture" category="Core" version="3.2">
<brief_description>
A texture that shows a curve.
</brief_description>
@@ -8,8 +8,6 @@
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
</methods>
<members>
diff --git a/doc/classes/CylinderMesh.xml b/doc/classes/CylinderMesh.xml
index 623830371a..dbdc7aeb92 100644
--- a/doc/classes/CylinderMesh.xml
+++ b/doc/classes/CylinderMesh.xml
@@ -1,15 +1,13 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="CylinderMesh" inherits="PrimitiveMesh" category="Core" version="3.1">
+<class name="CylinderMesh" inherits="PrimitiveMesh" category="Core" version="3.2">
<brief_description>
Class representing a cylindrical [PrimitiveMesh].
</brief_description>
<description>
- Class representing a cylindrical [PrimitiveMesh].
+ Class representing a cylindrical [PrimitiveMesh]. This class can be used to create cones by setting either the [member top_radius] or [member bottom_radius] properties to 0.0.
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
</methods>
<members>
diff --git a/doc/classes/CylinderShape.xml b/doc/classes/CylinderShape.xml
index a63cc8831e..847265ef25 100644
--- a/doc/classes/CylinderShape.xml
+++ b/doc/classes/CylinderShape.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="CylinderShape" inherits="Shape" category="Core" version="3.1">
+<class name="CylinderShape" inherits="Shape" category="Core" version="3.2">
<brief_description>
Cylinder shape for collisions.
</brief_description>
@@ -8,8 +8,6 @@
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
</methods>
<members>
diff --git a/doc/classes/DampedSpringJoint2D.xml b/doc/classes/DampedSpringJoint2D.xml
index 12e29cec32..d6973848e2 100644
--- a/doc/classes/DampedSpringJoint2D.xml
+++ b/doc/classes/DampedSpringJoint2D.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="DampedSpringJoint2D" inherits="Joint2D" category="Core" version="3.1">
+<class name="DampedSpringJoint2D" inherits="Joint2D" category="Core" version="3.2">
<brief_description>
Damped spring constraint for 2D physics.
</brief_description>
@@ -8,8 +8,6 @@
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
</methods>
<members>
diff --git a/doc/classes/Dictionary.xml b/doc/classes/Dictionary.xml
index a9e2a38dcf..ec70fd311b 100644
--- a/doc/classes/Dictionary.xml
+++ b/doc/classes/Dictionary.xml
@@ -1,15 +1,24 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="Dictionary" category="Built-In Types" version="3.1">
+<class name="Dictionary" category="Built-In Types" version="3.2">
<brief_description>
Dictionary type.
</brief_description>
<description>
Dictionary type. Associative container which contains values referenced by unique keys. Dictionaries are always passed by reference.
+ Erasing elements while iterating over them [b]is not supported[/b].
+ Creating a dictionary:
+ [codeblock]
+ var d = {4: 5, "A key": "A value", 28: [1, 2, 3]}
+ [/codeblock]
+ To add a key to an existing dictionary, access it like an existing key and assign to it:
+ [codeblock]
+ d[4] = "hello" # Add integer 4 as a key and assign the String "hello" as its value.
+ d["Godot"] = 3.01 # Add String "Godot" as a key and assign the value 3.01 to it.
+ [/codeblock]
</description>
<tutorials>
+ <link>https://docs.godotengine.org/en/latest/getting_started/scripting/gdscript/gdscript_basics.html#dictionary</link>
</tutorials>
- <demos>
- </demos>
<methods>
<method name="clear">
<description>
@@ -29,7 +38,7 @@
<return type="bool">
</return>
<description>
- Return true if the dictionary is empty.
+ Returns [code]true[/code] if the dictionary is empty.
</description>
</method>
<method name="erase">
@@ -38,7 +47,7 @@
<argument index="0" name="key" type="Variant">
</argument>
<description>
- Erase a dictionary key/value pair by key.
+ Erase a dictionary key/value pair by key. Returns [code]true[/code] if the given key was present in the dictionary, [code]false[/code] otherwise. Do not erase elements while iterating over the dictionary.
</description>
</method>
<method name="get">
@@ -49,7 +58,7 @@
<argument index="1" name="default" type="Variant" default="Null">
</argument>
<description>
- Returns the current value for the specified key in the [code]Dictionary[/code]. If the key does not exist, the method returns the value of the optional default argument, or Null if it is omitted.
+ Returns the current value for the specified key in the [Dictionary]. If the key does not exist, the method returns the value of the optional default argument, or Null if it is omitted.
</description>
</method>
<method name="has">
@@ -58,7 +67,7 @@
<argument index="0" name="key" type="Variant">
</argument>
<description>
- Return true if the dictionary has a given key.
+ Returns [code]true[/code] if the dictionary has a given key.
</description>
</method>
<method name="has_all">
@@ -67,35 +76,35 @@
<argument index="0" name="keys" type="Array">
</argument>
<description>
- Return true if the dictionary has all of the keys in the given array.
+ Returns [code]true[/code] if the dictionary has all of the keys in the given array.
</description>
</method>
<method name="hash">
<return type="int">
</return>
<description>
- Return a hashed integer value representing the dictionary contents.
+ Returns a hashed integer value representing the dictionary contents.
</description>
</method>
<method name="keys">
<return type="Array">
</return>
<description>
- Return the list of keys in the [code]Dictionary[/code].
+ Returns the list of keys in the [Dictionary].
</description>
</method>
<method name="size">
<return type="int">
</return>
<description>
- Return the size of the dictionary (in pairs).
+ Returns the size of the dictionary (in pairs).
</description>
</method>
<method name="values">
<return type="Array">
</return>
<description>
- Return the list of values in the [code]Dictionary[/code].
+ Returns the list of values in the [Dictionary].
</description>
</method>
</methods>
diff --git a/doc/classes/DirectionalLight.xml b/doc/classes/DirectionalLight.xml
index 86c8f2f03a..c6650a1641 100644
--- a/doc/classes/DirectionalLight.xml
+++ b/doc/classes/DirectionalLight.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="DirectionalLight" inherits="Light" category="Core" version="3.1">
+<class name="DirectionalLight" inherits="Light" category="Core" version="3.2">
<brief_description>
Directional light from a distance, as from the Sun.
</brief_description>
@@ -9,8 +9,6 @@
<tutorials>
<link>https://docs.godotengine.org/en/latest/tutorials/3d/lights_and_shadows.html</link>
</tutorials>
- <demos>
- </demos>
<methods>
</methods>
<members>
@@ -18,7 +16,7 @@
Amount of extra bias for shadow splits that are far away. If self shadowing occurs only on the splits far away, this value can fix them.
</member>
<member name="directional_shadow_blend_splits" type="bool" setter="set_blend_splits" getter="is_blend_splits_enabled">
- If [code]true[/code] shadow detail is sacrificed in exchange for smoother transitions between splits. Default value:[code]false[/code].
+ If [code]true[/code], shadow detail is sacrificed in exchange for smoother transitions between splits. Default value:[code]false[/code].
</member>
<member name="directional_shadow_depth_range" type="int" setter="set_shadow_depth_range" getter="get_shadow_depth_range" enum="DirectionalLight.ShadowDepthRange">
Optimizes shadow rendering for detail versus movement. See [enum ShadowDepthRange].
@@ -33,13 +31,13 @@
Can be used to fix special cases of self shadowing when objects are perpendicular to the light.
</member>
<member name="directional_shadow_split_1" type="float" setter="set_param" getter="get_param">
- The distance from camera to shadow split 1. Relative to [member directional_shadow_max_distance]. Only used in [enum directional_shadow_mode] SHADOW_PARALLEL_*_SPLITS.
+ The distance from camera to shadow split 1. Relative to [member directional_shadow_max_distance]. Only used when [member directional_shadow_mode] is one of the [code]SHADOW_PARALLEL_*_SPLITS[/code] constants.
</member>
<member name="directional_shadow_split_2" type="float" setter="set_param" getter="get_param">
- The distance from shadow split 1 to split 2. Relative to [member directional_shadow_max_distance]. Only used in [enum directional_shadow_mode] SHADOW_PARALLEL_*_SPLITS.
+ The distance from shadow split 1 to split 2. Relative to [member directional_shadow_max_distance]. Only used when [member directional_shadow_mode] is [code]SHADOW_PARALLEL_3_SPLITS[/code] or [code]SHADOW_PARALLEL_4_SPLITS[/code].
</member>
<member name="directional_shadow_split_3" type="float" setter="set_param" getter="get_param">
- The distance from shadow split 2 to split 3. Relative to [member directional_shadow_max_distance]. Only used in [enum directional_shadow_mode] SHADOW_PARALLEL_4_SPLITS.
+ The distance from shadow split 2 to split 3. Relative to [member directional_shadow_max_distance]. Only used when [member directional_shadow_mode] is [code]SHADOW_PARALLEL_4_SPLITS[/code].
</member>
</members>
<constants>
diff --git a/doc/classes/Directory.xml b/doc/classes/Directory.xml
index 57301f954f..54aac33652 100644
--- a/doc/classes/Directory.xml
+++ b/doc/classes/Directory.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="Directory" inherits="Reference" category="Core" version="3.1">
+<class name="Directory" inherits="Reference" category="Core" version="3.2">
<brief_description>
Type used to handle the filesystem.
</brief_description>
@@ -25,8 +25,6 @@
<tutorials>
<link>https://docs.godotengine.org/en/latest/getting_started/step_by_step/filesystem.html</link>
</tutorials>
- <demos>
- </demos>
<methods>
<method name="change_dir">
<return type="int" enum="Error">
@@ -54,7 +52,7 @@
<return type="bool">
</return>
<description>
- Return whether the current item processed with the last [method get_next] call is a directory ([code].[/code] and [code]..[/code] are considered directories).
+ Returns whether the current item processed with the last [method get_next] call is a directory ([code].[/code] and [code]..[/code] are considered directories).
</description>
</method>
<method name="dir_exists">
@@ -63,7 +61,7 @@
<argument index="0" name="path" type="String">
</argument>
<description>
- Return whether the target directory exists. The argument can be relative to the current directory, or an absolute path.
+ Returns whether the target directory exists. The argument can be relative to the current directory, or an absolute path.
</description>
</method>
<method name="file_exists">
@@ -72,14 +70,14 @@
<argument index="0" name="path" type="String">
</argument>
<description>
- Return whether the target file exists. The argument can be relative to the current directory, or an absolute path.
+ Returns whether the target file exists. The argument can be relative to the current directory, or an absolute path.
</description>
</method>
<method name="get_current_dir">
<return type="String">
</return>
<description>
- Return the absolute path to the currently opened directory (e.g. [code]res://folder[/code] or [code]C:\tmp\folder[/code]).
+ Returns the absolute path to the currently opened directory (e.g. [code]res://folder[/code] or [code]C:\tmp\folder[/code]).
</description>
</method>
<method name="get_current_drive">
@@ -109,7 +107,7 @@
<return type="String">
</return>
<description>
- Return the next element (file or directory) in the current directory (including [code].[/code] and [code]..[/code], unless [code]skip_navigational[/code] was given to [method list_dir_begin]).
+ Returns the next element (file or directory) in the current directory (including [code].[/code] and [code]..[/code], unless [code]skip_navigational[/code] was given to [method list_dir_begin]).
The name of the file or directory is returned (and not its full path). Once the stream has been fully processed, the method returns an empty String and closes the stream automatically (i.e. [method list_dir_end] would not be mandatory in such a case).
</description>
</method>
@@ -157,7 +155,7 @@
</argument>
<description>
Create a target directory and all necessary intermediate directories in its path, by calling [method make_dir] recursively. The argument can be relative to the current directory, or an absolute path.
- Return one of the error code constants defined in [@GlobalScope] (OK, FAILED or ERR_*).
+ Returns one of the error code constants defined in [@GlobalScope] (OK, FAILED or ERR_*).
</description>
</method>
<method name="open">
@@ -177,7 +175,7 @@
</argument>
<description>
Delete the target file or an empty directory. The argument can be relative to the current directory, or an absolute path. If the target directory is not empty, the operation will fail.
- Return one of the error code constants defined in [@GlobalScope] (OK or FAILED).
+ Returns one of the error code constants defined in [@GlobalScope] (OK or FAILED).
</description>
</method>
<method name="rename">
@@ -189,7 +187,7 @@
</argument>
<description>
Rename (move) the [i]from[/i] file to the [i]to[/i] destination. Both arguments should be paths to files, either relative or absolute. If the destination file exists and is not access-protected, it will be overwritten.
- Return one of the error code constants defined in [@GlobalScope] (OK or FAILED).
+ Returns one of the error code constants defined in [@GlobalScope] (OK or FAILED).
</description>
</method>
</methods>
diff --git a/doc/classes/DynamicFont.xml b/doc/classes/DynamicFont.xml
index 2e2904c16c..5fdc1ebb75 100644
--- a/doc/classes/DynamicFont.xml
+++ b/doc/classes/DynamicFont.xml
@@ -1,15 +1,19 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="DynamicFont" inherits="Font" category="Core" version="3.1">
+<class name="DynamicFont" inherits="Font" category="Core" version="3.2">
<brief_description>
DynamicFont renders vector font files at runtime.
</brief_description>
<description>
DynamicFont renders vector font files (such as TTF or OTF) dynamically at runtime instead of using a prerendered texture atlas like [BitmapFont]. This trades the faster loading time of [BitmapFont]s for the ability to change font parameters like size and spacing during runtime. [DynamicFontData] is used for referencing the font file paths.
+ [codeblock]
+ var dynamic_font = DynamicFont.new()
+ dynamic_font.font_data = load("res://BarlowCondensed-Bold.ttf")
+ dynamic_font.size = 64
+ $"Label".set("custom_fonts/font", dynamic_font)
+ [/codeblock]
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
<method name="add_fallback">
<return type="void">
@@ -81,10 +85,10 @@
The font size.
</member>
<member name="use_filter" type="bool" setter="set_use_filter" getter="get_use_filter">
- If [code]true[/code] filtering is used.
+ If [code]true[/code], filtering is used.
</member>
<member name="use_mipmaps" type="bool" setter="set_use_mipmaps" getter="get_use_mipmaps">
- If [code]true[/code] mipmapping is used.
+ If [code]true[/code], mipmapping is used.
</member>
</members>
<constants>
diff --git a/doc/classes/DynamicFontData.xml b/doc/classes/DynamicFontData.xml
index 5fcccf7db9..8eff5fb993 100644
--- a/doc/classes/DynamicFontData.xml
+++ b/doc/classes/DynamicFontData.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="DynamicFontData" inherits="Resource" category="Core" version="3.1">
+<class name="DynamicFontData" inherits="Resource" category="Core" version="3.2">
<brief_description>
Used with [DynamicFont] to describe the location of a font file.
</brief_description>
@@ -8,8 +8,6 @@
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
</methods>
<members>
diff --git a/doc/classes/EditorExportPlugin.xml b/doc/classes/EditorExportPlugin.xml
index a6b72d08ff..4e4e29dc4e 100644
--- a/doc/classes/EditorExportPlugin.xml
+++ b/doc/classes/EditorExportPlugin.xml
@@ -1,13 +1,11 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="EditorExportPlugin" inherits="Reference" category="Core" version="3.1">
+<class name="EditorExportPlugin" inherits="Reference" category="Core" version="3.2">
<brief_description>
</brief_description>
<description>
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
<method name="_export_begin" qualifiers="virtual">
<return type="void">
@@ -23,6 +21,12 @@
<description>
</description>
</method>
+ <method name="_export_end" qualifiers="virtual">
+ <return type="void">
+ </return>
+ <description>
+ </description>
+ </method>
<method name="_export_file" qualifiers="virtual">
<return type="void">
</return>
diff --git a/doc/classes/EditorFeatureProfile.xml b/doc/classes/EditorFeatureProfile.xml
new file mode 100644
index 0000000000..410b71a43e
--- /dev/null
+++ b/doc/classes/EditorFeatureProfile.xml
@@ -0,0 +1,129 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<class name="EditorFeatureProfile" inherits="Reference" category="Core" version="3.2">
+ <brief_description>
+ </brief_description>
+ <description>
+ </description>
+ <tutorials>
+ </tutorials>
+ <methods>
+ <method name="get_feature_name">
+ <return type="String">
+ </return>
+ <argument index="0" name="feature" type="int" enum="EditorFeatureProfile.Feature">
+ </argument>
+ <description>
+ </description>
+ </method>
+ <method name="is_class_disabled" qualifiers="const">
+ <return type="bool">
+ </return>
+ <argument index="0" name="class_name" type="String">
+ </argument>
+ <description>
+ </description>
+ </method>
+ <method name="is_class_editor_disabled" qualifiers="const">
+ <return type="bool">
+ </return>
+ <argument index="0" name="class_name" type="String">
+ </argument>
+ <description>
+ </description>
+ </method>
+ <method name="is_class_property_disabled" qualifiers="const">
+ <return type="bool">
+ </return>
+ <argument index="0" name="class_name" type="String">
+ </argument>
+ <argument index="1" name="arg1" type="String">
+ </argument>
+ <description>
+ </description>
+ </method>
+ <method name="is_feature_disabled" qualifiers="const">
+ <return type="bool">
+ </return>
+ <argument index="0" name="feature" type="int" enum="EditorFeatureProfile.Feature">
+ </argument>
+ <description>
+ </description>
+ </method>
+ <method name="load_from_file">
+ <return type="int" enum="Error">
+ </return>
+ <argument index="0" name="path" type="String">
+ </argument>
+ <description>
+ </description>
+ </method>
+ <method name="save_to_file">
+ <return type="int" enum="Error">
+ </return>
+ <argument index="0" name="path" type="String">
+ </argument>
+ <description>
+ </description>
+ </method>
+ <method name="set_disable_class">
+ <return type="void">
+ </return>
+ <argument index="0" name="class_name" type="String">
+ </argument>
+ <argument index="1" name="disable" type="bool">
+ </argument>
+ <description>
+ </description>
+ </method>
+ <method name="set_disable_class_editor">
+ <return type="void">
+ </return>
+ <argument index="0" name="class_name" type="String">
+ </argument>
+ <argument index="1" name="disable" type="bool">
+ </argument>
+ <description>
+ </description>
+ </method>
+ <method name="set_disable_class_property">
+ <return type="void">
+ </return>
+ <argument index="0" name="class_name" type="String">
+ </argument>
+ <argument index="1" name="property" type="String">
+ </argument>
+ <argument index="2" name="arg2" type="bool">
+ </argument>
+ <description>
+ </description>
+ </method>
+ <method name="set_disable_feature">
+ <return type="void">
+ </return>
+ <argument index="0" name="feature" type="int" enum="EditorFeatureProfile.Feature">
+ </argument>
+ <argument index="1" name="disable" type="bool">
+ </argument>
+ <description>
+ </description>
+ </method>
+ </methods>
+ <constants>
+ <constant name="FEATURE_3D" value="0" enum="Feature">
+ </constant>
+ <constant name="FEATURE_SCRIPT" value="1" enum="Feature">
+ </constant>
+ <constant name="FEATURE_ASSET_LIB" value="2" enum="Feature">
+ </constant>
+ <constant name="FEATURE_SCENE_TREE" value="3" enum="Feature">
+ </constant>
+ <constant name="FEATURE_IMPORT_DOCK" value="4" enum="Feature">
+ </constant>
+ <constant name="FEATURE_NODE_DOCK" value="5" enum="Feature">
+ </constant>
+ <constant name="FEATURE_FILESYSTEM_DOCK" value="6" enum="Feature">
+ </constant>
+ <constant name="FEATURE_MAX" value="7" enum="Feature">
+ </constant>
+ </constants>
+</class>
diff --git a/doc/classes/EditorFileDialog.xml b/doc/classes/EditorFileDialog.xml
index fed9e264db..15271b8050 100644
--- a/doc/classes/EditorFileDialog.xml
+++ b/doc/classes/EditorFileDialog.xml
@@ -1,13 +1,11 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="EditorFileDialog" inherits="ConfirmationDialog" category="Core" version="3.1">
+<class name="EditorFileDialog" inherits="ConfirmationDialog" category="Core" version="3.2">
<brief_description>
</brief_description>
<description>
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
<method name="add_filter">
<return type="void">
@@ -15,7 +13,7 @@
<argument index="0" name="filter" type="String">
</argument>
<description>
- Adds a comma-delimited file extension filter option to the [code]EditorFileDialog[/code] with an optional semi-colon-delimited label.
+ Adds a comma-delimited file extension filter option to the [EditorFileDialog] with an optional semi-colon-delimited label.
Example: "*.tscn, *.scn; Scenes", results in filter text "Scenes (*.tscn, *.scn)".
</description>
</method>
@@ -37,7 +35,7 @@
<return type="void">
</return>
<description>
- Notify the [code]EditorFileDialog[/code] that its view of the data is no longer accurate. Updates the view contents on next view update.
+ Notify the [EditorFileDialog] that its view of the data is no longer accurate. Updates the view contents on next view update.
</description>
</method>
</methods>
@@ -55,16 +53,16 @@
The file system path in the address bar.
</member>
<member name="disable_overwrite_warning" type="bool" setter="set_disable_overwrite_warning" getter="is_overwrite_warning_disabled">
- If [code]true[/code] the [code]EditorFileDialog[/code] will not warn the user before overwriting files.
+ If [code]true[/code], the [EditorFileDialog] will not warn the user before overwriting files.
</member>
<member name="display_mode" type="int" setter="set_display_mode" getter="get_display_mode" enum="EditorFileDialog.DisplayMode">
- The view format in which the [code]EditorFileDialog[/code] displays resources to the user.
+ The view format in which the [EditorFileDialog] displays resources to the user.
</member>
<member name="mode" type="int" setter="set_mode" getter="get_mode" enum="EditorFileDialog.Mode">
- The purpose of the [code]EditorFileDialog[/code]. Changes allowed behaviors.
+ The purpose of the [EditorFileDialog]. Changes allowed behaviors.
</member>
<member name="show_hidden_files" type="bool" setter="set_show_hidden_files" getter="is_showing_hidden_files">
- If [code]true[/code] hidden files and directories will be visible in the [code]EditorFileDialog[/code].
+ If [code]true[/code], hidden files and directories will be visible in the [EditorFileDialog].
</member>
</members>
<signals>
@@ -92,34 +90,34 @@
</signals>
<constants>
<constant name="MODE_OPEN_FILE" value="0" enum="Mode">
- The [code]EditorFileDialog[/code] can select only one file. Accepting the window will open the file.
+ The [EditorFileDialog] can select only one file. Accepting the window will open the file.
</constant>
<constant name="MODE_OPEN_FILES" value="1" enum="Mode">
- The [code]EditorFileDialog[/code] can select multiple files. Accepting the window will open all files.
+ The [EditorFileDialog] can select multiple files. Accepting the window will open all files.
</constant>
<constant name="MODE_OPEN_DIR" value="2" enum="Mode">
- The [code]EditorFileDialog[/code] can select only one directory. Accepting the window will open the directory.
+ The [EditorFileDialog] can select only one directory. Accepting the window will open the directory.
</constant>
<constant name="MODE_OPEN_ANY" value="3" enum="Mode">
- The [code]EditorFileDialog[/code] can select a file or directory. Accepting the window will open it.
+ The [EditorFileDialog] can select a file or directory. Accepting the window will open it.
</constant>
<constant name="MODE_SAVE_FILE" value="4" enum="Mode">
- The [code]EditorFileDialog[/code] can select only one file. Accepting the window will save the file.
+ The [EditorFileDialog] can select only one file. Accepting the window will save the file.
</constant>
<constant name="ACCESS_RESOURCES" value="0" enum="Access">
- The [code]EditorFileDialog[/code] can only view [code]res://[/code] directory contents.
+ The [EditorFileDialog] can only view [code]res://[/code] directory contents.
</constant>
<constant name="ACCESS_USERDATA" value="1" enum="Access">
- The [code]EditorFileDialog[/code] can only view [code]user://[/code] directory contents.
+ The [EditorFileDialog] can only view [code]user://[/code] directory contents.
</constant>
<constant name="ACCESS_FILESYSTEM" value="2" enum="Access">
- The [code]EditorFileDialog[/code] can view the entire local file system.
+ The [EditorFileDialog] can view the entire local file system.
</constant>
<constant name="DISPLAY_THUMBNAILS" value="0" enum="DisplayMode">
- The [code]EditorFileDialog[/code] displays resources as thumbnails.
+ The [EditorFileDialog] displays resources as thumbnails.
</constant>
<constant name="DISPLAY_LIST" value="1" enum="DisplayMode">
- The [code]EditorFileDialog[/code] displays resources as a list of filenames.
+ The [EditorFileDialog] displays resources as a list of filenames.
</constant>
</constants>
</class>
diff --git a/doc/classes/EditorFileSystem.xml b/doc/classes/EditorFileSystem.xml
index 91e5bd81c3..1c7a68fc0b 100644
--- a/doc/classes/EditorFileSystem.xml
+++ b/doc/classes/EditorFileSystem.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="EditorFileSystem" inherits="Node" category="Core" version="3.1">
+<class name="EditorFileSystem" inherits="Node" category="Core" version="3.2">
<brief_description>
Resource filesystem, as the editor sees it.
</brief_description>
@@ -8,8 +8,6 @@
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
<method name="get_file_type" qualifiers="const">
<return type="String">
@@ -40,14 +38,14 @@
<return type="float">
</return>
<description>
- Return the scan progress for 0 to 1 if the FS is being scanned.
+ Returns the scan progress for 0 to 1 if the FS is being scanned.
</description>
</method>
<method name="is_scanning" qualifiers="const">
<return type="bool">
</return>
<description>
- Return true of the filesystem is being scanned.
+ Returns [code]true[/code] of the filesystem is being scanned.
</description>
</method>
<method name="scan">
diff --git a/doc/classes/EditorFileSystemDirectory.xml b/doc/classes/EditorFileSystemDirectory.xml
index 9dd28d2400..c7920c6ed6 100644
--- a/doc/classes/EditorFileSystemDirectory.xml
+++ b/doc/classes/EditorFileSystemDirectory.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="EditorFileSystemDirectory" inherits="Object" category="Core" version="3.1">
+<class name="EditorFileSystemDirectory" inherits="Object" category="Core" version="3.2">
<brief_description>
A directory for the resource filesystem.
</brief_description>
@@ -8,8 +8,6 @@
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
<method name="find_dir_index" qualifiers="const">
<return type="int">
diff --git a/doc/classes/EditorImportPlugin.xml b/doc/classes/EditorImportPlugin.xml
index 24201c39b9..c3f38e9e20 100644
--- a/doc/classes/EditorImportPlugin.xml
+++ b/doc/classes/EditorImportPlugin.xml
@@ -1,11 +1,11 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="EditorImportPlugin" inherits="Reference" category="Core" version="3.1">
+<class name="EditorImportPlugin" inherits="Reference" category="Core" version="3.2">
<brief_description>
Registers a custom resource importer in the editor. Use the class to parse any file and import it as a new resource type.
</brief_description>
<description>
EditorImportPlugins provide a way to extend the editor's resource import functionality. Use them to import resources from custom files or to provide alternatives to the editor's existing importers. Register your [EditorPlugin] with [method EditorPlugin.add_import_plugin].
- EditorImportPlugins work by associating with specific file extensions and a resource type. See [method get_recognized_extension] and [method get_resource_type]). They may optionally specify some import presets that affect the import process. EditorImportPlugins are responsible for creating the resources and saving them in the [code].import[/code] directory.
+ EditorImportPlugins work by associating with specific file extensions and a resource type. See [method get_recognized_extensions] and [method get_resource_type]). They may optionally specify some import presets that affect the import process. EditorImportPlugins are responsible for creating the resources and saving them in the [code].import[/code] directory.
Below is an example EditorImportPlugin that imports a [Mesh] from a file with the extension ".special" or ".spec":
[codeblock]
tool
@@ -35,7 +35,7 @@
func get_import_options(i):
return [{"name": "my_option", "default_value": false}]
- func import(source_file, save_path, options, r_platform_variants, r_gen_files):
+ func import(source_file, save_path, options, platform_variants, gen_files):
var file = File.new()
if file.open(source_file, File.READ) != OK:
return FAILED
@@ -51,8 +51,6 @@
<tutorials>
<link>https://docs.godotengine.org/en/latest/tutorials/plugins/editor/import_plugins.html</link>
</tutorials>
- <demos>
- </demos>
<methods>
<method name="get_import_options" qualifiers="virtual">
<return type="Array">
@@ -60,7 +58,7 @@
<argument index="0" name="preset" type="int">
</argument>
<description>
- Get the options and default values for the preset at this index. Returns an Array of Dictionaries with the following keys: "name", "default_value", "property_hint" (optional), "hint_string" (optional), "usage" (optional).
+ Get the options and default values for the preset at this index. Returns an Array of Dictionaries with the following keys: [code]name[/code], [code]default_value[/code], [code]property_hint[/code] (optional), [code]hint_string[/code] (optional), [code]usage[/code] (optional).
</description>
</method>
<method name="get_import_order" qualifiers="virtual">
@@ -114,14 +112,14 @@
<return type="Array">
</return>
<description>
- Get the list of file extensions to associate with this loader (case insensitive). e.g. ["obj"].
+ Get the list of file extensions to associate with this loader (case insensitive). e.g. [code]["obj"][/code].
</description>
</method>
<method name="get_resource_type" qualifiers="virtual">
<return type="String">
</return>
<description>
- Get the Godot resource type associated with this loader. e.g. "Mesh" or "Animation".
+ Get the Godot resource type associated with this loader. e.g. [code]"Mesh"[/code] or [code]"Animation"[/code].
</description>
</method>
<method name="get_save_extension" qualifiers="virtual">
@@ -147,9 +145,9 @@
</argument>
<argument index="2" name="options" type="Dictionary">
</argument>
- <argument index="3" name="r_platform_variants" type="Array">
+ <argument index="3" name="platform_variants" type="Array">
</argument>
- <argument index="4" name="r_gen_files" type="Array">
+ <argument index="4" name="gen_files" type="Array">
</argument>
<description>
</description>
diff --git a/doc/classes/EditorInspector.xml b/doc/classes/EditorInspector.xml
index 5601f9b5ae..cf14183099 100644
--- a/doc/classes/EditorInspector.xml
+++ b/doc/classes/EditorInspector.xml
@@ -1,13 +1,11 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="EditorInspector" inherits="ScrollContainer" category="Core" version="3.1">
+<class name="EditorInspector" inherits="ScrollContainer" category="Core" version="3.2">
<brief_description>
</brief_description>
<description>
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
<method name="refresh">
<return type="void">
diff --git a/doc/classes/EditorInspectorPlugin.xml b/doc/classes/EditorInspectorPlugin.xml
index 9bda768b14..c2b13ff89e 100644
--- a/doc/classes/EditorInspectorPlugin.xml
+++ b/doc/classes/EditorInspectorPlugin.xml
@@ -1,13 +1,19 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="EditorInspectorPlugin" inherits="Reference" category="Core" version="3.1">
+<class name="EditorInspectorPlugin" inherits="Reference" category="Core" version="3.2">
<brief_description>
+ Plugin for adding custom property editors on inspector.
</brief_description>
<description>
+ This plugins allows adding custom property editors to [EditorInspector].
+ Plugins are registered via [method EditorPlugin.add_inspector_plugin].
+ When an object is edited, the [method can_handle] function is called and must return true if the object type is supported.
+ If supported, the function [method parse_begin] will be called, allowing to place custom controls at the beginning of the class.
+ Subsequently, the [method parse_category] and [method parse_property] are called for every category and property. They offer the ability to add custom controls to the inspector too.
+ Finally [method parse_end] will be called.
+ On each of these calls, the "add" functions can be called.
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
<method name="add_custom_control">
<return type="void">
@@ -15,6 +21,7 @@
<argument index="0" name="control" type="Control">
</argument>
<description>
+ Add a custom control, not necessarily a property editor.
</description>
</method>
<method name="add_property_editor">
@@ -25,6 +32,7 @@
<argument index="1" name="editor" type="Control">
</argument>
<description>
+ Add a property editor, this must inherit [EditorProperty].
</description>
</method>
<method name="add_property_editor_for_multiple_properties">
@@ -37,6 +45,7 @@
<argument index="2" name="editor" type="Control">
</argument>
<description>
+ Add am editor that allows modifying multiple properties, this must inherit [EditorProperty].
</description>
</method>
<method name="can_handle" qualifiers="virtual">
@@ -45,6 +54,7 @@
<argument index="0" name="object" type="Object">
</argument>
<description>
+ Returns true if this object can be handled by this plugin.
</description>
</method>
<method name="parse_begin" qualifiers="virtual">
@@ -53,6 +63,7 @@
<argument index="0" name="object" type="Object">
</argument>
<description>
+ Called to allow adding controls at the beginning of the list.
</description>
</method>
<method name="parse_category" qualifiers="virtual">
@@ -63,12 +74,14 @@
<argument index="1" name="category" type="String">
</argument>
<description>
+ Called to allow adding controls at the beginning of the category.
</description>
</method>
<method name="parse_end" qualifiers="virtual">
<return type="void">
</return>
<description>
+ Called to allow adding controls at the end of the list.
</description>
</method>
<method name="parse_property" qualifiers="virtual">
@@ -87,6 +100,7 @@
<argument index="5" name="usage" type="int">
</argument>
<description>
+ Called to allow adding property specific editors to the inspector. Usually these inherit [EditorProperty]
</description>
</method>
</methods>
diff --git a/doc/classes/EditorInterface.xml b/doc/classes/EditorInterface.xml
index f073c5e40b..ecbb5da10c 100644
--- a/doc/classes/EditorInterface.xml
+++ b/doc/classes/EditorInterface.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="EditorInterface" inherits="Node" category="Core" version="3.1">
+<class name="EditorInterface" inherits="Node" category="Core" version="3.2">
<brief_description>
Godot editor's interface.
</brief_description>
@@ -8,8 +8,6 @@
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
<method name="edit_resource">
<return type="void">
@@ -48,6 +46,12 @@
Returns the editor [Viewport].
</description>
</method>
+ <method name="get_inspector" qualifiers="const">
+ <return type="EditorInspector">
+ </return>
+ <description>
+ </description>
+ </method>
<method name="get_open_scenes" qualifiers="const">
<return type="Array">
</return>
@@ -159,7 +163,7 @@
<method name="select_file">
<return type="void">
</return>
- <argument index="0" name="p_file" type="String">
+ <argument index="0" name="file" type="String">
</argument>
<description>
</description>
diff --git a/doc/classes/EditorNavigationMeshGenerator.xml b/doc/classes/EditorNavigationMeshGenerator.xml
new file mode 100644
index 0000000000..3956e12509
--- /dev/null
+++ b/doc/classes/EditorNavigationMeshGenerator.xml
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<class name="EditorNavigationMeshGenerator" inherits="Object" category="Core" version="3.2">
+ <brief_description>
+ </brief_description>
+ <description>
+ </description>
+ <tutorials>
+ </tutorials>
+ <methods>
+ <method name="bake">
+ <return type="void">
+ </return>
+ <argument index="0" name="nav_mesh" type="NavigationMesh">
+ </argument>
+ <argument index="1" name="root_node" type="Node">
+ </argument>
+ <description>
+ </description>
+ </method>
+ <method name="clear">
+ <return type="void">
+ </return>
+ <argument index="0" name="nav_mesh" type="NavigationMesh">
+ </argument>
+ <description>
+ </description>
+ </method>
+ </methods>
+ <constants>
+ </constants>
+</class>
diff --git a/doc/classes/EditorPlugin.xml b/doc/classes/EditorPlugin.xml
index feaa24b0ab..3d91bff0aa 100644
--- a/doc/classes/EditorPlugin.xml
+++ b/doc/classes/EditorPlugin.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="EditorPlugin" inherits="Node" category="Core" version="3.1">
+<class name="EditorPlugin" inherits="Node" category="Core" version="3.2">
<brief_description>
Used by the editor to extend its functionality.
</brief_description>
@@ -7,10 +7,8 @@
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. Also see [EditorScript] to add functions to the editor.
</description>
<tutorials>
- <link>https://docs.godotengine.org/en/latest/development/plugins/index.html</link>
+ <link>https://docs.godotengine.org/en/latest/tutorials/plugins/editor/index.html</link>
</tutorials>
- <demos>
- </demos>
<methods>
<method name="add_autoload_singleton">
<return type="void">
@@ -110,6 +108,14 @@
<description>
</description>
</method>
+ <method name="add_spatial_gizmo_plugin">
+ <return type="void">
+ </return>
+ <argument index="0" name="plugin" type="EditorSpatialGizmoPlugin">
+ </argument>
+ <description>
+ </description>
+ </method>
<method name="add_tool_menu_item">
<return type="void">
</return>
@@ -157,6 +163,12 @@
Clear all the state and reset the object being edited to zero. This ensures your plugin does not keep editing a currently existing node, or a node from the wrong scene.
</description>
</method>
+ <method name="disable_plugin" qualifiers="virtual">
+ <return type="void">
+ </return>
+ <description>
+ </description>
+ </method>
<method name="edit" qualifiers="virtual">
<return type="void">
</return>
@@ -166,6 +178,12 @@
This function is used for plugins that edit specific object types (nodes or resources). It requests the editor to edit the given object.
</description>
</method>
+ <method name="enable_plugin" qualifiers="virtual">
+ <return type="void">
+ </return>
+ <description>
+ </description>
+ </method>
<method name="forward_canvas_draw_over_viewport" qualifiers="virtual">
<return type="void">
</return>
@@ -223,7 +241,7 @@
<return type="EditorInterface">
</return>
<description>
- Return the [EditorInterface] object that gives you control over Godot editor's window and its functionalities.
+ Returns the [EditorInterface] object that gives you control over Godot editor's window and its functionalities.
</description>
</method>
<method name="get_plugin_icon" qualifiers="virtual">
@@ -274,14 +292,14 @@
<argument index="0" name="object" type="Object">
</argument>
<description>
- Implement this function if your plugin edits a specific type of object (Resource or Node). If you return true, then you will get the functions [method EditorPlugin.edit] and [method EditorPlugin.make_visible] called when the editor requests them. If you have declared the methods [method forward_canvas_gui_input] and [method forward_spatial_gui_input] these will be called too.
+ Implement this function if your plugin edits a specific type of object (Resource or Node). If you return [code]true[/code], then you will get the functions [method EditorPlugin.edit] and [method EditorPlugin.make_visible] called when the editor requests them. If you have declared the methods [method forward_canvas_gui_input] and [method forward_spatial_gui_input] these will be called too.
</description>
</method>
<method name="has_main_screen" qualifiers="virtual">
<return type="bool">
</return>
<description>
- Return true if this is a main screen editor plugin (it goes in the workspaces selector together with '2D', '3D', and 'Script').
+ Returns [code]true[/code] if this is a main screen editor plugin (it goes in the workspaces selector together with '2D', '3D', and 'Script').
</description>
</method>
<method name="hide_bottom_panel">
@@ -394,6 +412,14 @@
<description>
</description>
</method>
+ <method name="remove_spatial_gizmo_plugin">
+ <return type="void">
+ </return>
+ <argument index="0" name="plugin" type="EditorSpatialGizmoPlugin">
+ </argument>
+ <description>
+ </description>
+ </method>
<method name="remove_tool_menu_item">
<return type="void">
</return>
@@ -445,6 +471,7 @@
<return type="int">
</return>
<description>
+ Updates the overlays of the editor (2D/3D) viewport.
</description>
</method>
</methods>
@@ -498,6 +525,10 @@
</constant>
<constant name="CONTAINER_PROPERTY_EDITOR_BOTTOM" value="9" enum="CustomControlContainer">
</constant>
+ <constant name="CONTAINER_PROJECT_SETTING_TAB_LEFT" value="10" enum="CustomControlContainer">
+ </constant>
+ <constant name="CONTAINER_PROJECT_SETTING_TAB_RIGHT" value="11" enum="CustomControlContainer">
+ </constant>
<constant name="DOCK_SLOT_LEFT_UL" value="0" enum="DockSlot">
</constant>
<constant name="DOCK_SLOT_LEFT_BL" value="1" enum="DockSlot">
diff --git a/doc/classes/EditorProperty.xml b/doc/classes/EditorProperty.xml
index 7d09554330..735c270279 100644
--- a/doc/classes/EditorProperty.xml
+++ b/doc/classes/EditorProperty.xml
@@ -1,51 +1,94 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="EditorProperty" inherits="Container" category="Core" version="3.1">
+<class name="EditorProperty" inherits="Container" category="Core" version="3.2">
<brief_description>
+ Custom control to edit properties for adding into the inspector
</brief_description>
<description>
+ This control allows property editing for one or multiple properties into [EditorInspector]. It is added via [EditorInspectorPlugin].
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
+ <method name="add_focusable">
+ <return type="void">
+ </return>
+ <argument index="0" name="control" type="Control">
+ </argument>
+ <description>
+ If any of the controls added can gain keyboard focus, add it here. This ensures that focus will be restored if the inspector is refreshed.
+ </description>
+ </method>
+ <method name="emit_changed">
+ <return type="void">
+ </return>
+ <argument index="0" name="property" type="String">
+ </argument>
+ <argument index="1" name="value" type="Variant">
+ </argument>
+ <argument index="2" name="field" type="String" default="&quot;&quot;">
+ </argument>
+ <argument index="3" name="changing" type="bool" default="false">
+ </argument>
+ <description>
+ If one (or many properties) changed, this must be called. "Field" is used in case your editor can modify fields separately (as an example, Vector3.x). The "changing" argument avoids the editor requesting this property to be refreshed (leave as false if unsure).
+ </description>
+ </method>
<method name="get_edited_object">
<return type="Object">
</return>
<description>
+ Get the edited object.
</description>
</method>
<method name="get_edited_property">
<return type="String">
</return>
<description>
+ Get the edited property. If your editor is for a single property (added via [method EditorInspectorPlugin.parse_property]), then this will return it..
</description>
</method>
<method name="get_tooltip_text" qualifiers="const">
<return type="String">
</return>
<description>
+ Override if you want to allow a custom tooltip over your property.
+ </description>
+ </method>
+ <method name="set_bottom_editor">
+ <return type="void">
+ </return>
+ <argument index="0" name="editor" type="Control">
+ </argument>
+ <description>
+ Add controls with this function if you want them on the bottom (below the label).
</description>
</method>
<method name="update_property" qualifiers="virtual">
<return type="void">
</return>
<description>
+ When this virtual function is called, you must update your editor.
</description>
</method>
</methods>
<members>
<member name="checkable" type="bool" setter="set_checkable" getter="is_checkable">
+ Used by the inspector, set when property is checkable.
</member>
<member name="checked" type="bool" setter="set_checked" getter="is_checked">
+ Used by the inspector, when the property is checked.
</member>
<member name="draw_red" type="bool" setter="set_draw_red" getter="is_draw_red">
+ Used by the inspector, when the property must draw with error color.
</member>
<member name="keying" type="bool" setter="set_keying" getter="is_keying">
+ Used by the inspector, when the property can add keys for animation/
</member>
<member name="label" type="String" setter="set_label" getter="get_label">
+ Set this property to change the label (if you want to show one)
</member>
<member name="read_only" type="bool" setter="set_read_only" getter="is_read_only">
+ Used by the inspector, when the property is read-only.
</member>
</members>
<signals>
@@ -55,6 +98,7 @@
<argument index="1" name="value" type="Array">
</argument>
<description>
+ Emit yourself if you want multiple properties modified at the same time. Do not use if added via [method EditorInspectorPlugin.parse_property]
</description>
</signal>
<signal name="object_id_selected">
@@ -63,6 +107,7 @@
<argument index="1" name="id" type="int">
</argument>
<description>
+ Used by sub-inspectors. Emit if what was selected was an Object ID.
</description>
</signal>
<signal name="property_changed">
@@ -71,6 +116,7 @@
<argument index="1" name="value" type="Nil">
</argument>
<description>
+ Do not emit this manually, use the [method emit_changed] method instead.
</description>
</signal>
<signal name="property_checked">
@@ -79,12 +125,14 @@
<argument index="1" name="bool" type="String">
</argument>
<description>
+ Used internally, when a property was checked.
</description>
</signal>
<signal name="property_keyed">
<argument index="0" name="property" type="String">
</argument>
<description>
+ Emit if you want to add this value as an animation key (check keying being enabled first).
</description>
</signal>
<signal name="property_keyed_with_value">
@@ -93,6 +141,7 @@
<argument index="1" name="value" type="Nil">
</argument>
<description>
+ Emit if you want to key a property with a single value.
</description>
</signal>
<signal name="resource_selected">
@@ -101,6 +150,7 @@
<argument index="1" name="resource" type="Resource">
</argument>
<description>
+ If you want a sub-resource to be edited, emit this signal with the resource.
</description>
</signal>
<signal name="selected">
@@ -109,6 +159,7 @@
<argument index="1" name="focusable_idx" type="int">
</argument>
<description>
+ Internal, used when selected.
</description>
</signal>
</signals>
diff --git a/doc/classes/EditorResourceConversionPlugin.xml b/doc/classes/EditorResourceConversionPlugin.xml
index ad0b7b0586..2638836c68 100644
--- a/doc/classes/EditorResourceConversionPlugin.xml
+++ b/doc/classes/EditorResourceConversionPlugin.xml
@@ -1,13 +1,11 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="EditorResourceConversionPlugin" inherits="Reference" category="Core" version="3.1">
+<class name="EditorResourceConversionPlugin" inherits="Reference" category="Core" version="3.2">
<brief_description>
</brief_description>
<description>
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
<method name="_convert" qualifiers="virtual">
<return type="Resource">
diff --git a/doc/classes/EditorResourcePreview.xml b/doc/classes/EditorResourcePreview.xml
index 3b3e8a8369..8de905e710 100644
--- a/doc/classes/EditorResourcePreview.xml
+++ b/doc/classes/EditorResourcePreview.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="EditorResourcePreview" inherits="Node" category="Core" version="3.1">
+<class name="EditorResourcePreview" inherits="Node" category="Core" version="3.2">
<brief_description>
Helper to generate previews of resources or files.
</brief_description>
@@ -8,8 +8,6 @@
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
<method name="add_preview_generator">
<return type="void">
diff --git a/doc/classes/EditorResourcePreviewGenerator.xml b/doc/classes/EditorResourcePreviewGenerator.xml
index c4dcbbbc82..156cc62941 100644
--- a/doc/classes/EditorResourcePreviewGenerator.xml
+++ b/doc/classes/EditorResourcePreviewGenerator.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="EditorResourcePreviewGenerator" inherits="Reference" category="Core" version="3.1">
+<class name="EditorResourcePreviewGenerator" inherits="Reference" category="Core" version="3.2">
<brief_description>
Custom generator of previews.
</brief_description>
@@ -8,9 +8,15 @@
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
+ <method name="can_generate_small_preview" qualifiers="virtual">
+ <return type="bool">
+ </return>
+ <description>
+ If this function returns true the generator will call [method generate] or [method generate_from_path] for small previews too.
+ By default it returns false.
+ </description>
+ </method>
<method name="generate" qualifiers="virtual">
<return type="Texture">
</return>
@@ -37,13 +43,21 @@
Care must be taken because this function is always called from a thread (not the main thread).
</description>
</method>
+ <method name="generate_small_preview_automatically" qualifiers="virtual">
+ <return type="bool">
+ </return>
+ <description>
+ If this function returns true the generator will automatically generate the small previews from the normal preview texture generated by the methods [method generate] or [method generate_from_path].
+ By default it returns false.
+ </description>
+ </method>
<method name="handles" qualifiers="virtual">
<return type="bool">
</return>
<argument index="0" name="type" type="String">
</argument>
<description>
- Return if your generator supports this resource type.
+ Returns if your generator supports this resource type.
</description>
</method>
</methods>
diff --git a/doc/classes/EditorSceneImporter.xml b/doc/classes/EditorSceneImporter.xml
index 6394dfdfe9..4707543c91 100644
--- a/doc/classes/EditorSceneImporter.xml
+++ b/doc/classes/EditorSceneImporter.xml
@@ -1,13 +1,11 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="EditorSceneImporter" inherits="Reference" category="Core" version="3.1">
+<class name="EditorSceneImporter" inherits="Reference" category="Core" version="3.2">
<brief_description>
</brief_description>
<description>
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
<method name="_get_extensions" qualifiers="virtual">
<return type="Array">
diff --git a/doc/classes/EditorSceneImporterAssimp.xml b/doc/classes/EditorSceneImporterAssimp.xml
new file mode 100644
index 0000000000..b1f397e2b9
--- /dev/null
+++ b/doc/classes/EditorSceneImporterAssimp.xml
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<class name="EditorSceneImporterAssimp" inherits="EditorSceneImporter" category="Core" version="3.2">
+ <brief_description>
+ This is a multi-format 3d asset importer.
+ </brief_description>
+ <description>
+ This is a multi-format 3d asset importer.
+ Use these FBX export settings from Autodesk Maya.
+ [codeblock]
+ * Smoothing Groups
+ * Smooth Mesh
+ * Triangluate (For mesh with blendshapes)
+ * Bake Animation
+ * Resample All
+ * Deformed Models
+ * Skins
+ * Blend Shapes
+ * Curve Filters
+ * Constant Key Reducer
+ * Auto Tangents Only
+ * DO NOT CHECK Constraints (Will Break File)
+ * Can check Embed Media (Embeds textures into FBX file to import)
+ -- Note: When importing embed media, texture and mesh will be a un-alterable file.
+ -- Reimport of fbx with updated texture is need if texture is updated.
+ * Units: Centimeters
+ * Up Axis: Y
+ * Binary format in FBX 2017
+ [/codeblock]
+ </description>
+ <tutorials>
+ </tutorials>
+ <methods>
+ </methods>
+ <constants>
+ </constants>
+</class>
diff --git a/doc/classes/EditorScenePostImport.xml b/doc/classes/EditorScenePostImport.xml
index 0c5de68d98..3b0590f78c 100644
--- a/doc/classes/EditorScenePostImport.xml
+++ b/doc/classes/EditorScenePostImport.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="EditorScenePostImport" inherits="Reference" category="Core" version="3.1">
+<class name="EditorScenePostImport" inherits="Reference" category="Core" version="3.2">
<brief_description>
Post process scenes after import
</brief_description>
@@ -20,7 +20,7 @@
func iterate(node):
if node != null:
- node.name = "modified_"+node.name
+ node.name = "modified_" + node.name
for child in node.get_children():
iterate(child)
[/codeblock]
@@ -28,8 +28,6 @@
<tutorials>
<link>https://docs.godotengine.org/en/latest/getting_started/workflow/assets/importing_scenes.html#custom-script</link>
</tutorials>
- <demos>
- </demos>
<methods>
<method name="get_source_file" qualifiers="const">
<return type="String">
diff --git a/doc/classes/EditorScript.xml b/doc/classes/EditorScript.xml
index 1c22095b37..52d7ce3f17 100644
--- a/doc/classes/EditorScript.xml
+++ b/doc/classes/EditorScript.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="EditorScript" inherits="Reference" category="Core" version="3.1">
+<class name="EditorScript" inherits="Reference" category="Core" version="3.2">
<brief_description>
Base script that can be used to add extension functions to the editor.
</brief_description>
@@ -17,8 +17,6 @@
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
<method name="_run" qualifiers="virtual">
<return type="void">
diff --git a/doc/classes/EditorSelection.xml b/doc/classes/EditorSelection.xml
index 4edd8583a0..336390b2b1 100644
--- a/doc/classes/EditorSelection.xml
+++ b/doc/classes/EditorSelection.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="EditorSelection" inherits="Object" category="Core" version="3.1">
+<class name="EditorSelection" inherits="Object" category="Core" version="3.2">
<brief_description>
Manages the SceneTree selection in the editor.
</brief_description>
@@ -8,8 +8,6 @@
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
<method name="add_node">
<return type="void">
diff --git a/doc/classes/EditorSettings.xml b/doc/classes/EditorSettings.xml
index 9d48669a6b..7d38031a4c 100644
--- a/doc/classes/EditorSettings.xml
+++ b/doc/classes/EditorSettings.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="EditorSettings" inherits="Resource" category="Core" version="3.1">
+<class name="EditorSettings" inherits="Resource" category="Core" version="3.2">
<brief_description>
Object that holds the project-independent editor settings.
</brief_description>
@@ -14,8 +14,6 @@
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
<method name="add_property_info">
<return type="void">
diff --git a/doc/classes/EditorSpatialGizmo.xml b/doc/classes/EditorSpatialGizmo.xml
index 2081ae7a4d..5d5c37b212 100644
--- a/doc/classes/EditorSpatialGizmo.xml
+++ b/doc/classes/EditorSpatialGizmo.xml
@@ -1,15 +1,13 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="EditorSpatialGizmo" inherits="SpatialGizmo" category="Core" version="3.1">
+<class name="EditorSpatialGizmo" inherits="SpatialGizmo" category="Core" version="3.2">
<brief_description>
Custom gizmo for editing Spatial objects.
</brief_description>
<description>
- Custom gizmo that is used for providing custom visualization and editing (handles) for 3D Spatial objects. These are created by [method EditorPlugin.create_spatial_gizmo].
+ Custom gizmo that is used for providing custom visualization and editing (handles) for 3D Spatial objects. See [EditorSpatialGizmoPlugin] for more information.
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
<method name="add_collision_segments">
<return type="void">
@@ -66,6 +64,8 @@
</argument>
<argument index="2" name="skeleton" type="RID">
</argument>
+ <argument index="3" name="material" type="Material" default="null">
+ </argument>
<description>
</description>
</method>
@@ -97,7 +97,7 @@
</argument>
<description>
Commit a handle being edited (handles must have been previously added by [method add_handles]).
- If the cancel parameter is true, an option to restore the edited value to the original is provided.
+ If the cancel parameter is [code]true[/code], an option to restore the edited value to the original is provided.
</description>
</method>
<method name="get_handle_name" qualifiers="virtual">
@@ -116,7 +116,30 @@
<argument index="0" name="index" type="int">
</argument>
<description>
- Get actual value of a handle. This value can be anything and used for eventually undoing the motion when calling [method commit_handle]
+ Get actual value of a handle. This value can be anything and used for eventually undoing the motion when calling [method commit_handle].
+ </description>
+ </method>
+ <method name="get_plugin" qualifiers="const">
+ <return type="EditorSpatialGizmoPlugin">
+ </return>
+ <description>
+ Returns the [EditorSpatialGizmoPlugin] that owns this gizmo. It's useful to retrieve materials using [method EditorSpatialGizmoPlugin.get_material].
+ </description>
+ </method>
+ <method name="get_spatial_node" qualifiers="const">
+ <return type="Spatial">
+ </return>
+ <description>
+ Returns the Spatial node associated with this gizmo.
+ </description>
+ </method>
+ <method name="is_handle_highlighted" qualifiers="virtual">
+ <return type="bool">
+ </return>
+ <argument index="0" name="index" type="int">
+ </argument>
+ <description>
+ Get whether a handle is highlighted or not.
</description>
</method>
<method name="redraw" qualifiers="virtual">
diff --git a/doc/classes/EditorSpatialGizmoPlugin.xml b/doc/classes/EditorSpatialGizmoPlugin.xml
new file mode 100644
index 0000000000..40d6376ca3
--- /dev/null
+++ b/doc/classes/EditorSpatialGizmoPlugin.xml
@@ -0,0 +1,198 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<class name="EditorSpatialGizmoPlugin" inherits="Resource" category="Core" version="3.2">
+ <brief_description>
+ Used by the editor to define Spatial gizmo types.
+ </brief_description>
+ <description>
+ 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/latest/tutorials/plugins/editor/spatial_gizmos.html</link>
+ </tutorials>
+ <methods>
+ <method name="add_material">
+ <return type="void">
+ </return>
+ <argument index="0" name="name" type="String">
+ </argument>
+ <argument index="1" name="material" type="SpatialMaterial">
+ </argument>
+ <description>
+ Adds a new material to the internal material list for the plugin. It can then be accessed with [method get_material]. Should not be overridden.
+ </description>
+ </method>
+ <method name="can_be_hidden" qualifiers="virtual">
+ <return type="bool">
+ </return>
+ <description>
+ Override this method to define whether the gizmo can be hidden or not. Defaults to [code]true[/code].
+ </description>
+ </method>
+ <method name="commit_handle" qualifiers="virtual">
+ <return type="void">
+ </return>
+ <argument index="0" name="gizmo" type="EditorSpatialGizmo">
+ </argument>
+ <argument index="1" name="index" type="int">
+ </argument>
+ <argument index="2" name="restore" type="Variant">
+ </argument>
+ <argument index="3" name="cancel" type="bool" default="false">
+ </argument>
+ <description>
+ Override this method to commit gizmo handles. Called for this plugin's active gizmos.
+ </description>
+ </method>
+ <method name="create_gizmo" qualifiers="virtual">
+ <return type="EditorSpatialGizmo">
+ </return>
+ <argument index="0" name="spatial" type="Spatial">
+ </argument>
+ <description>
+ Override this method to return a custom [EditorSpatialGizmo] for the spatial nodes of your choice, return [code]null[/code] for the rest of nodes. (See also [method has_gizmo])
+ </description>
+ </method>
+ <method name="create_handle_material">
+ <return type="void">
+ </return>
+ <argument index="0" name="name" type="String">
+ </argument>
+ <argument index="1" name="billboard" type="bool" default="false">
+ </argument>
+ <description>
+ Creates a handle material with its variants (selected and/or editable) and adds them to the internal material list. They can then be accessed with [method get_material] and used in [method EditorSpatialGizmo.add_handles]. Should not be overridden.
+ </description>
+ </method>
+ <method name="create_icon_material">
+ <return type="void">
+ </return>
+ <argument index="0" name="name" type="String">
+ </argument>
+ <argument index="1" name="texture" type="Texture">
+ </argument>
+ <argument index="2" name="on_top" type="bool" default="false">
+ </argument>
+ <argument index="3" name="color" type="Color" default="Color( 1, 1, 1, 1 )">
+ </argument>
+ <description>
+ Creates an icon material with its variants (selected and/or editable) and adds them to the internal material list. They can then be accessed with [method get_material] and used in [method EditorSpatialGizmo.add_unscaled_billboard]. Should not be overridden.
+ </description>
+ </method>
+ <method name="create_material">
+ <return type="void">
+ </return>
+ <argument index="0" name="name" type="String">
+ </argument>
+ <argument index="1" name="color" type="Color">
+ </argument>
+ <argument index="2" name="billboard" type="bool" default="false">
+ </argument>
+ <argument index="3" name="on_top" type="bool" default="false">
+ </argument>
+ <argument index="4" name="use_vertex_color" type="bool" default="false">
+ </argument>
+ <description>
+ Creates an unshaded material with its variants (selected and/or editable) and adds them to the internal material list. They can then be accessed with [method get_material] and used in [method EditorSpatialGizmo.add_mesh] and [method EditorSpatialGizmo.add_lines]. Should not be overridden.
+ </description>
+ </method>
+ <method name="get_handle_name" qualifiers="virtual">
+ <return type="String">
+ </return>
+ <argument index="0" name="gizmo" type="EditorSpatialGizmo">
+ </argument>
+ <argument index="1" name="index" type="int">
+ </argument>
+ <description>
+ Override this method to provide gizmo's handle names. Called for this plugin's active gizmos.
+ </description>
+ </method>
+ <method name="get_handle_value" qualifiers="virtual">
+ <return type="Variant">
+ </return>
+ <argument index="0" name="gizmo" type="EditorSpatialGizmo">
+ </argument>
+ <argument index="1" name="index" type="int">
+ </argument>
+ <description>
+ Get actual value of a handle from gizmo. Called for this plugin's active gizmos.
+ </description>
+ </method>
+ <method name="get_material">
+ <return type="SpatialMaterial">
+ </return>
+ <argument index="0" name="name" type="String">
+ </argument>
+ <argument index="1" name="gizmo" type="EditorSpatialGizmo">
+ </argument>
+ <description>
+ Get material from the internal list of materials. If an [EditorSpatialGizmo] is provided it will try to get the corresponding variant (selected and/or editable).
+ </description>
+ </method>
+ <method name="get_name" qualifiers="virtual">
+ <return type="String">
+ </return>
+ <description>
+ Override this method to provide the name that will appear in the gizmo visibility menu.
+ </description>
+ </method>
+ <method name="get_priority" qualifiers="virtual">
+ <return type="String">
+ </return>
+ <description>
+ </description>
+ </method>
+ <method name="has_gizmo" qualifiers="virtual">
+ <return type="bool">
+ </return>
+ <argument index="0" name="spatial" type="Spatial">
+ </argument>
+ <description>
+ Override this method to define which Spatial nodes have a gizmo from this plugin. Whenever a [Spatial] node is added to a scene this method is called, if it returns [code]true[/code] the node gets a generic [EditorSpatialGizmo] assigned and is added to this plugin's list of active gizmos.
+ </description>
+ </method>
+ <method name="is_handle_highlighted" qualifiers="virtual">
+ <return type="bool">
+ </return>
+ <argument index="0" name="gizmo" type="EditorSpatialGizmo">
+ </argument>
+ <argument index="1" name="index" type="int">
+ </argument>
+ <description>
+ Get whether a handle is highlighted or not. Called for this plugin's active gizmos.
+ </description>
+ </method>
+ <method name="is_selectable_when_hidden" qualifiers="virtual">
+ <return type="bool">
+ </return>
+ <description>
+ Override this method to define whether Spatial with this gizmo should be selecteble even when the gizmo is hidden.
+ </description>
+ </method>
+ <method name="redraw" qualifiers="virtual">
+ <return type="void">
+ </return>
+ <argument index="0" name="gizmo" type="EditorSpatialGizmo">
+ </argument>
+ <description>
+ Callback to redraw the provided gizmo. Called for this plugin's active gizmos.
+ </description>
+ </method>
+ <method name="set_handle" qualifiers="virtual">
+ <return type="void">
+ </return>
+ <argument index="0" name="gizmo" type="EditorSpatialGizmo">
+ </argument>
+ <argument index="1" name="index" type="int">
+ </argument>
+ <argument index="2" name="camera" type="Camera">
+ </argument>
+ <argument index="3" name="point" type="Vector2">
+ </argument>
+ <description>
+ Update the value of a handle after it has been updated. Called for this plugin's active gizmos.
+ </description>
+ </method>
+ </methods>
+ <constants>
+ </constants>
+</class>
diff --git a/doc/classes/EncodedObjectAsID.xml b/doc/classes/EncodedObjectAsID.xml
index 8e6a117ea2..1822f6c199 100644
--- a/doc/classes/EncodedObjectAsID.xml
+++ b/doc/classes/EncodedObjectAsID.xml
@@ -1,13 +1,11 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="EncodedObjectAsID" inherits="Reference" category="Core" version="3.1">
+<class name="EncodedObjectAsID" inherits="Reference" category="Core" version="3.2">
<brief_description>
</brief_description>
<description>
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
<method name="get_object_id" qualifiers="const">
<return type="int">
diff --git a/doc/classes/Engine.xml b/doc/classes/Engine.xml
index f921b76b21..ac46d34198 100644
--- a/doc/classes/Engine.xml
+++ b/doc/classes/Engine.xml
@@ -1,15 +1,13 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="Engine" inherits="Object" category="Core" version="3.1">
+<class name="Engine" inherits="Object" category="Core" version="3.2">
<brief_description>
Access to basic engine properties.
</brief_description>
<description>
- The [code]Engine[/code] class allows you to query and modify the game's run-time parameters, such as frames per second, time scale, and others.
+ The [Engine] class allows you to query and modify the game's run-time parameters, such as frames per second, time scale, and others.
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
<method name="get_author_info" qualifiers="const">
<return type="Dictionary">
@@ -90,9 +88,17 @@
"major" - Holds the major version number as an int
"minor" - Holds the minor version number as an int
"patch" - Holds the patch version number as an int
+ "hex" - Holds the full version number encoded as an hexadecimal int with one byte (2 places) per number (see example below)
"status" - Holds the status (e.g. "beta", "rc1", "rc2", ... "stable") as a String
"build" - Holds the build name (e.g. "custom-build") as a String
"string" - major + minor + patch + status + build in a single String
+ The "hex" value is encoded as follows, from left to right: one byte for the major, one byte for the minor, one byte for the patch version. For example, "3.1.12" would be [code]0x03010C[/code]. Note that it's still an int internally, and printing it will give you its decimal representation, which is not particularly meaningful. Use hexadecimal literals for easy version comparisons from code:
+ [codeblock]
+ if Engine.get_version_info().hex &gt;= 0x030200:
+ # do things specific to version 3.2 or later
+ else:
+ # do things specific to versions before 3.2
+ [/codeblock]
</description>
</method>
<method name="has_singleton" qualifiers="const">
diff --git a/doc/classes/Environment.xml b/doc/classes/Environment.xml
index 949c93761e..eb94447529 100644
--- a/doc/classes/Environment.xml
+++ b/doc/classes/Environment.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="Environment" inherits="Resource" category="Core" version="3.1">
+<class name="Environment" inherits="Resource" category="Core" version="3.2">
<brief_description>
Resource for environment nodes (like [WorldEnvironment]) that define multiple rendering options.
</brief_description>
@@ -15,8 +15,6 @@
<link>https://docs.godotengine.org/en/latest/tutorials/3d/environment_and_post_processing.html</link>
<link>https://docs.godotengine.org/en/latest/tutorials/3d/high_dynamic_range.html</link>
</tutorials>
- <demos>
- </demos>
<methods>
</methods>
<members>
@@ -30,7 +28,7 @@
Global contrast value of the rendered scene (default value is 1).
</member>
<member name="adjustment_enabled" type="bool" setter="set_adjustment_enable" getter="is_adjustment_enabled">
- Enables the adjustment_* options provided by this resource. If false, adjustments modifications will have no effect on the rendered scene.
+ Enables the adjustment_* options provided by this resource. If [code]false[/code], adjustments modifications will have no effect on the rendered scene.
</member>
<member name="adjustment_saturation" type="float" setter="set_adjustment_saturation" getter="get_adjustment_saturation">
Global color saturation value of the rendered scene (default value is 1).
@@ -59,6 +57,9 @@
<member name="auto_exposure_speed" type="float" setter="set_tonemap_auto_exposure_speed" getter="get_tonemap_auto_exposure_speed">
Speed of the auto exposure effect. Affects the time needed for the camera to perform auto exposure.
</member>
+ <member name="background_camera_feed_id" type="int" setter="set_camera_feed_id" getter="get_camera_feed_id">
+ The id of the camera feed to show in the background.
+ </member>
<member name="background_canvas_max_layer" type="int" setter="set_canvas_max_layer" getter="get_canvas_max_layer">
Maximum layer id (if using Layer background mode).
</member>
@@ -77,6 +78,15 @@
<member name="background_sky_custom_fov" type="float" setter="set_sky_custom_fov" getter="get_sky_custom_fov">
[Sky] resource's custom field of view.
</member>
+ <member name="background_sky_orientation" type="Basis" setter="set_sky_orientation" getter="get_sky_orientation">
+ [Sky] resource's rotation expressed as a [Basis]
+ </member>
+ <member name="background_sky_rotation" type="Vector3" setter="set_sky_rotation" getter="get_sky_rotation">
+ [Sky] resource's rotation expressed as euler angles in radians
+ </member>
+ <member name="background_sky_rotation_degrees" type="Vector3" setter="set_sky_rotation_degrees" getter="get_sky_rotation_degrees">
+ [Sky] resource's rotation expressed as euler angles in degrees
+ </member>
<member name="dof_blur_far_amount" type="float" setter="set_dof_blur_far_amount" getter="get_dof_blur_far_amount">
Amount of far blur.
</member>
@@ -159,6 +169,8 @@
<member name="glow_enabled" type="bool" setter="set_glow_enabled" getter="is_glow_enabled">
Enables glow rendering.
</member>
+ <member name="glow_hdr_luminance_cap" type="float" setter="set_glow_hdr_luminance_cap" getter="get_glow_hdr_luminance_cap">
+ </member>
<member name="glow_hdr_scale" type="float" setter="set_glow_hdr_bleed_scale" getter="get_glow_hdr_bleed_scale">
Bleed scale of the HDR glow.
</member>
@@ -208,7 +220,7 @@
</member>
<member name="ssao_bias" type="float" setter="set_ssao_bias" getter="get_ssao_bias">
</member>
- <member name="ssao_blur" type="int" setter="set_ssao_blur" getter="is_ssao_blur_enabled" enum="Environment.SSAOBlur">
+ <member name="ssao_blur" type="int" setter="set_ssao_blur" getter="get_ssao_blur" enum="Environment.SSAOBlur">
</member>
<member name="ssao_color" type="Color" setter="set_ssao_color" getter="get_ssao_color">
</member>
@@ -257,7 +269,10 @@
<constant name="BG_CANVAS" value="4" enum="BGMode">
Display a [CanvasLayer] in the background.
</constant>
- <constant name="BG_MAX" value="6" enum="BGMode">
+ <constant name="BG_CAMERA_FEED" value="6" enum="BGMode">
+ Display a camera feed in the background.
+ </constant>
+ <constant name="BG_MAX" value="7" enum="BGMode">
Helper constant keeping track of the enum's size, has no direct usage in API calls.
</constant>
<constant name="GLOW_BLEND_MODE_ADDITIVE" value="0" enum="GlowBlendMode">
diff --git a/doc/classes/Expression.xml b/doc/classes/Expression.xml
index c5f71fe55e..464ed44ecd 100644
--- a/doc/classes/Expression.xml
+++ b/doc/classes/Expression.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="Expression" inherits="Reference" category="Core" version="3.1">
+<class name="Expression" inherits="Reference" category="Core" version="3.2">
<brief_description>
A class that stores an expression you can execute.
</brief_description>
@@ -16,7 +16,7 @@
func _on_text_entered(command):
var error = expression.parse(command, [])
if error != OK:
- print(get_error_text())
+ print(expression.get_error_text())
return
var result = expression.execute([], null, true)
if not expression.has_execute_failed():
@@ -25,8 +25,6 @@
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
<method name="execute">
<return type="Variant">
@@ -39,6 +37,7 @@
</argument>
<description>
Executes the expression that was previously parsed by [method parse] and returns the result. Before you use the returned object, you should check if the method failed by calling [method has_execute_failed].
+ If you defined input variables in [method parse], you can specify their values in the inputs array, in the same order.
</description>
</method>
<method name="get_error_text" qualifiers="const">
@@ -64,6 +63,7 @@
</argument>
<description>
Parses the expression and returns a [enum @GlobalScope.Error].
+ You can optionally specify names of variables that may appear in the expression with [code]input_names[/code], so that you can bind them when it gets executed.
</description>
</method>
</methods>
diff --git a/doc/classes/File.xml b/doc/classes/File.xml
index 058bb09090..32fa628bbf 100644
--- a/doc/classes/File.xml
+++ b/doc/classes/File.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="File" inherits="Reference" category="Core" version="3.1">
+<class name="File" inherits="Reference" category="Core" version="3.2">
<brief_description>
Type to handle file reading and writing operations.
</brief_description>
@@ -24,8 +24,6 @@
<tutorials>
<link>https://docs.godotengine.org/en/latest/getting_started/step_by_step/filesystem.html</link>
</tutorials>
- <demos>
- </demos>
<methods>
<method name="close">
<return type="void">
@@ -38,7 +36,7 @@
<return type="bool">
</return>
<description>
- Returns [code]true[/code] if the file cursor has reached the end of the file.
+ Returns [code]true[/code] if the file cursor has read past the end of the file. Note that 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_len] and [method get_position] to implement a custom logic.
</description>
</method>
<method name="file_exists" qualifiers="const">
@@ -48,6 +46,7 @@
</argument>
<description>
Returns [code]true[/code] if the file exists in the given path.
+ Note that many resources types are imported (e.g. textures or sound files), and that their source asset will not be included in the exported game, as only the imported version is used (in the [code]res://.import[/code] folder). To check for the existence of such resources while taking into account the remapping to their imported location, use [method ResourceLoader.exists]. Typically, using [code]File.file_exists[/code] on an imported resource would work while you are developing in the editor (the source asset is present in [code]res://[/code], but fail when exported).
</description>
</method>
<method name="get_16" qualifiers="const">
@@ -83,6 +82,7 @@
</return>
<description>
Returns the whole file as a [String].
+ Text is interpreted as being UTF-8 encoded.
</description>
</method>
<method name="get_buffer" qualifiers="const">
@@ -101,6 +101,7 @@
</argument>
<description>
Returns the next value of the file in CSV (Comma Separated Values) format. You can pass a different delimiter to use other than the default "," (comma), it should be one character long.
+ Text is interpreted as being UTF-8 encoded.
</description>
</method>
<method name="get_double" qualifiers="const">
@@ -114,7 +115,7 @@
<return type="int" enum="Error">
</return>
<description>
- Returns the last error that happened when trying to perform operations. Compare with the [code]ERR_FILE_*[/code] constants from [@GlobalScope].
+ Returns the last error that happened when trying to perform operations. Compare with the [code]ERR_FILE_*[/code] constants from [enum @GlobalScope.Error].
</description>
</method>
<method name="get_float" qualifiers="const">
@@ -136,6 +137,7 @@
</return>
<description>
Returns the next line of the file as a [String].
+ Text is interpreted as being UTF-8 encoded.
</description>
</method>
<method name="get_md5" qualifiers="const">
@@ -161,6 +163,7 @@
</return>
<description>
Returns a [String] saved in Pascal format from the file.
+ Text is interpreted as being UTF-8 encoded.
</description>
</method>
<method name="get_path" qualifiers="const">
@@ -203,8 +206,11 @@
<method name="get_var" qualifiers="const">
<return type="Variant">
</return>
+ <argument index="0" name="allow_objects" type="bool" default="false">
+ </argument>
<description>
- Returns the next [Variant] value from the file.
+ Returns the next [Variant] value from the file. When [code]allow_objects[/code] is [code]true[/code] decoding objects is allowed.
+ [b]WARNING:[/b] Deserialized object can contain code which gets executed. Do not use this option if the serialized object comes from untrusted sources to avoid potential security threats (remote code execution).
</description>
</method>
<method name="is_open" qualifiers="const">
@@ -219,7 +225,7 @@
</return>
<argument index="0" name="path" type="String">
</argument>
- <argument index="1" name="flags" type="int">
+ <argument index="1" name="flags" type="int" enum="File.ModeFlags">
</argument>
<description>
Opens the file for writing or reading, depending on the flags.
@@ -230,12 +236,12 @@
</return>
<argument index="0" name="path" type="String">
</argument>
- <argument index="1" name="mode_flags" type="int">
+ <argument index="1" name="mode_flags" type="int" enum="File.ModeFlags">
</argument>
- <argument index="2" name="compression_mode" type="int" default="0">
+ <argument index="2" name="compression_mode" type="int" enum="File.CompressionMode" default="0">
</argument>
<description>
- Opens a compressed file for reading or writing. Use COMPRESSION_* constants to set [code]compression_mode[/code].
+ Opens a compressed file for reading or writing. Use [enum CompressionMode] constants to set [code]compression_mode[/code].
</description>
</method>
<method name="open_encrypted">
@@ -243,7 +249,7 @@
</return>
<argument index="0" name="path" type="String">
</argument>
- <argument index="1" name="mode_flags" type="int">
+ <argument index="1" name="mode_flags" type="int" enum="File.ModeFlags">
</argument>
<argument index="2" name="key" type="PoolByteArray">
</argument>
@@ -256,7 +262,7 @@
</return>
<argument index="0" name="path" type="String">
</argument>
- <argument index="1" name="mode_flags" type="int">
+ <argument index="1" name="mode_flags" type="int" enum="File.ModeFlags">
</argument>
<argument index="2" name="pass" type="String">
</argument>
@@ -336,6 +342,7 @@
</argument>
<description>
Store the given [PoolStringArray] in the file as a line formatted in the CSV (Comma Separated Values) format. You can pass a different delimiter to use other than the default "," (comma), it should be one character long.
+ Text will be encoded as UTF-8.
</description>
</method>
<method name="store_double">
@@ -363,6 +370,7 @@
</argument>
<description>
Stores the given [String] as a line in the file.
+ Text will be encoded as UTF-8.
</description>
</method>
<method name="store_pascal_string">
@@ -372,6 +380,7 @@
</argument>
<description>
Stores the given [String] as a line in the file in Pascal format (i.e. also store the length of the string).
+ Text will be encoded as UTF-8.
</description>
</method>
<method name="store_real">
@@ -390,6 +399,7 @@
</argument>
<description>
Stores the given [String] in the file.
+ Text will be encoded as UTF-8.
</description>
</method>
<method name="store_var">
@@ -397,14 +407,16 @@
</return>
<argument index="0" name="value" type="Variant">
</argument>
+ <argument index="1" name="full_objects" type="bool" default="false">
+ </argument>
<description>
- Stores any Variant value in the file.
+ Stores any Variant value in the file. When [code]full_objects[/code] is [code]true[/code] encoding objects is allowed (and can potentially include code).
</description>
</method>
</methods>
<members>
<member name="endian_swap" type="bool" setter="set_endian_swap" getter="get_endian_swap">
- If [code]true[/code] the file's endianness is swapped. Use this if you're dealing with files written in big endian machines.
+ If [code]true[/code], the file's endianness is swapped. Use this if you're dealing with files written in big endian machines.
Note that this is about the file format, not CPU type. This is always reset to [code]false[/code] whenever you open the file.
</member>
</members>
diff --git a/doc/classes/FileDialog.xml b/doc/classes/FileDialog.xml
index 29aa26b67f..908c017ac9 100644
--- a/doc/classes/FileDialog.xml
+++ b/doc/classes/FileDialog.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="FileDialog" inherits="ConfirmationDialog" category="Core" version="3.1">
+<class name="FileDialog" inherits="ConfirmationDialog" category="Core" version="3.2">
<brief_description>
Dialog for selecting files or directories in the filesystem.
</brief_description>
@@ -8,8 +8,6 @@
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
<method name="add_filter">
<return type="void">
@@ -45,7 +43,7 @@
<return type="VBoxContainer">
</return>
<description>
- Return the vertical box container of the dialog, custom controls can be added to it.
+ Returns the vertical box container of the dialog, custom controls can be added to it.
</description>
</method>
<method name="invalidate">
@@ -76,7 +74,7 @@
Set dialog to open or save mode, changes selection behavior. See enum [code]Mode[/code] constants.
</member>
<member name="mode_overrides_title" type="bool" setter="set_mode_overrides_title" getter="is_mode_overriding_title">
- If [code]true[/code], changing the [code]Mode[/code] property will set the window title accordingly (e. g. setting mode to [code]MODE_OPEN_FILE[/code] will change the window title to "Open a File").
+ If [code]true[/code], changing the [code]Mode[/code] property will set the window title accordingly (e.g. setting mode to [code]MODE_OPEN_FILE[/code] will change the window title to "Open a File").
</member>
<member name="show_hidden_files" type="bool" setter="set_show_hidden_files" getter="is_showing_hidden_files">
If [code]true[/code], the dialog will show hidden files.
@@ -140,5 +138,7 @@
</theme_item>
<theme_item name="reload" type="Texture">
</theme_item>
+ <theme_item name="toggle_hidden" type="Texture">
+ </theme_item>
</theme_items>
</class>
diff --git a/doc/classes/Font.xml b/doc/classes/Font.xml
index 3e47b167ef..d65dad9fe1 100644
--- a/doc/classes/Font.xml
+++ b/doc/classes/Font.xml
@@ -1,15 +1,13 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="Font" inherits="Resource" category="Core" version="3.1">
+<class name="Font" inherits="Resource" category="Core" version="3.2">
<brief_description>
Internationalized font and text drawing support.
</brief_description>
<description>
- Font contains a unicode compatible character set, as well as the ability to draw it with variable width, ascent, descent and kerning. For creating fonts from TTF files (or other font formats), see the editor support for fonts. TODO check wikipedia for graph of ascent/baseline/descent/height/etc.
+ Font contains a unicode compatible character set, as well as the ability to draw it with variable width, ascent, descent and kerning. For creating fonts from TTF files (or other font formats), see the editor support for fonts.
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
<method name="draw" qualifiers="const">
<return type="void">
@@ -53,21 +51,21 @@
<return type="float">
</return>
<description>
- Return the font ascent (number of pixels above the baseline).
+ Returns the font ascent (number of pixels above the baseline).
</description>
</method>
<method name="get_descent" qualifiers="const">
<return type="float">
</return>
<description>
- Return the font descent (number of pixels below the baseline).
+ Returns the font descent (number of pixels below the baseline).
</description>
</method>
<method name="get_height" qualifiers="const">
<return type="float">
</return>
<description>
- Return the total font height (ascent plus descent) in pixels.
+ Returns the total font height (ascent plus descent) in pixels.
</description>
</method>
<method name="get_string_size" qualifiers="const">
@@ -76,7 +74,17 @@
<argument index="0" name="string" type="String">
</argument>
<description>
- Return the size of a string, taking kerning and advance into account.
+ Returns the size of a string, taking kerning and advance into account.
+ </description>
+ </method>
+ <method name="get_wordwrap_string_size" qualifiers="const">
+ <return type="Vector2">
+ </return>
+ <argument index="0" name="string" type="String">
+ </argument>
+ <argument index="1" name="p_width" type="float">
+ </argument>
+ <description>
</description>
</method>
<method name="has_outline" qualifiers="const">
diff --git a/doc/classes/FuncRef.xml b/doc/classes/FuncRef.xml
index 02b9dcfd88..e35d7a68c5 100644
--- a/doc/classes/FuncRef.xml
+++ b/doc/classes/FuncRef.xml
@@ -1,16 +1,14 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="FuncRef" inherits="Reference" category="Core" version="3.1">
+<class name="FuncRef" inherits="Reference" category="Core" version="3.2">
<brief_description>
Reference to a function in an object.
</brief_description>
<description>
In GDScript, functions are not [i]first-class objects[/i]. This means it is impossible to store them directly as variables, return them from another function, or pass them as arguments.
- However, by creating a [code]FuncRef[/code] using the [method @GDScript.funcref] function, a reference to a function in a given object can be created, passed around and called.
+ However, by creating a [FuncRef] using the [method @GDScript.funcref] function, a reference to a function in a given object can be created, passed around and called.
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
<method name="call_func" qualifiers="vararg">
<return type="Variant">
@@ -19,6 +17,12 @@
Calls the referenced function previously set by [method set_function] or [method @GDScript.funcref].
</description>
</method>
+ <method name="is_valid" qualifiers="const">
+ <return type="bool">
+ </return>
+ <description>
+ </description>
+ </method>
<method name="set_function">
<return type="void">
</return>
diff --git a/doc/classes/GIProbe.xml b/doc/classes/GIProbe.xml
index 5fb0ccc33d..e42d3ed2c4 100644
--- a/doc/classes/GIProbe.xml
+++ b/doc/classes/GIProbe.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="GIProbe" inherits="VisualInstance" category="Core" version="3.1">
+<class name="GIProbe" inherits="VisualInstance" category="Core" version="3.2">
<brief_description>
</brief_description>
<description>
@@ -7,8 +7,6 @@
<tutorials>
<link>https://docs.godotengine.org/en/latest/tutorials/3d/gi_probes.html</link>
</tutorials>
- <demos>
- </demos>
<methods>
<method name="bake">
<return type="void">
diff --git a/doc/classes/GIProbeData.xml b/doc/classes/GIProbeData.xml
index b2186d7647..94b86dee74 100644
--- a/doc/classes/GIProbeData.xml
+++ b/doc/classes/GIProbeData.xml
@@ -1,13 +1,11 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="GIProbeData" inherits="Resource" category="Core" version="3.1">
+<class name="GIProbeData" inherits="Resource" category="Core" version="3.2">
<brief_description>
</brief_description>
<description>
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
</methods>
<members>
diff --git a/doc/classes/Generic6DOFJoint.xml b/doc/classes/Generic6DOFJoint.xml
index e1046e282a..53cece21fa 100644
--- a/doc/classes/Generic6DOFJoint.xml
+++ b/doc/classes/Generic6DOFJoint.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="Generic6DOFJoint" inherits="Joint" category="Core" version="3.1">
+<class name="Generic6DOFJoint" inherits="Joint" category="Core" version="3.2">
<brief_description>
The generic 6 degrees of freedom joint can implement a variety of joint-types by locking certain axes' rotation or translation.
</brief_description>
@@ -8,8 +8,6 @@
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
</methods>
<members>
@@ -18,7 +16,7 @@
The lower, the longer an impulse from one side takes to travel to the other side.
</member>
<member name="angular_limit_x/enabled" type="bool" setter="set_flag_x" getter="get_flag_x">
- If [code]true[/code] rotation across the x-axis is limited.
+ If [code]true[/code], rotation across the x-axis is limited.
</member>
<member name="angular_limit_x/erp" type="float" setter="set_param_x" getter="get_param_x">
When rotating across x-axis, this error tolerance factor defines how much the correction gets slowed down. The lower, the slower.
@@ -42,7 +40,7 @@
The amount of rotational damping across the y-axis. The lower, the more dampening occurs.
</member>
<member name="angular_limit_y/enabled" type="bool" setter="set_flag_y" getter="get_flag_y">
- If [code]true[/code] rotation across the y-axis is limited.
+ If [code]true[/code], rotation across the y-axis is limited.
</member>
<member name="angular_limit_y/erp" type="float" setter="set_param_y" getter="get_param_y">
When rotating across y-axis, this error tolerance factor defines how much the correction gets slowed down. The lower, the slower.
@@ -66,7 +64,7 @@
The amount of rotational damping across the z-axis. The lower, the more dampening occurs.
</member>
<member name="angular_limit_z/enabled" type="bool" setter="set_flag_z" getter="get_flag_z">
- If [code]true[/code] rotation across the z-axis is limited.
+ If [code]true[/code], rotation across the z-axis is limited.
</member>
<member name="angular_limit_z/erp" type="float" setter="set_param_z" getter="get_param_z">
When rotating across z-axis, this error tolerance factor defines how much the correction gets slowed down. The lower, the slower.
@@ -87,7 +85,7 @@
The minimum rotation in positive direction to break loose and rotate around the z-axis.
</member>
<member name="angular_motor_x/enabled" type="bool" setter="set_flag_x" getter="get_flag_x">
- If [code]true[/code] a rotating motor at the x-axis is enabled.
+ If [code]true[/code], a rotating motor at the x-axis is enabled.
</member>
<member name="angular_motor_x/force_limit" type="float" setter="set_param_x" getter="get_param_x">
Maximum acceleration for the motor at the x-axis.
@@ -96,7 +94,7 @@
Target speed for the motor at the x-axis.
</member>
<member name="angular_motor_y/enabled" type="bool" setter="set_flag_y" getter="get_flag_y">
- If [code]true[/code] a rotating motor at the y-axis is enabled.
+ If [code]true[/code], a rotating motor at the y-axis is enabled.
</member>
<member name="angular_motor_y/force_limit" type="float" setter="set_param_y" getter="get_param_y">
Maximum acceleration for the motor at the y-axis.
@@ -105,7 +103,7 @@
Target speed for the motor at the y-axis.
</member>
<member name="angular_motor_z/enabled" type="bool" setter="set_flag_z" getter="get_flag_z">
- If [code]true[/code] a rotating motor at the z-axis is enabled.
+ If [code]true[/code], a rotating motor at the z-axis is enabled.
</member>
<member name="angular_motor_z/force_limit" type="float" setter="set_param_z" getter="get_param_z">
Maximum acceleration for the motor at the z-axis.
@@ -141,7 +139,7 @@
The amount of damping that happens at the x-motion.
</member>
<member name="linear_limit_x/enabled" type="bool" setter="set_flag_x" getter="get_flag_x">
- If [code]true[/code] the linear motion across the x-axis is limited.
+ If [code]true[/code], the linear motion across the x-axis is limited.
</member>
<member name="linear_limit_x/lower_distance" type="float" setter="set_param_x" getter="get_param_x">
The minimum difference between the pivot points' x-axis.
@@ -159,7 +157,7 @@
The amount of damping that happens at the y-motion.
</member>
<member name="linear_limit_y/enabled" type="bool" setter="set_flag_y" getter="get_flag_y">
- If [code]true[/code] the linear motion across the y-axis is limited.
+ If [code]true[/code], the linear motion across the y-axis is limited.
</member>
<member name="linear_limit_y/lower_distance" type="float" setter="set_param_y" getter="get_param_y">
The minimum difference between the pivot points' y-axis.
@@ -177,7 +175,7 @@
The amount of damping that happens at the z-motion.
</member>
<member name="linear_limit_z/enabled" type="bool" setter="set_flag_z" getter="get_flag_z">
- If [code]true[/code] the linear motion across the z-axis is limited.
+ If [code]true[/code], the linear motion across the z-axis is limited.
</member>
<member name="linear_limit_z/lower_distance" type="float" setter="set_param_z" getter="get_param_z">
The minimum difference between the pivot points' z-axis.
@@ -192,7 +190,7 @@
The maximum difference between the pivot points' z-axis.
</member>
<member name="linear_motor_x/enabled" type="bool" setter="set_flag_x" getter="get_flag_x">
- If [code]true[/code] then there is a linear motor on the x-axis. It will attempt to reach the target velocity while staying within the force limits.
+ If [code]true[/code], then there is a linear motor on the x-axis. It will attempt to reach the target velocity while staying within the force limits.
</member>
<member name="linear_motor_x/force_limit" type="float" setter="set_param_x" getter="get_param_x">
The maximum force the linear motor can apply on the x-axis while trying to reach the target velocity.
@@ -201,7 +199,7 @@
The speed that the linear motor will attempt to reach on the x-axis.
</member>
<member name="linear_motor_y/enabled" type="bool" setter="set_flag_y" getter="get_flag_y">
- If [code]true[/code] then there is a linear motor on the y-axis. It will attempt to reach the target velocity while staying within the force limits.
+ If [code]true[/code], then there is a linear motor on the y-axis. It will attempt to reach the target velocity while staying within the force limits.
</member>
<member name="linear_motor_y/force_limit" type="float" setter="set_param_y" getter="get_param_y">
The maximum force the linear motor can apply on the y-axis while trying to reach the target velocity.
@@ -210,7 +208,7 @@
The speed that the linear motor will attempt to reach on the y-axis.
</member>
<member name="linear_motor_z/enabled" type="bool" setter="set_flag_z" getter="get_flag_z">
- If [code]true[/code] then there is a linear motor on the z-axis. It will attempt to reach the target velocity while staying within the force limits.
+ If [code]true[/code], then there is a linear motor on the z-axis. It will attempt to reach the target velocity while staying within the force limits.
</member>
<member name="linear_motor_z/force_limit" type="float" setter="set_param_z" getter="get_param_z">
The maximum force the linear motor can apply on the z-axis while trying to reach the target velocity.
@@ -242,6 +240,8 @@
</member>
<member name="linear_spring_z/stiffness" type="float" setter="set_param_z" getter="get_param_z">
</member>
+ <member name="precision" type="int" setter="set_precision" getter="get_precision">
+ </member>
</members>
<constants>
<constant name="PARAM_LINEAR_LOWER_LIMIT" value="0" enum="Param">
diff --git a/doc/classes/Geometry.xml b/doc/classes/Geometry.xml
index ea2e2f7595..e2ba3fb7b0 100644
--- a/doc/classes/Geometry.xml
+++ b/doc/classes/Geometry.xml
@@ -1,13 +1,11 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="Geometry" inherits="Object" category="Core" version="3.1">
+<class name="Geometry" inherits="Object" category="Core" version="3.2">
<brief_description>
</brief_description>
<description>
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
<method name="build_box_planes">
<return type="Array">
@@ -61,6 +59,29 @@
Clips the polygon defined by the points in [code]points[/code] against the [code]plane[/code] and returns the points of the clipped polygon.
</description>
</method>
+ <method name="clip_polygons_2d">
+ <return type="Array">
+ </return>
+ <argument index="0" name="polygon_a" type="PoolVector2Array">
+ </argument>
+ <argument index="1" name="polygon_b" type="PoolVector2Array">
+ </argument>
+ <description>
+ Clips [code]polygon_a[/code] against [code]polygon_b[/code] and returns an array of clipped polygons. This performs [code]OPERATION_DIFFERENCE[/code] between polygons. Returns an empty array if [code]polygon_b[/code] completely overlaps [code]polygon_a[/code].
+ If [code]polygon_b[/code] is enclosed by [code]polygon_a[/code], returns an outer polygon (boundary) and inner polygon (hole) which could be distiguished by calling [method is_polygon_clockwise].
+ </description>
+ </method>
+ <method name="clip_polyline_with_polygon_2d">
+ <return type="Array">
+ </return>
+ <argument index="0" name="polyline" type="PoolVector2Array">
+ </argument>
+ <argument index="1" name="polygon" type="PoolVector2Array">
+ </argument>
+ <description>
+ Clips [code]polyline[/code] against [code]polygon[/code] and returns an array of clipped polylines. This performs [code]OPERATION_DIFFERENCE[/code] between the polyline and the polygon. This operation can be thought of as cutting a line with a closed shape.
+ </description>
+ </method>
<method name="convex_hull_2d">
<return type="PoolVector2Array">
</return>
@@ -70,6 +91,18 @@
Given an array of [Vector2]s, returns the convex hull as a list of points in counter-clockwise order. The last point is the same as the first one.
</description>
</method>
+ <method name="exclude_polygons_2d">
+ <return type="Array">
+ </return>
+ <argument index="0" name="polygon_a" type="PoolVector2Array">
+ </argument>
+ <argument index="1" name="polygon_b" type="PoolVector2Array">
+ </argument>
+ <description>
+ Mutually excludes common area defined by intersection of [code]polygon_a[/code] and [code]polygon_b[/code] (see [method intersect_polygons_2d]) and returns an array of excluded polygons. This performs [code]OPERATION_XOR[/code] between polygons. In other words, returns all but common area between polygons.
+ The operation may result in an outer polygon (boundary) and inner polygon (hole) produced which could be distiguished by calling [method is_polygon_clockwise].
+ </description>
+ </method>
<method name="get_closest_point_to_segment">
<return type="Vector3">
</return>
@@ -160,6 +193,38 @@
<description>
</description>
</method>
+ <method name="intersect_polygons_2d">
+ <return type="Array">
+ </return>
+ <argument index="0" name="polygon_a" type="PoolVector2Array">
+ </argument>
+ <argument index="1" name="polygon_b" type="PoolVector2Array">
+ </argument>
+ <description>
+ Intersects [code]polygon_a[/code] with [code]polygon_b[/code] and returns an array of intersected polygons. This performs [code]OPERATION_INTERSECTION[/code] between polygons. In other words, returns common area shared by polygons. Returns an empty array if no intersection occurs.
+ The operation may result in an outer polygon (boundary) and inner polygon (hole) produced which could be distiguished by calling [method is_polygon_clockwise].
+ </description>
+ </method>
+ <method name="intersect_polyline_with_polygon_2d">
+ <return type="Array">
+ </return>
+ <argument index="0" name="polyline" type="PoolVector2Array">
+ </argument>
+ <argument index="1" name="polygon" type="PoolVector2Array">
+ </argument>
+ <description>
+ Intersects [code]polyline[/code] with [code]polygon[/code] and returns an array of intersected polylines. This performs [code]OPERATION_INTERSECTION[/code] between the polyline and the polygon. This operation can be thought of as chopping a line with a closed shape.
+ </description>
+ </method>
+ <method name="is_polygon_clockwise">
+ <return type="bool">
+ </return>
+ <argument index="0" name="polygon" type="PoolVector2Array">
+ </argument>
+ <description>
+ Returns [code]true[/code] if [code]polygon[/code]'s vertices are ordered in clockwise order, otherwise returns [code]false[/code].
+ </description>
+ </method>
<method name="line_intersects_line_2d">
<return type="Variant">
</return>
@@ -184,6 +249,51 @@
Given an array of [Vector2]s representing tiles, builds an atlas. The returned dictionary has two keys: [code]points[/code] is a vector of [Vector2] that specifies the positions of each tile, [code]size[/code] contains the overall size of the whole atlas as [Vector2].
</description>
</method>
+ <method name="merge_polygons_2d">
+ <return type="Array">
+ </return>
+ <argument index="0" name="polygon_a" type="PoolVector2Array">
+ </argument>
+ <argument index="1" name="polygon_b" type="PoolVector2Array">
+ </argument>
+ <description>
+ Merges (combines) [code]polygon_a[/code] and [code]polygon_b[/code] and returns an array of merged polygons. This performs [code]OPERATION_UNION[/code] between polygons.
+ The operation may result in an outer polygon (boundary) and inner polygon (hole) produced which could be distiguished by calling [method is_polygon_clockwise].
+ </description>
+ </method>
+ <method name="offset_polygon_2d">
+ <return type="Array">
+ </return>
+ <argument index="0" name="polygon" type="PoolVector2Array">
+ </argument>
+ <argument index="1" name="delta" type="float">
+ </argument>
+ <argument index="2" name="join_type" type="int" enum="Geometry.PolyJoinType" default="0">
+ </argument>
+ <description>
+ Inflates or deflates [code]polygon[/code] by [code]delta[/code] units (pixels). If [code]delta[/code] is positive, makes the polygon grow outward. If [code]delta[/code] is negative, shrinks the polygon inward. Returns an array of polygons because inflating/deflating may result in multiple discrete polygons. Returns an empty array if [code]delta[/code] is negative and the absolute value of it approximately exceeds the minimum bounding rectangle dimensions of the polygon.
+ Each polygon's vertices will be rounded as determined by [code]join_type[/code], see [enum Geometry.PolyJoinType].
+ The operation may result in an outer polygon (boundary) and inner polygon (hole) produced which could be distiguished by calling [method is_polygon_clockwise].
+ </description>
+ </method>
+ <method name="offset_polyline_2d">
+ <return type="Array">
+ </return>
+ <argument index="0" name="polyline" type="PoolVector2Array">
+ </argument>
+ <argument index="1" name="delta" type="float">
+ </argument>
+ <argument index="2" name="join_type" type="int" enum="Geometry.PolyJoinType" default="0">
+ </argument>
+ <argument index="3" name="end_type" type="int" enum="Geometry.PolyEndType" default="3">
+ </argument>
+ <description>
+ Inflates or deflates [code]polyline[/code] by [code]delta[/code] units (pixels), producing polygons. If [code]delta[/code] is positive, makes the polyline grow outward. Returns an array of polygons because inflating/deflating may result in multiple discrete polygons. If [code]delta[/code] is negative, returns an empty array.
+ Each polygon's vertices will be rounded as determined by [code]join_type[/code], see [enum Geometry.PolyJoinType].
+ Each polygon's endpoints will be rounded as determined by [code]end_type[/code], see [enum Geometry.PolyEndType].
+ The operation may result in an outer polygon (boundary) and inner polygon (hole) produced which could be distiguished by calling [method is_polygon_clockwise].
+ </description>
+ </method>
<method name="point_is_inside_triangle" qualifiers="const">
<return type="bool">
</return>
@@ -306,6 +416,27 @@
Tests if the segment ([code]from[/code], [code]to[/code]) intersects the triangle [code]a[/code], [code]b[/code], [code]c[/code]. If yes, returns the point of intersection as [Vector3]. If no intersection takes place, an empty [Variant] is returned.
</description>
</method>
+ <method name="transform_points_2d">
+ <return type="PoolVector2Array">
+ </return>
+ <argument index="0" name="points" type="PoolVector2Array">
+ </argument>
+ <argument index="1" name="transform" type="Transform2D">
+ </argument>
+ <description>
+ Transforms an array of points by [code]transform[/code] and returns the result.
+ Can be useful in conjuction with performing polygon boolean operations in CSG manner, see [method merge_polygons_2d], [method clip_polygons_2d], [method intersect_polygons_2d], [method exclude_polygons_2d].
+ </description>
+ </method>
+ <method name="triangulate_delaunay_2d">
+ <return type="PoolIntArray">
+ </return>
+ <argument index="0" name="points" type="PoolVector2Array">
+ </argument>
+ <description>
+ Triangulates the area specified by discrete set of [code]points[/code] such that no point is inside the circumcircle of any resulting triangle. Returns a [PoolIntArray] where each triangle consists of three consecutive point indices into [code]points[/code] (i.e. the returned array will have [code]n * 3[/code] elements, with [code]n[/code] being the number of found triangles). If the triangulation did not succeed, an empty [PoolIntArray] is returned.
+ </description>
+ </method>
<method name="triangulate_polygon">
<return type="PoolIntArray">
</return>
@@ -317,5 +448,41 @@
</method>
</methods>
<constants>
+ <constant name="OPERATION_UNION" value="0" enum="PolyBooleanOperation">
+ Create regions where either subject or clip polygons (or both) are filled.
+ </constant>
+ <constant name="OPERATION_DIFFERENCE" value="1" enum="PolyBooleanOperation">
+ Create regions where subject polygons are filled except where clip polygons are filled.
+ </constant>
+ <constant name="OPERATION_INTERSECTION" value="2" enum="PolyBooleanOperation">
+ Create regions where both subject and clip polygons are filled.
+ </constant>
+ <constant name="OPERATION_XOR" value="3" enum="PolyBooleanOperation">
+ Create regions where either subject or clip polygons are filled but not where both are filled.
+ </constant>
+ <constant name="JOIN_SQUARE" value="0" enum="PolyJoinType">
+ Squaring is applied uniformally at all convex edge joins at [code]1 * delta[/code].
+ </constant>
+ <constant name="JOIN_ROUND" value="1" enum="PolyJoinType">
+ While flattened paths can never perfectly trace an arc, they are approximated by a series of arc chords.
+ </constant>
+ <constant name="JOIN_MITER" value="2" enum="PolyJoinType">
+ There's a necessary limit to mitered joins since offsetting edges that join at very acute angles will produce excessively long and narrow 'spikes'. For any given edge join, when miter offsetting would exceed that maximum distance, 'square' joining is applied.
+ </constant>
+ <constant name="END_POLYGON" value="0" enum="PolyEndType">
+ Endpoints are joined using the [enum PolyJoinType] value and the path filled as a polygon.
+ </constant>
+ <constant name="END_JOINED" value="1" enum="PolyEndType">
+ Endpoints are joined using the [enum PolyJoinType] value and the path filled as a polyline.
+ </constant>
+ <constant name="END_BUTT" value="2" enum="PolyEndType">
+ Endpoints are squared off with no extension.
+ </constant>
+ <constant name="END_SQUARE" value="3" enum="PolyEndType">
+ Endpoints are squared off and extended by [code]delta[/code] units.
+ </constant>
+ <constant name="END_ROUND" value="4" enum="PolyEndType">
+ Endpoints are rounded off and extended by [code]delta[/code] units.
+ </constant>
</constants>
</class>
diff --git a/doc/classes/GeometryInstance.xml b/doc/classes/GeometryInstance.xml
index 8831805dde..674f786149 100644
--- a/doc/classes/GeometryInstance.xml
+++ b/doc/classes/GeometryInstance.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="GeometryInstance" inherits="VisualInstance" category="Core" version="3.1">
+<class name="GeometryInstance" inherits="VisualInstance" category="Core" version="3.2">
<brief_description>
Base node for geometry based visual instances.
</brief_description>
@@ -8,9 +8,16 @@
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
+ <method name="set_custom_aabb">
+ <return type="void">
+ </return>
+ <argument index="0" name="aabb" type="AABB">
+ </argument>
+ <description>
+ Overrides the bounding box of this node with a custom one. To remove it, set an AABB with all fields set to zero.
+ </description>
+ </method>
</methods>
<members>
<member name="cast_shadow" type="int" setter="set_cast_shadows_setting" getter="get_cast_shadows_setting" enum="GeometryInstance.ShadowCastingSetting">
@@ -36,7 +43,7 @@
If there is a material in material_override, it will be used instead of any material set in any material slot of the mesh.
</member>
<member name="use_in_baked_light" type="bool" setter="set_flag" getter="get_flag">
- If [code]true[/code] this GeometryInstance will be used when baking lights using a [GIProbe] and/or any other form of baked lighting.
+ If [code]true[/code], this GeometryInstance will be used when baking lights using a [GIProbe] and/or any other form of baked lighting.
</member>
</members>
<constants>
diff --git a/doc/classes/Gradient.xml b/doc/classes/Gradient.xml
index bf3f125e48..d80fed204e 100644
--- a/doc/classes/Gradient.xml
+++ b/doc/classes/Gradient.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="Gradient" inherits="Resource" category="Core" version="3.1">
+<class name="Gradient" inherits="Resource" category="Core" version="3.2">
<brief_description>
Color interpolator node.
</brief_description>
@@ -8,8 +8,6 @@
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
<method name="add_point">
<return type="void">
diff --git a/doc/classes/GradientTexture.xml b/doc/classes/GradientTexture.xml
index 9d2465e23d..fc952346ad 100644
--- a/doc/classes/GradientTexture.xml
+++ b/doc/classes/GradientTexture.xml
@@ -1,15 +1,13 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="GradientTexture" inherits="Texture" category="Core" version="3.1">
+<class name="GradientTexture" inherits="Texture" category="Core" version="3.2">
<brief_description>
Gradient filled texture.
</brief_description>
<description>
- Uses a [Gradient] to fill the texture data, the gradient will be filled from left to right using colors obtained from the gradient, this means that the texture does not necessarily represent an exact copy of the gradient, but instead an interpolation of samples obtained from the gradient at fixed steps (see [method set_width]).
+ Uses a [Gradient] to fill the texture data, the gradient will be filled from left to right using colors obtained from the gradient, this means that the texture does not necessarily represent an exact copy of the gradient, but instead an interpolation of samples obtained from the gradient at fixed steps (see [member width]).
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
</methods>
<members>
diff --git a/doc/classes/GraphEdit.xml b/doc/classes/GraphEdit.xml
index ce0b619d67..db186eab35 100644
--- a/doc/classes/GraphEdit.xml
+++ b/doc/classes/GraphEdit.xml
@@ -1,16 +1,14 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="GraphEdit" inherits="Control" category="Core" version="3.1">
+<class name="GraphEdit" inherits="Control" category="Core" version="3.2">
<brief_description>
GraphEdit is an area capable of showing various GraphNodes. It manages connection events between them.
</brief_description>
<description>
GraphEdit manages the showing of GraphNodes it contains, as well as connections and disconnections between them. Signals are sent for each of these two events. Disconnection between GraphNodes slots is disabled by default.
- It is greatly advised to enable low processor usage mode (see [method OS.set_low_processor_usage_mode]) when using GraphEdits.
+ It is greatly advised to enable low processor usage mode (see [member OS.low_processor_usage_mode]) when using GraphEdits.
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
<method name="add_valid_connection_type">
<return type="void">
@@ -82,7 +80,7 @@
<return type="Array">
</return>
<description>
- Return an Array containing the list of connections. A connection consists in a structure of the form {from_slot: 0, from: "GraphNode name 0", to_slot: 1, to: "GraphNode name 1" }
+ Returns an Array containing the list of connections. A connection consists in a structure of the form {from_port: 0, from: "GraphNode name 0", to_port: 1, to: "GraphNode name 1" }
</description>
</method>
<method name="get_zoom_hbox">
@@ -103,7 +101,7 @@
<argument index="3" name="to_port" type="int">
</argument>
<description>
- Return true if the 'from_port' slot of 'from' GraphNode is connected to the 'to_port' slot of 'to' GraphNode.
+ Returns [code]true[/code] if the 'from_port' slot of 'from' GraphNode is connected to the 'to_port' slot of 'to' GraphNode.
</description>
</method>
<method name="is_valid_connection_type" qualifiers="const">
@@ -254,7 +252,7 @@
</description>
</signal>
<signal name="popup_request">
- <argument index="0" name="p_position" type="Vector2">
+ <argument index="0" name="position" type="Vector2">
</argument>
<description>
Signal sent when a popup is requested. Happens on right-clicking in the GraphEdit. 'p_position' is the position of the mouse pointer when the signal is sent.
diff --git a/doc/classes/GraphNode.xml b/doc/classes/GraphNode.xml
index 4c39720d69..a19676798b 100644
--- a/doc/classes/GraphNode.xml
+++ b/doc/classes/GraphNode.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="GraphNode" inherits="Container" category="Core" version="3.1">
+<class name="GraphNode" inherits="Container" category="Core" version="3.2">
<brief_description>
A GraphNode is a container with several input and output slots allowing connections between GraphNodes. Slots can have different, incompatible types.
</brief_description>
@@ -8,8 +8,6 @@
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
<method name="clear_all_slots">
<return type="void">
@@ -33,14 +31,14 @@
<argument index="0" name="idx" type="int">
</argument>
<description>
- Return the color of the input connection 'idx'.
+ Returns the color of the input connection 'idx'.
</description>
</method>
<method name="get_connection_input_count">
<return type="int">
</return>
<description>
- Return the number of enabled input slots (connections) to the GraphNode.
+ Returns the number of enabled input slots (connections) to the GraphNode.
</description>
</method>
<method name="get_connection_input_position">
@@ -49,7 +47,7 @@
<argument index="0" name="idx" type="int">
</argument>
<description>
- Return the position of the input connection 'idx'.
+ Returns the position of the input connection 'idx'.
</description>
</method>
<method name="get_connection_input_type">
@@ -58,7 +56,7 @@
<argument index="0" name="idx" type="int">
</argument>
<description>
- Return the type of the input connection 'idx'.
+ Returns the type of the input connection 'idx'.
</description>
</method>
<method name="get_connection_output_color">
@@ -67,14 +65,14 @@
<argument index="0" name="idx" type="int">
</argument>
<description>
- Return the color of the output connection 'idx'.
+ Returns the color of the output connection 'idx'.
</description>
</method>
<method name="get_connection_output_count">
<return type="int">
</return>
<description>
- Return the number of enabled output slots (connections) of the GraphNode.
+ Returns the number of enabled output slots (connections) of the GraphNode.
</description>
</method>
<method name="get_connection_output_position">
@@ -83,7 +81,7 @@
<argument index="0" name="idx" type="int">
</argument>
<description>
- Return the position of the output connection 'idx'.
+ Returns the position of the output connection 'idx'.
</description>
</method>
<method name="get_connection_output_type">
@@ -92,7 +90,7 @@
<argument index="0" name="idx" type="int">
</argument>
<description>
- Return the type of the output connection 'idx'.
+ Returns the type of the output connection 'idx'.
</description>
</method>
<method name="get_slot_color_left" qualifiers="const">
@@ -101,7 +99,7 @@
<argument index="0" name="idx" type="int">
</argument>
<description>
- Return the color set to 'idx' left (input) slot.
+ Returns the color set to 'idx' left (input) slot.
</description>
</method>
<method name="get_slot_color_right" qualifiers="const">
@@ -110,7 +108,7 @@
<argument index="0" name="idx" type="int">
</argument>
<description>
- Return the color set to 'idx' right (output) slot.
+ Returns the color set to 'idx' right (output) slot.
</description>
</method>
<method name="get_slot_type_left" qualifiers="const">
@@ -119,7 +117,7 @@
<argument index="0" name="idx" type="int">
</argument>
<description>
- Return the (integer) type of left (input) 'idx' slot.
+ Returns the (integer) type of left (input) 'idx' slot.
</description>
</method>
<method name="get_slot_type_right" qualifiers="const">
@@ -128,7 +126,7 @@
<argument index="0" name="idx" type="int">
</argument>
<description>
- Return the (integer) type of right (output) 'idx' slot.
+ Returns the (integer) type of right (output) 'idx' slot.
</description>
</method>
<method name="is_slot_enabled_left" qualifiers="const">
@@ -137,7 +135,7 @@
<argument index="0" name="idx" type="int">
</argument>
<description>
- Return true if left (input) slot 'idx' is enabled. False otherwise.
+ Returns [code]true[/code] if left (input) slot 'idx' is enabled, [code]false[/code] otherwise.
</description>
</method>
<method name="is_slot_enabled_right" qualifiers="const">
@@ -146,7 +144,7 @@
<argument index="0" name="idx" type="int">
</argument>
<description>
- Return true if right (output) slot 'idx' is enabled. False otherwise.
+ Returns [code]true[/code] if right (output) slot 'idx' is enabled, [code]false[/code] otherwise.
</description>
</method>
<method name="set_slot">
@@ -236,6 +234,8 @@
</theme_item>
<theme_item name="close" type="Texture">
</theme_item>
+ <theme_item name="close_color" type="Color">
+ </theme_item>
<theme_item name="close_offset" type="int">
</theme_item>
<theme_item name="comment" type="StyleBox">
diff --git a/doc/classes/GridContainer.xml b/doc/classes/GridContainer.xml
index 346ab9d357..94d805e3f6 100644
--- a/doc/classes/GridContainer.xml
+++ b/doc/classes/GridContainer.xml
@@ -1,20 +1,18 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="GridContainer" inherits="Container" category="Core" version="3.1">
+<class name="GridContainer" inherits="Container" category="Core" version="3.2">
<brief_description>
Grid container used to arrange elements in a grid like layout.
</brief_description>
<description>
- Grid container will arrange its children in a grid like structure, the grid columns are specified using the [method set_columns] method and the number of rows will be equal to the number of children in the container divided by the number of columns, for example: if the container has 5 children, and 2 columns, there will be 3 rows in the container. Notice that grid layout will preserve the columns and rows for every size of the container.
+ Grid container will arrange its children in a grid like structure, the grid columns are specified using the [member columns] property and the number of rows will be equal to the number of children in the container divided by the number of columns, for example: if the container has 5 children, and 2 columns, there will be 3 rows in the container. Notice that grid layout will preserve the columns and rows for every size of the container.
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
</methods>
<members>
<member name="columns" type="int" setter="set_columns" getter="get_columns">
- The number of columns in the [code]GridContainer[/code]. If modified, [code]GridContainer[/code] reorders its children to accommodate the new layout.
+ The number of columns in the [GridContainer]. If modified, [GridContainer] reorders its children to accommodate the new layout.
</member>
</members>
<constants>
diff --git a/doc/classes/GrooveJoint2D.xml b/doc/classes/GrooveJoint2D.xml
index a15c658f78..dd758d0bd3 100644
--- a/doc/classes/GrooveJoint2D.xml
+++ b/doc/classes/GrooveJoint2D.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="GrooveJoint2D" inherits="Joint2D" category="Core" version="3.1">
+<class name="GrooveJoint2D" inherits="Joint2D" category="Core" version="3.2">
<brief_description>
Groove constraint for 2D physics.
</brief_description>
@@ -8,8 +8,6 @@
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
</methods>
<members>
diff --git a/doc/classes/HBoxContainer.xml b/doc/classes/HBoxContainer.xml
index 9c86f17ef1..fce030a260 100644
--- a/doc/classes/HBoxContainer.xml
+++ b/doc/classes/HBoxContainer.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="HBoxContainer" inherits="BoxContainer" category="Core" version="3.1">
+<class name="HBoxContainer" inherits="BoxContainer" category="Core" version="3.2">
<brief_description>
Horizontal box container.
</brief_description>
@@ -8,8 +8,6 @@
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
</methods>
<constants>
diff --git a/doc/classes/HScrollBar.xml b/doc/classes/HScrollBar.xml
index 61759c4f94..14ace8bc76 100644
--- a/doc/classes/HScrollBar.xml
+++ b/doc/classes/HScrollBar.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="HScrollBar" inherits="ScrollBar" category="Core" version="3.1">
+<class name="HScrollBar" inherits="ScrollBar" category="Core" version="3.2">
<brief_description>
Horizontal scroll bar.
</brief_description>
@@ -8,8 +8,6 @@
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
</methods>
<constants>
diff --git a/doc/classes/HSeparator.xml b/doc/classes/HSeparator.xml
index 1a9cf25857..c2c22d3bcd 100644
--- a/doc/classes/HSeparator.xml
+++ b/doc/classes/HSeparator.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="HSeparator" inherits="Separator" category="Core" version="3.1">
+<class name="HSeparator" inherits="Separator" category="Core" version="3.2">
<brief_description>
Horizontal separator.
</brief_description>
@@ -8,8 +8,6 @@
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
</methods>
<constants>
diff --git a/doc/classes/HSlider.xml b/doc/classes/HSlider.xml
index 6d5acded3c..2fef4669d2 100644
--- a/doc/classes/HSlider.xml
+++ b/doc/classes/HSlider.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="HSlider" inherits="Slider" category="Core" version="3.1">
+<class name="HSlider" inherits="Slider" category="Core" version="3.2">
<brief_description>
Horizontal slider.
</brief_description>
@@ -8,8 +8,6 @@
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
</methods>
<constants>
diff --git a/doc/classes/HSplitContainer.xml b/doc/classes/HSplitContainer.xml
index 45b99c85a6..accc09d190 100644
--- a/doc/classes/HSplitContainer.xml
+++ b/doc/classes/HSplitContainer.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="HSplitContainer" inherits="SplitContainer" category="Core" version="3.1">
+<class name="HSplitContainer" inherits="SplitContainer" category="Core" version="3.2">
<brief_description>
Horizontal split container.
</brief_description>
@@ -8,8 +8,6 @@
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
</methods>
<constants>
diff --git a/doc/classes/HTTPClient.xml b/doc/classes/HTTPClient.xml
index 2f21505757..8ae0120a34 100644
--- a/doc/classes/HTTPClient.xml
+++ b/doc/classes/HTTPClient.xml
@@ -1,26 +1,24 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="HTTPClient" inherits="Reference" category="Core" version="3.1">
+<class name="HTTPClient" inherits="Reference" category="Core" version="3.2">
<brief_description>
Hyper-text transfer protocol client.
</brief_description>
<description>
Hyper-text transfer protocol client (sometimes called "User Agent"). Used to make HTTP requests to download web content, upload files and other data or to communicate with various services, among other use cases.
Note that this client only needs to connect to a host once (see [method connect_to_host]) to send multiple requests. Because of this, methods that take URLs usually take just the part after the host instead of the full URL, as the client is already connected to a host. See [method request] for a full example and to get started.
- A [code]HTTPClient[/code] should be reused between multiple requests or to connect to different hosts instead of creating one client per request. Supports SSL and SSL server certificate verification. HTTP status codes in the 2xx range indicate success, 3xx redirection (i.e. "try again, but over here"), 4xx something was wrong with the request, and 5xx something went wrong on the server's side.
+ A [HTTPClient] should be reused between multiple requests or to connect to different hosts instead of creating one client per request. Supports SSL and SSL server certificate verification. HTTP status codes in the 2xx range indicate success, 3xx redirection (i.e. "try again, but over here"), 4xx something was wrong with the request, and 5xx something went wrong on the server's side.
For more information on HTTP, see https://developer.mozilla.org/en-US/docs/Web/HTTP (or read RFC 2616 to get it straight from the source: https://tools.ietf.org/html/rfc2616).
</description>
<tutorials>
<link>https://docs.godotengine.org/en/latest/tutorials/networking/http_client_class.html</link>
<link>https://docs.godotengine.org/en/latest/tutorials/networking/ssl_certificates.html</link>
</tutorials>
- <demos>
- </demos>
<methods>
<method name="close">
<return type="void">
</return>
<description>
- Closes the current connection, allowing reuse of this [code]HTTPClient[/code].
+ Closes the current connection, allowing reuse of this [HTTPClient].
</description>
</method>
<method name="connect_to_host">
@@ -82,14 +80,14 @@
<return type="bool">
</return>
<description>
- If [code]true[/code] this [code]HTTPClient[/code] has a response available.
+ If [code]true[/code], this [HTTPClient] has a response available.
</description>
</method>
<method name="is_response_chunked" qualifiers="const">
<return type="bool">
</return>
<description>
- If [code]true[/code] this [code]HTTPClient[/code] has a response that is chunked.
+ If [code]true[/code], this [HTTPClient] has a response that is chunked.
</description>
</method>
<method name="poll">
@@ -108,14 +106,14 @@
Generates a GET/POST application/x-www-form-urlencoded style query string from a provided dictionary, e.g.:
[codeblock]
var fields = {"username": "user", "password": "pass"}
- String queryString = httpClient.query_string_from_dict(fields)
- returns:= "username=user&amp;password=pass"
+ String query_string = http_client.query_string_from_dict(fields)
+ # returns: "username=user&amp;password=pass"
[/codeblock]
Furthermore, if a key has a null value, only the key itself is added, without equal sign and value. If the value is an array, for each value in it a pair with the same key is added.
[codeblock]
var fields = {"single": 123, "not_valued": null, "multiple": [22, 33, 44]}
- String queryString = httpClient.query_string_from_dict(fields)
- returns:= "single=123&amp;not_valued&amp;multiple=22&amp;multiple=33&amp;multiple=44"
+ String query_string = http_client.query_string_from_dict(fields)
+ # returns: "single=123&amp;not_valued&amp;multiple=22&amp;multiple=33&amp;multiple=44"
[/codeblock]
</description>
</method>
@@ -143,9 +141,9 @@
To create a POST request with query strings to push to the server, do:
[codeblock]
var fields = {"username" : "user", "password" : "pass"}
- var queryString = httpClient.query_string_from_dict(fields)
- var headers = ["Content-Type: application/x-www-form-urlencoded", "Content-Length: " + str(queryString.length())]
- var result = httpClient.request(httpClient.METHOD_POST, "index.php", headers, queryString)
+ var query_string = http_client.query_string_from_dict(fields)
+ var headers = ["Content-Type: application/x-www-form-urlencoded", "Content-Length: " + str(query_string.length())]
+ var result = http_client.request(http_client.METHOD_POST, "index.php", headers, query_string)
[/codeblock]
</description>
</method>
@@ -297,7 +295,7 @@
HTTP status code [code]303 See Other[/code]. The server is redirecting the user agent to a different resource, as indicated by a URI in the Location header field, which is intended to provide an indirect response to the original request.
</constant>
<constant name="RESPONSE_NOT_MODIFIED" value="304" enum="ResponseCode">
- HTTP status code [code]304 Not Modified[/code]. A conditional GET or HEAD request has been received and would have resulted in a 200 OK response if it were not for the fact that the condition evaluated to false.
+ HTTP status code [code]304 Not Modified[/code]. A conditional GET or HEAD request has been received and would have resulted in a 200 OK response if it were not for the fact that the condition evaluated to [code]false[/code].
</constant>
<constant name="RESPONSE_USE_PROXY" value="305" enum="ResponseCode">
HTTP status code [code]305 Use Proxy[/code]. Deprecated. Do not use.
@@ -348,7 +346,7 @@
HTTP status code [code]411 Length Required[/code]. The server refuses to accept the request without a defined Content-Length header.
</constant>
<constant name="RESPONSE_PRECONDITION_FAILED" value="412" enum="ResponseCode">
- HTTP status code [code]412 Precondition Failed[/code]. One or more conditions given in the request header fields evaluated to false when tested on the server.
+ HTTP status code [code]412 Precondition Failed[/code]. One or more conditions given in the request header fields evaluated to [code]false[/code] when tested on the server.
</constant>
<constant name="RESPONSE_REQUEST_ENTITY_TOO_LARGE" value="413" enum="ResponseCode">
HTTP status code [code]413 Entity Too Large[/code]. The server is refusing to process a request because the request payload is larger than the server is willing or able to process.
diff --git a/doc/classes/HTTPRequest.xml b/doc/classes/HTTPRequest.xml
index 3916eb2b5b..3dccc8e741 100644
--- a/doc/classes/HTTPRequest.xml
+++ b/doc/classes/HTTPRequest.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="HTTPRequest" inherits="Node" category="Core" version="3.1">
+<class name="HTTPRequest" inherits="Node" category="Core" version="3.2">
<brief_description>
A node with the ability to send HTTP requests.
</brief_description>
@@ -10,8 +10,6 @@
<tutorials>
<link>https://docs.godotengine.org/en/latest/tutorials/networking/ssl_certificates.html</link>
</tutorials>
- <demos>
- </demos>
<methods>
<method name="cancel_request">
<return type="void">
@@ -71,7 +69,7 @@
Maximum number of allowed redirects.
</member>
<member name="use_threads" type="bool" setter="set_use_threads" getter="is_using_threads">
- If [code]true[/code] multithreading is used to improve performance.
+ If [code]true[/code], multithreading is used to improve performance.
</member>
</members>
<signals>
@@ -102,16 +100,16 @@
Request failed while resolving.
</constant>
<constant name="RESULT_CONNECTION_ERROR" value="4" enum="Result">
- Request failed due to connection(read/write) error.
+ Request failed due to connection (read/write) error.
</constant>
<constant name="RESULT_SSL_HANDSHAKE_ERROR" value="5" enum="Result">
Request failed on SSL handshake.
</constant>
<constant name="RESULT_NO_RESPONSE" value="6" enum="Result">
- Request does not have a response(yet).
+ Request does not have a response (yet).
</constant>
<constant name="RESULT_BODY_SIZE_LIMIT_EXCEEDED" value="7" enum="Result">
- Request exceeded its maximum size limit, see [method set_body_size_limit].
+ Request exceeded its maximum size limit, see [member body_size_limit].
</constant>
<constant name="RESULT_REQUEST_FAILED" value="8" enum="Result">
Request failed. (Unused)
@@ -123,7 +121,7 @@
HTTPRequest couldn't write to the download file.
</constant>
<constant name="RESULT_REDIRECT_LIMIT_REACHED" value="11" enum="Result">
- Request reached its maximum redirect limit, see [method set_max_redirects].
+ Request reached its maximum redirect limit, see [member max_redirects].
</constant>
</constants>
</class>
diff --git a/doc/classes/HeightMapShape.xml b/doc/classes/HeightMapShape.xml
new file mode 100644
index 0000000000..22896535b9
--- /dev/null
+++ b/doc/classes/HeightMapShape.xml
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<class name="HeightMapShape" inherits="Shape" category="Core" version="3.2">
+ <brief_description>
+ Height map shape for 3D physics (Bullet only).
+ </brief_description>
+ <description>
+ Height map shape resource, which can be added to a [PhysicsBody] or [Area].
+ </description>
+ <tutorials>
+ </tutorials>
+ <methods>
+ </methods>
+ <members>
+ <member name="map_data" type="PoolRealArray" setter="set_map_data" getter="get_map_data">
+ Height map data, pool array must be of [member map_width] * [member map_depth] size.
+ </member>
+ <member name="map_depth" type="int" setter="set_map_depth" getter="get_map_depth">
+ Depth of the height map data. Changing this will resize the [member map_data].
+ </member>
+ <member name="map_width" type="int" setter="set_map_width" getter="get_map_width">
+ Width of the height map data. Changing this will resize the [member map_data].
+ </member>
+ </members>
+ <constants>
+ </constants>
+</class>
diff --git a/doc/classes/HingeJoint.xml b/doc/classes/HingeJoint.xml
index 3c5719056b..79df64f226 100644
--- a/doc/classes/HingeJoint.xml
+++ b/doc/classes/HingeJoint.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="HingeJoint" inherits="Joint" category="Core" version="3.1">
+<class name="HingeJoint" inherits="Joint" category="Core" version="3.2">
<brief_description>
A hinge between two 3D bodies.
</brief_description>
@@ -8,8 +8,6 @@
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
</methods>
<members>
@@ -17,7 +15,7 @@
The speed with which the rotation across the axis perpendicular to the hinge gets corrected.
</member>
<member name="angular_limit/enable" type="bool" setter="set_flag" getter="get_flag">
- If [code]true[/code] the hinges maximum and minimum rotation, defined by [member angular_limit/lower] and [member angular_limit/upper] has effects.
+ If [code]true[/code], the hinges maximum and minimum rotation, defined by [member angular_limit/lower] and [member angular_limit/upper] has effects.
</member>
<member name="angular_limit/lower" type="float" setter="_set_lower_limit" getter="_get_lower_limit">
The minimum rotation. only active if [member angular_limit/enable] is [code]true[/code].
@@ -71,7 +69,7 @@
End flag of PARAM_* constants, used internally.
</constant>
<constant name="FLAG_USE_LIMIT" value="0" enum="Flag">
- If [code]true[/code] the hinges maximum and minimum rotation, defined by [member angular_limit/lower] and [member angular_limit/upper] has effects.
+ If [code]true[/code], the hinges maximum and minimum rotation, defined by [member angular_limit/lower] and [member angular_limit/upper] has effects.
</constant>
<constant name="FLAG_ENABLE_MOTOR" value="1" enum="Flag">
When activated, a motor turns the hinge.
diff --git a/doc/classes/IP.xml b/doc/classes/IP.xml
index bcb15e44fc..3616a9ec50 100644
--- a/doc/classes/IP.xml
+++ b/doc/classes/IP.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="IP" inherits="Object" category="Core" version="3.1">
+<class name="IP" inherits="Object" category="Core" version="3.2">
<brief_description>
Internet protocol (IP) support functions like DNS resolution.
</brief_description>
@@ -8,8 +8,6 @@
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
<method name="clear_cache">
<return type="void">
diff --git a/doc/classes/IP_Unix.xml b/doc/classes/IP_Unix.xml
index 0dd4455562..4e09bf5dc0 100644
--- a/doc/classes/IP_Unix.xml
+++ b/doc/classes/IP_Unix.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="IP_Unix" inherits="IP" category="Core" version="3.1">
+<class name="IP_Unix" inherits="IP" category="Core" version="3.2">
<brief_description>
Unix IP support. See [IP].
</brief_description>
@@ -8,8 +8,6 @@
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
</methods>
<constants>
diff --git a/doc/classes/Image.xml b/doc/classes/Image.xml
index 56accdcd9e..75434b031e 100644
--- a/doc/classes/Image.xml
+++ b/doc/classes/Image.xml
@@ -1,15 +1,13 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="Image" inherits="Resource" category="Core" version="3.1">
+<class name="Image" inherits="Resource" category="Core" version="3.2">
<brief_description>
Image datatype.
</brief_description>
<description>
- Native image datatype. Contains image data, which can be converted to a [Texture], and several functions to interact with it. The maximum width and height for an [code]Image[/code] is 16384 pixels.
+ Native image datatype. Contains image data, which can be converted to a [Texture], and several functions to interact with it. The maximum width and height for an [Image] are [constant MAX_WIDTH] and [constant MAX_HEIGHT].
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
<method name="blend_rect">
<return type="void">
@@ -125,7 +123,7 @@
<argument index="3" name="format" type="int" enum="Image.Format">
</argument>
<description>
- Creates an empty image of given size and format. See [code]FORMAT_*[/code] constants. If [code]use_mipmaps[/code] is true then generate mipmaps for this image. See the [code]generate_mipmaps[/code] method.
+ Creates an empty image of given size and format. See [code]FORMAT_*[/code] constants. If [code]use_mipmaps[/code] is [code]true[/code] then generate mipmaps for this image. See the [code]generate_mipmaps[/code] method.
</description>
</method>
<method name="create_from_data">
@@ -142,7 +140,7 @@
<argument index="4" name="data" type="PoolByteArray">
</argument>
<description>
- Creates a new image of given size and format. See [code]FORMAT_*[/code] constants. Fills the image with the given raw data. If [code]use_mipmaps[/code] is true then generate mipmaps for this image. See the [code]generate_mipmaps[/code] method.
+ Creates a new image of given size and format. See [code]FORMAT_*[/code] constants. Fills the image with the given raw data. If [code]use_mipmaps[/code] is [code]true[/code] then generate mipmaps for this image. See the [code]generate_mipmaps[/code] method.
</description>
</method>
<method name="crop">
@@ -227,7 +225,7 @@
<return type="int" enum="Image.Format">
</return>
<description>
- Returns the image’s format. See [code]FORMAT_*[/code] constants.
+ Returns the image's format. See [code]FORMAT_*[/code] constants.
</description>
</method>
<method name="get_height" qualifiers="const">
@@ -363,7 +361,7 @@
<return type="void">
</return>
<description>
- Locks the data for writing access.
+ Locks the data for reading and writing access. Sends an error to the console if the image is not locked when reading or writing a pixel.
</description>
</method>
<method name="normalmap_to_xy">
@@ -476,6 +474,12 @@
</member>
</members>
<constants>
+ <constant name="MAX_WIDTH" value="16384">
+ The maximal width allowed for [Image] resources.
+ </constant>
+ <constant name="MAX_HEIGHT" value="16384">
+ The maximal height allowed for [Image] resources.
+ </constant>
<constant name="FORMAT_L8" value="0" enum="Format">
</constant>
<constant name="FORMAT_LA8" value="1" enum="Format">
@@ -599,6 +603,8 @@
If the image does not have mipmaps, they will be generated and used internally, but no mipmaps will be generated on the resulting image. (Note that if you intend to scale multiple copies of the original image, it's better to call [code]generate_mipmaps[/code] on it in advance, to avoid wasting processing power in generating them again and again.)
On the other hand, if the image already has mipmaps, they will be used, and a new set will be generated for the resulting image.
</constant>
+ <constant name="INTERPOLATE_LANCZOS" value="4" enum="Interpolation">
+ </constant>
<constant name="ALPHA_NONE" value="0" enum="AlphaMode">
</constant>
<constant name="ALPHA_BIT" value="1" enum="AlphaMode">
diff --git a/doc/classes/ImageTexture.xml b/doc/classes/ImageTexture.xml
index 5c57899468..e5a8fee767 100644
--- a/doc/classes/ImageTexture.xml
+++ b/doc/classes/ImageTexture.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="ImageTexture" inherits="Texture" category="Core" version="3.1">
+<class name="ImageTexture" inherits="Texture" category="Core" version="3.2">
<brief_description>
A [Texture] based on an [Image].
</brief_description>
@@ -8,8 +8,6 @@
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
<method name="create">
<return type="void">
@@ -23,9 +21,8 @@
<argument index="3" name="flags" type="int" default="7">
</argument>
<description>
- Create a new [code]ImageTexture[/code] with "width" and "height".
- "format" one of [Image].FORMAT_*.
- "flags" one or more of [Texture].FLAG_*.
+ Create a new [ImageTexture] with [code]width[/code] and [code]height[/code].
+ [code]format[/code] is a value from [enum Image.Format], [code]flags[/code] is any combination of [enum Texture.Flags].
</description>
</method>
<method name="create_from_image">
@@ -36,14 +33,14 @@
<argument index="1" name="flags" type="int" default="7">
</argument>
<description>
- Create a new [code]ImageTexture[/code] from an [Image] with "flags" from [Texture].FLAG_*. An sRGB to linear color space conversion can take place, according to [Image].FORMAT_*.
+ Create a new [ImageTexture] from an [Image] with [code]flags[/code] from [enum Texture.Flags]. An sRGB to linear color space conversion can take place, according to [enum Image.Format].
</description>
</method>
<method name="get_format" qualifiers="const">
<return type="int" enum="Image.Format">
</return>
<description>
- Return the format of the [code]ImageTexture[/code], one of [Image].FORMAT_*.
+ Returns the format of the [ImageTexture], one of [enum Image.Format].
</description>
</method>
<method name="load">
@@ -52,7 +49,7 @@
<argument index="0" name="path" type="String">
</argument>
<description>
- Load an [code]ImageTexture[/code] from a file path.
+ Load an [ImageTexture] from a file path.
</description>
</method>
<method name="set_data">
@@ -61,7 +58,7 @@
<argument index="0" name="image" type="Image">
</argument>
<description>
- Set the [Image] of this [code]ImageTexture[/code].
+ Set the [Image] of this [ImageTexture].
</description>
</method>
<method name="set_size_override">
@@ -70,13 +67,13 @@
<argument index="0" name="size" type="Vector2">
</argument>
<description>
- Resizes the [code]ImageTexture[/code] to the specified dimensions.
+ Resizes the [ImageTexture] to the specified dimensions.
</description>
</method>
</methods>
<members>
<member name="lossy_quality" type="float" setter="set_lossy_storage_quality" getter="get_lossy_storage_quality">
- The storage quality for [code]ImageTexture[/code].STORAGE_COMPRESS_LOSSY.
+ The storage quality for [code]STORAGE_COMPRESS_LOSSY[/code].
</member>
<member name="storage" type="int" setter="set_storage" getter="get_storage" enum="ImageTexture.Storage">
The storage type (raw, lossy, or compressed).
@@ -87,7 +84,7 @@
[Image] data is stored raw and unaltered.
</constant>
<constant name="STORAGE_COMPRESS_LOSSY" value="1" enum="Storage">
- [Image] data is compressed with a lossy algorithm. You can set the storage quality with [method set_lossy_storage_quality].
+ [Image] data is compressed with a lossy algorithm. You can set the storage quality with [member lossy_quality].
</constant>
<constant name="STORAGE_COMPRESS_LOSSLESS" value="2" enum="Storage">
[Image] data is compressed with a lossless algorithm.
diff --git a/doc/classes/ImmediateGeometry.xml b/doc/classes/ImmediateGeometry.xml
index 29d05bf877..ca45fc5f9e 100644
--- a/doc/classes/ImmediateGeometry.xml
+++ b/doc/classes/ImmediateGeometry.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="ImmediateGeometry" inherits="GeometryInstance" category="Core" version="3.1">
+<class name="ImmediateGeometry" inherits="GeometryInstance" category="Core" version="3.2">
<brief_description>
Draws simple geometry from code.
</brief_description>
@@ -8,8 +8,6 @@
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
<method name="add_sphere">
<return type="void">
diff --git a/doc/classes/Input.xml b/doc/classes/Input.xml
index 724e6a078d..9c41e4bf1d 100644
--- a/doc/classes/Input.xml
+++ b/doc/classes/Input.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="Input" inherits="Object" category="Core" version="3.1">
+<class name="Input" inherits="Object" category="Core" version="3.2">
<brief_description>
A Singleton that deals with inputs.
</brief_description>
@@ -9,8 +9,6 @@
<tutorials>
<link>https://docs.godotengine.org/en/latest/tutorials/inputs/index.html</link>
</tutorials>
- <demos>
- </demos>
<methods>
<method name="action_press">
<return type="void">
@@ -68,6 +66,12 @@
Returns an [Array] containing the device IDs of all currently connected joypads.
</description>
</method>
+ <method name="get_current_cursor_shape" qualifiers="const">
+ <return type="int" enum="Input.CursorShape">
+ </return>
+ <description>
+ </description>
+ </method>
<method name="get_gravity" qualifiers="const">
<return type="Vector3">
</return>
@@ -90,7 +94,7 @@
<argument index="1" name="axis" type="int">
</argument>
<description>
- Returns the current value of the joypad axis at given index (see [code]JOY_*[/code] constants in [@GlobalScope])
+ Returns the current value of the joypad axis at given index (see [enum JoystickList]).
</description>
</method>
<method name="get_joy_axis_index_from_string">
@@ -108,7 +112,7 @@
<argument index="0" name="axis_index" type="int">
</argument>
<description>
- Receives a [code]JOY_AXIS_*[/code] Enum and returns its equivalent name as a string.
+ Receives a [enum JoystickList] axis and returns its equivalent name as a string.
</description>
</method>
<method name="get_joy_button_index_from_string">
@@ -126,7 +130,7 @@
<argument index="0" name="button_index" type="int">
</argument>
<description>
- Receives a [code]JOY_BUTTON_*[/code] Enum and returns its equivalent name as a string.
+ Receives a joy button from [enum JoystickList] and returns its equivalent name as a string.
</description>
</method>
<method name="get_joy_guid" qualifiers="const">
@@ -190,7 +194,7 @@
<return type="int" enum="Input.MouseMode">
</return>
<description>
- Return the mouse mode. See the constants for more information.
+ Returns the mouse mode. See the constants for more information.
</description>
</method>
<method name="is_action_just_pressed" qualifiers="const">
@@ -199,7 +203,7 @@
<argument index="0" name="action" type="String">
</argument>
<description>
- Returns [code]true[/code] when the user starts pressing the action event, meaning it's true only on the frame that the user pressed down the button.
+ Returns [code]true[/code] when the user starts pressing the action event, meaning it's [code]true[/code] only on the frame that the user pressed down the button.
This is useful for code that needs to run only once when an action is pressed, instead of every frame while it's pressed.
</description>
</method>
@@ -209,7 +213,7 @@
<argument index="0" name="action" type="String">
</argument>
<description>
- Returns [code]true[/code] when the user stops pressing the action event, meaning it's true only on the frame that the user released the button.
+ Returns [code]true[/code] when the user stops pressing the action event, meaning it's [code]true[/code] only on the frame that the user released the button.
</description>
</method>
<method name="is_action_pressed" qualifiers="const">
@@ -229,7 +233,7 @@
<argument index="1" name="button" type="int">
</argument>
<description>
- Returns [code]true[/code] if you are pressing the joypad button. (see [code]JOY_*[/code] constants in [@GlobalScope])
+ Returns [code]true[/code] if you are pressing the joypad button (see [enum JoystickList]).
</description>
</method>
<method name="is_joy_known">
@@ -238,7 +242,7 @@
<argument index="0" name="device" type="int">
</argument>
<description>
- Returns [code]true[/code] if the system knows the specified device. This means that it sets all button and axis indices exactly as defined in the [code]JOY_*[/code] constants (see [@GlobalScope]). Unknown joypads are not expected to match these constants, but you can still retrieve events from them.
+ Returns [code]true[/code] if the system knows the specified device. This means that it sets all button and axis indices exactly as defined in [enum JoystickList]. Unknown joypads are not expected to match these constants, but you can still retrieve events from them.
</description>
</method>
<method name="is_key_pressed" qualifiers="const">
@@ -247,7 +251,7 @@
<argument index="0" name="scancode" type="int">
</argument>
<description>
- Returns [code]true[/code] if you are pressing the key. You can pass [code]KEY_*[/code], which are pre-defined constants listed in [@GlobalScope].
+ Returns [code]true[/code] if you are pressing the key. You can pass a [enum KeyList] constant.
</description>
</method>
<method name="is_mouse_button_pressed" qualifiers="const">
@@ -256,7 +260,7 @@
<argument index="0" name="button" type="int">
</argument>
<description>
- Returns [code]true[/code] if you are pressing the mouse button. You can pass [code]BUTTON_*[/code], which are pre-defined constants listed in [@GlobalScope].
+ Returns [code]true[/code] if you are pressing the mouse button specified with [enum ButtonList].
</description>
</method>
<method name="joy_connection_changed">
@@ -325,6 +329,15 @@
Set the mouse mode. See the constants for more information.
</description>
</method>
+ <method name="set_use_accumulated_input">
+ <return type="void">
+ </return>
+ <argument index="0" name="enable" type="bool">
+ </argument>
+ <description>
+ Whether to accumulate similar input events sent by the operating system. Defaults to [code]true[/code].
+ </description>
+ </method>
<method name="start_joy_vibration">
<return type="void">
</return>
diff --git a/doc/classes/InputDefault.xml b/doc/classes/InputDefault.xml
index 27bfff2e67..e96b885d10 100644
--- a/doc/classes/InputDefault.xml
+++ b/doc/classes/InputDefault.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="InputDefault" inherits="Input" category="Core" version="3.1">
+<class name="InputDefault" inherits="Input" category="Core" version="3.2">
<brief_description>
Default implementation of the [Input] class.
</brief_description>
@@ -8,8 +8,6 @@
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
</methods>
<constants>
diff --git a/doc/classes/InputEvent.xml b/doc/classes/InputEvent.xml
index c880823aee..934597d0c6 100644
--- a/doc/classes/InputEvent.xml
+++ b/doc/classes/InputEvent.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="InputEvent" inherits="Resource" category="Core" version="3.1">
+<class name="InputEvent" inherits="Resource" category="Core" version="3.2">
<brief_description>
Generic input event
</brief_description>
@@ -10,9 +10,15 @@
<link>https://docs.godotengine.org/en/latest/tutorials/inputs/inputevent.html</link>
<link>https://docs.godotengine.org/en/latest/tutorials/2d/2d_transforms.html</link>
</tutorials>
- <demos>
- </demos>
<methods>
+ <method name="accumulate">
+ <return type="bool">
+ </return>
+ <argument index="0" name="with_event" type="InputEvent">
+ </argument>
+ <description>
+ </description>
+ </method>
<method name="as_text" qualifiers="const">
<return type="String">
</return>
@@ -59,7 +65,7 @@
<return type="bool">
</return>
<description>
- Returns [code]true[/code] if this input event's type is one of the [code]InputEvent[/code] constants.
+ Returns [code]true[/code] if this input event's type is one of the [InputEvent] constants.
</description>
</method>
<method name="is_echo" qualifiers="const">
diff --git a/doc/classes/InputEventAction.xml b/doc/classes/InputEventAction.xml
index 8a10dc6ab9..9df7bbca74 100644
--- a/doc/classes/InputEventAction.xml
+++ b/doc/classes/InputEventAction.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="InputEventAction" inherits="InputEvent" category="Core" version="3.1">
+<class name="InputEventAction" inherits="InputEvent" category="Core" version="3.2">
<brief_description>
Input event type for actions.
</brief_description>
@@ -9,8 +9,6 @@
<tutorials>
<link>https://docs.godotengine.org/en/latest/tutorials/inputs/inputevent.html#actions</link>
</tutorials>
- <demos>
- </demos>
<methods>
</methods>
<members>
@@ -18,7 +16,10 @@
The action's name. Actions are accessed via this [String].
</member>
<member name="pressed" type="bool" setter="set_pressed" getter="is_pressed">
- If [code]true[/code] the action's state is pressed. If [code]false[/code] the action's state is released.
+ If [code]true[/code], the action's state is pressed. If [code]false[/code], the action's state is released.
+ </member>
+ <member name="strength" type="float" setter="set_strength" getter="get_strength">
+ The action's strength between 0 and 1. This value is consired as equal to 0 if pressed is [code]false[/code]. The event strength allows faking analog joypad motion events, by precising how strongly is the joypad axis bent or pressed.
</member>
</members>
<constants>
diff --git a/doc/classes/InputEventGesture.xml b/doc/classes/InputEventGesture.xml
index eb1e613b7c..b1abf04b51 100644
--- a/doc/classes/InputEventGesture.xml
+++ b/doc/classes/InputEventGesture.xml
@@ -1,13 +1,11 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="InputEventGesture" inherits="InputEventWithModifiers" category="Core" version="3.1">
+<class name="InputEventGesture" inherits="InputEventWithModifiers" category="Core" version="3.2">
<brief_description>
</brief_description>
<description>
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
</methods>
<members>
diff --git a/doc/classes/InputEventJoypadButton.xml b/doc/classes/InputEventJoypadButton.xml
index 18e33c2131..78cd55b79a 100644
--- a/doc/classes/InputEventJoypadButton.xml
+++ b/doc/classes/InputEventJoypadButton.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="InputEventJoypadButton" inherits="InputEvent" category="Core" version="3.1">
+<class name="InputEventJoypadButton" inherits="InputEvent" category="Core" version="3.2">
<brief_description>
Input event for gamepad buttons.
</brief_description>
@@ -9,16 +9,14 @@
<tutorials>
<link>https://docs.godotengine.org/en/latest/tutorials/inputs/inputevent.html</link>
</tutorials>
- <demos>
- </demos>
<methods>
</methods>
<members>
<member name="button_index" type="int" setter="set_button_index" getter="get_button_index">
- Button identifier. One of the [code]JOY_BUTTON_*[/code] constants from [@GlobalScope].
+ Button identifier. One of the [enum JoystickList] button constants.
</member>
<member name="pressed" type="bool" setter="set_pressed" getter="is_pressed">
- If [code]true[/code] the button's state is pressed. If [code]false[/code] the button's state is released.
+ If [code]true[/code], the button's state is pressed. If [code]false[/code], the button's state is released.
</member>
<member name="pressure" type="float" setter="set_pressure" getter="get_pressure">
Represents the pressure the user puts on the button with his finger, if the controller supports it. Ranges from [code]0[/code] to [code]1[/code].
diff --git a/doc/classes/InputEventJoypadMotion.xml b/doc/classes/InputEventJoypadMotion.xml
index 0c73f53158..5330b2a6e0 100644
--- a/doc/classes/InputEventJoypadMotion.xml
+++ b/doc/classes/InputEventJoypadMotion.xml
@@ -1,21 +1,19 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="InputEventJoypadMotion" inherits="InputEvent" category="Core" version="3.1">
+<class name="InputEventJoypadMotion" inherits="InputEvent" category="Core" version="3.2">
<brief_description>
Input event type for gamepad joysticks and other motions. For buttons see [code]InputEventJoypadButton[/code].
</brief_description>
<description>
- Stores information about joystick motions. One [code]InputEventJoypadMotion[/code] represents one axis at a time.
+ Stores information about joystick motions. One [InputEventJoypadMotion] represents one axis at a time.
</description>
<tutorials>
<link>https://docs.godotengine.org/en/latest/tutorials/inputs/inputevent.html</link>
</tutorials>
- <demos>
- </demos>
<methods>
</methods>
<members>
<member name="axis" type="int" setter="set_axis" getter="get_axis">
- Axis identifier. Use one of the [code]JOY_AXIS_*[/code] constants in [@GlobalScope].
+ Axis identifier. Use one of the [enum JoystickList] axis constants.
</member>
<member name="axis_value" type="float" setter="set_axis_value" getter="get_axis_value">
Current position of the joystick on the given axis. The value ranges from [code]-1.0[/code] to [code]1.0[/code]. A value of [code]0[/code] means the axis is in its resting position.
diff --git a/doc/classes/InputEventKey.xml b/doc/classes/InputEventKey.xml
index 0118fda2df..53b1f74bd4 100644
--- a/doc/classes/InputEventKey.xml
+++ b/doc/classes/InputEventKey.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="InputEventKey" inherits="InputEventWithModifiers" category="Core" version="3.1">
+<class name="InputEventKey" inherits="InputEventWithModifiers" category="Core" version="3.2">
<brief_description>
Input event type for keyboard events.
</brief_description>
@@ -9,8 +9,6 @@
<tutorials>
<link>https://docs.godotengine.org/en/latest/tutorials/inputs/inputevent.html</link>
</tutorials>
- <demos>
- </demos>
<methods>
<method name="get_scancode_with_modifiers" qualifiers="const">
<return type="int">
@@ -22,16 +20,16 @@
</methods>
<members>
<member name="echo" type="bool" setter="set_echo" getter="is_echo">
- If [code]true[/code] the key was already pressed before this event. It means the user is holding the key down.
+ If [code]true[/code], the key was already pressed before this event. It means the user is holding the key down.
</member>
<member name="pressed" type="bool" setter="set_pressed" getter="is_pressed">
- If [code]true[/code] the key's state is pressed. If [code]false[/code] the key's state is released.
+ If [code]true[/code], the key's state is pressed. If [code]false[/code], the key's state is released.
</member>
<member name="scancode" type="int" setter="set_scancode" getter="get_scancode">
- Key scancode, one of the [code]KEY_*[/code] constants in [@GlobalScope].
+ Key scancode, one of the [enum KeyList] constants.
</member>
<member name="unicode" type="int" setter="set_unicode" getter="get_unicode">
- Key unicode identifier when relevant.
+ Key unicode identifier when relevant. Unicode identifiers for the composite characters and complex scripts may not be available unless IME input mode is active. See [method OS.set_ime_active] for more information.
</member>
</members>
<constants>
diff --git a/doc/classes/InputEventMIDI.xml b/doc/classes/InputEventMIDI.xml
new file mode 100644
index 0000000000..5ded362bc7
--- /dev/null
+++ b/doc/classes/InputEventMIDI.xml
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<class name="InputEventMIDI" inherits="InputEvent" category="Core" version="3.2">
+ <brief_description>
+ </brief_description>
+ <description>
+ </description>
+ <tutorials>
+ </tutorials>
+ <methods>
+ </methods>
+ <members>
+ <member name="channel" type="int" setter="set_channel" getter="get_channel">
+ </member>
+ <member name="controller_number" type="int" setter="set_controller_number" getter="get_controller_number">
+ </member>
+ <member name="controller_value" type="int" setter="set_controller_value" getter="get_controller_value">
+ </member>
+ <member name="instrument" type="int" setter="set_instrument" getter="get_instrument">
+ </member>
+ <member name="message" type="int" setter="set_message" getter="get_message">
+ </member>
+ <member name="pitch" type="int" setter="set_pitch" getter="get_pitch">
+ </member>
+ <member name="pressure" type="int" setter="set_pressure" getter="get_pressure">
+ </member>
+ <member name="velocity" type="int" setter="set_velocity" getter="get_velocity">
+ </member>
+ </members>
+ <constants>
+ </constants>
+</class>
diff --git a/doc/classes/InputEventMagnifyGesture.xml b/doc/classes/InputEventMagnifyGesture.xml
index e9a0149c56..8f01f6f486 100644
--- a/doc/classes/InputEventMagnifyGesture.xml
+++ b/doc/classes/InputEventMagnifyGesture.xml
@@ -1,13 +1,11 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="InputEventMagnifyGesture" inherits="InputEventGesture" category="Core" version="3.1">
+<class name="InputEventMagnifyGesture" inherits="InputEventGesture" category="Core" version="3.2">
<brief_description>
</brief_description>
<description>
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
</methods>
<members>
diff --git a/doc/classes/InputEventMouse.xml b/doc/classes/InputEventMouse.xml
index 27e8d17407..8ba272d470 100644
--- a/doc/classes/InputEventMouse.xml
+++ b/doc/classes/InputEventMouse.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="InputEventMouse" inherits="InputEventWithModifiers" category="Core" version="3.1">
+<class name="InputEventMouse" inherits="InputEventWithModifiers" category="Core" version="3.2">
<brief_description>
Base input event type for mouse events.
</brief_description>
@@ -9,13 +9,11 @@
<tutorials>
<link>https://docs.godotengine.org/en/latest/tutorials/inputs/inputevent.html</link>
</tutorials>
- <demos>
- </demos>
<methods>
</methods>
<members>
<member name="button_mask" type="int" setter="set_button_mask" getter="get_button_mask">
- Mouse button mask identifier, one of or a bitwise combination of the BUTTON_MASK_* constants in [@GlobalScope].
+ Mouse button mask identifier, one of or a bitwise combination of the [enum ButtonList] button masks.
</member>
<member name="global_position" type="Vector2" setter="set_global_position" getter="get_global_position">
Mouse position relative to the current [Viewport] when used in [method Control._gui_input], otherwise is at 0,0.
diff --git a/doc/classes/InputEventMouseButton.xml b/doc/classes/InputEventMouseButton.xml
index 1342c7bf7e..99e25d2c6f 100644
--- a/doc/classes/InputEventMouseButton.xml
+++ b/doc/classes/InputEventMouseButton.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="InputEventMouseButton" inherits="InputEventMouse" category="Core" version="3.1">
+<class name="InputEventMouseButton" inherits="InputEventMouse" category="Core" version="3.2">
<brief_description>
Input event type for mouse button events.
</brief_description>
@@ -9,22 +9,20 @@
<tutorials>
<link>https://docs.godotengine.org/en/latest/tutorials/inputs/mouse_and_input_coordinates.html</link>
</tutorials>
- <demos>
- </demos>
<methods>
</methods>
<members>
<member name="button_index" type="int" setter="set_button_index" getter="get_button_index">
- Mouse button identifier, one of the BUTTON_* or BUTTON_WHEEL_* constants in [@GlobalScope].
+ Mouse button identifier, one of the [enum ButtonList] button or button wheel constants.
</member>
<member name="doubleclick" type="bool" setter="set_doubleclick" getter="is_doubleclick">
- If [code]true[/code] the mouse button's state is a double-click.
+ If [code]true[/code], the mouse button's state is a double-click.
</member>
<member name="factor" type="float" setter="set_factor" getter="get_factor">
Magnitude. Amount (or delta) of the event. Used for scroll events, indicates scroll amount (vertically or horizontally). Only supported on some platforms, sensitivity varies by platform. May be 0 if not supported.
</member>
<member name="pressed" type="bool" setter="set_pressed" getter="is_pressed">
- If [code]true[/code] the mouse button's state is pressed. If [code]false[/code] the mouse button's state is released.
+ If [code]true[/code], the mouse button's state is pressed. If [code]false[/code], the mouse button's state is released.
</member>
</members>
<constants>
diff --git a/doc/classes/InputEventMouseMotion.xml b/doc/classes/InputEventMouseMotion.xml
index f7f6358910..3df47177dc 100644
--- a/doc/classes/InputEventMouseMotion.xml
+++ b/doc/classes/InputEventMouseMotion.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="InputEventMouseMotion" inherits="InputEventMouse" category="Core" version="3.1">
+<class name="InputEventMouseMotion" inherits="InputEventMouse" category="Core" version="3.2">
<brief_description>
Input event type for mouse motion events.
</brief_description>
@@ -9,8 +9,6 @@
<tutorials>
<link>https://docs.godotengine.org/en/latest/tutorials/inputs/mouse_and_input_coordinates.html</link>
</tutorials>
- <demos>
- </demos>
<methods>
</methods>
<members>
diff --git a/doc/classes/InputEventPanGesture.xml b/doc/classes/InputEventPanGesture.xml
index 063986ae65..8a2fa74597 100644
--- a/doc/classes/InputEventPanGesture.xml
+++ b/doc/classes/InputEventPanGesture.xml
@@ -1,13 +1,11 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="InputEventPanGesture" inherits="InputEventGesture" category="Core" version="3.1">
+<class name="InputEventPanGesture" inherits="InputEventGesture" category="Core" version="3.2">
<brief_description>
</brief_description>
<description>
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
</methods>
<members>
diff --git a/doc/classes/InputEventScreenDrag.xml b/doc/classes/InputEventScreenDrag.xml
index a320c0a028..36e47ee51a 100644
--- a/doc/classes/InputEventScreenDrag.xml
+++ b/doc/classes/InputEventScreenDrag.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="InputEventScreenDrag" inherits="InputEvent" category="Core" version="3.1">
+<class name="InputEventScreenDrag" inherits="InputEvent" category="Core" version="3.2">
<brief_description>
Input event type for screen drag events.
(only available on mobile devices)
@@ -10,8 +10,6 @@
<tutorials>
<link>https://docs.godotengine.org/en/latest/tutorials/inputs/inputevent.html</link>
</tutorials>
- <demos>
- </demos>
<methods>
</methods>
<members>
diff --git a/doc/classes/InputEventScreenTouch.xml b/doc/classes/InputEventScreenTouch.xml
index 55f04cdd94..8f537f12bc 100644
--- a/doc/classes/InputEventScreenTouch.xml
+++ b/doc/classes/InputEventScreenTouch.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="InputEventScreenTouch" inherits="InputEvent" category="Core" version="3.1">
+<class name="InputEventScreenTouch" inherits="InputEvent" category="Core" version="3.2">
<brief_description>
Input event type for screen touch events.
(only available on mobile devices)
@@ -10,8 +10,6 @@
<tutorials>
<link>https://docs.godotengine.org/en/latest/tutorials/inputs/inputevent.html</link>
</tutorials>
- <demos>
- </demos>
<methods>
</methods>
<members>
@@ -22,7 +20,7 @@
Touch position.
</member>
<member name="pressed" type="bool" setter="set_pressed" getter="is_pressed">
- If [code]true[/code] the touch's state is pressed. If [code]false[/code] the touch's state is released.
+ If [code]true[/code], the touch's state is pressed. If [code]false[/code], the touch's state is released.
</member>
</members>
<constants>
diff --git a/doc/classes/InputEventWithModifiers.xml b/doc/classes/InputEventWithModifiers.xml
index fcf2fd545e..de120446fb 100644
--- a/doc/classes/InputEventWithModifiers.xml
+++ b/doc/classes/InputEventWithModifiers.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="InputEventWithModifiers" inherits="InputEvent" category="Core" version="3.1">
+<class name="InputEventWithModifiers" inherits="InputEvent" category="Core" version="3.2">
<brief_description>
Base class for keys events with modifiers.
</brief_description>
@@ -9,8 +9,6 @@
<tutorials>
<link>https://docs.godotengine.org/en/latest/tutorials/inputs/inputevent.html</link>
</tutorials>
- <demos>
- </demos>
<methods>
</methods>
<members>
diff --git a/doc/classes/InputMap.xml b/doc/classes/InputMap.xml
index 8c25f851db..bb29a09d22 100644
--- a/doc/classes/InputMap.xml
+++ b/doc/classes/InputMap.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="InputMap" inherits="Object" category="Core" version="3.1">
+<class name="InputMap" inherits="Object" category="Core" version="3.2">
<brief_description>
Singleton that manages [InputEventAction].
</brief_description>
@@ -9,8 +9,6 @@
<tutorials>
<link>https://docs.godotengine.org/en/latest/tutorials/inputs/inputevent.html#inputmap</link>
</tutorials>
- <demos>
- </demos>
<methods>
<method name="action_add_event">
<return type="void">
@@ -72,7 +70,7 @@
<argument index="1" name="deadzone" type="float" default="0.5">
</argument>
<description>
- Adds an empty action to the [code]InputMap[/code] with a configurable [code]deadzone[/code].
+ Adds an empty action to the [InputMap] with a configurable [code]deadzone[/code].
An [InputEvent] can then be added to this action with [method action_add_event].
</description>
</method>
@@ -82,7 +80,7 @@
<argument index="0" name="action" type="String">
</argument>
<description>
- Removes an action from the [code]InputMap[/code].
+ Removes an action from the [InputMap].
</description>
</method>
<method name="event_is_action" qualifiers="const">
@@ -93,7 +91,7 @@
<argument index="1" name="action" type="String">
</argument>
<description>
- Returns [true] if the given event is part of an existing action. This method ignores keyboard modifiers if the given [InputEvent] is not pressed (for proper release detection). See [method action_has_event] if you don't want this behavior.
+ Returns [code]true[/code] if the given event is part of an existing action. This method ignores keyboard modifiers if the given [InputEvent] is not pressed (for proper release detection). See [method action_has_event] if you don't want this behavior.
</description>
</method>
<method name="get_action_list">
@@ -109,7 +107,7 @@
<return type="Array">
</return>
<description>
- Returns an array of all actions in the [code]InputMap[/code].
+ Returns an array of all actions in the [InputMap].
</description>
</method>
<method name="has_action" qualifiers="const">
@@ -118,14 +116,14 @@
<argument index="0" name="action" type="String">
</argument>
<description>
- Returns [code]true[/code] if the [code]InputMap[/code] has a registered action with the given name.
+ Returns [code]true[/code] if the [InputMap] has a registered action with the given name.
</description>
</method>
<method name="load_from_globals">
<return type="void">
</return>
<description>
- Clears all [InputEventAction] in the [code]InputMap[/code] and load it anew from [ProjectSettings].
+ Clears all [InputEventAction] in the [InputMap] and load it anew from [ProjectSettings].
</description>
</method>
</methods>
diff --git a/doc/classes/InstancePlaceholder.xml b/doc/classes/InstancePlaceholder.xml
index 71c859fd9e..c4752c735d 100644
--- a/doc/classes/InstancePlaceholder.xml
+++ b/doc/classes/InstancePlaceholder.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="InstancePlaceholder" inherits="Node" category="Core" version="3.1">
+<class name="InstancePlaceholder" inherits="Node" category="Core" version="3.2">
<brief_description>
Placeholder for the root [Node] of a [PackedScene].
</brief_description>
@@ -9,8 +9,6 @@
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
<method name="create_instance">
<return type="Node">
diff --git a/doc/classes/InterpolatedCamera.xml b/doc/classes/InterpolatedCamera.xml
index 1ac7b5107e..d124ea707a 100644
--- a/doc/classes/InterpolatedCamera.xml
+++ b/doc/classes/InterpolatedCamera.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="InterpolatedCamera" inherits="Camera" category="Core" version="3.1">
+<class name="InterpolatedCamera" inherits="Camera" category="Core" version="3.2">
<brief_description>
Camera which moves toward another node.
</brief_description>
@@ -9,8 +9,6 @@
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
<method name="set_target">
<return type="void">
@@ -24,7 +22,7 @@
</methods>
<members>
<member name="enabled" type="bool" setter="set_interpolation_enabled" getter="is_interpolation_enabled">
- If [code]true[/code] and a target is set, the camera will move automatically.
+ If [code]true[/code], and a target is set, the camera will move automatically.
</member>
<member name="speed" type="float" setter="set_speed" getter="get_speed">
How quickly the camera moves toward its target. Higher values will result in tighter camera motion.
diff --git a/doc/classes/ItemList.xml b/doc/classes/ItemList.xml
index 0b8ede92d5..d78c930351 100644
--- a/doc/classes/ItemList.xml
+++ b/doc/classes/ItemList.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="ItemList" inherits="Control" category="Core" version="3.1">
+<class name="ItemList" inherits="Control" category="Core" version="3.2">
<brief_description>
Control that provides a list of selectable items (and/or icons) in a single column, or optionally in multiple columns.
</brief_description>
@@ -9,8 +9,6 @@
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
<method name="add_icon_item">
<return type="void">
@@ -34,7 +32,7 @@
</argument>
<description>
Adds an item to the item list with specified text. Specify an icon of null for a list item with no icon.
- If selectable is true the list item will be selectable.
+ If selectable is [code]true[/code] the list item will be selectable.
</description>
</method>
<method name="clear">
@@ -48,7 +46,7 @@
<return type="void">
</return>
<description>
- Ensure selection is visible, adjusting the scroll position as necessary.
+ Ensure current selection is visible, adjusting the scroll position as necessary.
</description>
</method>
<method name="get_item_at_position" qualifiers="const">
@@ -66,7 +64,7 @@
<return type="int">
</return>
<description>
- Return count of items currently in the item list.
+ Returns the number of items currently in the list.
</description>
</method>
<method name="get_item_custom_bg_color" qualifiers="const">
@@ -75,6 +73,7 @@
<argument index="0" name="idx" type="int">
</argument>
<description>
+ Returns the custom background color of the item specified by [code]idx[/code] index. Default value is [code]Color(0, 0, 0, 0)[/code].
</description>
</method>
<method name="get_item_custom_fg_color" qualifiers="const">
@@ -83,6 +82,7 @@
<argument index="0" name="idx" type="int">
</argument>
<description>
+ Returns the custom foreground color of the item specified by [code]idx[/code] index. Default value is [code]Color(0, 0, 0, 0)[/code].
</description>
</method>
<method name="get_item_icon" qualifiers="const">
@@ -91,6 +91,7 @@
<argument index="0" name="idx" type="int">
</argument>
<description>
+ Returns the icon associated with the specified index. Default value is [code]null[/code]
</description>
</method>
<method name="get_item_icon_modulate" qualifiers="const">
@@ -116,6 +117,7 @@
<argument index="0" name="idx" type="int">
</argument>
<description>
+ Returns the metadata value of the specified index.
</description>
</method>
<method name="get_item_text" qualifiers="const">
@@ -124,7 +126,7 @@
<argument index="0" name="idx" type="int">
</argument>
<description>
- Return the text for specified item index.
+ Returns the text associated with the specified index.
</description>
</method>
<method name="get_item_tooltip" qualifiers="const">
@@ -133,21 +135,21 @@
<argument index="0" name="idx" type="int">
</argument>
<description>
- Return tooltip hint for specified item index.
+ Returns the tooltip hint associated with the specified index.
</description>
</method>
<method name="get_selected_items">
<return type="PoolIntArray">
</return>
<description>
- Returns the list of selected indexes.
+ Returns an array with the indexes of the selected items.
</description>
</method>
<method name="get_v_scroll">
<return type="VScrollBar">
</return>
<description>
- Returns the current vertical scroll bar for the List.
+ Returns the [Object] ID associated with the list.
</description>
</method>
<method name="is_anything_selected">
@@ -163,7 +165,7 @@
<argument index="0" name="idx" type="int">
</argument>
<description>
- Returns whether or not the item at the specified index is disabled
+ Returns whether or not the item at the specified index is disabled.
</description>
</method>
<method name="is_item_icon_transposed" qualifiers="const">
@@ -209,7 +211,7 @@
<argument index="1" name="to_idx" type="int">
</argument>
<description>
- Moves item at index [code]from_idx[/code] to [code]to_idx[/code].
+ Moves item from index [code]from_idx[/code] to [code]to_idx[/code].
</description>
</method>
<method name="remove_item">
@@ -218,7 +220,7 @@
<argument index="0" name="idx" type="int">
</argument>
<description>
- Remove item at specified index from the list.
+ Removes the item specified by [code]idx[/code] index from the list.
</description>
</method>
<method name="select">
@@ -241,6 +243,11 @@
<argument index="1" name="custom_bg_color" type="Color">
</argument>
<description>
+ Sets the background color of the item specified by [code]idx[/code] index to the specified [Color].
+ [codeblock]
+ var some_string = "Some text"
+ some_string.set_item_custom_bg_color(0,Color(1, 0, 0, 1) # This will set the background color of the first item of the control to red.
+ [/codeblock]
</description>
</method>
<method name="set_item_custom_fg_color">
@@ -251,6 +258,11 @@
<argument index="1" name="custom_fg_color" type="Color">
</argument>
<description>
+ Sets the foreground color of the item specified by [code]idx[/code] index to the specified [Color].
+ [codeblock]
+ var some_string = "Some text"
+ some_string.set_item_custom_fg_color(0,Color(1, 0, 0, 1) # This will set the foreground color of the first item of the control to red.
+ [/codeblock]
</description>
</method>
<method name="set_item_disabled">
@@ -261,8 +273,8 @@
<argument index="1" name="disabled" type="bool">
</argument>
<description>
- Disable (or enable) item at specified index.
- Disabled items are not be selectable and do not fire activation (Enter or double-click) signals.
+ Disable (or enable) item at the specified index.
+ Disabled items are not be selectable and do not trigger activation (Enter or double-click) signals.
</description>
</method>
<method name="set_item_icon">
@@ -273,7 +285,7 @@
<argument index="1" name="icon" type="Texture">
</argument>
<description>
- Set (or replace) icon of the item at the specified index.
+ Set (or replace) the icon's [Texture] associated with the specified index.
</description>
</method>
<method name="set_item_icon_modulate">
@@ -284,7 +296,7 @@
<argument index="1" name="modulate" type="Color">
</argument>
<description>
- Sets a modulating [Color] for item's icon at the specified index.
+ Sets a modulating [Color] of the item associated with the specified index.
</description>
</method>
<method name="set_item_icon_region">
@@ -315,7 +327,7 @@
<argument index="1" name="metadata" type="Variant">
</argument>
<description>
- Sets a value (of any type) to be stored with the item at the specified index.
+ Sets a value (of any type) to be stored with the item associated with the specified index.
</description>
</method>
<method name="set_item_selectable">
@@ -326,7 +338,7 @@
<argument index="1" name="selectable" type="bool">
</argument>
<description>
- Allow or disallow selection of the item at the specified index.
+ Allow or disallow selection of the item associated with the specified index.
</description>
</method>
<method name="set_item_text">
@@ -337,7 +349,7 @@
<argument index="1" name="text" type="String">
</argument>
<description>
- Sets text of item at specified index.
+ Sets text of the item associated with the specified index.
</description>
</method>
<method name="set_item_tooltip">
@@ -348,7 +360,7 @@
<argument index="1" name="tooltip" type="String">
</argument>
<description>
- Sets tooltip hint for item at specified index.
+ Sets tooltip hint for the item associated with the specified index.
</description>
</method>
<method name="set_item_tooltip_enabled">
@@ -359,7 +371,7 @@
<argument index="1" name="enable" type="bool">
</argument>
<description>
- Sets whether the tooltip is enabled for specified item index.
+ Sets whether the tooltip hint is enabled for specified item index.
</description>
</method>
<method name="sort_items_by_text">
@@ -375,7 +387,7 @@
<argument index="0" name="idx" type="int">
</argument>
<description>
- Ensure item at specified index is not selected.
+ Ensure the item associated with the specified index is not selected.
</description>
</method>
<method name="unselect_all">
@@ -388,29 +400,38 @@
</methods>
<members>
<member name="allow_reselect" type="bool" setter="set_allow_reselect" getter="get_allow_reselect">
- If [code]true[/code] the currently selected item may be selected again.
+ If [code]true[/code], the currently selected item can be selected again.
</member>
<member name="allow_rmb_select" type="bool" setter="set_allow_rmb_select" getter="get_allow_rmb_select">
- If [code]true[/code] a right mouse button click can select items.
+ If [code]true[/code], right mouse button click can select items.
</member>
<member name="auto_height" type="bool" setter="set_auto_height" getter="has_auto_height">
+ If [code]true[/code], the control will automatically resize the height to fit its content.
</member>
<member name="fixed_column_width" type="int" setter="set_fixed_column_width" getter="get_fixed_column_width">
+ Sets the default column width in pixels.
+ If left to default value, each item will have a width equal to the width of its content and the columns will have an uneven width.
</member>
<member name="fixed_icon_size" type="Vector2" setter="set_fixed_icon_size" getter="get_fixed_icon_size">
+ Sets the default icon size in pixels.
</member>
<member name="icon_mode" type="int" setter="set_icon_mode" getter="get_icon_mode" enum="ItemList.IconMode">
+ Sets the default position of the icon to either [constant ICON_MODE_LEFT] or [constant ICON_MODE_TOP].
</member>
<member name="icon_scale" type="float" setter="set_icon_scale" getter="get_icon_scale">
+ Sets the icon size to its initial size multiplied by the specified scale. Default value is 1.0.
</member>
<member name="max_columns" type="int" setter="set_max_columns" getter="get_max_columns">
+ Sets the maximum columns the list will have.
+ If set to anything other than the default, the content will be split among the specified columns.
</member>
<member name="max_text_lines" type="int" setter="set_max_text_lines" getter="get_max_text_lines">
</member>
<member name="same_column_width" type="bool" setter="set_same_column_width" getter="is_same_column_width">
+ If set to [code]true[/code], all columns will have the same width specified by [member fixed_column_width].
</member>
<member name="select_mode" type="int" setter="set_select_mode" getter="get_select_mode" enum="ItemList.SelectMode">
- Allow single or multiple selection. See the [code]SELECT_*[/code] constants.
+ Allow single or multiple item selection. See the [enum SelectMode] constants.
</member>
</members>
<signals>
@@ -418,7 +439,7 @@
<argument index="0" name="index" type="int">
</argument>
<description>
- Fired when specified list item is activated via double click or Enter.
+ Triggered when specified list item is activated via double click or Enter.
</description>
</signal>
<signal name="item_rmb_selected">
@@ -427,7 +448,7 @@
<argument index="1" name="at_position" type="Vector2">
</argument>
<description>
- Fired when specified list item has been selected via right mouse clicking.
+ Triggered when specified list item has been selected via right mouse clicking.
The click position is also provided to allow appropriate popup of context menus
at the correct location.
[member allow_rmb_select] must be enabled.
@@ -437,7 +458,7 @@
<argument index="0" name="index" type="int">
</argument>
<description>
- Fired when specified item has been selected.
+ Triggered when specified item has been selected.
[member allow_reselect] must be enabled to reselect an item.
</description>
</signal>
@@ -447,17 +468,20 @@
<argument index="1" name="selected" type="bool">
</argument>
<description>
- Fired when a multiple selection is altered on a list allowing multiple selection.
+ Triggered when a multiple selection is altered on a list allowing multiple selection.
</description>
</signal>
<signal name="nothing_selected">
<description>
+ Triggered when a left mouse click is issued within the rect of the list but on empty space.
</description>
</signal>
<signal name="rmb_clicked">
<argument index="0" name="at_position" type="Vector2">
</argument>
<description>
+ Triggered when a right mouse click is issued within the rect of the list but on empty space.
+ [member allow_rmb_select] must be enabled.
</description>
</signal>
</signals>
diff --git a/doc/classes/JSON.xml b/doc/classes/JSON.xml
index fbf9aea7f9..cb62a1e88e 100644
--- a/doc/classes/JSON.xml
+++ b/doc/classes/JSON.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="JSON" inherits="Object" category="Core" version="3.1">
+<class name="JSON" inherits="Object" category="Core" version="3.2">
<brief_description>
Helper class for parsing JSON data.
</brief_description>
@@ -8,8 +8,6 @@
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
<method name="parse">
<return type="JSONParseResult">
diff --git a/doc/classes/JSONParseResult.xml b/doc/classes/JSONParseResult.xml
index a9162e2d95..c9caa5c5d4 100644
--- a/doc/classes/JSONParseResult.xml
+++ b/doc/classes/JSONParseResult.xml
@@ -1,15 +1,13 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="JSONParseResult" inherits="Reference" category="Core" version="3.1">
+<class name="JSONParseResult" inherits="Reference" category="Core" version="3.2">
<brief_description>
Data class wrapper for decoded JSON.
</brief_description>
<description>
- Returned by [method JSON.parse], [code]JSONParseResult[/code] contains decoded JSON or error information if JSON source not successfully parsed. You can check if JSON source was successfully parsed with [code]if json_result.error == OK[/code].
+ Returned by [method JSON.parse], [JSONParseResult] contains decoded JSON or error information if JSON source not successfully parsed. You can check if JSON source was successfully parsed with [code]if json_result.error == OK[/code].
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
</methods>
<members>
@@ -24,7 +22,7 @@
</member>
<member name="result" type="Variant" setter="set_result" getter="get_result">
A [Variant] containing the parsed JSON. Use typeof() to check if it is what you expect. For example, if JSON source starts with curly braces ([code]{}[/code]) a [Dictionary] will be returned, if JSON source starts with braces ([code][][/code]) an [Array] will be returned.
- [i]Be aware that the JSON specification does not define integer or float types, but only a number type. Therefore, parsing a JSON text will convert all numerical values to float types.
+ [i]Be aware that the JSON specification does not define integer or float types, but only a number type. Therefore, parsing a JSON text will convert all numerical values to float types.[/i]
Note that JSON objects do not preserve key order like Godot dictionaries, thus you should not rely on keys being in a certain order if a dictionary is constructed from JSON. In contrast, JSON arrays retain the order of their elements:[/i]
[codeblock]
var p = JSON.parse('["hello", "world", "!"]')
diff --git a/doc/classes/JavaScript.xml b/doc/classes/JavaScript.xml
index fa3aaed684..68b6831103 100644
--- a/doc/classes/JavaScript.xml
+++ b/doc/classes/JavaScript.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="JavaScript" inherits="Object" category="Core" version="3.1">
+<class name="JavaScript" inherits="Object" category="Core" version="3.2">
<brief_description>
Singleton that connects the engine with the browser's JavaScript context in HTML5 export.
</brief_description>
@@ -9,8 +9,6 @@
<tutorials>
<link>https://docs.godotengine.org/en/latest/getting_started/workflow/export/exporting_for_web.html#calling-javascript-from-script</link>
</tutorials>
- <demos>
- </demos>
<methods>
<method name="eval">
<return type="Variant">
diff --git a/doc/classes/Joint.xml b/doc/classes/Joint.xml
index 8cafdbdbf3..5cd59852df 100644
--- a/doc/classes/Joint.xml
+++ b/doc/classes/Joint.xml
@@ -1,29 +1,27 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="Joint" inherits="Spatial" category="Core" version="3.1">
+<class name="Joint" inherits="Spatial" category="Core" version="3.2">
<brief_description>
Base class for all 3D joints
</brief_description>
<description>
- All 3D joints link two nodes, has a priority, and can decide if the two bodies of the nodes should be able to collide with each other
+ Joints are used to bind together two physics bodies. They have a solver priority and can define if the bodies of the two attached nodes should be able to collide with each other.
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
</methods>
<members>
<member name="collision/exclude_nodes" type="bool" setter="set_exclude_nodes_from_collision" getter="get_exclude_nodes_from_collision">
- If [code]true[/code] the two bodies of the nodes are not able to collide with each other.
+ If [code]true[/code], the two bodies of the nodes are not able to collide with each other.
</member>
<member name="nodes/node_a" type="NodePath" setter="set_node_a" getter="get_node_a">
- The [Node], the first side of the Joint attaches to.
+ The node attached to the first side (A) of the joint.
</member>
<member name="nodes/node_b" type="NodePath" setter="set_node_b" getter="get_node_b">
- The [Node], the second side of the Joint attaches to.
+ The node attached to the second side (B) of the joint.
</member>
<member name="solver/priority" type="int" setter="set_solver_priority" getter="get_solver_priority">
- The order in which the solver is executed compared to the other [Joints], the lower, the earlier.
+ The priority used to define which solver is executed first for multiple joints. The lower the value, the higher the priority.
</member>
</members>
<constants>
diff --git a/doc/classes/Joint2D.xml b/doc/classes/Joint2D.xml
index 8247997927..b700bbd991 100644
--- a/doc/classes/Joint2D.xml
+++ b/doc/classes/Joint2D.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="Joint2D" inherits="Node2D" category="Core" version="3.1">
+<class name="Joint2D" inherits="Node2D" category="Core" version="3.2">
<brief_description>
Base node for all joint constraints in 2D physics.
</brief_description>
@@ -8,8 +8,6 @@
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
</methods>
<members>
@@ -17,7 +15,7 @@
When [member node_a] and [member node_b] move in different directions the [code]bias[/code] controls how fast the joint pulls them back to their original position. The lower the [code]bias[/code] the more the two bodies can pull on the joint. Default value: [code]0[/code]
</member>
<member name="disable_collision" type="bool" setter="set_exclude_nodes_from_collision" getter="get_exclude_nodes_from_collision">
- If [code]true[/code] [member node_a] and [member node_b] can collide. Default value: [code]false[/code].
+ If [code]true[/code], [member node_a] and [member node_b] can collide. Default value: [code]false[/code].
</member>
<member name="node_a" type="NodePath" setter="set_node_a" getter="get_node_a">
The first body attached to the joint. Must derive from [PhysicsBody2D].
diff --git a/doc/classes/KinematicBody.xml b/doc/classes/KinematicBody.xml
index df8fb251ba..8ea3d8c188 100644
--- a/doc/classes/KinematicBody.xml
+++ b/doc/classes/KinematicBody.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="KinematicBody" inherits="PhysicsBody" category="Core" version="3.1">
+<class name="KinematicBody" inherits="PhysicsBody" category="Core" version="3.2">
<brief_description>
Kinematic body 3D node.
</brief_description>
@@ -11,8 +11,6 @@
<tutorials>
<link>https://docs.godotengine.org/en/latest/tutorials/physics/kinematic_character_2d.html</link>
</tutorials>
- <demos>
- </demos>
<methods>
<method name="get_floor_velocity" qualifiers="const">
<return type="Vector3">
@@ -65,7 +63,9 @@
</argument>
<argument index="1" name="infinite_inertia" type="bool" default="true">
</argument>
- <argument index="2" name="test_only" type="bool" default="false">
+ <argument index="2" name="exclude_raycast_shapes" type="bool" default="true">
+ </argument>
+ <argument index="3" name="test_only" type="bool" default="false">
</argument>
<description>
Moves the body along the vector [code]rel_vec[/code]. The body will stop if it collides. Returns a [KinematicCollision], which contains information about the collision.
@@ -88,13 +88,14 @@
<argument index="5" name="infinite_inertia" type="bool" default="true">
</argument>
<description>
- Moves the body along a vector. If the body collides with another, it will slide along the other body rather than stop immediately. If the other body is a [code]KinematicBody[/code] or [RigidBody], it will also be affected by the motion of the other body. You can use this to make moving or rotating platforms, or to make nodes push other nodes.
- [code]linear_velocity[/code] is a value in pixels per second. Unlike in for example [method move_and_collide], you should [i]not[/i] multiply it with [code]delta[/code] — this is done by the method.
+ Moves the body along a vector. If the body collides with another, it will slide along the other body rather than stop immediately. If the other body is a [KinematicBody] or [RigidBody], it will also be affected by the motion of the other body. You can use this to make moving or rotating platforms, or to make nodes push other nodes.
+ [code]linear_velocity[/code] is the velocity vector (typically meters per second). Unlike in [method move_and_collide], you should [i]not[/i] multiply it by [code]delta[/code] — the physics engine handles applying the velocity.
[code]floor_normal[/code] is the up direction, used to determine what is a wall and what is a floor or a ceiling. If set to the default value of [code]Vector3(0, 0, 0)[/code], everything is considered a wall. This is useful for topdown games.
- [i]TODO: Update for new stop_on_slode argument.[/i] If the body is standing on a slope and the horizontal speed (relative to the floor's speed) goes below [code]slope_stop_min_velocity[/code], the body will stop completely. This prevents the body from sliding down slopes when you include gravity in [code]linear_velocity[/code]. When set to lower values, the body will not be able to stand still on steep slopes.
+ If [code]stop_on_slope[/code] is [code]true[/code], body will not slide on slopes if you include gravity in [code]linear_velocity[/code].
If the body collides, it will change direction a maximum of [code]max_slides[/code] times before it stops.
[code]floor_max_angle[/code] is the maximum angle (in radians) where a slope is still considered a floor (or a ceiling), rather than a wall. The default value equals 45 degrees.
- Returns the movement that remained when the body stopped. To get more detailed information about collisions that occurred, use [method get_slide_collision].
+ If [code]infinite_inertia[/code] is [code]true[/code], body will be able to push [RigidBody] nodes, but it won't also detect any collisions with them. If [code]false[/code] it will interact with [RigidBody] nodes like with [StaticBody].
+ Returns the [code]linear_velocity[/code] vector, rotated and/or scaled if a slide collision occurred. To get detailed information about collisions that occurred, use [method get_slide_collision].
</description>
</method>
<method name="move_and_slide_with_snap">
@@ -138,10 +139,13 @@
If the body is at least this close to another body, this body will consider them to be colliding.
</member>
<member name="move_lock_x" type="bool" setter="set_axis_lock" getter="get_axis_lock">
+ Lock the body's movement in the x-axis.
</member>
<member name="move_lock_y" type="bool" setter="set_axis_lock" getter="get_axis_lock">
+ Lock the body's movement in the y-axis.
</member>
<member name="move_lock_z" type="bool" setter="set_axis_lock" getter="get_axis_lock">
+ Lock the body's movement in the z-axis.
</member>
</members>
<constants>
diff --git a/doc/classes/KinematicBody2D.xml b/doc/classes/KinematicBody2D.xml
index 8a644447ca..b7ff4bac84 100644
--- a/doc/classes/KinematicBody2D.xml
+++ b/doc/classes/KinematicBody2D.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="KinematicBody2D" inherits="PhysicsBody2D" category="Core" version="3.1">
+<class name="KinematicBody2D" inherits="PhysicsBody2D" category="Core" version="3.2">
<brief_description>
Kinematic body 2D node.
</brief_description>
@@ -9,9 +9,9 @@
Kinematic Characters: 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 that don't require advanced physics.
</description>
<tutorials>
+ <link>https://docs.godotengine.org/en/latest/tutorials/physics/kinematic_character_2d.html</link>
+ <link>https://docs.godotengine.org/en/latest/tutorials/physics/using_kinematic_body_2d.html</link>
</tutorials>
- <demos>
- </demos>
<methods>
<method name="get_floor_velocity" qualifiers="const">
<return type="Vector2">
@@ -27,6 +27,12 @@
</argument>
<description>
Returns a [KinematicCollision2D], which contains information about a collision that occurred during the last [method move_and_slide] call. Since the body can collide several times in a single call to [method move_and_slide], you must specify the index of the collision in the range 0 to ([method get_slide_count] - 1).
+ Example usage:
+ [codeblock]
+ for i in get_slide_count():
+ var collision = get_slide_collision(i)
+ print("Collided with: ", collision.collider.name)
+ [/codeblock]
</description>
</method>
<method name="get_slide_count" qualifiers="const">
@@ -88,13 +94,14 @@
<argument index="5" name="infinite_inertia" type="bool" default="true">
</argument>
<description>
- Moves the body along a vector. If the body collides with another, it will slide along the other body rather than stop immediately. If the other body is a [code]KinematicBody2D[/code] or [RigidBody2D], it will also be affected by the motion of the other body. You can use this to make moving or rotating platforms, or to make nodes push other nodes.
- [code]linear_velocity[/code] is a value in pixels per second. Unlike in for example [method move_and_collide], you should [i]not[/i] multiply it with [code]delta[/code] — this is done by the method.
+ Moves the body along a vector. If the body collides with another, it will slide along the other body rather than stop immediately. If the other body is a [KinematicBody2D] or [RigidBody2D], it will also be affected by the motion of the other body. You can use this to make moving or rotating platforms, or to make nodes push other nodes.
+ [code]linear_velocity[/code] is the velocity vector in pixels per second. Unlike in [method move_and_collide], you should [i]not[/i] multiply it by [code]delta[/code] — the physics engine handles applying the velocity.
[code]floor_normal[/code] is the up direction, used to determine what is a wall and what is a floor or a ceiling. If set to the default value of [code]Vector2(0, 0)[/code], everything is considered a wall. This is useful for topdown games.
- [i]TODO: Update for stop_on_slope argument.[/i] If the body is standing on a slope and the horizontal speed (relative to the floor's speed) goes below [code]slope_stop_min_velocity[/code], the body will stop completely. This prevents the body from sliding down slopes when you include gravity in [code]linear_velocity[/code]. When set to lower values, the body will not be able to stand still on steep slopes.
+ If [code]stop_on_slope[/code] is [code]true[/code], body will not slide on slopes when you include gravity in [code]linear_velocity[/code] and the body is standing still.
If the body collides, it will change direction a maximum of [code]max_slides[/code] times before it stops.
[code]floor_max_angle[/code] is the maximum angle (in radians) where a slope is still considered a floor (or a ceiling), rather than a wall. The default value equals 45 degrees.
- Returns the movement that remained when the body stopped. To get more detailed information about collisions that occurred, use [method get_slide_collision].
+ If [code]infinite_inertia[/code] is [code]true[/code], body will be able to push [RigidBody2D] nodes, but it won't also detect any collisions with them. If [code]false[/code] it will interact with [RigidBody2D] nodes like with [StaticBody2D].
+ Returns the [code]linear_velocity[/code] vector, rotated and/or scaled if a slide collision occurred. To get detailed information about collisions that occurred, use [method get_slide_collision].
</description>
</method>
<method name="move_and_slide_with_snap">
@@ -138,7 +145,7 @@
If the body is at least this close to another body, this body will consider them to be colliding.
</member>
<member name="motion/sync_to_physics" type="bool" setter="set_sync_to_physics" getter="is_sync_to_physics_enabled">
- If [code]true[/code] the body's movement will be synchronized to the physics frame. This is useful when animating movement via [AnimationPlayer], for example on moving platforms.
+ If [code]true[/code], the body's movement will be synchronized to the physics frame. This is useful when animating movement via [AnimationPlayer], for example on moving platforms. Do [b]not[/b] use together with [method move_and_slide] or [method move_and_collide] functions.
</member>
</members>
<constants>
diff --git a/doc/classes/KinematicCollision.xml b/doc/classes/KinematicCollision.xml
index 87eb9e77b5..4ce74df767 100644
--- a/doc/classes/KinematicCollision.xml
+++ b/doc/classes/KinematicCollision.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="KinematicCollision" inherits="Reference" category="Core" version="3.1">
+<class name="KinematicCollision" inherits="Reference" category="Core" version="3.2">
<brief_description>
Collision data for KinematicBody collisions.
</brief_description>
@@ -9,8 +9,6 @@
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
</methods>
<members>
diff --git a/doc/classes/KinematicCollision2D.xml b/doc/classes/KinematicCollision2D.xml
index e403ada0b9..5a0303b7ba 100644
--- a/doc/classes/KinematicCollision2D.xml
+++ b/doc/classes/KinematicCollision2D.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="KinematicCollision2D" inherits="Reference" category="Core" version="3.1">
+<class name="KinematicCollision2D" inherits="Reference" category="Core" version="3.2">
<brief_description>
Collision data for KinematicBody2D collisions.
</brief_description>
@@ -9,8 +9,6 @@
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
</methods>
<members>
diff --git a/doc/classes/Label.xml b/doc/classes/Label.xml
index 90547b7c2f..8d52cae186 100644
--- a/doc/classes/Label.xml
+++ b/doc/classes/Label.xml
@@ -1,16 +1,14 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="Label" inherits="Control" category="Core" version="3.1">
+<class name="Label" inherits="Control" category="Core" version="3.2">
<brief_description>
Displays plain text in a line or wrapped inside a rectangle. For formatted text, use [RichTextLabel].
</brief_description>
<description>
Label displays plain text on the screen. It gives you control over the horizontal and vertical alignment, and can wrap the text inside the node's bounding rectangle. It doesn't support bold, italics or other formatting. For that, use [RichTextLabel] instead.
- Note that contrarily to most other [Control]s, Label's [member Control.mouse_filter] defaults to MOUSE_FILTER_IGNORE (i.e. it doesn't react to mouse input events).
+ Note that contrarily to most other [Control]s, Label's [member Control.mouse_filter] defaults to MOUSE_FILTER_IGNORE (i.e. it doesn't react to mouse input events). This implies that a label won't display any configured [member Control.hint_tooltip], unless you change its mouse filter.
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
<method name="get_line_count" qualifiers="const">
<return type="int">
@@ -37,7 +35,7 @@
<return type="int">
</return>
<description>
- Returns the number of lines shown. Useful if the [code]Label[/code] 's height cannot currently display all lines.
+ Returns the number of lines shown. Useful if the [Label] 's height cannot currently display all lines.
</description>
</method>
</methods>
@@ -46,7 +44,7 @@
Controls the text's horizontal align. Supports left, center, right, and fill, or justify. Set it to one of the [code]ALIGN_*[/code] constants.
</member>
<member name="autowrap" type="bool" setter="set_autowrap" getter="has_autowrap">
- If [code]true[/code], wraps the text inside the node's bounding rectangle. If you resize the node, it will change its height automatically to show all the text. Default: false.
+ If [code]true[/code], wraps the text inside the node's bounding rectangle. If you resize the node, it will change its height automatically to show all the text. Default: [code]false[/code].
</member>
<member name="clip_text" type="bool" setter="set_clip_text" getter="is_clipping_text">
If [code]true[/code], the Label only shows the text that fits inside its bounding rectangle. It also lets you scale the node down freely.
diff --git a/doc/classes/LargeTexture.xml b/doc/classes/LargeTexture.xml
index 9526604e6d..4611bc228e 100644
--- a/doc/classes/LargeTexture.xml
+++ b/doc/classes/LargeTexture.xml
@@ -1,16 +1,14 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="LargeTexture" inherits="Texture" category="Core" version="3.1">
+<class name="LargeTexture" inherits="Texture" category="Core" version="3.2">
<brief_description>
A Texture capable of storing many smaller Textures with offsets.
</brief_description>
<description>
A Texture capable of storing many smaller Textures with offsets.
- You can dynamically add pieces([Texture]) to this [code]LargeTexture[/code] using different offsets.
+ You can dynamically add pieces([Texture]) to this [LargeTexture] using different offsets.
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
<method name="add_piece">
<return type="int">
@@ -20,21 +18,21 @@
<argument index="1" name="texture" type="Texture">
</argument>
<description>
- Add another [Texture] to this [code]LargeTexture[/code], starting on offset "ofs".
+ Add another [Texture] to this [LargeTexture], starting on offset "ofs".
</description>
</method>
<method name="clear">
<return type="void">
</return>
<description>
- Clears the [code]LargeTexture[/code].
+ Clears the [LargeTexture].
</description>
</method>
<method name="get_piece_count" qualifiers="const">
<return type="int">
</return>
<description>
- Returns the number of pieces currently in this [code]LargeTexture[/code].
+ Returns the number of pieces currently in this [LargeTexture].
</description>
</method>
<method name="get_piece_offset" qualifiers="const">
@@ -83,7 +81,7 @@
<argument index="0" name="size" type="Vector2">
</argument>
<description>
- Sets the size of this [code]LargeTexture[/code].
+ Sets the size of this [LargeTexture].
</description>
</method>
</methods>
diff --git a/doc/classes/Light.xml b/doc/classes/Light.xml
index cf873e5b28..ecbc07ba72 100644
--- a/doc/classes/Light.xml
+++ b/doc/classes/Light.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="Light" inherits="VisualInstance" category="Core" version="3.1">
+<class name="Light" inherits="VisualInstance" category="Core" version="3.2">
<brief_description>
Provides a base class for different kinds of light nodes.
</brief_description>
@@ -9,13 +9,11 @@
<tutorials>
<link>https://docs.godotengine.org/en/latest/tutorials/3d/lights_and_shadows.html</link>
</tutorials>
- <demos>
- </demos>
<methods>
</methods>
<members>
<member name="editor_only" type="bool" setter="set_editor_only" getter="is_editor_only">
- If [code]true[/code] the light only appears in the editor and will not be visible at runtime. Default value:[code]false[/code].
+ If [code]true[/code], the light only appears in the editor and will not be visible at runtime. Default value:[code]false[/code].
</member>
<member name="light_bake_mode" type="int" setter="set_bake_mode" getter="get_bake_mode" enum="Light.BakeMode">
The light's bake mode. See [enum BakeMode].
@@ -33,7 +31,7 @@
Secondary multiplier used with indirect light (light bounces). This works in baked light or GIProbe.
</member>
<member name="light_negative" type="bool" setter="set_negative" getter="is_negative">
- If [code]true[/code] the light's effect is reversed, darkening areas and casting bright shadows. Default value: [code]false[/code].
+ If [code]true[/code], the light's effect is reversed, darkening areas and casting bright shadows. Default value: [code]false[/code].
</member>
<member name="light_specular" type="float" setter="set_param" getter="get_param">
The intensity of the specular blob in objects affected by the light. At [code]0[/code] the light becomes a pure diffuse light.
@@ -48,7 +46,7 @@
Attempts to reduce [member shadow_bias] gap.
</member>
<member name="shadow_enabled" type="bool" setter="set_shadow" getter="has_shadow">
- If [code]true[/code] the light will cast shadows. Default value: [code]false[/code].
+ If [code]true[/code], the light will cast shadows. Default value: [code]false[/code].
</member>
<member name="shadow_reverse_cull_face" type="bool" setter="set_shadow_reverse_cull_face" getter="get_shadow_reverse_cull_face">
</member>
diff --git a/doc/classes/Light2D.xml b/doc/classes/Light2D.xml
index f3903ffeae..a487fdf2fe 100644
--- a/doc/classes/Light2D.xml
+++ b/doc/classes/Light2D.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="Light2D" inherits="Node2D" category="Core" version="3.1">
+<class name="Light2D" inherits="Node2D" category="Core" version="3.2">
<brief_description>
Casts light in a 2D environment.
</brief_description>
@@ -7,9 +7,8 @@
Casts light in a 2D environment. Light is defined by a (usually grayscale) texture, a color, an energy value, a mode (see constants), and various other parameters (range and shadows-related). Note that Light2D can be used as a mask.
</description>
<tutorials>
+ <link>http://docs.godotengine.org/en/latest/tutorials/2d/2d_lights_and_shadows.html</link>
</tutorials>
- <demos>
- </demos>
<methods>
</methods>
<members>
@@ -17,10 +16,10 @@
The Light2D's [Color].
</member>
<member name="editor_only" type="bool" setter="set_editor_only" getter="is_editor_only">
- If [code]true[/code] Light2D will only appear when editing the scene. Default value: [code]false[/code].
+ If [code]true[/code], Light2D will only appear when editing the scene. Default value: [code]false[/code].
</member>
<member name="enabled" type="bool" setter="set_enabled" getter="is_enabled">
- If [code]true[/code] Light2D will emit light. Default value: [code]true[/code].
+ If [code]true[/code], Light2D will emit light. Default value: [code]true[/code].
</member>
<member name="energy" type="float" setter="set_energy" getter="get_energy">
The Light2D's energy value. The larger the value, the stronger the light.
@@ -56,10 +55,10 @@
[Color] of shadows cast by the Light2D.
</member>
<member name="shadow_enabled" type="bool" setter="set_shadow_enabled" getter="is_shadow_enabled">
- If [code]true[/code] the Light2D will cast shadows. Default value: [code]false[/code].
+ If [code]true[/code], the Light2D will cast shadows. Default value: [code]false[/code].
</member>
<member name="shadow_filter" type="int" setter="set_shadow_filter" getter="get_shadow_filter" enum="Light2D.ShadowFilter">
- Shadow filter type. Use SHADOW_FILTER_* constants to set [code]shadow_filter[/code]. Default value: [code]None[/code].
+ Shadow filter type. Use [enum Light2D.ShadowFilter] constants as values. Default value: [code]SHADOW_FILTER_NONE[/code].
</member>
<member name="shadow_filter_smooth" type="float" setter="set_shadow_smooth" getter="get_shadow_smooth">
Smoothing value for shadows.
@@ -91,22 +90,22 @@
The light texture of the Light2D is used as a mask, hiding or revealing parts of the screen underneath depending on the value of each pixel of the light (mask) texture.
</constant>
<constant name="SHADOW_FILTER_NONE" value="0" enum="ShadowFilter">
- No filter applies to the shadow map. See [method shadow_filter].
+ No filter applies to the shadow map. See [member shadow_filter].
</constant>
<constant name="SHADOW_FILTER_PCF3" value="1" enum="ShadowFilter">
- Percentage closer filtering (3 samples) applies to the shadow map. See [method shadow_filter].
+ Percentage closer filtering (3 samples) applies to the shadow map. See [member shadow_filter].
</constant>
<constant name="SHADOW_FILTER_PCF5" value="2" enum="ShadowFilter">
- Percentage closer filtering (5 samples) applies to the shadow map. See [method shadow_filter].
+ Percentage closer filtering (5 samples) applies to the shadow map. See [member shadow_filter].
</constant>
<constant name="SHADOW_FILTER_PCF7" value="3" enum="ShadowFilter">
- Percentage closer filtering (7 samples) applies to the shadow map. See [method shadow_filter].
+ Percentage closer filtering (7 samples) applies to the shadow map. See [member shadow_filter].
</constant>
<constant name="SHADOW_FILTER_PCF9" value="4" enum="ShadowFilter">
- Percentage closer filtering (9 samples) applies to the shadow map. See [method shadow_filter].
+ Percentage closer filtering (9 samples) applies to the shadow map. See [member shadow_filter].
</constant>
<constant name="SHADOW_FILTER_PCF13" value="5" enum="ShadowFilter">
- Percentage closer filtering (13 samples) applies to the shadow map. See [method shadow_filter].
+ Percentage closer filtering (13 samples) applies to the shadow map. See [member shadow_filter].
</constant>
</constants>
</class>
diff --git a/doc/classes/LightOccluder2D.xml b/doc/classes/LightOccluder2D.xml
index 38b9054411..a621937eb3 100644
--- a/doc/classes/LightOccluder2D.xml
+++ b/doc/classes/LightOccluder2D.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="LightOccluder2D" inherits="Node2D" category="Core" version="3.1">
+<class name="LightOccluder2D" inherits="Node2D" category="Core" version="3.2">
<brief_description>
Occludes light cast by a Light2D, casting shadows.
</brief_description>
@@ -7,9 +7,8 @@
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>http://docs.godotengine.org/en/latest/tutorials/2d/2d_lights_and_shadows.html</link>
</tutorials>
- <demos>
- </demos>
<methods>
</methods>
<members>
diff --git a/doc/classes/Line2D.xml b/doc/classes/Line2D.xml
index c1682e71e5..c55760767a 100644
--- a/doc/classes/Line2D.xml
+++ b/doc/classes/Line2D.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="Line2D" inherits="Node2D" category="Core" version="3.1">
+<class name="Line2D" inherits="Node2D" category="Core" version="3.2">
<brief_description>
A 2D line.
</brief_description>
@@ -8,16 +8,24 @@
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
<method name="add_point">
<return type="void">
</return>
<argument index="0" name="position" type="Vector2">
</argument>
+ <argument index="1" name="at_position" type="int" default="-1">
+ </argument>
<description>
Add a point at the [code]position[/code]. Appends the point at the end of the line.
+ If [code]at_position[/code] is given, the point is inserted before the point number [code]at_position[/code], moving that point (and every point after) after the inserted point. If [code]at_position[/code] is not given, or is an illegal value ([code]at_position &lt; 0[/code] or [code]at_position &gt;= [method get_point_count][/code]), the point will be appended at the end of the point list.
+ </description>
+ </method>
+ <method name="clear_points">
+ <return type="void">
+ </return>
+ <description>
+ Removes all points from the line.
</description>
</method>
<method name="get_point_count" qualifiers="const">
diff --git a/doc/classes/LineEdit.xml b/doc/classes/LineEdit.xml
index f842dd8311..184987d2dd 100644
--- a/doc/classes/LineEdit.xml
+++ b/doc/classes/LineEdit.xml
@@ -1,15 +1,22 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="LineEdit" inherits="Control" category="Core" version="3.1">
+<class name="LineEdit" inherits="Control" category="Core" version="3.2">
<brief_description>
- Control that provides single line string editing.
+ Control that provides single-line string editing.
</brief_description>
<description>
- LineEdit provides a single line string editor, used for text fields.
+ LineEdit provides a single-line string editor, used for text fields. It features many built-in shortcuts which will always be available:
+ - Ctrl + C: Copy
+ - Ctrl + X: Cut
+ - Ctrl + V or Ctrl + Y: Paste/"yank"
+ - Ctrl + Z: Undo
+ - Ctrl + Shift + Z: Redo
+ - Ctrl + U: Delete text from the cursor position to the beginning of the line
+ - Ctrl + K: Delete text from the cursor position to the end of the line
+ - Ctrl + A: Select all text
+ - Up/Down arrow: Move the cursor to the beginning/end of the line
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
<method name="append_at_cursor">
<return type="void">
@@ -38,7 +45,7 @@
<return type="PopupMenu">
</return>
<description>
- Returns the [PopupMenu] of this [code]LineEdit[/code]. By default, this menu is displayed when right-clicking on the [LineEdit].
+ Returns the [PopupMenu] of this [LineEdit]. By default, this menu is displayed when right-clicking on the [LineEdit].
</description>
</method>
<method name="menu_option">
@@ -80,28 +87,28 @@
Text alignment as defined in the ALIGN_* enum.
</member>
<member name="caret_blink" type="bool" setter="cursor_set_blink_enabled" getter="cursor_get_blink_enabled">
- If [code]true[/code] the caret (visual cursor) blinks.
+ If [code]true[/code], the caret (visual cursor) blinks.
</member>
<member name="caret_blink_speed" type="float" setter="cursor_set_blink_speed" getter="cursor_get_blink_speed">
Duration (in seconds) of a caret's blinking cycle.
</member>
<member name="caret_position" type="int" setter="set_cursor_position" getter="get_cursor_position">
- The cursor's position inside the [code]LineEdit[/code]. When set, the text may scroll to accommodate it.
+ The cursor's position inside the [LineEdit]. When set, the text may scroll to accommodate it.
</member>
<member name="clear_button_enabled" type="bool" setter="set_clear_button_enabled" getter="is_clear_button_enabled">
- If [code]true[/code] the [code]LineEdit[/code] will show a clear button if [code]text[/code] is not empty.
+ If [code]true[/code], the [LineEdit] will show a clear button if [code]text[/code] is not empty.
</member>
<member name="context_menu_enabled" type="bool" setter="set_context_menu_enabled" getter="is_context_menu_enabled">
- If [code]true[/code] the context menu will appear when right clicked.
+ If [code]true[/code], the context menu will appear when right clicked.
</member>
<member name="editable" type="bool" setter="set_editable" getter="is_editable">
- If [code]false[/code] existing text cannot be modified and new text cannot be added.
+ If [code]false[/code], existing text cannot be modified and new text cannot be added.
</member>
<member name="expand_to_text_length" type="bool" setter="set_expand_to_text_length" getter="get_expand_to_text_length">
- If [code]true[/code] the [LineEdit] width will increase to stay longer than the [member text]. It will [b]not[/b] compress if the [member text] is shortened.
+ If [code]true[/code], the [LineEdit] width will increase to stay longer than the [member text]. It will [b]not[/b] compress if the [member text] is shortened.
</member>
<member name="focus_mode" type="int" setter="set_focus_mode" getter="get_focus_mode" enum="Control.FocusMode">
- Defines how the [LineEdit] can grab focus (Keyboard and mouse, only keyboard, or none). See [code]enum FocusMode[/code] in [Control] for details.
+ Defines how the [LineEdit] can grab focus (Keyboard and mouse, only keyboard, or none). See [enum Control.FocusMode] in [Control] for details.
</member>
<member name="max_length" type="int" setter="set_max_length" getter="get_max_length">
Maximum amount of characters that can be entered inside the [LineEdit]. If [code]0[/code], there is no limit.
@@ -134,7 +141,7 @@
<argument index="0" name="new_text" type="String">
</argument>
<description>
- Emitted when the user presses KEY_ENTER on the [code]LineEdit[/code].
+ Emitted when the user presses [constant KEY_ENTER] on the [LineEdit].
</description>
</signal>
</signals>
@@ -152,19 +159,20 @@
Stretches whitespaces to fit the [LineEdit]'s width.
</constant>
<constant name="MENU_CUT" value="0" enum="MenuItems">
- Cuts (Copies and clears) the selected text.
+ Cuts (copies and clears) the selected text.
</constant>
<constant name="MENU_COPY" value="1" enum="MenuItems">
Copies the selected text.
</constant>
<constant name="MENU_PASTE" value="2" enum="MenuItems">
Pastes the clipboard text over the selected text (or at the cursor's position).
+ Non-printable escape characters are automatically stripped from the OS clipboard via [method String.strip_escapes].
</constant>
<constant name="MENU_CLEAR" value="3" enum="MenuItems">
- Erases the whole [Linedit] text.
+ Erases the whole [LineEdit] text.
</constant>
<constant name="MENU_SELECT_ALL" value="4" enum="MenuItems">
- Selects the whole [Linedit] text.
+ Selects the whole [LineEdit] text.
</constant>
<constant name="MENU_UNDO" value="5" enum="MenuItems">
Undoes the previous action.
diff --git a/doc/classes/LineShape2D.xml b/doc/classes/LineShape2D.xml
index 4a5486583a..94409cbd83 100644
--- a/doc/classes/LineShape2D.xml
+++ b/doc/classes/LineShape2D.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="LineShape2D" inherits="Shape2D" category="Core" version="3.1">
+<class name="LineShape2D" inherits="Shape2D" category="Core" version="3.2">
<brief_description>
Line shape for 2D collisions.
</brief_description>
@@ -8,8 +8,6 @@
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
</methods>
<members>
diff --git a/doc/classes/LinkButton.xml b/doc/classes/LinkButton.xml
index a09edfad89..ef9f785f0f 100644
--- a/doc/classes/LinkButton.xml
+++ b/doc/classes/LinkButton.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="LinkButton" inherits="BaseButton" category="Core" version="3.1">
+<class name="LinkButton" inherits="BaseButton" category="Core" version="3.2">
<brief_description>
Simple button used to represent a link to some resource.
</brief_description>
@@ -8,8 +8,6 @@
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
</methods>
<members>
diff --git a/doc/classes/Listener.xml b/doc/classes/Listener.xml
index 720a7eafc5..130263a069 100644
--- a/doc/classes/Listener.xml
+++ b/doc/classes/Listener.xml
@@ -1,13 +1,11 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="Listener" inherits="Spatial" category="Core" version="3.1">
+<class name="Listener" inherits="Spatial" category="Core" version="3.2">
<brief_description>
</brief_description>
<description>
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
<method name="clear_current">
<return type="void">
diff --git a/doc/classes/MainLoop.xml b/doc/classes/MainLoop.xml
index ad763e6532..324ee72b8e 100644
--- a/doc/classes/MainLoop.xml
+++ b/doc/classes/MainLoop.xml
@@ -1,15 +1,13 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="MainLoop" inherits="Object" category="Core" version="3.1">
+<class name="MainLoop" inherits="Object" category="Core" version="3.2">
<brief_description>
Main loop is the abstract main loop base class.
</brief_description>
<description>
- Main loop is the abstract main loop base class. All other main loop classes are derived from it. Upon application start, a [code]MainLoop[/code] has to be provided to OS, else the application will exit. This happens automatically (and a [SceneTree] is created), unless a main [Script] is supplied, which may or not create and return a [code]MainLoop[/code].
+ Main loop is the abstract main loop base class. All other main loop classes are derived from it. Upon application start, a [MainLoop] has to be provided to OS, else the application will exit. This happens automatically (and a [SceneTree] is created), unless a main [Script] is supplied, which may or not create and return a [MainLoop].
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
<method name="_drop_files" qualifiers="virtual">
<return type="void">
@@ -114,27 +112,29 @@
</method>
</methods>
<constants>
- <constant name="NOTIFICATION_WM_MOUSE_ENTER" value="2">
+ <constant name="NOTIFICATION_WM_MOUSE_ENTER" value="1002">
</constant>
- <constant name="NOTIFICATION_WM_MOUSE_EXIT" value="3">
+ <constant name="NOTIFICATION_WM_MOUSE_EXIT" value="1003">
</constant>
- <constant name="NOTIFICATION_WM_FOCUS_IN" value="4">
+ <constant name="NOTIFICATION_WM_FOCUS_IN" value="1004">
</constant>
- <constant name="NOTIFICATION_WM_FOCUS_OUT" value="5">
+ <constant name="NOTIFICATION_WM_FOCUS_OUT" value="1005">
</constant>
- <constant name="NOTIFICATION_WM_QUIT_REQUEST" value="6">
+ <constant name="NOTIFICATION_WM_QUIT_REQUEST" value="1006">
</constant>
- <constant name="NOTIFICATION_WM_GO_BACK_REQUEST" value="7">
+ <constant name="NOTIFICATION_WM_GO_BACK_REQUEST" value="1007">
</constant>
- <constant name="NOTIFICATION_WM_UNFOCUS_REQUEST" value="8">
+ <constant name="NOTIFICATION_WM_UNFOCUS_REQUEST" value="1008">
</constant>
- <constant name="NOTIFICATION_OS_MEMORY_WARNING" value="9">
+ <constant name="NOTIFICATION_OS_MEMORY_WARNING" value="1009">
</constant>
- <constant name="NOTIFICATION_TRANSLATION_CHANGED" value="90">
+ <constant name="NOTIFICATION_TRANSLATION_CHANGED" value="1010">
</constant>
- <constant name="NOTIFICATION_WM_ABOUT" value="91">
+ <constant name="NOTIFICATION_WM_ABOUT" value="1011">
</constant>
- <constant name="NOTIFICATION_CRASH" value="92">
+ <constant name="NOTIFICATION_CRASH" value="1012">
+ </constant>
+ <constant name="NOTIFICATION_OS_IME_UPDATE" value="1013">
</constant>
</constants>
</class>
diff --git a/doc/classes/MarginContainer.xml b/doc/classes/MarginContainer.xml
index 15613e4bec..0993ed88ca 100644
--- a/doc/classes/MarginContainer.xml
+++ b/doc/classes/MarginContainer.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="MarginContainer" inherits="Container" category="Core" version="3.1">
+<class name="MarginContainer" inherits="Container" category="Core" version="3.2">
<brief_description>
Simple margin container.
</brief_description>
@@ -8,8 +8,6 @@
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
</methods>
<constants>
diff --git a/doc/classes/Marshalls.xml b/doc/classes/Marshalls.xml
index 687f81eec7..c7118a4d9f 100644
--- a/doc/classes/Marshalls.xml
+++ b/doc/classes/Marshalls.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="Marshalls" inherits="Reference" category="Core" version="3.1">
+<class name="Marshalls" inherits="Reference" category="Core" version="3.2">
<brief_description>
Data transformation (marshalling) and encoding helpers.
</brief_description>
@@ -8,8 +8,6 @@
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
<method name="base64_to_raw">
<return type="PoolByteArray">
@@ -17,7 +15,7 @@
<argument index="0" name="base64_str" type="String">
</argument>
<description>
- Return [PoolByteArray] of a given base64 encoded String.
+ Returns [PoolByteArray] of a given base64 encoded String.
</description>
</method>
<method name="base64_to_utf8">
@@ -26,7 +24,7 @@
<argument index="0" name="base64_str" type="String">
</argument>
<description>
- Return utf8 String of a given base64 encoded String.
+ Returns utf8 String of a given base64 encoded String.
</description>
</method>
<method name="base64_to_variant">
@@ -34,8 +32,11 @@
</return>
<argument index="0" name="base64_str" type="String">
</argument>
+ <argument index="1" name="allow_objects" type="bool" default="false">
+ </argument>
<description>
- Return [Variant] of a given base64 encoded String.
+ Returns [Variant] of a given base64 encoded String. When [code]allow_objects[/code] is [code]true[/code] decoding objects is allowed.
+ [b]WARNING:[/b] Deserialized object can contain code which gets executed. Do not use this option if the serialized object comes from untrusted sources to avoid potential security threats (remote code execution).
</description>
</method>
<method name="raw_to_base64">
@@ -44,7 +45,7 @@
<argument index="0" name="array" type="PoolByteArray">
</argument>
<description>
- Return base64 encoded String of a given [PoolByteArray].
+ Returns base64 encoded String of a given [PoolByteArray].
</description>
</method>
<method name="utf8_to_base64">
@@ -53,7 +54,7 @@
<argument index="0" name="utf8_str" type="String">
</argument>
<description>
- Return base64 encoded String of a given utf8 String.
+ Returns base64 encoded String of a given utf8 String.
</description>
</method>
<method name="variant_to_base64">
@@ -61,8 +62,10 @@
</return>
<argument index="0" name="variant" type="Variant">
</argument>
+ <argument index="1" name="full_objects" type="bool" default="false">
+ </argument>
<description>
- Return base64 encoded String of a given [Variant].
+ Returns base64 encoded String of a given [Variant]. When [code]full_objects[/code] is [code]true[/code] encoding objects is allowed (and can potentially include code).
</description>
</method>
</methods>
diff --git a/doc/classes/Material.xml b/doc/classes/Material.xml
index 7420a5deb0..848a43e6c4 100644
--- a/doc/classes/Material.xml
+++ b/doc/classes/Material.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="Material" inherits="Resource" category="Core" version="3.1">
+<class name="Material" inherits="Resource" category="Core" version="3.2">
<brief_description>
Abstract base [Resource] for coloring and shading geometry.
</brief_description>
@@ -8,8 +8,6 @@
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
</methods>
<members>
diff --git a/doc/classes/MenuButton.xml b/doc/classes/MenuButton.xml
index c9a8d3ce7a..1043aa1087 100644
--- a/doc/classes/MenuButton.xml
+++ b/doc/classes/MenuButton.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="MenuButton" inherits="Button" category="Core" version="3.1">
+<class name="MenuButton" inherits="Button" category="Core" version="3.2">
<brief_description>
Special button that brings up a [PopupMenu] when clicked.
</brief_description>
@@ -8,14 +8,12 @@
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
<method name="get_popup" qualifiers="const">
<return type="PopupMenu">
</return>
<description>
- Return the [PopupMenu] contained in this button.
+ Returns the [PopupMenu] contained in this button.
</description>
</method>
<method name="set_disable_shortcuts">
@@ -27,6 +25,11 @@
</description>
</method>
</methods>
+ <members>
+ <member name="switch_on_hover" type="bool" setter="set_switch_on_hover" getter="is_switch_on_hover">
+ If [code]true[/code], when the cursor hovers above another MenuButton within the same parent which also has [code]switch_on_hover[/code] enabled, it will close the current MenuButton and open the other one.
+ </member>
+ </members>
<signals>
<signal name="about_to_show">
<description>
diff --git a/doc/classes/Mesh.xml b/doc/classes/Mesh.xml
index 4852d4701d..048e7074f1 100644
--- a/doc/classes/Mesh.xml
+++ b/doc/classes/Mesh.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="Mesh" inherits="Resource" category="Core" version="3.1">
+<class name="Mesh" inherits="Resource" category="Core" version="3.2">
<brief_description>
A [Resource] that contains vertex-array based geometry.
</brief_description>
@@ -8,8 +8,6 @@
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
<method name="create_convex_shape" qualifiers="const">
<return type="Shape">
@@ -52,7 +50,7 @@
<return type="int">
</return>
<description>
- Return the amount of surfaces that the [code]Mesh[/code] holds.
+ Returns the amount of surfaces that the [Mesh] holds.
</description>
</method>
<method name="surface_get_arrays" qualifiers="const">
@@ -79,7 +77,18 @@
<argument index="0" name="surf_idx" type="int">
</argument>
<description>
- Return a [Material] in a given surface. Surface is rendered using this material.
+ Returns a [Material] in a given surface. Surface is rendered using this material.
+ </description>
+ </method>
+ <method name="surface_set_material">
+ <return type="void">
+ </return>
+ <argument index="0" name="surf_idx" type="int">
+ </argument>
+ <argument index="1" name="material" type="Material">
+ </argument>
+ <description>
+ Set a [Material] for a given surface. Surface will be rendered using this material.
</description>
</method>
</methods>
diff --git a/doc/classes/MeshDataTool.xml b/doc/classes/MeshDataTool.xml
index c90dba1561..eeb251c8c7 100644
--- a/doc/classes/MeshDataTool.xml
+++ b/doc/classes/MeshDataTool.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="MeshDataTool" inherits="Reference" category="Core" version="3.1">
+<class name="MeshDataTool" inherits="Reference" category="Core" version="3.2">
<brief_description>
Helper tool to access and edit [Mesh] data.
</brief_description>
@@ -11,17 +11,15 @@
var mdt = MeshDataTool.new()
mdt.create_from_surface(mesh, 0)
for i in range(mdt.get_vertex_count()):
- var vertex = mdt.get_vertex(i)
- ...
- mdt.set_vertex(i, vertex)
+ var vertex = mdt.get_vertex(i)
+ ...
+ mdt.set_vertex(i, vertex)
mesh.surface_remove(0)
mdt.commit_to_surface(mesh)
[/codeblock]
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
<method name="clear">
<return type="void">
diff --git a/doc/classes/MeshInstance.xml b/doc/classes/MeshInstance.xml
index bcc9a7cad9..f5868f51cb 100644
--- a/doc/classes/MeshInstance.xml
+++ b/doc/classes/MeshInstance.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="MeshInstance" inherits="GeometryInstance" category="Core" version="3.1">
+<class name="MeshInstance" inherits="GeometryInstance" category="Core" version="3.2">
<brief_description>
Node that instances meshes into a scenario.
</brief_description>
@@ -8,8 +8,6 @@
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
<method name="create_convex_collision">
<return type="void">
@@ -45,6 +43,7 @@
<return type="int">
</return>
<description>
+ Returns the number of surface materials.
</description>
</method>
<method name="set_surface_material">
diff --git a/doc/classes/MeshInstance2D.xml b/doc/classes/MeshInstance2D.xml
index 7f0136bf77..4b38b9aa96 100644
--- a/doc/classes/MeshInstance2D.xml
+++ b/doc/classes/MeshInstance2D.xml
@@ -1,23 +1,33 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="MeshInstance2D" inherits="Node2D" category="Core" version="3.1">
+<class name="MeshInstance2D" inherits="Node2D" category="Core" version="3.2">
<brief_description>
+ Node used for displaying a [Mesh] in 2D.
</brief_description>
<description>
+ Node used for displaying a [Mesh] in 2D. Can be constructed from an existing [Sprite] use tool in Toolbar. Select "Sprite" then "Convert to Mesh2D", select settings in popup and press "Create Mesh2D".
</description>
<tutorials>
+ <link>http://docs.godotengine.org/en/latest/tutorials/2d/2d_meshes.html</link>
</tutorials>
- <demos>
- </demos>
<methods>
</methods>
<members>
<member name="mesh" type="Mesh" setter="set_mesh" getter="get_mesh">
+ The [Mesh] that will be drawn by the [MeshInstance2D].
</member>
<member name="normal_map" type="Texture" setter="set_normal_map" getter="get_normal_map">
+ The normal map that will be used if using the default [CanvasItemMaterial].
</member>
<member name="texture" type="Texture" setter="set_texture" getter="get_texture">
+ The [Texture] that will be used if using the default [CanvasItemMaterial]. Can be accessed as [code]TEXTURE[/code] in CanvasItem shader.
</member>
</members>
+ <signals>
+ <signal name="texture_changed">
+ <description>
+ </description>
+ </signal>
+ </signals>
<constants>
</constants>
</class>
diff --git a/doc/classes/MeshLibrary.xml b/doc/classes/MeshLibrary.xml
index 3726524638..ad5824640d 100644
--- a/doc/classes/MeshLibrary.xml
+++ b/doc/classes/MeshLibrary.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="MeshLibrary" inherits="Resource" category="Core" version="3.1">
+<class name="MeshLibrary" inherits="Resource" category="Core" version="3.2">
<brief_description>
Library of meshes.
</brief_description>
@@ -8,8 +8,6 @@
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
<method name="clear">
<return type="void">
@@ -39,7 +37,7 @@
<return type="PoolIntArray">
</return>
<description>
- Return the list of items.
+ Returns the list of items.
</description>
</method>
<method name="get_item_mesh" qualifiers="const">
@@ -48,7 +46,7 @@
<argument index="0" name="id" type="int">
</argument>
<description>
- Return the mesh of the item.
+ Returns the mesh of the item.
</description>
</method>
<method name="get_item_name" qualifiers="const">
@@ -57,7 +55,7 @@
<argument index="0" name="id" type="int">
</argument>
<description>
- Return the name of the item.
+ Returns the name of the item.
</description>
</method>
<method name="get_item_navmesh" qualifiers="const">
@@ -68,6 +66,14 @@
<description>
</description>
</method>
+ <method name="get_item_navmesh_transform" qualifiers="const">
+ <return type="Transform">
+ </return>
+ <argument index="0" name="id" type="int">
+ </argument>
+ <description>
+ </description>
+ </method>
<method name="get_item_preview" qualifiers="const">
<return type="Texture">
</return>
@@ -132,6 +138,16 @@
<description>
</description>
</method>
+ <method name="set_item_navmesh_transform">
+ <return type="void">
+ </return>
+ <argument index="0" name="id" type="int">
+ </argument>
+ <argument index="1" name="navmesh" type="Transform">
+ </argument>
+ <description>
+ </description>
+ </method>
<method name="set_item_preview">
<return type="void">
</return>
diff --git a/doc/classes/MeshTexture.xml b/doc/classes/MeshTexture.xml
new file mode 100644
index 0000000000..d305cca482
--- /dev/null
+++ b/doc/classes/MeshTexture.xml
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<class name="MeshTexture" inherits="Texture" category="Core" version="3.2">
+ <brief_description>
+ Simple texture that uses a mesh to draw itself.
+ </brief_description>
+ <description>
+ Simple texture that uses a mesh to draw itself. It's limited because flags can't be changed and region drawing is not supported.
+ </description>
+ <tutorials>
+ </tutorials>
+ <methods>
+ </methods>
+ <members>
+ <member name="base_texture" type="Texture" setter="set_base_texture" getter="get_base_texture">
+ Set the base texture that the Mesh will use to draw.
+ </member>
+ <member name="image_size" type="Vector2" setter="set_image_size" getter="get_image_size">
+ Set the size of the image, needed for reference.
+ </member>
+ <member name="mesh" type="Mesh" setter="set_mesh" getter="get_mesh">
+ Set the mesh used to draw. It must be a mesh using 2D vertices.
+ </member>
+ </members>
+ <constants>
+ </constants>
+</class>
diff --git a/doc/classes/MultiMesh.xml b/doc/classes/MultiMesh.xml
index 1908fdd684..0784fc3a42 100644
--- a/doc/classes/MultiMesh.xml
+++ b/doc/classes/MultiMesh.xml
@@ -1,24 +1,23 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="MultiMesh" inherits="Resource" category="Core" version="3.1">
+<class name="MultiMesh" inherits="Resource" category="Core" version="3.2">
<brief_description>
Provides high performance mesh instancing.
</brief_description>
<description>
- MultiMesh provides low level mesh instancing. If the amount of [Mesh] instances needed goes from hundreds to thousands (and most need to be visible at close proximity) creating such a large amount of [MeshInstance] nodes may affect performance by using too much CPU or video memory.
- For this case a MultiMesh becomes very useful, as it can draw thousands of instances with little API overhead.
+ MultiMesh provides low level mesh instancing. Drawing thousands of [MeshInstance] nodes can be slow because each object is submitted to the GPU to be drawn individually.
+ MultiMesh is much faster because it can draw thousands of instances with a single draw call, resulting in less API overhead.
As a drawback, if the instances are too far away of each other, performance may be reduced as every single instance will always rendered (they are spatially indexed as one, for the whole object).
Since instances may have any behavior, the AABB used for visibility must be provided by the user.
</description>
<tutorials>
+ <link>http://docs.godotengine.org/en/latest/tutorials/3d/vertex_animation/animating_thousands_of_fish.html</link>
</tutorials>
- <demos>
- </demos>
<methods>
<method name="get_aabb" qualifiers="const">
<return type="AABB">
</return>
<description>
- Return the visibility AABB.
+ Returns the visibility AABB.
</description>
</method>
<method name="get_instance_color" qualifiers="const">
@@ -36,6 +35,7 @@
<argument index="0" name="instance" type="int">
</argument>
<description>
+ Returns the custom data that has been set for a specific instance.
</description>
</method>
<method name="get_instance_transform" qualifiers="const">
@@ -44,7 +44,27 @@
<argument index="0" name="instance" type="int">
</argument>
<description>
- Return the transform of a specific instance.
+ Returns the [Transform] of a specific instance.
+ </description>
+ </method>
+ <method name="get_instance_transform_2d" qualifiers="const">
+ <return type="Transform2D">
+ </return>
+ <argument index="0" name="instance" type="int">
+ </argument>
+ <description>
+ Returns the [Transform2D] of a specific instance.
+ </description>
+ </method>
+ <method name="set_as_bulk_array">
+ <return type="void">
+ </return>
+ <argument index="0" name="array" type="PoolRealArray">
+ </argument>
+ <description>
+ Set all data related to the instances in one go. This is especially useful when loading the data from disk or preparing the data from GDNative.
+ All data is packed in one large float array. An array may look like this: Transform for instance 1, color data for instance 1, custom data for instance 1, transform for instance 2, color data for instance 2, etc...
+ [Transform] is stored as 12 floats, [Transform2D] is stored as 8 floats, COLOR_8BIT / CUSTOM_DATA_8BIT is stored as 1 float (4 bytes as is) and COLOR_FLOAT / CUSTOM_DATA_FLOAT is stored as 4 floats.
</description>
</method>
<method name="set_instance_color">
@@ -56,6 +76,7 @@
</argument>
<description>
Set the color of a specific instance.
+ For the color to take effect, ensure that [member color_format] is non-[code]null[/code] on the [MultiMesh] and [member SpatialMaterial.vertex_color_use_as_albedo] is [code]true[/code] on the material.
</description>
</method>
<method name="set_instance_custom_data">
@@ -66,6 +87,7 @@
<argument index="1" name="custom_data" type="Color">
</argument>
<description>
+ Set custom data for a specific instance. Although [Color] is used, it is just a container for 4 numbers.
</description>
</method>
<method name="set_instance_transform">
@@ -76,38 +98,65 @@
<argument index="1" name="transform" type="Transform">
</argument>
<description>
- Set the transform for a specific instance.
+ Set the [Transform] for a specific instance.
+ </description>
+ </method>
+ <method name="set_instance_transform_2d">
+ <return type="void">
+ </return>
+ <argument index="0" name="instance" type="int">
+ </argument>
+ <argument index="1" name="transform" type="Transform2D">
+ </argument>
+ <description>
+ Set the [Transform2D] for a specific instance.
</description>
</method>
</methods>
<members>
<member name="color_format" type="int" setter="set_color_format" getter="get_color_format" enum="MultiMesh.ColorFormat">
+ Format of colors in color array that gets passed to shader.
</member>
<member name="custom_data_format" type="int" setter="set_custom_data_format" getter="get_custom_data_format" enum="MultiMesh.CustomDataFormat">
+ Format of custom data in custom data array that gets passed to shader.
</member>
<member name="instance_count" type="int" setter="set_instance_count" getter="get_instance_count">
+ Number of instances that will get drawn. This clears and (re)sizes the buffers. By default all instances are drawn but you can limit this with [member visible_instance_count].
</member>
<member name="mesh" type="Mesh" setter="set_mesh" getter="get_mesh">
+ Mesh to be drawn.
</member>
<member name="transform_format" type="int" setter="set_transform_format" getter="get_transform_format" enum="MultiMesh.TransformFormat">
+ Format of transform used to transform mesh, either 2D or 3D.
+ </member>
+ <member name="visible_instance_count" type="int" setter="set_visible_instance_count" getter="get_visible_instance_count">
+ Limits the number of instances drawn, -1 draws all instances. Changing this does not change the sizes of the buffers.
</member>
</members>
<constants>
<constant name="TRANSFORM_2D" value="0" enum="TransformFormat">
+ Use this when using 2D transforms.
</constant>
<constant name="TRANSFORM_3D" value="1" enum="TransformFormat">
+ Use this when using 3D transforms.
</constant>
<constant name="COLOR_NONE" value="0" enum="ColorFormat">
+ Use when you are not using per-instance [Color]s.
</constant>
<constant name="COLOR_8BIT" value="1" enum="ColorFormat">
+ Compress [Color] data into 8 bits when passing to shader. This uses less memory and can be faster, but the [Color] loses precision.
</constant>
<constant name="COLOR_FLOAT" value="2" enum="ColorFormat">
+ The [Color] passed into [method set_instance_color] will use 4 floats. Use this for highest precision [Color].
</constant>
<constant name="CUSTOM_DATA_NONE" value="0" enum="CustomDataFormat">
+ Use when you are not using per-instance custom data.
</constant>
<constant name="CUSTOM_DATA_8BIT" value="1" enum="CustomDataFormat">
+ Compress custom_data into 8 bits when passing to shader. This uses less memory and can be faster, but loses precision.
</constant>
<constant name="CUSTOM_DATA_FLOAT" value="2" enum="CustomDataFormat">
+ The [Color] passed into [method set_instance_custom_data] will use 4 floats. Use this for highest precision.
</constant>
</constants>
</class>
diff --git a/doc/classes/MultiMeshInstance.xml b/doc/classes/MultiMeshInstance.xml
index 5e021dfe9b..70834d6085 100644
--- a/doc/classes/MultiMeshInstance.xml
+++ b/doc/classes/MultiMeshInstance.xml
@@ -1,21 +1,21 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="MultiMeshInstance" inherits="GeometryInstance" category="Core" version="3.1">
+<class name="MultiMeshInstance" inherits="GeometryInstance" category="Core" version="3.2">
<brief_description>
Node that instances a [MultiMesh].
</brief_description>
<description>
- [code]MultiMeshInstance[/code] is a specialized node to instance [GeometryInstance]s based on a [MultiMesh] resource.
+ [MultiMeshInstance] is a specialized node to instance [GeometryInstance]s based on a [MultiMesh] resource.
This is useful to optimize the rendering of a high amount of instances of a given mesh (for example tree in a forest or grass strands).
</description>
<tutorials>
+ <link>http://docs.godotengine.org/en/latest/tutorials/3d/vertex_animation/animating_thousands_of_fish.html</link>
+ <link>http://docs.godotengine.org/en/latest/tutorials/3d/using_multi_mesh_instance.html</link>
</tutorials>
- <demos>
- </demos>
<methods>
</methods>
<members>
<member name="multimesh" type="MultiMesh" setter="set_multimesh" getter="get_multimesh">
- The [MultiMesh] resource that will be used and shared among all instances of the [code]MultiMeshInstance[/code].
+ The [MultiMesh] resource that will be used and shared among all instances of the [MultiMeshInstance].
</member>
</members>
<constants>
diff --git a/doc/classes/MultiMeshInstance2D.xml b/doc/classes/MultiMeshInstance2D.xml
new file mode 100644
index 0000000000..8509986c3c
--- /dev/null
+++ b/doc/classes/MultiMeshInstance2D.xml
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<class name="MultiMeshInstance2D" inherits="Node2D" category="Core" version="3.2">
+ <brief_description>
+ Node that instances a [MultiMesh] in 2D.
+ </brief_description>
+ <description>
+ [MultiMeshInstance2D] is a specialized node to instance a [MultiMesh] resource in 2D.
+ Usage is the same as [MultiMeshInstance].
+ </description>
+ <tutorials>
+ </tutorials>
+ <methods>
+ </methods>
+ <members>
+ <member name="multimesh" type="MultiMesh" setter="set_multimesh" getter="get_multimesh">
+ The [MultiMesh] that will be drawn by the [MultiMeshInstance2D].
+ </member>
+ <member name="normal_map" type="Texture" setter="set_normal_map" getter="get_normal_map">
+ The normal map that will be used if using the default [CanvasItemMaterial].
+ </member>
+ <member name="texture" type="Texture" setter="set_texture" getter="get_texture">
+ The [Texture] that will be used if using the default [CanvasItemMaterial]. Can be accessed as [code]TEXTURE[/code] in CanvasItem shader.
+ </member>
+ </members>
+ <signals>
+ <signal name="texture_changed">
+ <description>
+ </description>
+ </signal>
+ </signals>
+ <constants>
+ </constants>
+</class>
diff --git a/doc/classes/MultiplayerAPI.xml b/doc/classes/MultiplayerAPI.xml
index d8d7d9acfc..7b5794bbfc 100644
--- a/doc/classes/MultiplayerAPI.xml
+++ b/doc/classes/MultiplayerAPI.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="MultiplayerAPI" inherits="Reference" category="Core" version="3.1">
+<class name="MultiplayerAPI" inherits="Reference" category="Core" version="3.2">
<brief_description>
High Level Multiplayer API.
</brief_description>
@@ -10,8 +10,6 @@
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
<method name="clear">
<return type="void">
@@ -89,11 +87,15 @@
</method>
</methods>
<members>
+ <member name="allow_object_decoding" type="bool" setter="set_allow_object_decoding" getter="is_object_decoding_allowed">
+ If [code]true[/code] (or if the [member network_peer] [member PacketPeer.allow_object_decoding] the MultiplayerAPI will allow encoding and decoding of object during RPCs/RSETs.
+ [b]WARNING:[/b] Deserialized object can contain code which gets executed. Do not use this option if the serialized object comes from untrusted sources to avoid potential security threats (remote code execution).
+ </member>
<member name="network_peer" type="NetworkedMultiplayerPeer" setter="set_network_peer" getter="get_network_peer">
The peer object to handle the RPC system (effectively enabling networking when set). Depending on the peer itself, the MultiplayerAPI will become a network server (check with [method is_network_server]) and will set root node's network mode to master (see NETWORK_MODE_* constants in [Node]), or it will become a regular peer with root node set to puppet. All child nodes are set to inherit the network mode by default. Handling of networking-related events (connection, disconnection, new clients) is done by connecting to MultiplayerAPI's signals.
</member>
<member name="refuse_new_network_connections" type="bool" setter="set_refuse_new_network_connections" getter="is_refusing_new_network_connections">
- If [code]true[/code] the MultiplayerAPI's [member network_peer] refuses new incoming connections.
+ If [code]true[/code], the MultiplayerAPI's [member network_peer] refuses new incoming connections.
</member>
</members>
<signals>
diff --git a/doc/classes/Mutex.xml b/doc/classes/Mutex.xml
index 8f2751af98..73c0a53f59 100644
--- a/doc/classes/Mutex.xml
+++ b/doc/classes/Mutex.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="Mutex" inherits="Reference" category="Core" version="3.1">
+<class name="Mutex" inherits="Reference" category="Core" version="3.2">
<brief_description>
A synchronization Mutex.
</brief_description>
@@ -8,28 +8,26 @@
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
<method name="lock">
<return type="void">
</return>
<description>
- Lock this [code]Mutex[/code], blocks until it is unlocked by the current owner.
+ Lock this [Mutex], blocks until it is unlocked by the current owner.
</description>
</method>
<method name="try_lock">
<return type="int" enum="Error">
</return>
<description>
- Try locking this [code]Mutex[/code], does not block. Returns [OK] on success, [ERR_BUSY] otherwise.
+ Try locking this [Mutex], does not block. Returns [code]OK[/code] on success, [code]ERR_BUSY[/code] otherwise.
</description>
</method>
<method name="unlock">
<return type="void">
</return>
<description>
- Unlock this [code]Mutex[/code], leaving it to other threads.
+ Unlock this [Mutex], leaving it to other threads.
</description>
</method>
</methods>
diff --git a/doc/classes/Navigation.xml b/doc/classes/Navigation.xml
index 08f22d49d3..f0ae3fef99 100644
--- a/doc/classes/Navigation.xml
+++ b/doc/classes/Navigation.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="Navigation" inherits="Spatial" category="Core" version="3.1">
+<class name="Navigation" inherits="Spatial" category="Core" version="3.2">
<brief_description>
Mesh-based navigation and pathfinding node.
</brief_description>
@@ -8,8 +8,6 @@
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
<method name="get_closest_point">
<return type="Vector3">
@@ -35,7 +33,7 @@
<argument index="0" name="to_point" type="Vector3">
</argument>
<description>
- Returns the owner of the [NavigationMesh] which contains the navigation point closest to the point given. This is usually a [NavigtionMeshInstance]. For meshes added via [method navmesh_add], returns the owner that was given (or [code]null[/code] if the [code]owner[/code] parameter was omitted).
+ Returns the owner of the [NavigationMesh] which contains the navigation point closest to the point given. This is usually a [NavigationMeshInstance]. For meshes added via [method navmesh_add], returns the owner that was given (or [code]null[/code] if the [code]owner[/code] parameter was omitted).
</description>
</method>
<method name="get_closest_point_to_segment">
@@ -61,7 +59,7 @@
<argument index="2" name="optimize" type="bool" default="true">
</argument>
<description>
- Returns the path between two given points. Points are in local coordinate space. If [code]optimize[/code] is [code]true[/code] (the default), the agent properties associated with each [NavigationMesh] (raidus, height, etc.) are considered in the path calculation, otherwise they are ignored.
+ Returns the path between two given points. Points are in local coordinate space. If [code]optimize[/code] is [code]true[/code] (the default), the agent properties associated with each [NavigationMesh] (radius, height, etc.) are considered in the path calculation, otherwise they are ignored.
</description>
</method>
<method name="navmesh_add">
diff --git a/doc/classes/Navigation2D.xml b/doc/classes/Navigation2D.xml
index 364da55f99..67b5d72182 100644
--- a/doc/classes/Navigation2D.xml
+++ b/doc/classes/Navigation2D.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="Navigation2D" inherits="Node2D" category="Core" version="3.1">
+<class name="Navigation2D" inherits="Node2D" category="Core" version="3.2">
<brief_description>
2D navigation and pathfinding node.
</brief_description>
@@ -8,8 +8,6 @@
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
<method name="get_closest_point">
<return type="Vector2">
@@ -26,7 +24,7 @@
<argument index="0" name="to_point" type="Vector2">
</argument>
<description>
- Returns the owner of the [NavigationPolygon] which contains the navigation point closest to the point given. This is usually a [NavigtionPolygonInstance]. For polygons added via [method navpoly_add], returns the owner that was given (or [code]null[/code] if the [code]owner[/code] parameter was omitted).
+ Returns the owner of the [NavigationPolygon] which contains the navigation point closest to the point given. This is usually a [NavigationPolygonInstance]. For polygons added via [method navpoly_add], returns the owner that was given (or [code]null[/code] if the [code]owner[/code] parameter was omitted).
</description>
</method>
<method name="get_simple_path">
diff --git a/doc/classes/NavigationMesh.xml b/doc/classes/NavigationMesh.xml
index f0654e5b12..79ad7f63ae 100644
--- a/doc/classes/NavigationMesh.xml
+++ b/doc/classes/NavigationMesh.xml
@@ -1,13 +1,11 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="NavigationMesh" inherits="Resource" category="Core" version="3.1">
+<class name="NavigationMesh" inherits="Resource" category="Core" version="3.2">
<brief_description>
</brief_description>
<description>
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
<method name="add_polygon">
<return type="void">
@@ -31,6 +29,14 @@
<description>
</description>
</method>
+ <method name="get_collision_mask_bit" qualifiers="const">
+ <return type="bool">
+ </return>
+ <argument index="0" name="bit" type="int">
+ </argument>
+ <description>
+ </description>
+ </method>
<method name="get_polygon">
<return type="PoolIntArray">
</return>
@@ -51,6 +57,16 @@
<description>
</description>
</method>
+ <method name="set_collision_mask_bit">
+ <return type="void">
+ </return>
+ <argument index="0" name="bit" type="int">
+ </argument>
+ <argument index="1" name="value" type="bool">
+ </argument>
+ <description>
+ </description>
+ </method>
<method name="set_vertices">
<return type="void">
</return>
@@ -87,6 +103,10 @@
</member>
<member name="filter/low_hanging_obstacles" type="bool" setter="set_filter_low_hanging_obstacles" getter="get_filter_low_hanging_obstacles">
</member>
+ <member name="geometry/collision_mask" type="int" setter="set_collision_mask" getter="get_collision_mask">
+ </member>
+ <member name="geometry/parsed_geometry_type" type="int" setter="set_parsed_geometry_type" getter="get_parsed_geometry_type">
+ </member>
<member name="polygon/verts_per_poly" type="float" setter="set_verts_per_poly" getter="get_verts_per_poly">
</member>
<member name="region/merge_size" type="float" setter="set_region_merge_size" getter="get_region_merge_size">
@@ -103,5 +123,11 @@
</constant>
<constant name="SAMPLE_PARTITION_LAYERS" value="2">
</constant>
+ <constant name="PARSED_GEOMETRY_MESH_INSTANCES" value="0">
+ </constant>
+ <constant name="PARSED_GEOMETRY_STATIC_COLLIDERS" value="1">
+ </constant>
+ <constant name="PARSED_GEOMETRY_BOTH" value="2">
+ </constant>
</constants>
</class>
diff --git a/doc/classes/NavigationMeshInstance.xml b/doc/classes/NavigationMeshInstance.xml
index 643bfc726f..3b11005e38 100644
--- a/doc/classes/NavigationMeshInstance.xml
+++ b/doc/classes/NavigationMeshInstance.xml
@@ -1,13 +1,11 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="NavigationMeshInstance" inherits="Spatial" category="Core" version="3.1">
+<class name="NavigationMeshInstance" inherits="Spatial" category="Core" version="3.2">
<brief_description>
</brief_description>
<description>
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
</methods>
<members>
diff --git a/doc/classes/NavigationPolygon.xml b/doc/classes/NavigationPolygon.xml
index 4ede80b98c..2630ae1377 100644
--- a/doc/classes/NavigationPolygon.xml
+++ b/doc/classes/NavigationPolygon.xml
@@ -1,32 +1,30 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="NavigationPolygon" inherits="Resource" category="Core" version="3.1">
+<class name="NavigationPolygon" inherits="Resource" category="Core" version="3.2">
<brief_description>
A node that has methods to draw outlines or use indices of vertices to create navigation polygons.
</brief_description>
<description>
There are two ways to create polygons. Either by using the [method add_outline] method or using the [method add_polygon] method.
Using [method add_outline]:
- [code]
+ [codeblock]
var polygon = NavigationPolygon.new()
var outline = PoolVector2Array([Vector2(0, 0), Vector2(0, 50), Vector2(50, 50), Vector2(50, 0)])
polygon.add_outline(outline)
polygon.make_polygons_from_outlines()
$NavigationPolygonInstance.navpoly = polygon
- [/code]
+ [/codeblock]
Using [method add_polygon] and indices of the vertices array.
- [code]
+ [codeblock]
var polygon = NavigationPolygon.new()
var vertices = PoolVector2Array([Vector2(0, 0), Vector2(0, 50), Vector2(50, 50), Vector2(50, 0)])
polygon.set_vertices(vertices)
var indices = PoolIntArray(0, 3, 1)
polygon.add_polygon(indices)
$NavigationPolygonInstance.navpoly = polygon
- [/code]
+ [/codeblock]
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
<method name="add_outline">
<return type="void">
diff --git a/doc/classes/NavigationPolygonInstance.xml b/doc/classes/NavigationPolygonInstance.xml
index ff95f652f1..e566e25336 100644
--- a/doc/classes/NavigationPolygonInstance.xml
+++ b/doc/classes/NavigationPolygonInstance.xml
@@ -1,13 +1,11 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="NavigationPolygonInstance" inherits="Node2D" category="Core" version="3.1">
+<class name="NavigationPolygonInstance" inherits="Node2D" category="Core" version="3.2">
<brief_description>
</brief_description>
<description>
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
</methods>
<members>
diff --git a/doc/classes/NetworkedMultiplayerPeer.xml b/doc/classes/NetworkedMultiplayerPeer.xml
index 990f928b25..e5cadb6ffe 100644
--- a/doc/classes/NetworkedMultiplayerPeer.xml
+++ b/doc/classes/NetworkedMultiplayerPeer.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="NetworkedMultiplayerPeer" inherits="PacketPeer" category="Core" version="3.1">
+<class name="NetworkedMultiplayerPeer" inherits="PacketPeer" category="Core" version="3.2">
<brief_description>
A high-level network interface to simplify multiplayer interactions.
</brief_description>
@@ -9,8 +9,6 @@
<tutorials>
<link>https://docs.godotengine.org/en/latest/tutorials/networking/high_level_multiplayer.html</link>
</tutorials>
- <demos>
- </demos>
<methods>
<method name="get_connection_status" qualifiers="const">
<return type="int" enum="NetworkedMultiplayerPeer.ConnectionStatus">
@@ -23,14 +21,14 @@
<return type="int">
</return>
<description>
- Returns the ID of the [code]NetworkedMultiplayerPeer[/code] who sent the most recent packet.
+ Returns the ID of the [NetworkedMultiplayerPeer] who sent the most recent packet.
</description>
</method>
<method name="get_unique_id" qualifiers="const">
<return type="int">
</return>
<description>
- Returns the ID of this [code]NetworkedMultiplayerPeer[/code].
+ Returns the ID of this [NetworkedMultiplayerPeer].
</description>
</method>
<method name="poll">
@@ -53,7 +51,7 @@
</methods>
<members>
<member name="refuse_new_connections" type="bool" setter="set_refuse_new_connections" getter="is_refusing_new_connections">
- If [code]true[/code] this [code]NetworkedMultiplayerPeer[/code] refuses new connections. Default value: [code]false[/code].
+ If [code]true[/code], this [NetworkedMultiplayerPeer] refuses new connections. Default value: [code]false[/code].
</member>
<member name="transfer_mode" type="int" setter="set_transfer_mode" getter="get_transfer_mode" enum="NetworkedMultiplayerPeer.TransferMode">
The manner in which to send packets to the [code]target_peer[/code]. See [enum TransferMode].
diff --git a/doc/classes/Nil.xml b/doc/classes/Nil.xml
index e09dba6511..a5c1ade6ed 100644
--- a/doc/classes/Nil.xml
+++ b/doc/classes/Nil.xml
@@ -1,13 +1,11 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="Nil" category="Built-In Types" version="3.1">
+<class name="Nil" category="Built-In Types" version="3.2">
<brief_description>
</brief_description>
<description>
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
<method name="Nil">
<argument index="0" name="from" type="PoolColorArray">
diff --git a/doc/classes/NinePatchRect.xml b/doc/classes/NinePatchRect.xml
index f40b32951f..3095da14be 100644
--- a/doc/classes/NinePatchRect.xml
+++ b/doc/classes/NinePatchRect.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="NinePatchRect" inherits="Control" category="Core" version="3.1">
+<class name="NinePatchRect" inherits="Control" category="Core" version="3.2">
<brief_description>
Scalable texture-based frame that tiles the texture's centers and sides, but keeps the corners' original size. Perfect for panels and dialog boxes.
</brief_description>
@@ -8,8 +8,6 @@
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
</methods>
<members>
diff --git a/doc/classes/Node.xml b/doc/classes/Node.xml
index dcdb6d0500..1fb2e7350f 100644
--- a/doc/classes/Node.xml
+++ b/doc/classes/Node.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="Node" inherits="Object" category="Core" version="3.1">
+<class name="Node" inherits="Object" category="Core" version="3.2">
<brief_description>
Base class for all [i]scene[/i] objects.
</brief_description>
@@ -11,7 +11,7 @@
This means that when adding a node to the scene tree, the following order will be used for the callbacks: [method _enter_tree] of the parent, [method _enter_tree] of the children, [method _ready] of the children and finally [method _ready] of the parent (recursively for the entire scene tree).
[b]Processing:[/b] Nodes can override the "process" state, so that they receive a callback on each frame requesting them to process (do something). Normal processing (callback [method _process], toggled with [method set_process]) happens as fast as possible and is dependent on the frame rate, so the processing time [i]delta[/i] is passed as an argument. Physics processing (callback [method _physics_process], toggled with [method set_physics_process]) happens a fixed number of times per second (60 by default) and is useful for code related to the physics engine.
Nodes can also process input events. When present, the [method _input] function will be called for each input that the program receives. In many cases, this can be overkill (unless used for simple projects), and the [method _unhandled_input] function might be preferred; it is called when the input event was not handled by anyone else (typically, GUI [Control] nodes), ensuring that the node only receives the events that were meant for it.
- To keep track of the scene hierarchy (especially when instancing scenes into other scenes), an "owner" can be set for the node with [method set_owner]. This keeps track of who instanced what. This is mostly useful when writing editors and tools, though.
+ To keep track of the scene hierarchy (especially when instancing scenes into other scenes), an "owner" can be set for the node with the [member owner] property. This keeps track of who instanced what. This is mostly useful when writing editors and tools, though.
Finally, when a node is freed with [method Object.free] or [method queue_free], it will also free all its children.
[b]Groups:[/b] Nodes can be added to as many groups as you want to be easy to manage, you could create groups like "enemies" or "collectables" for example, depending on your game. See [method add_to_group], [method is_in_group] and [method remove_from_group]. You can then retrieve all nodes in these groups, iterate them and even call methods on groups via the methods on [SceneTree].
[b]Networking with nodes:[/b] After connecting to a server (or making one, see [NetworkedMultiplayerENet]) it is possible to use the built-in RPC (remote procedure call) system to communicate over the network. By calling [method rpc] with a method name, it will be called locally and in all connected peers (peers = clients and the server that accepts connections). To identify which node receives the RPC call Godot will use its [NodePath] (make sure node names are the same on all peers). Also take a look at the high-level networking tutorial and corresponding demos.
@@ -19,8 +19,6 @@
<tutorials>
<link>https://docs.godotengine.org/en/latest/getting_started/step_by_step/scenes_and_nodes.html</link>
</tutorials>
- <demos>
- </demos>
<methods>
<method name="_enter_tree" qualifiers="virtual">
<return type="void">
@@ -42,6 +40,8 @@
<return type="String">
</return>
<description>
+ The string returned from this method is displayed as a warning in the "Scene Dock" if the script that overrides it is a [code]tool[/code] script.
+ Returning an empty string produces no warning.
</description>
</method>
<method name="_input" qualifiers="virtual">
@@ -146,13 +146,14 @@
</argument>
<description>
Adds the node to a group. Groups are helpers to name and organize a subset of nodes, for example "enemies" or "collectables". A node can be in any number of groups. Nodes can be assigned a group at any time, but will not be added until they are inside the scene tree (see [method is_inside_tree]). See notes in the description, and the group methods in [SceneTree].
+ [code]persistent[/code] option is used when packing node to [PackedScene] and saving to file. Non-persistent groups aren't stored.
</description>
</method>
<method name="can_process" qualifiers="const">
<return type="bool">
</return>
<description>
- Returns [code]true[/code] if the node can process while the scene tree is paused (see [method set_pause_mode]). Always returns [code]true[/code] if the scene tree is not paused, and [code]false[/code] if the node is not in the tree. FIXME: Why FAIL_COND?
+ Returns [code]true[/code] if the node can process while the scene tree is paused (see [member pause_mode]). Always returns [code]true[/code] if the scene tree is not paused, and [code]false[/code] if the node is not in the tree.
</description>
</method>
<method name="duplicate" qualifiers="const">
@@ -162,7 +163,7 @@
</argument>
<description>
Duplicates the node, returning a new node.
- You can fine-tune the behavior using the [code]flags[/code]. See DUPLICATE_* constants.
+ You can fine-tune the behavior using the [code]flags[/code] (see [enum Node.DuplicateFlags]).
</description>
</method>
<method name="find_node" qualifiers="const">
@@ -269,11 +270,20 @@
<description>
</description>
</method>
+ <method name="get_node_or_null" qualifiers="const">
+ <return type="Node">
+ </return>
+ <argument index="0" name="path" type="NodePath">
+ </argument>
+ <description>
+ Similar to [method get_node], but does not raise an error when [code]path[/code] does not point to a valid [Node].
+ </description>
+ </method>
<method name="get_parent" qualifiers="const">
<return type="Node">
</return>
<description>
- Returns the parent node of the current node, or an empty [code]Node[/code] if the node lacks a parent.
+ Returns the parent node of the current node, or an empty [Node] if the node lacks a parent.
</description>
</method>
<method name="get_path" qualifiers="const">
@@ -876,15 +886,37 @@
<constant name="NOTIFICATION_PATH_CHANGED" value="23">
Notification received when the node's [NodePath] changed.
</constant>
- <constant name="NOTIFICATION_TRANSLATION_CHANGED" value="24">
- Notification received when translations may have changed. Can be triggered by the user changing the locale. Can be used to respond to language changes, for example to change the UI strings on the fly. Useful when working with the built-in translation support, like [method Object.tr].
- </constant>
<constant name="NOTIFICATION_INTERNAL_PROCESS" value="25">
Notification received every frame when the internal process flag is set (see [method set_process_internal]).
</constant>
<constant name="NOTIFICATION_INTERNAL_PHYSICS_PROCESS" value="26">
Notification received every frame when the internal physics process flag is set (see [method set_physics_process_internal]).
</constant>
+ <constant name="NOTIFICATION_WM_MOUSE_ENTER" value="1002">
+ </constant>
+ <constant name="NOTIFICATION_WM_MOUSE_EXIT" value="1003">
+ </constant>
+ <constant name="NOTIFICATION_WM_FOCUS_IN" value="1004">
+ </constant>
+ <constant name="NOTIFICATION_WM_FOCUS_OUT" value="1005">
+ </constant>
+ <constant name="NOTIFICATION_WM_QUIT_REQUEST" value="1006">
+ </constant>
+ <constant name="NOTIFICATION_WM_GO_BACK_REQUEST" value="1007">
+ </constant>
+ <constant name="NOTIFICATION_WM_UNFOCUS_REQUEST" value="1008">
+ </constant>
+ <constant name="NOTIFICATION_OS_MEMORY_WARNING" value="1009">
+ </constant>
+ <constant name="NOTIFICATION_TRANSLATION_CHANGED" value="1010">
+ Notification received when translations may have changed. Can be triggered by the user changing the locale. Can be used to respond to language changes, for example to change the UI strings on the fly. Useful when working with the built-in translation support, like [method Object.tr].
+ </constant>
+ <constant name="NOTIFICATION_WM_ABOUT" value="1011">
+ </constant>
+ <constant name="NOTIFICATION_CRASH" value="1012">
+ </constant>
+ <constant name="NOTIFICATION_OS_IME_UPDATE" value="1013">
+ </constant>
<constant name="PAUSE_MODE_INHERIT" value="0" enum="PauseMode">
Inherits pause mode from the node's parent. For the root node, it is equivalent to PAUSE_MODE_STOP. Default.
</constant>
diff --git a/doc/classes/Node2D.xml b/doc/classes/Node2D.xml
index e955f6bb7d..1b97f3267f 100644
--- a/doc/classes/Node2D.xml
+++ b/doc/classes/Node2D.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="Node2D" inherits="CanvasItem" category="Core" version="3.1">
+<class name="Node2D" inherits="CanvasItem" category="Core" version="3.2">
<brief_description>
A 2D game object, parent of all 2D related nodes. Has a position, rotation, scale and Z-index.
</brief_description>
@@ -9,8 +9,6 @@
<tutorials>
<link>https://docs.godotengine.org/en/latest/tutorials/2d/custom_drawing_in_2d.html</link>
</tutorials>
- <demos>
- </demos>
<methods>
<method name="apply_scale">
<return type="void">
@@ -65,7 +63,7 @@
<argument index="1" name="scaled" type="bool" default="false">
</argument>
<description>
- Applies a local translation on the node's X axis based on the [method Node._process]'s [code]delta[/code]. If [code]scaled[/code] is false, normalizes the movement.
+ Applies a local translation on the node's X axis based on the [method Node._process]'s [code]delta[/code]. If [code]scaled[/code] is [code]false[/code], normalizes the movement.
</description>
</method>
<method name="move_local_y">
@@ -76,7 +74,7 @@
<argument index="1" name="scaled" type="bool" default="false">
</argument>
<description>
- Applies a local translation on the node's Y axis based on the [method Node._process]'s [code]delta[/code]. If [code]scaled[/code] is false, normalizes the movement.
+ Applies a local translation on the node's Y axis based on the [method Node._process]'s [code]delta[/code]. If [code]scaled[/code] is [code]false[/code], normalizes the movement.
</description>
</method>
<method name="rotate">
@@ -148,7 +146,7 @@
Local [Transform2D].
</member>
<member name="z_as_relative" type="bool" setter="set_z_as_relative" getter="is_z_relative">
- If [code]true[/code] the node's Z-index is relative to its parent's Z-index. If this node's Z-index is 2 and its parent's effective Z-index is 3, then this node's effective Z-index will be 2 + 3 = 5.
+ If [code]true[/code], the node's Z-index is relative to its parent's Z-index. If this node's Z-index is 2 and its parent's effective Z-index is 3, then this node's effective Z-index will be 2 + 3 = 5.
</member>
<member name="z_index" type="int" setter="set_z_index" getter="get_z_index">
Z-index. Controls the order in which the nodes render. A node with a higher Z-index will display in front of others.
diff --git a/doc/classes/NodePath.xml b/doc/classes/NodePath.xml
index f589fa12b7..554858d895 100644
--- a/doc/classes/NodePath.xml
+++ b/doc/classes/NodePath.xml
@@ -1,17 +1,15 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="NodePath" category="Built-In Types" version="3.1">
+<class name="NodePath" category="Built-In Types" version="3.2">
<brief_description>
Pre-parsed scene tree path.
</brief_description>
<description>
A pre-parsed relative or absolute path in a scene tree, for use with [method Node.get_node] and similar functions. It can reference a node, a resource within a node, or a property of a node or resource. For instance, [code]"Path2D/PathFollow2D/Sprite:texture:size"[/code] would refer to the size property of the texture resource on the node named "Sprite" which is a child of the other named nodes in the path. Note that if you want to get a resource, you must end the path with a colon, otherwise the last element will be used as a property name.
- You will usually just pass a string to [method Node.get_node] and it will be automatically converted, but you may occasionally want to parse a path ahead of time with [code]NodePath[/code] or the literal syntax [code]@"path"[/code]. Exporting a [code]NodePath[/code] variable will give you a node selection widget in the properties panel of the editor, which can often be useful.
- A [code]NodePath[/code] is made up of a list of node names, a list of "subnode" (resource) names, and the name of a property in the final node or resource.
+ You will usually just pass a string to [method Node.get_node] and it will be automatically converted, but you may occasionally want to parse a path ahead of time with [NodePath] or the literal syntax [code]@"path"[/code]. Exporting a [NodePath] variable will give you a node selection widget in the properties panel of the editor, which can often be useful.
+ A [NodePath] is made up of a list of node names, a list of "subnode" (resource) names, and the name of a property in the final node or resource.
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
<method name="NodePath">
<return type="NodePath">
@@ -70,14 +68,14 @@
<return type="bool">
</return>
<description>
- Return true if the node path is absolute (not relative).
+ Returns [code]true[/code] if the node path is absolute (not relative).
</description>
</method>
<method name="is_empty">
<return type="bool">
</return>
<description>
- Return true if the node path is empty.
+ Returns [code]true[/code] if the node path is empty.
</description>
</method>
</methods>
diff --git a/doc/classes/OS.xml b/doc/classes/OS.xml
index e218949757..7b50021284 100644
--- a/doc/classes/OS.xml
+++ b/doc/classes/OS.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="OS" inherits="Object" category="Core" version="3.1">
+<class name="OS" inherits="Object" category="Core" version="3.2">
<brief_description>
Operating System functions.
</brief_description>
@@ -8,8 +8,6 @@
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
<method name="alert">
<return type="void">
@@ -99,6 +97,8 @@
</argument>
<argument index="3" name="output" type="Array" default="[ ]">
</argument>
+ <argument index="4" name="read_stderr" type="bool" default="false">
+ </argument>
<description>
Execute the file at the given path with the arguments passed as an array of strings. Platform path resolution will take place. The resolved file must exist and be executable.
The arguments are used in the given order and separated by a space, so [code]OS.execute('ping', ['-w', '3', 'godotengine.org'], false)[/code] will resolve to [code]ping -w 3 godotengine.org[/code] in the system's shell.
@@ -159,6 +159,13 @@
<description>
</description>
</method>
+ <method name="get_current_video_driver" qualifiers="const">
+ <return type="int" enum="OS.VideoDriver">
+ </return>
+ <description>
+ Returns the currently used video driver, using one of the values from [enum OS.VideoDriver].
+ </description>
+ </method>
<method name="get_date" qualifiers="const">
<return type="Dictionary">
</return>
@@ -210,6 +217,22 @@
Returns the path to the current engine executable.
</description>
</method>
+ <method name="get_ime_selection" qualifiers="const">
+ <return type="Vector2">
+ </return>
+ <description>
+ Returns IME cursor position (currently edited portion of the string) relative to the characters in the composition string.
+ [code]NOTIFICATION_OS_IME_UPDATE[/code] is sent to the application to notify it of changes to the IME cursor position.
+ </description>
+ </method>
+ <method name="get_ime_text" qualifiers="const">
+ <return type="String">
+ </return>
+ <description>
+ Returns IME intermediate composition string.
+ [code]NOTIFICATION_OS_IME_UPDATE[/code] is sent to the application to notify it of changes to the IME composition string.
+ </description>
+ </method>
<method name="get_latin_keyboard_variant" qualifiers="const">
<return type="String">
</return>
@@ -357,7 +380,14 @@
<argument index="0" name="dir" type="int" enum="OS.SystemDir">
</argument>
<description>
- Returns the actual path to commonly used folders across different platforms. Available locations are specified in [OS.SystemDir].
+ Returns the actual path to commonly used folders across different platforms. Available locations are specified in [enum OS.SystemDir].
+ </description>
+ </method>
+ <method name="get_system_time_msecs" qualifiers="const">
+ <return type="int">
+ </return>
+ <description>
+ Returns the epoch time of the operating system in milliseconds.
</description>
</method>
<method name="get_system_time_secs" qualifiers="const">
@@ -438,14 +468,16 @@
<return type="int">
</return>
<description>
+ Returns the number of video drivers supported on the current platform.
</description>
</method>
<method name="get_video_driver_name" qualifiers="const">
<return type="String">
</return>
- <argument index="0" name="driver" type="int">
+ <argument index="0" name="driver" type="int" enum="OS.VideoDriver">
</argument>
<description>
+ Returns the name of the video driver matching the given [code]driver[/code] index. This index is a value from [enum OS.VideoDriver], and you can use [method get_current_video_driver] to get the current backend's index.
</description>
</method>
<method name="get_virtual_keyboard_height">
@@ -476,7 +508,8 @@
<argument index="0" name="tag_name" type="String">
</argument>
<description>
- Returns [code]true[/code] if the feature for the given feature tag is supported in the currently running instance, depending on platform, build etc. Can be used to check whether you're currently running a debug build, on a certain platform or arch, etc. See feature tags documentation.
+ Returns [code]true[/code] if the feature for the given feature tag is supported in the currently running instance, depending on platform, build etc. Can be used to check whether you're currently running a debug build, on a certain platform or arch, etc. Refer to the [url=https://docs.godotengine.org/en/latest/getting_started/workflow/export/feature_tags.html]Feature Tags[/url] documentation for more details.
+ Note that tag names are case-sensitive.
</description>
</method>
<method name="has_touchscreen_ui_hint" qualifiers="const">
@@ -654,13 +687,35 @@
Request the user attention to the window. It'll flash the taskbar button on Windows or bounce the dock icon on OSX.
</description>
</method>
+ <method name="request_permission">
+ <return type="bool">
+ </return>
+ <argument index="0" name="name" type="String">
+ </argument>
+ <description>
+ At the moment this function is only used by [code]AudioDriverOpenSL[/code] to request permission for [code]RECORD_AUDIO[/code] on Android.
+ </description>
+ </method>
<method name="set_icon">
<return type="void">
</return>
<argument index="0" name="icon" type="Image">
</argument>
<description>
- Sets the game's icon.
+ Sets the game's icon using an [Image] resource.
+ The same image is used for window caption, taskbar/dock and window selection dialog. Image is scaled as needed.
+ </description>
+ </method>
+ <method name="set_ime_active">
+ <return type="void">
+ </return>
+ <argument index="0" name="active" type="bool">
+ </argument>
+ <description>
+ Sets whether IME input mode should be enabled.
+ If active IME handles key events before the application and creates an composition string and suggestion list.
+ Application can retrieve the composition status by using [method get_ime_selection] and [method get_ime_text] functions.
+ Completed composition string is committed when input is finished.
</description>
</method>
<method name="set_ime_position">
@@ -669,6 +724,18 @@
<argument index="0" name="position" type="Vector2">
</argument>
<description>
+ Sets position of IME suggestion list popup (in window coordinates).
+ </description>
+ </method>
+ <method name="set_native_icon">
+ <return type="void">
+ </return>
+ <argument index="0" name="filename" type="String">
+ </argument>
+ <description>
+ Sets the game's icon using a multi-size platform-specific icon file ([code]*.ico[/code] on Windows and [code]*.icns[/code] on macOS).
+ Appropriate size sub-icons are used for window caption, taskbar/dock and window selection dialog.
+ Note: This method is only implemented on macOS and Windows.
</description>
</method>
<method name="set_thread_name">
@@ -715,7 +782,7 @@
<description>
Requests the OS to open a resource with the most appropriate program. For example.
[code]OS.shell_open("C:\\Users\name\Downloads")[/code] on Windows opens the file explorer at the downloads folders of the user.
- [code]OS.shell_open("http://godotengine.org")[/code] opens the default web browser on the official Godot website.
+ [code]OS.shell_open("https://godotengine.org")[/code] opens the default web browser on the official Godot website.
</description>
</method>
<method name="show_virtual_keyboard">
@@ -739,30 +806,40 @@
The exit code passed to the OS when the main loop exits.
</member>
<member name="keep_screen_on" type="bool" setter="set_keep_screen_on" getter="is_keep_screen_on">
- If [code]true[/code] the engine tries to keep the screen on while the game is running. Useful on mobile.
+ If [code]true[/code], the engine tries to keep the screen on while the game is running. Useful on mobile.
</member>
<member name="low_processor_usage_mode" type="bool" setter="set_low_processor_usage_mode" getter="is_in_low_processor_usage_mode">
- If [code]true[/code] the engine optimizes for low processor usage by only refreshing the screen if needed. Can improve battery consumption on mobile.
+ If [code]true[/code], the engine optimizes for low processor usage by only refreshing the screen if needed. Can improve battery consumption on mobile.
+ </member>
+ <member name="max_window_size" type="Vector2" setter="set_max_window_size" getter="get_max_window_size">
+ The maximum size of the window (without counting window manager decorations). Does not affect fullscreen mode. Set to [code](0, 0)[/code] to reset to the system default value.
+ </member>
+ <member name="min_window_size" type="Vector2" setter="set_min_window_size" getter="get_min_window_size">
+ The minimum size of the window (without counting window manager decorations). Does not affect fullscreen mode. Set to [code](0, 0)[/code] to reset to the system default value.
</member>
<member name="screen_orientation" type="int" setter="set_screen_orientation" getter="get_screen_orientation" enum="_OS.ScreenOrientation">
The current screen orientation.
</member>
<member name="vsync_enabled" type="bool" setter="set_use_vsync" getter="is_vsync_enabled">
- If [code]true[/code] vertical synchronization (Vsync) is enabled.
+ If [code]true[/code], vertical synchronization (Vsync) is enabled.
</member>
<member name="window_borderless" type="bool" setter="set_borderless_window" getter="get_borderless_window">
- If [code]true[/code] removes the window frame.
+ If [code]true[/code], removes the window frame.
+ Note: Setting [code]window_borderless[/code] to [code]false[/code] disables per-pixel transparency.
</member>
<member name="window_fullscreen" type="bool" setter="set_window_fullscreen" getter="is_window_fullscreen">
- If [code]true[/code] the window is fullscreen.
+ If [code]true[/code], the window is fullscreen.
</member>
<member name="window_maximized" type="bool" setter="set_window_maximized" getter="is_window_maximized">
- If [code]true[/code] the window is maximized.
+ If [code]true[/code], the window is maximized.
</member>
<member name="window_minimized" type="bool" setter="set_window_minimized" getter="is_window_minimized">
- If [code]true[/code] the window is minimized.
+ If [code]true[/code], the window is minimized.
</member>
<member name="window_per_pixel_transparency_enabled" type="bool" setter="set_window_per_pixel_transparency_enabled" getter="get_window_per_pixel_transparency_enabled">
+ If [code]true[/code], the window background is transparent and window frame is removed.
+ Use [code]get_tree().get_root().set_transparent_background(true)[/code] to disable main viewport background rendering.
+ Note: This property has no effect if "Project &gt; Project Settings &gt; Display &gt; Window &gt; Per-pixel transparency &gt; Allowed" setting is disabled.
</member>
<member name="window_position" type="Vector2" setter="set_window_position" getter="get_window_position">
The window position relative to the screen, the origin is the top left corner, +Y axis goes to the bottom and +X axis goes to the right.
@@ -775,6 +852,12 @@
</member>
</members>
<constants>
+ <constant name="VIDEO_DRIVER_GLES2" value="1" enum="VideoDriver">
+ The GLES2 rendering backend. It uses OpenGL ES 2.0 on mobile devices, OpenGL 2.1 on desktop platforms and WebGL 1.0 on the web.
+ </constant>
+ <constant name="VIDEO_DRIVER_GLES3" value="0" enum="VideoDriver">
+ The GLES3 rendering backend. It uses OpenGL ES 3.0 on mobile devices, OpenGL 3.3 on desktop platforms and WebGL 2.0 on the web.
+ </constant>
<constant name="DAY_SUNDAY" value="0" enum="Weekday">
Sunday.
</constant>
diff --git a/doc/classes/Object.xml b/doc/classes/Object.xml
index 86de830d56..c9910360ed 100644
--- a/doc/classes/Object.xml
+++ b/doc/classes/Object.xml
@@ -1,19 +1,18 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="Object" category="Core" version="3.1">
+<class name="Object" category="Core" version="3.2">
<brief_description>
Base class for all non built-in types.
</brief_description>
<description>
- Base class for all non built-in types. Everything not a built-in type starts the inheritance chain from this class.
- Objects do not manage memory, if inheriting from one the object will most likely have to be deleted manually (call the [method free] function from the script or delete from C++).
- Some derivatives add memory management, such as [Reference] (which keeps a reference count and deletes itself automatically when no longer referenced) and [Node], which deletes the children tree when deleted.
+ Every class which is not a built-in type inherits from this class.
+ You can construct Objects from scripting languages, using [code]Object.new()[/code] in GDScript, [code]new Object[/code] in C#, or the "Construct Object" node in VisualScript.
+ Objects do not manage memory. If a class inherits from Object, you will have to delete instances of it manually. To do so, call the [method free] method from your script or delete the instance from C++.
+ Some classes that extend Object add memory management. This is the case of [Reference], which counts references and deletes itself automatically when no longer referenced. [Node], another fundamental type, deletes all its children when freed from memory.
Objects export properties, which are mainly useful for storage and editing, but not really so much in programming. Properties are exported in [method _get_property_list] and handled in [method _get] and [method _set]. However, scripting languages and C++ have simpler means to export them.
- Objects also receive notifications ([method _notification]). Notifications are a simple way to notify the object about simple events, so they can all be handled together.
+ Objects also receive notifications. Notifications are a simple way to notify the object about simple events, so they can all be handled together. See [method _notification].
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
<method name="_get" qualifiers="virtual">
<return type="Variant">
@@ -58,6 +57,14 @@
Sets a property. Returns [code]true[/code] if the [code]property[/code] exists.
</description>
</method>
+ <method name="_to_string" qualifiers="virtual">
+ <return type="String">
+ </return>
+ <description>
+ Returns a [String] representing the object. Default is [code]"[ClassName:RID]"[/code].
+ Override this method to customize the [String] representation of the object when it's being converted to a string, for example: [code]print(obj)[/code].
+ </description>
+ </method>
<method name="add_user_signal">
<return type="void">
</return>
@@ -119,7 +126,9 @@
<argument index="4" name="flags" type="int" default="0">
</argument>
<description>
- Connects a [code]signal[/code] to a [code]method[/code] on a [code]target[/code] object. Pass optional [code]binds[/code] to the call. Use [code]flags[/code] to set deferred or one shot connections. See [code]CONNECT_*[/code] constants. A [code]signal[/code] can only be connected once to a [code]method[/code]. It will throw an error if already connected. To avoid this, first use [method is_connected] to check for existing connections.
+ Connects a [code]signal[/code] to a [code]method[/code] on a [code]target[/code] object. Pass optional [code]binds[/code] to the call. Use [code]flags[/code] to set deferred or one shot connections. See [code]CONNECT_*[/code] constants.
+ A [code]signal[/code] can only be connected once to a [code]method[/code]. It will throw an error if already connected. To avoid this, first, use [method is_connected] to check for existing connections.
+ If the [code]target[/code] is destroyed in the game's lifecycle, the connection will be lost.
</description>
</method>
<method name="disconnect">
@@ -133,6 +142,7 @@
</argument>
<description>
Disconnects a [code]signal[/code] from a [code]method[/code] on the given [code]target[/code].
+ If you try to disconnect a connection that does not exist, the method will throw an error. Use [method is_connected] to ensure that the connection exists.
</description>
</method>
<method name="emit_signal" qualifiers="vararg">
@@ -328,6 +338,14 @@
<description>
</description>
</method>
+ <method name="remove_meta">
+ <return type="void">
+ </return>
+ <argument index="0" name="name" type="String">
+ </argument>
+ <description>
+ </description>
+ </method>
<method name="set">
<return type="void">
</return>
@@ -345,7 +363,7 @@
<argument index="0" name="enable" type="bool">
</argument>
<description>
- If set to true, signal emission is blocked.
+ If set to [code]true[/code], signal emission is blocked.
</description>
</method>
<method name="set_deferred">
@@ -374,7 +392,7 @@
<argument index="0" name="enable" type="bool">
</argument>
<description>
- Define whether the object can translate strings (with calls to [method tr]). Default is true.
+ Define whether the object can translate strings (with calls to [method tr]). Default is [code]true[/code].
</description>
</method>
<method name="set_meta">
@@ -397,6 +415,14 @@
Set a script into the object, scripts extend the object functionality.
</description>
</method>
+ <method name="to_string">
+ <return type="String">
+ </return>
+ <description>
+ Returns a [String] representing the object. Default is [code]"[ClassName:RID]"[/code].
+ Override the method [method _to_string] to customize the [String] representation.
+ </description>
+ </method>
<method name="tr" qualifiers="const">
<return type="String">
</return>
diff --git a/doc/classes/OccluderPolygon2D.xml b/doc/classes/OccluderPolygon2D.xml
index e8d6b54f27..f1d7d55cb9 100644
--- a/doc/classes/OccluderPolygon2D.xml
+++ b/doc/classes/OccluderPolygon2D.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="OccluderPolygon2D" inherits="Resource" category="Core" version="3.1">
+<class name="OccluderPolygon2D" inherits="Resource" category="Core" version="3.2">
<brief_description>
Defines a 2D polygon for LightOccluder2D.
</brief_description>
@@ -8,19 +8,17 @@
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
</methods>
<members>
<member name="closed" type="bool" setter="set_closed" getter="is_closed">
- If [code]true[/code] closes the polygon. A closed OccluderPolygon2D occludes the light coming from any direction. An opened OccluderPolygon2D occludes the light only at its outline's direction. Default value [code]true[/code].
+ If [code]true[/code], closes the polygon. A closed OccluderPolygon2D occludes the light coming from any direction. An opened OccluderPolygon2D occludes the light only at its outline's direction. Default value [code]true[/code].
</member>
<member name="cull_mode" type="int" setter="set_cull_mode" getter="get_cull_mode" enum="OccluderPolygon2D.CullMode">
Set the direction of the occlusion culling when not [code]CULL_DISABLED[/code]. Default value [code]DISABLED[/code].
</member>
<member name="polygon" type="PoolVector2Array" setter="set_polygon" getter="get_polygon">
- A [Vector2] array with the index for polygon's vertices positions.
+ A [Vector2] array with the index for polygon's vertices positions. Note that the returned value is a copy of the underlying array, rather than a reference.
</member>
</members>
<constants>
diff --git a/doc/classes/OmniLight.xml b/doc/classes/OmniLight.xml
index 8d67cb626b..408018fdcb 100644
--- a/doc/classes/OmniLight.xml
+++ b/doc/classes/OmniLight.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="OmniLight" inherits="Light" category="Core" version="3.1">
+<class name="OmniLight" inherits="Light" category="Core" version="3.2">
<brief_description>
Omnidirectional light, such as a light bulb or a candle.
</brief_description>
@@ -9,8 +9,6 @@
<tutorials>
<link>https://docs.godotengine.org/en/latest/tutorials/3d/lights_and_shadows.html</link>
</tutorials>
- <demos>
- </demos>
<methods>
</methods>
<members>
diff --git a/doc/classes/OptionButton.xml b/doc/classes/OptionButton.xml
index c58c932b61..1f714656de 100644
--- a/doc/classes/OptionButton.xml
+++ b/doc/classes/OptionButton.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="OptionButton" inherits="Button" category="Core" version="3.1">
+<class name="OptionButton" inherits="Button" category="Core" version="3.2">
<brief_description>
Button control that provides selectable options when pressed.
</brief_description>
@@ -8,8 +8,6 @@
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
<method name="add_icon_item">
<return type="void">
@@ -46,14 +44,14 @@
<return type="void">
</return>
<description>
- Clear all the items in the [code]OptionButton[/code].
+ Clear all the items in the [OptionButton].
</description>
</method>
<method name="get_item_count" qualifiers="const">
<return type="int">
</return>
<description>
- Return the amount of items in the OptionButton.
+ Returns the amount of items in the OptionButton.
</description>
</method>
<method name="get_item_icon" qualifiers="const">
@@ -62,7 +60,7 @@
<argument index="0" name="idx" type="int">
</argument>
<description>
- Return the icon of the item at index "idx".
+ Returns the icon of the item at index "idx".
</description>
</method>
<method name="get_item_id" qualifiers="const">
@@ -71,7 +69,16 @@
<argument index="0" name="idx" type="int">
</argument>
<description>
- Return the ID of the item at index "idx".
+ Returns the ID of the item at index [code]idx[/code].
+ </description>
+ </method>
+ <method name="get_item_index" qualifiers="const">
+ <return type="int">
+ </return>
+ <argument index="0" name="id" type="int">
+ </argument>
+ <description>
+ Returns the index of the item with the given [code]id[/code].
</description>
</method>
<method name="get_item_metadata" qualifiers="const">
@@ -88,14 +95,14 @@
<argument index="0" name="idx" type="int">
</argument>
<description>
- Return the text of the item at index "idx".
+ Returns the text of the item at index "idx".
</description>
</method>
<method name="get_popup" qualifiers="const">
<return type="PopupMenu">
</return>
<description>
- Return the [PopupMenu] contained in this button.
+ Returns the [PopupMenu] contained in this button.
</description>
</method>
<method name="get_selected_id" qualifiers="const">
@@ -195,17 +202,17 @@
</members>
<signals>
<signal name="item_focused">
- <argument index="0" name="ID" type="int">
+ <argument index="0" name="id" type="int">
</argument>
<description>
- This signal is emitted when user navigated to an item using [code]ui_up[/code] or [code]ui_down[/code] action. ID of the item selected is passed as argument (if no IDs were added, ID will be just the item index).
+ This signal is emitted when user navigated to an item using [code]ui_up[/code] or [code]ui_down[/code] action. ID of the item selected is passed as argument.
</description>
</signal>
<signal name="item_selected">
- <argument index="0" name="ID" type="int">
+ <argument index="0" name="id" type="int">
</argument>
<description>
- This signal is emitted when the current item was changed by the user. ID of the item selected is passed as argument (if no IDs were added, ID will be just the item index).
+ This signal is emitted when the current item was changed by the user. Index of the item selected is passed as argument.
</description>
</signal>
</signals>
diff --git a/doc/classes/OrientedPathFollow.xml b/doc/classes/OrientedPathFollow.xml
deleted file mode 100644
index bc6af4711b..0000000000
--- a/doc/classes/OrientedPathFollow.xml
+++ /dev/null
@@ -1,40 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" ?>
-<class name="OrientedPathFollow" inherits="Spatial" category="Core" version="3.1">
- <brief_description>
- Oriented point sampler for a [Path].
- </brief_description>
- <description>
- This node behaves like [PathFollow], except it uses its parent [Path] up vector information to enforce orientation.
- Make sure to check if the curve of this node's parent [Path] has up vectors enabled. See [PathFollow] and [Curve3D] for further information.
- </description>
- <tutorials>
- </tutorials>
- <demos>
- </demos>
- <methods>
- </methods>
- <members>
- <member name="cubic_interp" type="bool" setter="set_cubic_interpolation" getter="get_cubic_interpolation">
- If [code]true[/code] the position between two cached points is interpolated cubically, and linearly otherwise.
- The points along the [Curve3D] of the [Path] are precomputed before use, for faster calculations. The point at the requested offset is then calculated interpolating between two adjacent cached points. This may present a problem if the curve makes sharp turns, as the cached points may not follow the curve closely enough.
- There are two answers to this problem: Either increase the number of cached points and increase memory consumption, or make a cubic interpolation between two points at the cost of (slightly) slower calculations.
- </member>
- <member name="h_offset" type="float" setter="set_h_offset" getter="get_h_offset">
- The node's offset along the curve.
- </member>
- <member name="loop" type="bool" setter="set_loop" getter="has_loop">
- If [code]true[/code], any offset outside the path's length will wrap around, instead of stopping at the ends. Use it for cyclic paths.
- </member>
- <member name="offset" type="float" setter="set_offset" getter="get_offset">
- The distance from the first vertex, measured in 3D units along the path. This sets this node's position to a point within the path.
- </member>
- <member name="unit_offset" type="float" setter="set_unit_offset" getter="get_unit_offset">
- The distance from the first vertex, considering 0.0 as the first vertex and 1.0 as the last. This is just another way of expressing the offset within the path, as the offset supplied is multiplied internally by the path's length.
- </member>
- <member name="v_offset" type="float" setter="set_v_offset" getter="get_v_offset">
- The node's offset perpendicular to the curve.
- </member>
- </members>
- <constants>
- </constants>
-</class>
diff --git a/doc/classes/PCKPacker.xml b/doc/classes/PCKPacker.xml
index 01985a9bb3..f3091a3e3f 100644
--- a/doc/classes/PCKPacker.xml
+++ b/doc/classes/PCKPacker.xml
@@ -1,13 +1,11 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="PCKPacker" inherits="Reference" category="Core" version="3.1">
+<class name="PCKPacker" inherits="Reference" category="Core" version="3.2">
<brief_description>
</brief_description>
<description>
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
<method name="add_file">
<return type="int" enum="Error">
diff --git a/doc/classes/PHashTranslation.xml b/doc/classes/PHashTranslation.xml
index e5745375b0..7c771b6b04 100644
--- a/doc/classes/PHashTranslation.xml
+++ b/doc/classes/PHashTranslation.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="PHashTranslation" inherits="Translation" category="Core" version="3.1">
+<class name="PHashTranslation" inherits="Translation" category="Core" version="3.2">
<brief_description>
Optimized translation.
</brief_description>
@@ -8,8 +8,6 @@
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
<method name="generate">
<return type="void">
diff --git a/doc/classes/PackedDataContainer.xml b/doc/classes/PackedDataContainer.xml
index e6dbe57925..f230953aac 100644
--- a/doc/classes/PackedDataContainer.xml
+++ b/doc/classes/PackedDataContainer.xml
@@ -1,13 +1,11 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="PackedDataContainer" inherits="Resource" category="Core" version="3.1">
+<class name="PackedDataContainer" inherits="Resource" category="Core" version="3.2">
<brief_description>
</brief_description>
<description>
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
<method name="pack">
<return type="int" enum="Error">
diff --git a/doc/classes/PackedDataContainerRef.xml b/doc/classes/PackedDataContainerRef.xml
index 371fe5a5ac..8623ff7843 100644
--- a/doc/classes/PackedDataContainerRef.xml
+++ b/doc/classes/PackedDataContainerRef.xml
@@ -1,13 +1,11 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="PackedDataContainerRef" inherits="Reference" category="Core" version="3.1">
+<class name="PackedDataContainerRef" inherits="Reference" category="Core" version="3.2">
<brief_description>
</brief_description>
<description>
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
<method name="size" qualifiers="const">
<return type="int">
diff --git a/doc/classes/PackedScene.xml b/doc/classes/PackedScene.xml
index 7dea004b90..777e5221ed 100644
--- a/doc/classes/PackedScene.xml
+++ b/doc/classes/PackedScene.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="PackedScene" inherits="Resource" category="Core" version="3.1">
+<class name="PackedScene" inherits="Resource" category="Core" version="3.2">
<brief_description>
An abstraction of a serialized scene.
</brief_description>
@@ -18,7 +18,7 @@
node.add_child(rigid)
# change owner of rigid, but not of collision
- rigid.set_owner(node)
+ rigid.owner = node
var scene = PackedScene.new()
# only node and rigid are now packed
@@ -29,8 +29,6 @@
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
<method name="can_instance" qualifiers="const">
<return type="bool">
@@ -61,7 +59,7 @@
<argument index="0" name="path" type="Node">
</argument>
<description>
- Pack will ignore any sub-nodes not owned by given node. See [method Node.set_owner].
+ Pack will ignore any sub-nodes not owned by given node. See [member Node.owner].
</description>
</method>
</methods>
diff --git a/doc/classes/PacketPeer.xml b/doc/classes/PacketPeer.xml
index a4cf0c8029..4109d9d462 100644
--- a/doc/classes/PacketPeer.xml
+++ b/doc/classes/PacketPeer.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="PacketPeer" inherits="Reference" category="Core" version="3.1">
+<class name="PacketPeer" inherits="Reference" category="Core" version="3.2">
<brief_description>
Abstraction and base class for packet-based protocols.
</brief_description>
@@ -8,14 +8,12 @@
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
<method name="get_available_packet_count" qualifiers="const">
<return type="int">
</return>
<description>
- Return the number of packets currently available in the ring-buffer.
+ Returns the number of packets currently available in the ring-buffer.
</description>
</method>
<method name="get_packet">
@@ -29,14 +27,17 @@
<return type="int" enum="Error">
</return>
<description>
- Return the error state of the last packet received (via [method get_packet] and [method get_var]).
+ Returns the error state of the last packet received (via [method get_packet] and [method get_var]).
</description>
</method>
<method name="get_var">
<return type="Variant">
</return>
+ <argument index="0" name="allow_objects" type="bool" default="false">
+ </argument>
<description>
- Get a Variant.
+ Get a Variant. When [code]allow_objects[/code] (or [member allow_object_decoding]) is [code]true[/code] decoding objects is allowed.
+ [b]WARNING:[/b] Deserialized object can contain code which gets executed. Do not use this option if the serialized object comes from untrusted sources to avoid potential security threats (remote code execution).
</description>
</method>
<method name="put_packet">
@@ -53,13 +54,18 @@
</return>
<argument index="0" name="var" type="Variant">
</argument>
+ <argument index="1" name="full_objects" type="bool" default="false">
+ </argument>
<description>
- Send a Variant as a packet.
+ Send a Variant as a packet. When [code]full_objects[/code] (or [member allow_object_decoding]) is [code]true[/code] encoding objects is allowed (and can potentially include code).
</description>
</method>
</methods>
<members>
<member name="allow_object_decoding" type="bool" setter="set_allow_object_decoding" getter="is_object_decoding_allowed">
+ Deprecated. Use [code]get_var[/code] and [code]put_var[/code] parameters instead.
+ If [code]true[/code] the PacketPeer will allow encoding and decoding of object via [method get_var] and [method put_var].
+ [b]WARNING:[/b] Deserialized object can contain code which gets executed. Do not use this option if the serialized object comes from untrusted sources to avoid potential security threats (remote code execution).
</member>
</members>
<constants>
diff --git a/doc/classes/PacketPeerStream.xml b/doc/classes/PacketPeerStream.xml
index 9e3195bb44..20e5e570ac 100644
--- a/doc/classes/PacketPeerStream.xml
+++ b/doc/classes/PacketPeerStream.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="PacketPeerStream" inherits="PacketPeer" category="Core" version="3.1">
+<class name="PacketPeerStream" inherits="PacketPeer" category="Core" version="3.2">
<brief_description>
Wrapper to use a PacketPeer over a StreamPeer.
</brief_description>
@@ -8,8 +8,6 @@
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
</methods>
<members>
diff --git a/doc/classes/PacketPeerUDP.xml b/doc/classes/PacketPeerUDP.xml
index d4e3d17de6..9843c16108 100644
--- a/doc/classes/PacketPeerUDP.xml
+++ b/doc/classes/PacketPeerUDP.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="PacketPeerUDP" inherits="PacketPeer" category="Core" version="3.1">
+<class name="PacketPeerUDP" inherits="PacketPeer" category="Core" version="3.2">
<brief_description>
UDP packet peer.
</brief_description>
@@ -8,35 +8,33 @@
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
<method name="close">
<return type="void">
</return>
<description>
- Close the UDP socket the [code]PacketPeerUDP[/code] is currently listening on.
+ Close the UDP socket the [PacketPeerUDP] is currently listening on.
</description>
</method>
<method name="get_packet_ip" qualifiers="const">
<return type="String">
</return>
<description>
- Return the IP of the remote peer that sent the last packet(that was received with [method PacketPeer.get_packet] or [method PacketPeer.get_var]).
+ Returns the IP of the remote peer that sent the last packet(that was received with [method PacketPeer.get_packet] or [method PacketPeer.get_var]).
</description>
</method>
<method name="get_packet_port" qualifiers="const">
<return type="int">
</return>
<description>
- Return the port of the remote peer that sent the last packet(that was received with [method PacketPeer.get_packet] or [method PacketPeer.get_var]).
+ Returns the port of the remote peer that sent the last packet(that was received with [method PacketPeer.get_packet] or [method PacketPeer.get_var]).
</description>
</method>
<method name="is_listening" qualifiers="const">
<return type="bool">
</return>
<description>
- Return whether this [code]PacketPeerUDP[/code] is listening.
+ Returns whether this [PacketPeerUDP] is listening.
</description>
</method>
<method name="listen">
@@ -49,7 +47,7 @@
<argument index="2" name="recv_buf_size" type="int" default="65536">
</argument>
<description>
- Make this [code]PacketPeerUDP[/code] listen on the "port" binding to "bind_address" with a buffer size "recv_buf_size".
+ Make this [PacketPeerUDP] listen on the "port" binding to "bind_address" with a buffer size "recv_buf_size".
If "bind_address" is set as "*" (default), the peer will listen on all available addresses (both IPv4 and IPv6).
If "bind_address" is set as "0.0.0.0" (for IPv4) or "::" (for IPv6), the peer will listen on all available addresses matching that IP type.
If "bind_address" is set to any valid address (e.g. "192.168.1.101", "::1", etc), the peer will only listen on the interface with that addresses (or fail if no interface with the given address exists).
diff --git a/doc/classes/Panel.xml b/doc/classes/Panel.xml
index 758925e969..c9c3f80e7b 100644
--- a/doc/classes/Panel.xml
+++ b/doc/classes/Panel.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="Panel" inherits="Control" category="Core" version="3.1">
+<class name="Panel" inherits="Control" category="Core" version="3.2">
<brief_description>
Provides an opaque background for [Control] children.
</brief_description>
@@ -8,8 +8,6 @@
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
</methods>
<constants>
@@ -17,9 +15,5 @@
<theme_items>
<theme_item name="panel" type="StyleBox">
</theme_item>
- <theme_item name="panelf" type="StyleBox">
- </theme_item>
- <theme_item name="panelnc" type="StyleBox">
- </theme_item>
</theme_items>
</class>
diff --git a/doc/classes/PanelContainer.xml b/doc/classes/PanelContainer.xml
index f5c351fa21..64fae6d95c 100644
--- a/doc/classes/PanelContainer.xml
+++ b/doc/classes/PanelContainer.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="PanelContainer" inherits="Container" category="Core" version="3.1">
+<class name="PanelContainer" inherits="Container" category="Core" version="3.2">
<brief_description>
Panel container type.
</brief_description>
@@ -8,8 +8,6 @@
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
</methods>
<constants>
diff --git a/doc/classes/PanoramaSky.xml b/doc/classes/PanoramaSky.xml
index 402e65c573..30d15c030a 100644
--- a/doc/classes/PanoramaSky.xml
+++ b/doc/classes/PanoramaSky.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="PanoramaSky" inherits="Sky" category="Core" version="3.1">
+<class name="PanoramaSky" inherits="Sky" category="Core" version="3.2">
<brief_description>
A type of [Sky] used to draw a background texture.
</brief_description>
@@ -8,8 +8,6 @@
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
</methods>
<members>
diff --git a/doc/classes/ParallaxBackground.xml b/doc/classes/ParallaxBackground.xml
index 2409b7a1c1..6c9d5de945 100644
--- a/doc/classes/ParallaxBackground.xml
+++ b/doc/classes/ParallaxBackground.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="ParallaxBackground" inherits="CanvasLayer" category="Core" version="3.1">
+<class name="ParallaxBackground" inherits="CanvasLayer" category="Core" version="3.2">
<brief_description>
A node used to create a parallax scrolling background.
</brief_description>
@@ -8,8 +8,6 @@
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
</methods>
<members>
@@ -20,7 +18,7 @@
Base motion scale of all [ParallaxLayer] children.
</member>
<member name="scroll_ignore_camera_zoom" type="bool" setter="set_ignore_camera_zoom" getter="is_ignore_camera_zoom">
- If [code]true[/code] elements in [ParallaxLayer] child aren't affected by the zoom level of the camera.
+ If [code]true[/code], elements in [ParallaxLayer] child aren't affected by the zoom level of the camera.
</member>
<member name="scroll_limit_begin" type="Vector2" setter="set_limit_begin" getter="get_limit_begin">
Top left limits for scrolling to begin. If the camera is outside of this limit the background will stop scrolling. Must be lower than [member scroll_limit_end] to work.
diff --git a/doc/classes/ParallaxLayer.xml b/doc/classes/ParallaxLayer.xml
index e6ea166282..993f38c31a 100644
--- a/doc/classes/ParallaxLayer.xml
+++ b/doc/classes/ParallaxLayer.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="ParallaxLayer" inherits="Node2D" category="Core" version="3.1">
+<class name="ParallaxLayer" inherits="Node2D" category="Core" version="3.2">
<brief_description>
A parallax scrolling layer to be used with [ParallaxBackground].
</brief_description>
@@ -10,8 +10,6 @@
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
</methods>
<members>
diff --git a/doc/classes/Particles.xml b/doc/classes/Particles.xml
index 2e30750bf9..a29b621406 100644
--- a/doc/classes/Particles.xml
+++ b/doc/classes/Particles.xml
@@ -1,28 +1,28 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="Particles" inherits="GeometryInstance" category="Core" version="3.1">
+<class name="Particles" inherits="GeometryInstance" category="Core" version="3.2">
<brief_description>
3D particle emitter.
</brief_description>
<description>
- 3D particle node used to create a variety of particle systems and effects. [code]Particles[/code] features an emitter that generates some number of particles at a given rate.
+ 3D particle node used to create a variety of particle systems and effects. [Particles] features an emitter that generates some number of particles at a given rate.
Use the [code]process_material[/code] property to add a [ParticlesMaterial] to configure particle appearance and behavior. Alternatively, you can add a [ShaderMaterial] which will be applied to all particles.
</description>
<tutorials>
+ <link>http://docs.godotengine.org/en/latest/tutorials/3d/vertex_animation/controlling_thousands_of_fish.html</link>
</tutorials>
- <demos>
- </demos>
<methods>
<method name="capture_aabb" qualifiers="const">
<return type="AABB">
</return>
<description>
+ Returns the bounding box that contains all the particles that are active in the current frame.
</description>
</method>
<method name="restart">
<return type="void">
</return>
<description>
- Restarts the particle emmission, clearing existing particles.
+ Restarts the particle emission, clearing existing particles.
</description>
</method>
</methods>
@@ -49,23 +49,25 @@
The number of draw passes when rendering particles.
</member>
<member name="emitting" type="bool" setter="set_emitting" getter="is_emitting">
- If [code]true[/code] particles are being emitted. Default value: [code]true[/code].
+ If [code]true[/code], particles are being emitted. Default value: [code]true[/code].
</member>
<member name="explosiveness" type="float" setter="set_explosiveness_ratio" getter="get_explosiveness_ratio">
Time ratio between each emission. If [code]0[/code] particles are emitted continuously. If [code]1[/code] all particles are emitted simultaneously. Default value: [code]0[/code].
</member>
<member name="fixed_fps" type="int" setter="set_fixed_fps" getter="get_fixed_fps">
+ The particle system's frame rate is fixed to a value. For instance, changing the value to 2 will make the particles render at 2 frames per second. Note this does not slow down the simulation of the particle system itself.
</member>
<member name="fract_delta" type="bool" setter="set_fractional_delta" getter="get_fractional_delta">
+ If [code]true[/code], results in fractional delta calculation which has a smoother particles display effect. Default value: [code]true[/code].
</member>
<member name="lifetime" type="float" setter="set_lifetime" getter="get_lifetime">
Amount of time each particle will exist. Default value: [code]1[/code].
</member>
<member name="local_coords" type="bool" setter="set_use_local_coordinates" getter="get_use_local_coordinates">
- If [code]true[/code] particles use the parent node's coordinate space. If [code]false[/code] they use global coordinates. Default value: [code]true[/code].
+ If [code]true[/code], particles use the parent node's coordinate space. If [code]false[/code], they use global coordinates. Default value: [code]true[/code].
</member>
<member name="one_shot" type="bool" setter="set_one_shot" getter="get_one_shot">
- If [code]true[/code] only [code]amount[/code] particles will be emitted. Default value: [code]false[/code].
+ If [code]true[/code], only [code]amount[/code] particles will be emitted. Default value: [code]false[/code].
</member>
<member name="preprocess" type="float" setter="set_pre_process_time" getter="get_pre_process_time">
Amount of time to preprocess the particles before animation starts. Lets you start the animation some time after particles have started emitting.
diff --git a/doc/classes/Particles2D.xml b/doc/classes/Particles2D.xml
index 6416e409a3..78114e985d 100644
--- a/doc/classes/Particles2D.xml
+++ b/doc/classes/Particles2D.xml
@@ -1,27 +1,28 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="Particles2D" inherits="Node2D" category="Core" version="3.1">
+<class name="Particles2D" inherits="Node2D" category="Core" version="3.2">
<brief_description>
2D particle emitter.
</brief_description>
<description>
- 2D particle node used to create a variety of particle systems and effects. [code]Particles2D[/code] features an emitter that generates some number of particles at a given rate.
+ 2D particle node used to create a variety of particle systems and effects. [Particles2D] features an emitter that generates some number of particles at a given rate.
Use the [code]process_material[/code] property to add a [ParticlesMaterial] to configure particle appearance and behavior. Alternatively, you can add a [ShaderMaterial] which will be applied to all particles.
</description>
<tutorials>
+ <link>https://docs.godotengine.org/en/latest/tutorials/2d/particle_systems_2d.html</link>
</tutorials>
- <demos>
- </demos>
<methods>
<method name="capture_rect" qualifiers="const">
<return type="Rect2">
</return>
<description>
+ Returns a rectangle containing the positions of all existing particles.
</description>
</method>
<method name="restart">
<return type="void">
</return>
<description>
+ Restarts all the existing particles.
</description>
</method>
</methods>
@@ -33,25 +34,28 @@
Particle draw order. Uses [code]DRAW_ORDER_*[/code] values. Default value: [code]DRAW_ORDER_INDEX[/code].
</member>
<member name="emitting" type="bool" setter="set_emitting" getter="is_emitting">
- If [code]true[/code] particles are being emitted. Default value: [code]true[/code].
+ If [code]true[/code], particles are being emitted. Default value: [code]true[/code].
</member>
<member name="explosiveness" type="float" setter="set_explosiveness_ratio" getter="get_explosiveness_ratio">
How rapidly particles in an emission cycle are emitted. If greater than [code]0[/code], there will be a gap in emissions before the next cycle begins. Default value: [code]0[/code].
</member>
<member name="fixed_fps" type="int" setter="set_fixed_fps" getter="get_fixed_fps">
+ The particle system's frame rate is fixed to a value. For instance, changing the value to 2 will make the particles render at 2 frames per second. Note this does not slow down the simulation of the particle system itself.
</member>
<member name="fract_delta" type="bool" setter="set_fractional_delta" getter="get_fractional_delta">
+ If [code]true[/code], results in fractional delta calculation which has a smoother particles display effect. Default value: [code]true[/code]
</member>
<member name="lifetime" type="float" setter="set_lifetime" getter="get_lifetime">
Amount of time each particle will exist. Default value: [code]1[/code].
</member>
<member name="local_coords" type="bool" setter="set_use_local_coordinates" getter="get_use_local_coordinates">
- If [code]true[/code] particles use the parent node's coordinate space. If [code]false[/code] they use global coordinates. Default value: [code]true[/code].
+ If [code]true[/code], particles use the parent node's coordinate space. If [code]false[/code], they use global coordinates. Default value: [code]true[/code].
</member>
<member name="normal_map" type="Texture" setter="set_normal_map" getter="get_normal_map">
+ Normal map to be used for the [member texture] property.
</member>
<member name="one_shot" type="bool" setter="set_one_shot" getter="get_one_shot">
- If [code]true[/code] only one emission cycle occurs. If set [code]true[/code] during a cycle, emission will stop at the cycle's end. Default value: [code]false[/code].
+ If [code]true[/code], only one emission cycle occurs. If set [code]true[/code] during a cycle, emission will stop at the cycle's end. Default value: [code]false[/code].
</member>
<member name="preprocess" type="float" setter="set_pre_process_time" getter="get_pre_process_time">
Particle system starts as if it had already run for this many seconds.
diff --git a/doc/classes/ParticlesMaterial.xml b/doc/classes/ParticlesMaterial.xml
index 2904d4c578..cb06593bc2 100644
--- a/doc/classes/ParticlesMaterial.xml
+++ b/doc/classes/ParticlesMaterial.xml
@@ -1,21 +1,21 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="ParticlesMaterial" inherits="Material" category="Core" version="3.1">
+<class name="ParticlesMaterial" inherits="Material" category="Core" version="3.2">
<brief_description>
Particle properties for [Particles] and [Particles2D] nodes.
</brief_description>
<description>
ParticlesMaterial defines particle properties and behavior. It is used in the [code]process_material[/code] of [Particles] and [Particles2D] emitter nodes.
Some of this material's properties are applied to each particle when emitted, while others can have a [CurveTexture] applied to vary values over the lifetime of the particle.
+ When a randomness ratio is applied to a property it is used to scale that property by a random amount. The random ratio is used to interpolate between [code]1.0[/code] and a random number less than one, the result is multiplied by the property to obtain the randomized property. For example a random ratio of [code]0.4[/code] would scale the original property between [code]0.4-1.0[/code] of its original value.
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
</methods>
<members>
<member name="angle" type="float" setter="set_param" getter="get_param">
- Initial rotation applied to each particle.
+ Initial rotation applied to each particle, in degrees.
+ Only applied when [member flag_disable_z] or [member flag_rotate_y] are [code]true[/code] or the [SpatialMaterial] being used to draw the particle is using [code]BillboardMode.BILLBOARD_PARTICLES[/code].
</member>
<member name="angle_curve" type="Texture" setter="set_param_texture" getter="get_param_texture">
Each particle's rotation will be animated along this [CurveTexture].
@@ -24,7 +24,8 @@
Rotation randomness ratio. Default value: [code]0[/code].
</member>
<member name="angular_velocity" type="float" setter="set_param" getter="get_param">
- Initial angular velocity applied to each particle.
+ Initial angular velocity applied to each particle. Sets the speed of rotation of the particle.
+ Only applied when [member flag_disable_z] or [member flag_rotate_y] are [code]true[/code] or the [SpatialMaterial] being used to draw the particle is using [code]BillboardMode.BILLBOARD_PARTICLES[/code].
</member>
<member name="angular_velocity_curve" type="Texture" setter="set_param_texture" getter="get_param_texture">
Each particle's angular velocity will vary along this [CurveTexture].
@@ -51,7 +52,7 @@
Animation speed randomness ratio. Default value: [code]0[/code].
</member>
<member name="color" type="Color" setter="set_color" getter="get_color">
- Each particle's initial color. If the [Particle2D]'s [code]texture[/code] is defined, it will be multiplied by this color.
+ Each particle's initial color. If the [Particles2D]'s [code]texture[/code] is defined, it will be multiplied by this color. To have particle display color in a [SpatialMaterial] make sure to set [member SpatialMaterial.vertex_color_use_as_albedo] to [code]true[/code].
</member>
<member name="color_ramp" type="Texture" setter="set_color_ramp" getter="get_color_ramp">
Each particle's color will vary along this [GradientTexture].
@@ -69,13 +70,16 @@
The box's extents if [code]emission_shape[/code] is set to [code]EMISSION_SHAPE_BOX[/code].
</member>
<member name="emission_color_texture" type="Texture" setter="set_emission_color_texture" getter="get_emission_color_texture">
+ Particle color will be modulated by color determined by sampling this texture at the same point as the [member emission_point_texture].
</member>
<member name="emission_normal_texture" type="Texture" setter="set_emission_normal_texture" getter="get_emission_normal_texture">
+ Particle velocity and rotation will be set by sampling this texture at the same point as the [member emission_point_texture]. Used only in [code]EMISSION_SHAPE_DIRECTED[/code]. Can be created automatically from mesh or node by selecting "Create Emission Points from Mesh/Node" under the "Particles" tool in the toolbar.
</member>
<member name="emission_point_count" type="int" setter="set_emission_point_count" getter="get_emission_point_count">
The number of emission points if [code]emission_shape[/code] is set to [code]EMISSION_SHAPE_POINTS[/code] or [code]EMISSION_SHAPE_DIRECTED_POINTS[/code].
</member>
<member name="emission_point_texture" type="Texture" setter="set_emission_point_texture" getter="get_emission_point_texture">
+ Particles will be emitted at positions determined by sampling this texture at a random position. Used with [code]EMISSION_SHAPE_POINTS[/code] and [code]EMISSION_SHAPE_DIRECTED_POINTS[/code]. Can be created automatically from mesh or node by selecting "Create Emission Points from Mesh/Node" under the "Particles" tool in the toolbar.
</member>
<member name="emission_shape" type="int" setter="set_emission_shape" getter="get_emission_shape" enum="ParticlesMaterial.EmissionShape">
Particles will be emitted inside this region. Use [code]EMISSION_SHAPE_*[/code] constants for values. Default value: [code]EMISSION_SHAPE_POINT[/code].
@@ -84,16 +88,19 @@
The sphere's radius if [code]emission_shape[/code] is set to [code]EMISSION_SHAPE_SPHERE[/code].
</member>
<member name="flag_align_y" type="bool" setter="set_flag" getter="get_flag">
+ Align y-axis of particle with the direction of its velocity.
</member>
<member name="flag_disable_z" type="bool" setter="set_flag" getter="get_flag">
- If [code]true[/code] particles will not move on the z axis. Default value: [code]true[/code] for [Particles2D], [code]false[/code] for [Particles].
+ If [code]true[/code], particles will not move on the z axis. Default value: [code]true[/code] for [Particles2D], [code]false[/code] for [Particles].
</member>
<member name="flag_rotate_y" type="bool" setter="set_flag" getter="get_flag">
+ If [code]true[/code], particles rotate around y-axis by [member angle].
</member>
<member name="flatness" type="float" setter="set_flatness" getter="get_flatness">
+ Amount of [member spread] in Y/Z plane. A value of [code]1[/code] restricts particles to X/Z plane. Default [code]0[/code].
</member>
<member name="gravity" type="Vector3" setter="set_gravity" getter="get_gravity">
- Gravity applied to every particle. Default value: [code](0, 98, 0)[/code].
+ Gravity applied to every particle. Default value: [code](0, -9.8, 0)[/code].
</member>
<member name="hue_variation" type="float" setter="set_param" getter="get_param">
Initial hue variation applied to each particle.
@@ -105,13 +112,13 @@
Hue variation randomness ratio. Default value: [code]0[/code].
</member>
<member name="initial_velocity" type="float" setter="set_param" getter="get_param">
- Initial velocity for each particle.
+ Initial velocity magnitude for each particle. Direction comes from [member spread] and the node's orientation.
</member>
<member name="initial_velocity_random" type="float" setter="set_param_randomness" getter="get_param_randomness">
Initial velocity randomness ratio. Default value: [code]0[/code].
</member>
<member name="linear_accel" type="float" setter="set_param" getter="get_param">
- Linear acceleration applied to each particle.
+ Linear acceleration applied to each particle in the direction of motion.
</member>
<member name="linear_accel_curve" type="Texture" setter="set_param_texture" getter="get_param_texture">
Each particle's linear acceleration will vary along this [CurveTexture].
@@ -120,7 +127,8 @@
Linear acceleration randomness ratio. Default value: [code]0[/code].
</member>
<member name="orbit_velocity" type="float" setter="set_param" getter="get_param">
- Orbital velocity applied to each particle.
+ Orbital velocity applied to each particle. Makes the particles circle around origin. Specified in number of full rotations around origin per second.
+ Only available when [member flag_disable_z] is [code]true[/code].
</member>
<member name="orbit_velocity_curve" type="Texture" setter="set_param_texture" getter="get_param_texture">
Each particle's orbital velocity will vary along this [CurveTexture].
@@ -129,7 +137,7 @@
Orbital velocity randomness ratio. Default value: [code]0[/code].
</member>
<member name="radial_accel" type="float" setter="set_param" getter="get_param">
- Radial acceleration applied to each particle.
+ Radial acceleration applied to each particle. Makes particle accelerate away from origin.
</member>
<member name="radial_accel_curve" type="Texture" setter="set_param_texture" getter="get_param_texture">
Each particle's radial acceleration will vary along this [CurveTexture].
@@ -147,10 +155,10 @@
Scale randomness ratio. Default value: [code]0[/code].
</member>
<member name="spread" type="float" setter="set_spread" getter="get_spread">
- Each particle's initial direction range from [code]+spread[/code] to [code]-spread[/code] degrees. Default value: [code]45[/code].
+ Each particle's initial direction range from [code]+spread[/code] to [code]-spread[/code] degrees. Default value: [code]45[/code]. Applied to X/Z plane and Y/Z planes.
</member>
<member name="tangential_accel" type="float" setter="set_param" getter="get_param">
- Tangential acceleration applied to each particle. Tangential acceleration is perpendicular to the particle's velocity.
+ Tangential acceleration applied to each particle. Tangential acceleration is perpendicular to the particle's velocity giving the particles a swirling motion.
</member>
<member name="tangential_accel_curve" type="Texture" setter="set_param_texture" getter="get_param_texture">
Each particle's tangential acceleration will vary along this [CurveTexture].
@@ -176,7 +184,7 @@
Use with [method set_param], [method set_param_randomness], and [method set_param_texture] to set angular velocity properties.
</constant>
<constant name="PARAM_ORBIT_VELOCITY" value="2" enum="Parameter">
- Use with [method set_param], [method set_param_randomness], and [method set_param_texture] to set orbital_velocity properties.
+ Use with [method set_param], [method set_param_randomness], and [method set_param_texture] to set orbital velocity properties.
</constant>
<constant name="PARAM_LINEAR_ACCEL" value="3" enum="Parameter">
Use with [method set_param], [method set_param_randomness], and [method set_param_texture] to set linear acceleration properties.
@@ -197,7 +205,7 @@
Use with [method set_param], [method set_param_randomness], and [method set_param_texture] to set scale properties.
</constant>
<constant name="PARAM_HUE_VARIATION" value="9" enum="Parameter">
- Use with [method set_param], [method set_param_randomness], and [method set_param_texture] to set hue_variation properties.
+ Use with [method set_param], [method set_param_randomness], and [method set_param_texture] to set hue variation properties.
</constant>
<constant name="PARAM_ANIM_SPEED" value="10" enum="Parameter">
Use with [method set_param], [method set_param_randomness], and [method set_param_texture] to set animation speed properties.
@@ -206,14 +214,19 @@
Use with [method set_param], [method set_param_randomness], and [method set_param_texture] to set animation offset properties.
</constant>
<constant name="PARAM_MAX" value="12" enum="Parameter">
+ Represents the size of the [enum Parameter] enum.
</constant>
<constant name="FLAG_ALIGN_Y_TO_VELOCITY" value="0" enum="Flags">
Use with [method set_flag] to set [member flag_align_y].
</constant>
<constant name="FLAG_ROTATE_Y" value="1" enum="Flags">
- Use with [method set_flag] to set [member flag_rotate_y]
+ Use with [method set_flag] to set [member flag_rotate_y].
+ </constant>
+ <constant name="FLAG_DISABLE_Z" value="2" enum="Flags">
+ Use with [method set_flag] to set [member flag_disable_z].
</constant>
<constant name="FLAG_MAX" value="3" enum="Flags">
+ Represents the size of the [enum Flags] enum.
</constant>
<constant name="EMISSION_SHAPE_POINT" value="0" enum="EmissionShape">
All particles will be emitted from a single point.
@@ -225,8 +238,10 @@
Particles will be emitted in the volume of a box.
</constant>
<constant name="EMISSION_SHAPE_POINTS" value="3" enum="EmissionShape">
+ Particles will be emitted at a position determined by sampling a random point on the [member emission_point_texture]. Particle color will be modulated by [member emission_color_texture].
</constant>
<constant name="EMISSION_SHAPE_DIRECTED_POINTS" value="4" enum="EmissionShape">
+ Particles will be emitted at a position determined by sampling a random point on the [member emission_point_texture]. Particle velocity and rotation will be set based on [member emission_normal_texture]. Particle color will be modulated by [member emission_color_texture].
</constant>
</constants>
</class>
diff --git a/doc/classes/Path.xml b/doc/classes/Path.xml
index 5ece747aaf..1b553dbc02 100644
--- a/doc/classes/Path.xml
+++ b/doc/classes/Path.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="Path" inherits="Spatial" category="Core" version="3.1">
+<class name="Path" inherits="Spatial" category="Core" version="3.2">
<brief_description>
Container for a [Curve3D].
</brief_description>
@@ -8,8 +8,6 @@
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
</methods>
<members>
diff --git a/doc/classes/Path2D.xml b/doc/classes/Path2D.xml
index 5e40fb6956..ce15b3eab2 100644
--- a/doc/classes/Path2D.xml
+++ b/doc/classes/Path2D.xml
@@ -1,15 +1,14 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="Path2D" inherits="Node2D" category="Core" version="3.1">
+<class name="Path2D" inherits="Node2D" category="Core" version="3.2">
<brief_description>
Contains a [Curve2D] path for [PathFollow2D] nodes to follow.
</brief_description>
<description>
Can have [PathFollow2D] child-nodes moving along the [Curve2D]. See [PathFollow2D] for more information on this usage.
+ Note that the path is considered as relative to the moved nodes (children of [PathFollow2D]) - usually the curve should start with a zero vector (0, 0).
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
</methods>
<members>
diff --git a/doc/classes/PathFollow.xml b/doc/classes/PathFollow.xml
index 650fed7ec6..ba27ca04eb 100644
--- a/doc/classes/PathFollow.xml
+++ b/doc/classes/PathFollow.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="PathFollow" inherits="Spatial" category="Core" version="3.1">
+<class name="PathFollow" inherits="Spatial" category="Core" version="3.2">
<brief_description>
Point sampler for a [Path].
</brief_description>
@@ -9,13 +9,11 @@
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
</methods>
<members>
<member name="cubic_interp" type="bool" setter="set_cubic_interpolation" getter="get_cubic_interpolation">
- If [code]true[/code] the position between two cached points is interpolated cubically, and linearly otherwise.
+ If [code]true[/code], the position between two cached points is interpolated cubically, and linearly otherwise.
The points along the [Curve3D] of the [Path] are precomputed before use, for faster calculations. The point at the requested offset is then calculated interpolating between two adjacent cached points. This may present a problem if the curve makes sharp turns, as the cached points may not follow the curve closely enough.
There are two answers to this problem: Either increase the number of cached points and increase memory consumption, or make a cubic interpolation between two points at the cost of (slightly) slower calculations.
</member>
@@ -51,5 +49,8 @@
<constant name="ROTATION_XYZ" value="3" enum="RotationMode">
Allows the PathFollow to rotate in any axis.
</constant>
+ <constant name="ROTATION_ORIENTED" value="4" enum="RotationMode">
+ Uses the up vector information in a [Curve3D] to enforce orientation. This rotation mode requires the [Path]'s [member Curve3D.up_vector_enabled] property to be set to [code]true[/code].
+ </constant>
</constants>
</class>
diff --git a/doc/classes/PathFollow2D.xml b/doc/classes/PathFollow2D.xml
index 515c921d0d..6f38b9f08d 100644
--- a/doc/classes/PathFollow2D.xml
+++ b/doc/classes/PathFollow2D.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="PathFollow2D" inherits="Node2D" category="Core" version="3.1">
+<class name="PathFollow2D" inherits="Node2D" category="Core" version="3.2">
<brief_description>
Point sampler for a [Path2D].
</brief_description>
@@ -9,13 +9,11 @@
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
</methods>
<members>
<member name="cubic_interp" type="bool" setter="set_cubic_interpolation" getter="get_cubic_interpolation">
- If [code]true[/code] the position between two cached points is interpolated cubically, and linearly otherwise.
+ If [code]true[/code], the position between two cached points is interpolated cubically, and linearly otherwise.
The points along the [Curve2D] of the [Path2D] are precomputed before use, for faster calculations. The point at the requested offset is then calculated interpolating between two adjacent cached points. This may present a problem if the curve makes sharp turns, as the cached points may not follow the curve closely enough.
There are two answers to this problem: Either increase the number of cached points and increase memory consumption, or make a cubic interpolation between two points at the cost of (slightly) slower calculations.
</member>
diff --git a/doc/classes/Performance.xml b/doc/classes/Performance.xml
index 3b11d9e47f..3860511615 100644
--- a/doc/classes/Performance.xml
+++ b/doc/classes/Performance.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="Performance" inherits="Object" category="Core" version="3.1">
+<class name="Performance" inherits="Object" category="Core" version="3.2">
<brief_description>
Exposes performance related data.
</brief_description>
@@ -9,8 +9,6 @@
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
<method name="get_monitor" qualifiers="const">
<return type="float">
@@ -57,58 +55,60 @@
Number of resources currently used.
</constant>
<constant name="OBJECT_NODE_COUNT" value="10" enum="Monitor">
- Number of nodes currently instanced. This also includes the root node, as well as any nodes not in the scene tree.
+ Number of nodes currently instanced in the scene tree. This also includes the root node.
</constant>
- <constant name="RENDER_OBJECTS_IN_FRAME" value="11" enum="Monitor">
+ <constant name="OBJECT_ORPHAN_NODE_COUNT" value="11" enum="Monitor">
+ </constant>
+ <constant name="RENDER_OBJECTS_IN_FRAME" value="12" enum="Monitor">
3D objects drawn per frame.
</constant>
- <constant name="RENDER_VERTICES_IN_FRAME" value="12" enum="Monitor">
+ <constant name="RENDER_VERTICES_IN_FRAME" value="13" enum="Monitor">
Vertices drawn per frame. 3D only.
</constant>
- <constant name="RENDER_MATERIAL_CHANGES_IN_FRAME" value="13" enum="Monitor">
+ <constant name="RENDER_MATERIAL_CHANGES_IN_FRAME" value="14" enum="Monitor">
Material changes per frame. 3D only
</constant>
- <constant name="RENDER_SHADER_CHANGES_IN_FRAME" value="14" enum="Monitor">
+ <constant name="RENDER_SHADER_CHANGES_IN_FRAME" value="15" enum="Monitor">
Shader changes per frame. 3D only.
</constant>
- <constant name="RENDER_SURFACE_CHANGES_IN_FRAME" value="15" enum="Monitor">
+ <constant name="RENDER_SURFACE_CHANGES_IN_FRAME" value="16" enum="Monitor">
Render surface changes per frame. 3D only.
</constant>
- <constant name="RENDER_DRAW_CALLS_IN_FRAME" value="16" enum="Monitor">
+ <constant name="RENDER_DRAW_CALLS_IN_FRAME" value="17" enum="Monitor">
Draw calls per frame. 3D only.
</constant>
- <constant name="RENDER_VIDEO_MEM_USED" value="17" enum="Monitor">
+ <constant name="RENDER_VIDEO_MEM_USED" value="18" enum="Monitor">
Video memory used. Includes both texture and vertex memory.
</constant>
- <constant name="RENDER_TEXTURE_MEM_USED" value="18" enum="Monitor">
+ <constant name="RENDER_TEXTURE_MEM_USED" value="19" enum="Monitor">
Texture memory used.
</constant>
- <constant name="RENDER_VERTEX_MEM_USED" value="19" enum="Monitor">
+ <constant name="RENDER_VERTEX_MEM_USED" value="20" enum="Monitor">
Vertex memory used.
</constant>
- <constant name="RENDER_USAGE_VIDEO_MEM_TOTAL" value="20" enum="Monitor">
+ <constant name="RENDER_USAGE_VIDEO_MEM_TOTAL" value="21" enum="Monitor">
</constant>
- <constant name="PHYSICS_2D_ACTIVE_OBJECTS" value="21" enum="Monitor">
+ <constant name="PHYSICS_2D_ACTIVE_OBJECTS" value="22" enum="Monitor">
Number of active [RigidBody2D] nodes in the game.
</constant>
- <constant name="PHYSICS_2D_COLLISION_PAIRS" value="22" enum="Monitor">
+ <constant name="PHYSICS_2D_COLLISION_PAIRS" value="23" enum="Monitor">
Number of collision pairs in the 2D physics engine.
</constant>
- <constant name="PHYSICS_2D_ISLAND_COUNT" value="23" enum="Monitor">
+ <constant name="PHYSICS_2D_ISLAND_COUNT" value="24" enum="Monitor">
Number of islands in the 2D physics engine.
</constant>
- <constant name="PHYSICS_3D_ACTIVE_OBJECTS" value="24" enum="Monitor">
+ <constant name="PHYSICS_3D_ACTIVE_OBJECTS" value="25" enum="Monitor">
Number of active [RigidBody] and [VehicleBody] nodes in the game.
</constant>
- <constant name="PHYSICS_3D_COLLISION_PAIRS" value="25" enum="Monitor">
+ <constant name="PHYSICS_3D_COLLISION_PAIRS" value="26" enum="Monitor">
Number of collision pairs in the 3D physics engine.
</constant>
- <constant name="PHYSICS_3D_ISLAND_COUNT" value="26" enum="Monitor">
+ <constant name="PHYSICS_3D_ISLAND_COUNT" value="27" enum="Monitor">
Number of islands in the 3D physics engine.
</constant>
- <constant name="AUDIO_OUTPUT_LATENCY" value="27" enum="Monitor">
+ <constant name="AUDIO_OUTPUT_LATENCY" value="28" enum="Monitor">
</constant>
- <constant name="MONITOR_MAX" value="28" enum="Monitor">
+ <constant name="MONITOR_MAX" value="29" enum="Monitor">
</constant>
</constants>
</class>
diff --git a/doc/classes/PhysicalBone.xml b/doc/classes/PhysicalBone.xml
index 5eb4550e93..bf379afab8 100644
--- a/doc/classes/PhysicalBone.xml
+++ b/doc/classes/PhysicalBone.xml
@@ -1,13 +1,11 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="PhysicalBone" inherits="PhysicsBody" category="Core" version="3.1">
+<class name="PhysicalBone" inherits="PhysicsBody" category="Core" version="3.2">
<brief_description>
</brief_description>
<description>
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
<method name="get_bone_id" qualifiers="const">
<return type="int">
diff --git a/doc/classes/Physics2DDirectBodyState.xml b/doc/classes/Physics2DDirectBodyState.xml
index 52c89248ff..1fd578ecd8 100644
--- a/doc/classes/Physics2DDirectBodyState.xml
+++ b/doc/classes/Physics2DDirectBodyState.xml
@@ -1,15 +1,14 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="Physics2DDirectBodyState" inherits="Object" category="Core" version="3.1">
+<class name="Physics2DDirectBodyState" inherits="Object" category="Core" version="3.2">
<brief_description>
Direct access object to a physics body in the [Physics2DServer].
</brief_description>
<description>
- Direct access object to a physics body in the [Physics2DServer]. This object is passed via the direct state callback of rigid/character bodies, and is intended for changing the direct state of that body.
+ Provides direct access to a physics body in the [Physics2DServer], allowing safe changes to physics properties. This object is passed via the direct state callback of rigid/character bodies, and is intended for changing the direct state of that body. See [method RigidBody2D._integrate_forces].
</description>
<tutorials>
+ <link>https://docs.godotengine.org/en/latest/tutorials/physics/ray-casting.html</link>
</tutorials>
- <demos>
- </demos>
<methods>
<method name="add_central_force">
<return type="void">
@@ -17,6 +16,7 @@
<argument index="0" name="force" type="Vector2">
</argument>
<description>
+ Adds a constant directional force without affecting rotation.
</description>
</method>
<method name="add_force">
@@ -27,6 +27,7 @@
<argument index="1" name="force" type="Vector2">
</argument>
<description>
+ Adds a positioned force to the body. Both the force and the offset from the body origin are in global coordinates.
</description>
</method>
<method name="add_torque">
@@ -35,6 +36,7 @@
<argument index="0" name="torque" type="float">
</argument>
<description>
+ Adds a constant rotational force.
</description>
</method>
<method name="apply_central_impulse">
@@ -43,6 +45,7 @@
<argument index="0" name="impulse" type="Vector2">
</argument>
<description>
+ Applies a directional impulse without affecting rotation.
</description>
</method>
<method name="apply_impulse">
@@ -53,6 +56,7 @@
<argument index="1" name="impulse" type="Vector2">
</argument>
<description>
+ Applies a positioned impulse to the body. An impulse is time independent! Applying an impulse every frame would result in a framerate dependent force. For this reason it should only be used when simulating one-time impacts (use the "_force" functions otherwise). The offset uses the rotation of the global coordinate system, but is centered at the object's origin.
</description>
</method>
<method name="apply_torque_impulse">
@@ -61,6 +65,7 @@
<argument index="0" name="impulse" type="float">
</argument>
<description>
+ Applies a rotational impulse to the body.
</description>
</method>
<method name="get_contact_collider" qualifiers="const">
@@ -69,7 +74,7 @@
<argument index="0" name="contact_idx" type="int">
</argument>
<description>
- Return the [RID] of the collider.
+ Returns the collider's [RID].
</description>
</method>
<method name="get_contact_collider_id" qualifiers="const">
@@ -78,7 +83,7 @@
<argument index="0" name="contact_idx" type="int">
</argument>
<description>
- Return the object id of the collider.
+ Returns the collider's object id.
</description>
</method>
<method name="get_contact_collider_object" qualifiers="const">
@@ -87,7 +92,7 @@
<argument index="0" name="contact_idx" type="int">
</argument>
<description>
- Return the collider object, this depends on how it was created (will return a scene node if such was used to create it).
+ Returns the collider object. This depends on how it was created (will return a scene node if such was used to create it).
</description>
</method>
<method name="get_contact_collider_position" qualifiers="const">
@@ -96,7 +101,7 @@
<argument index="0" name="contact_idx" type="int">
</argument>
<description>
- Return the contact position in the collider.
+ Returns the contact position in the collider.
</description>
</method>
<method name="get_contact_collider_shape" qualifiers="const">
@@ -105,7 +110,7 @@
<argument index="0" name="contact_idx" type="int">
</argument>
<description>
- Return the collider shape index.
+ Returns the collider's shape index.
</description>
</method>
<method name="get_contact_collider_shape_metadata" qualifiers="const">
@@ -114,7 +119,7 @@
<argument index="0" name="contact_idx" type="int">
</argument>
<description>
- Return the metadata of the collided shape. This metadata is different from [method Object.get_meta], and is set with [method Physics2DServer.shape_set_data].
+ Returns the collided shape's metadata. This metadata is different from [method Object.get_meta], and is set with [method Physics2DServer.shape_set_data].
</description>
</method>
<method name="get_contact_collider_velocity_at_position" qualifiers="const">
@@ -123,14 +128,14 @@
<argument index="0" name="contact_idx" type="int">
</argument>
<description>
- Return the linear velocity vector at contact point of the collider.
+ Returns the linear velocity vector at the collider's contact point.
</description>
</method>
<method name="get_contact_count" qualifiers="const">
<return type="int">
</return>
<description>
- Return the amount of contacts this body has with other bodies. Note that by default this returns 0 unless bodies are configured to log contacts.
+ Returns the number of contacts this body has with other bodies. Note that by default this returns 0 unless bodies are configured to log contacts. See [member RigidBody2D.contact_monitor].
</description>
</method>
<method name="get_contact_local_normal" qualifiers="const">
@@ -139,7 +144,7 @@
<argument index="0" name="contact_idx" type="int">
</argument>
<description>
- Return the local normal (of this body) of the contact point.
+ Returns the local normal at the contact point.
</description>
</method>
<method name="get_contact_local_position" qualifiers="const">
@@ -148,7 +153,7 @@
<argument index="0" name="contact_idx" type="int">
</argument>
<description>
- Return the local position (of this body) of the contact point.
+ Returns the local position of the contact point.
</description>
</method>
<method name="get_contact_local_shape" qualifiers="const">
@@ -157,27 +162,27 @@
<argument index="0" name="contact_idx" type="int">
</argument>
<description>
- Return the local shape index of the collision.
+ Returns the local shape index of the collision.
</description>
</method>
<method name="get_space_state">
<return type="Physics2DDirectSpaceState">
</return>
<description>
- Return the current state of space, useful for queries.
+ Returns the current state of the space, useful for queries.
</description>
</method>
<method name="integrate_forces">
<return type="void">
</return>
<description>
- Call the built-in force integration code.
+ Calls the built-in force integration code.
</description>
</method>
</methods>
<members>
<member name="angular_velocity" type="float" setter="set_angular_velocity" getter="get_angular_velocity">
- The angular velocity of the body.
+ The body's rotational velocity.
</member>
<member name="inverse_inertia" type="float" setter="" getter="get_inverse_inertia">
The inverse of the inertia of the body.
@@ -186,10 +191,10 @@
The inverse of the mass of the body.
</member>
<member name="linear_velocity" type="Vector2" setter="set_linear_velocity" getter="get_linear_velocity">
- The linear velocity of the body.
+ The body's linear velocity.
</member>
<member name="sleeping" type="bool" setter="set_sleep_state" getter="is_sleeping">
- [code]true[/code] if this body is currently sleeping (not active).
+ If [code]true[/code], this body is currently sleeping (not active).
</member>
<member name="step" type="float" setter="" getter="get_step">
The timestep (delta) used for the simulation.
@@ -204,7 +209,7 @@
The rate at which the body stops moving, if there are not any other forces moving it.
</member>
<member name="transform" type="Transform2D" setter="set_transform" getter="get_transform">
- The transformation matrix of the body.
+ The body's transformation matrix.
</member>
</members>
<constants>
diff --git a/doc/classes/Physics2DDirectBodyStateSW.xml b/doc/classes/Physics2DDirectBodyStateSW.xml
index cb1e9239b3..8aeea560c3 100644
--- a/doc/classes/Physics2DDirectBodyStateSW.xml
+++ b/doc/classes/Physics2DDirectBodyStateSW.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="Physics2DDirectBodyStateSW" inherits="Physics2DDirectBodyState" category="Core" version="3.1">
+<class name="Physics2DDirectBodyStateSW" inherits="Physics2DDirectBodyState" category="Core" version="3.2">
<brief_description>
Software implementation of [Physics2DDirectBodyState].
</brief_description>
@@ -8,8 +8,6 @@
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
</methods>
<constants>
diff --git a/doc/classes/Physics2DDirectSpaceState.xml b/doc/classes/Physics2DDirectSpaceState.xml
index 81db70f435..040d7d05c3 100644
--- a/doc/classes/Physics2DDirectSpaceState.xml
+++ b/doc/classes/Physics2DDirectSpaceState.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="Physics2DDirectSpaceState" inherits="Object" category="Core" version="3.1">
+<class name="Physics2DDirectSpaceState" inherits="Object" category="Core" version="3.2">
<brief_description>
Direct access object to a space in the [Physics2DServer].
</brief_description>
@@ -9,8 +9,6 @@
<tutorials>
<link>https://docs.godotengine.org/en/latest/tutorials/physics/ray-casting.html</link>
</tutorials>
- <demos>
- </demos>
<methods>
<method name="cast_motion">
<return type="Array">
@@ -18,7 +16,7 @@
<argument index="0" name="shape" type="Physics2DShapeQueryParameters">
</argument>
<description>
- Checks how far the shape can travel toward a point. Note that both the shape and the motion are supplied through a [Physics2DShapeQueryParameters] object. The method will return an array with two floats between 0 and 1, both representing a fraction of [code]motion[/code]. The first is how far the shape can move without triggering a collision, and the second is the point at which a collision will occur. If no collision is detected, the returned array will be [1, 1].
+ Checks how far the shape can travel toward a point. Note that both the shape and the motion are supplied through a [Physics2DShapeQueryParameters] object. The method will return an array with two floats between 0 and 1, both representing a fraction of [code]motion[/code]. The first is how far the shape can move without triggering a collision, and the second is the point at which a collision will occur. If no collision is detected, the returned array will be [code][1, 1][/code].
If the shape can not move, the array will be empty.
</description>
</method>
diff --git a/doc/classes/Physics2DServer.xml b/doc/classes/Physics2DServer.xml
index 84e15d3b26..172420e4ca 100644
--- a/doc/classes/Physics2DServer.xml
+++ b/doc/classes/Physics2DServer.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="Physics2DServer" inherits="Object" category="Core" version="3.1">
+<class name="Physics2DServer" inherits="Object" category="Core" version="3.2">
<brief_description>
Physics 2D Server.
</brief_description>
@@ -8,8 +8,6 @@
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
<method name="area_add_shape">
<return type="void">
@@ -20,6 +18,8 @@
</argument>
<argument index="2" name="transform" type="Transform2D" default="Transform2D( 1, 0, 0, 1, 0, 0 )">
</argument>
+ <argument index="3" name="disabled" type="bool" default="false">
+ </argument>
<description>
Adds a shape to the area, along with a transform matrix. Shapes are usually referenced by their index, so you should track which shape has a given index.
</description>
@@ -253,7 +253,7 @@
</argument>
<argument index="1" name="shape_idx" type="int">
</argument>
- <argument index="2" name="disable" type="bool">
+ <argument index="2" name="disabled" type="bool">
</argument>
<description>
Disables a given shape in an area.
@@ -348,6 +348,8 @@
</argument>
<argument index="2" name="transform" type="Transform2D" default="Transform2D( 1, 0, 0, 1, 0, 0 )">
</argument>
+ <argument index="3" name="disabled" type="bool" default="false">
+ </argument>
<description>
Adds a shape to the body, along with a transform matrix. Shapes are usually referenced by their index, so you should track which shape has a given index.
</description>
@@ -735,6 +737,8 @@
</argument>
<argument index="2" name="enable" type="bool">
</argument>
+ <argument index="3" name="margin" type="float">
+ </argument>
<description>
Enables one way collision on body if [code]enable[/code] is [code]true[/code].
</description>
@@ -746,7 +750,7 @@
</argument>
<argument index="1" name="shape_idx" type="int">
</argument>
- <argument index="2" name="disable" type="bool">
+ <argument index="2" name="disabled" type="bool">
</argument>
<description>
Disables shape in body if [code]disable[/code] is [code]true[/code].
@@ -1110,6 +1114,8 @@
<constant name="SPACE_PARAM_CONSTRAINT_DEFAULT_BIAS" value="6" enum="SpaceParameter">
Constant to set/get the default solver bias for all physics constraints. A solver bias is a factor controlling how much two objects "rebound", after violating a constraint, to avoid leaving them in that state because of numerical imprecision.
</constant>
+ <constant name="SPACE_PARAM_TEST_MOTION_MIN_CONTACT_DEPTH" value="7" enum="SpaceParameter">
+ </constant>
<constant name="SHAPE_LINE" value="0" enum="ShapeType">
This is the constant for creating line shapes. A line shape is an infinite line with an origin point, and a normal. Thus, it can be used for front/behind checks.
</constant>
@@ -1128,7 +1134,7 @@
This is the constant for creating capsule shapes. A capsule shape is defined by a radius and a length. It can be used for intersections and inside/outside checks.
</constant>
<constant name="SHAPE_CONVEX_POLYGON" value="6" enum="ShapeType">
- This is the constant for creating convex polygon shapes. A polygon is defined by a list of points. It can be used for intersections and inside/outside checks. Unlike the method [method CollisionPolygon2D.set_polygon], polygons modified with [method shape_set_data] do not verify that the points supplied form is a convex polygon.
+ This is the constant for creating convex polygon shapes. A polygon is defined by a list of points. It can be used for intersections and inside/outside checks. Unlike the [member CollisionPolygon2D.polygon] property, polygons modified with [method shape_set_data] do not verify that the points supplied form is a convex polygon.
</constant>
<constant name="SHAPE_CONCAVE_POLYGON" value="7" enum="ShapeType">
This is the constant for creating concave polygon shapes. A polygon is defined by a list of points. It can be used for intersections checks, but not for inside/outside checks.
diff --git a/doc/classes/Physics2DServerSW.xml b/doc/classes/Physics2DServerSW.xml
index 49157bd94b..e478a33e2c 100644
--- a/doc/classes/Physics2DServerSW.xml
+++ b/doc/classes/Physics2DServerSW.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="Physics2DServerSW" inherits="Physics2DServer" category="Core" version="3.1">
+<class name="Physics2DServerSW" inherits="Physics2DServer" category="Core" version="3.2">
<brief_description>
Software implementation of [Physics2DServer].
</brief_description>
@@ -8,8 +8,6 @@
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
</methods>
<constants>
diff --git a/doc/classes/Physics2DShapeQueryParameters.xml b/doc/classes/Physics2DShapeQueryParameters.xml
index f9e0c5e3de..43d9b71c94 100644
--- a/doc/classes/Physics2DShapeQueryParameters.xml
+++ b/doc/classes/Physics2DShapeQueryParameters.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="Physics2DShapeQueryParameters" inherits="Reference" category="Core" version="3.1">
+<class name="Physics2DShapeQueryParameters" inherits="Reference" category="Core" version="3.2">
<brief_description>
Parameters to be sent to a 2D shape physics query.
</brief_description>
@@ -8,8 +8,6 @@
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
<method name="set_shape">
<return type="void">
diff --git a/doc/classes/Physics2DShapeQueryResult.xml b/doc/classes/Physics2DShapeQueryResult.xml
index 52e7294e24..dd38b488f5 100644
--- a/doc/classes/Physics2DShapeQueryResult.xml
+++ b/doc/classes/Physics2DShapeQueryResult.xml
@@ -1,13 +1,11 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="Physics2DShapeQueryResult" inherits="Reference" category="Core" version="3.1">
+<class name="Physics2DShapeQueryResult" inherits="Reference" category="Core" version="3.2">
<brief_description>
</brief_description>
<description>
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
<method name="get_result_count" qualifiers="const">
<return type="int">
diff --git a/doc/classes/Physics2DTestMotionResult.xml b/doc/classes/Physics2DTestMotionResult.xml
index 3b864433f0..a0f8a1ca4c 100644
--- a/doc/classes/Physics2DTestMotionResult.xml
+++ b/doc/classes/Physics2DTestMotionResult.xml
@@ -1,13 +1,11 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="Physics2DTestMotionResult" inherits="Reference" category="Core" version="3.1">
+<class name="Physics2DTestMotionResult" inherits="Reference" category="Core" version="3.2">
<brief_description>
</brief_description>
<description>
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
</methods>
<members>
diff --git a/doc/classes/PhysicsBody.xml b/doc/classes/PhysicsBody.xml
index 2658732f84..fc4f2e18fd 100644
--- a/doc/classes/PhysicsBody.xml
+++ b/doc/classes/PhysicsBody.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="PhysicsBody" inherits="CollisionObject" category="Core" version="3.1">
+<class name="PhysicsBody" inherits="CollisionObject" category="Core" version="3.2">
<brief_description>
Base class for all objects affected by physics in 3D space.
</brief_description>
@@ -9,8 +9,6 @@
<tutorials>
<link>https://docs.godotengine.org/en/latest/tutorials/physics/physics_introduction.html</link>
</tutorials>
- <demos>
- </demos>
<methods>
<method name="add_collision_exception_with">
<return type="void">
@@ -34,7 +32,7 @@
<argument index="0" name="bit" type="int">
</argument>
<description>
- Returns an individual bit on the collision mask.
+ Returns an individual bit on the [member collision_layer].
</description>
</method>
<method name="get_collision_mask_bit" qualifiers="const">
@@ -43,7 +41,7 @@
<argument index="0" name="bit" type="int">
</argument>
<description>
- Returns an individual bit on the collision mask.
+ Returns an individual bit on the [member collision_mask].
</description>
</method>
<method name="remove_collision_exception_with">
@@ -63,7 +61,7 @@
<argument index="1" name="value" type="bool">
</argument>
<description>
- Sets individual bits on the layer mask. Use this if you only need to change one layer's value.
+ Sets individual bits on the [member collision_layer] bitmask. Use this if you only need to change one layer's value.
</description>
</method>
<method name="set_collision_mask_bit">
@@ -74,18 +72,20 @@
<argument index="1" name="value" type="bool">
</argument>
<description>
- Sets individual bits on the collision mask. Use this if you only need to change one layer's value.
+ Sets individual bits on the [member collision_mask] bitmask. Use this if you only need to change one layer's value.
</description>
</method>
</methods>
<members>
<member name="collision_layer" type="int" setter="set_collision_layer" getter="get_collision_layer">
The physics layers this area is in.
- Collidable objects can exist in any of 32 different layers. These layers work like a tagging system, and are not visual. A collidable can use these layers to select with which objects it can collide, using the collision_mask property.
+ Collidable objects can exist in any of 32 different layers. These layers work like a tagging system, and are not visual. A collidable can use these layers to select with which objects it can collide, using the [member collision_mask] property.
A contact is detected if object A is in any of the layers that object B scans, or object B is in any layer scanned by object A.
+ Default value: 1 (the first layer/bit is enabled).
</member>
<member name="collision_mask" type="int" setter="set_collision_mask" getter="get_collision_mask">
The physics layers this area scans for collisions.
+ Default value: 1 (the first layer/bit is enabled).
</member>
</members>
<constants>
diff --git a/doc/classes/PhysicsBody2D.xml b/doc/classes/PhysicsBody2D.xml
index f848b6df70..a5024c2432 100644
--- a/doc/classes/PhysicsBody2D.xml
+++ b/doc/classes/PhysicsBody2D.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="PhysicsBody2D" inherits="CollisionObject2D" category="Core" version="3.1">
+<class name="PhysicsBody2D" inherits="CollisionObject2D" category="Core" version="3.2">
<brief_description>
Base class for all objects affected by physics in 2D space.
</brief_description>
@@ -9,8 +9,6 @@
<tutorials>
<link>https://docs.godotengine.org/en/latest/tutorials/physics/physics_introduction.html</link>
</tutorials>
- <demos>
- </demos>
<methods>
<method name="add_collision_exception_with">
<return type="void">
@@ -34,7 +32,7 @@
<argument index="0" name="bit" type="int">
</argument>
<description>
- Returns an individual bit on the collision mask.
+ Returns an individual bit on the [member collision_layer].
</description>
</method>
<method name="get_collision_mask_bit" qualifiers="const">
@@ -43,7 +41,7 @@
<argument index="0" name="bit" type="int">
</argument>
<description>
- Returns an individual bit on the collision mask.
+ Returns an individual bit on the [member collision_mask].
</description>
</method>
<method name="remove_collision_exception_with">
@@ -63,7 +61,7 @@
<argument index="1" name="value" type="bool">
</argument>
<description>
- Sets individual bits on the layer mask. Use this if you only need to change one layer's value.
+ Sets individual bits on the [member collision_layer] bitmask. Use this if you only need to change one layer's value.
</description>
</method>
<method name="set_collision_mask_bit">
@@ -74,18 +72,20 @@
<argument index="1" name="value" type="bool">
</argument>
<description>
- Sets individual bits on the collision mask. Use this if you only need to change one layer's value.
+ Sets individual bits on the [member collision_mask] bitmask. Use this if you only need to change one layer's value.
</description>
</method>
</methods>
<members>
<member name="collision_layer" type="int" setter="set_collision_layer" getter="get_collision_layer">
The physics layers this area is in.
- Collidable objects can exist in any of 32 different layers. These layers work like a tagging system, and are not visual. A collidable can use these layers to select with which objects it can collide, using the collision_mask property.
+ Collidable objects can exist in any of 32 different layers. These layers work like a tagging system, and are not visual. A collidable can use these layers to select with which objects it can collide, using the [member collision_mask] property.
A contact is detected if object A is in any of the layers that object B scans, or object B is in any layer scanned by object A.
+ Default value: 1 (the first layer/bit is enabled).
</member>
<member name="collision_mask" type="int" setter="set_collision_mask" getter="get_collision_mask">
The physics layers this area scans for collisions.
+ Default value: 1 (the first layer/bit is enabled).
</member>
<member name="layers" type="int" setter="_set_layers" getter="_get_layers">
Both [member collision_layer] and [member collision_mask]. Returns [member collision_layer] when accessed. Updates [member collision_layer] and [member collision_mask] when modified.
diff --git a/doc/classes/PhysicsDirectBodyState.xml b/doc/classes/PhysicsDirectBodyState.xml
index 2f3501ae5d..e556e8037a 100644
--- a/doc/classes/PhysicsDirectBodyState.xml
+++ b/doc/classes/PhysicsDirectBodyState.xml
@@ -1,13 +1,13 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="PhysicsDirectBodyState" inherits="Object" category="Core" version="3.1">
+<class name="PhysicsDirectBodyState" inherits="Object" category="Core" version="3.2">
<brief_description>
+ Direct access object to a physics body in the [PhysicsServer].
</brief_description>
<description>
+ Provides direct access to a physics body in the [PhysicsServer], allowing safe changes to physics properties. This object is passed via the direct state callback of rigid/character bodies, and is intended for changing the direct state of that body. See [method RigidBody._integrate_forces].
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
<method name="add_central_force">
<return type="void">
@@ -27,7 +27,7 @@
<argument index="1" name="position" type="Vector3">
</argument>
<description>
- Adds a constant force (i.e. acceleration).
+ Adds a positioned force to the body. Both the force and the offset from the body origin are in global coordinates.
</description>
</method>
<method name="add_torque">
@@ -36,7 +36,7 @@
<argument index="0" name="torque" type="Vector3">
</argument>
<description>
- Adds a constant rotational force (i.e. a motor) without affecting position.
+ Adds a constant rotational force without affecting position.
</description>
</method>
<method name="apply_central_impulse">
@@ -46,7 +46,7 @@
</argument>
<description>
Applies a single directional impulse without affecting rotation.
- This is equivalent to ``apply_impulse(Vector3(0,0,0), impulse)``.
+ This is equivalent to [code]apply_impulse(Vector3(0, 0, 0), impulse)[/code].
</description>
</method>
<method name="apply_impulse">
@@ -57,7 +57,7 @@
<argument index="1" name="j" type="Vector3">
</argument>
<description>
- Apply a positioned impulse (which will be affected by the body mass and shape). This is the equivalent of hitting a billiard ball with a cue: a force that is applied once, and only once. Both the impulse and the position are in global coordinates, and the position is relative to the object's origin.
+ Applies a positioned impulse to the body. An impulse is time independent! Applying an impulse every frame would result in a framerate dependent force. For this reason it should only be used when simulating one-time impacts. The position uses the rotation of the global coordinate system, but is centered at the object's origin.
</description>
</method>
<method name="apply_torque_impulse">
@@ -75,6 +75,7 @@
<argument index="0" name="contact_idx" type="int">
</argument>
<description>
+ Returns the collider's [RID].
</description>
</method>
<method name="get_contact_collider_id" qualifiers="const">
@@ -83,6 +84,7 @@
<argument index="0" name="contact_idx" type="int">
</argument>
<description>
+ Returns the collider's object id.
</description>
</method>
<method name="get_contact_collider_object" qualifiers="const">
@@ -91,6 +93,7 @@
<argument index="0" name="contact_idx" type="int">
</argument>
<description>
+ Returns the collider object.
</description>
</method>
<method name="get_contact_collider_position" qualifiers="const">
@@ -99,6 +102,7 @@
<argument index="0" name="contact_idx" type="int">
</argument>
<description>
+ Returns the contact position in the collider.
</description>
</method>
<method name="get_contact_collider_shape" qualifiers="const">
@@ -107,6 +111,7 @@
<argument index="0" name="contact_idx" type="int">
</argument>
<description>
+ Returns the collider's shape index.
</description>
</method>
<method name="get_contact_collider_velocity_at_position" qualifiers="const">
@@ -115,12 +120,14 @@
<argument index="0" name="contact_idx" type="int">
</argument>
<description>
+ Returns the linear velocity vector at the collider's contact point.
</description>
</method>
<method name="get_contact_count" qualifiers="const">
<return type="int">
</return>
<description>
+ Returns the number of contacts this body has with other bodies. Note that by default this returns 0 unless bodies are configured to log contacts. See [member RigidBody.contact_monitor].
</description>
</method>
<method name="get_contact_impulse" qualifiers="const">
@@ -138,6 +145,7 @@
<argument index="0" name="contact_idx" type="int">
</argument>
<description>
+ Returns the local normal at the contact point.
</description>
</method>
<method name="get_contact_local_position" qualifiers="const">
@@ -146,6 +154,7 @@
<argument index="0" name="contact_idx" type="int">
</argument>
<description>
+ Returns the local position of the contact point.
</description>
</method>
<method name="get_contact_local_shape" qualifiers="const">
@@ -154,24 +163,27 @@
<argument index="0" name="contact_idx" type="int">
</argument>
<description>
+ Returns the local shape index of the collision.
</description>
</method>
<method name="get_space_state">
<return type="PhysicsDirectSpaceState">
</return>
<description>
+ Returns the current state of the space, useful for queries.
</description>
</method>
<method name="integrate_forces">
<return type="void">
</return>
<description>
+ Calls the built-in force integration code.
</description>
</method>
</methods>
<members>
<member name="angular_velocity" type="Vector3" setter="set_angular_velocity" getter="get_angular_velocity">
- The angular velocity of the body.
+ The body's rotational velocity.
</member>
<member name="center_of_mass" type="Vector3" setter="" getter="get_center_of_mass">
</member>
@@ -182,12 +194,12 @@
The inverse of the mass of the body.
</member>
<member name="linear_velocity" type="Vector3" setter="set_linear_velocity" getter="get_linear_velocity">
- The linear velocity of the body.
+ The body's linear velocity.
</member>
<member name="principal_inertia_axes" type="Basis" setter="" getter="get_principal_inertia_axes">
</member>
<member name="sleeping" type="bool" setter="set_sleep_state" getter="is_sleeping">
- [code]true[/code] if this body is currently sleeping (not active).
+ If [code]true[/code], this body is currently sleeping (not active).
</member>
<member name="step" type="float" setter="" getter="get_step">
The timestep (delta) used for the simulation.
@@ -202,7 +214,7 @@
The rate at which the body stops moving, if there are not any other forces moving it.
</member>
<member name="transform" type="Transform" setter="set_transform" getter="get_transform">
- The transformation matrix of the body.
+ The body's transformation matrix.
</member>
</members>
<constants>
diff --git a/doc/classes/PhysicsDirectSpaceState.xml b/doc/classes/PhysicsDirectSpaceState.xml
index 350a9ed3ce..1a3324bf0e 100644
--- a/doc/classes/PhysicsDirectSpaceState.xml
+++ b/doc/classes/PhysicsDirectSpaceState.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="PhysicsDirectSpaceState" inherits="Object" category="Core" version="3.1">
+<class name="PhysicsDirectSpaceState" inherits="Object" category="Core" version="3.2">
<brief_description>
Direct access object to a space in the [PhysicsServer].
</brief_description>
@@ -9,8 +9,6 @@
<tutorials>
<link>https://docs.godotengine.org/en/latest/tutorials/physics/ray-casting.html</link>
</tutorials>
- <demos>
- </demos>
<methods>
<method name="cast_motion">
<return type="Array">
@@ -20,8 +18,8 @@
<argument index="1" name="motion" type="Vector3">
</argument>
<description>
- Checks whether the shape can travel to a point. The method will return an array with two floats between 0 and 1, both representing a fraction of [code]motion[/code]. The first is how far the shape can move without triggering a collision, and the second is the point at which a collision will occur. If no collision is detected, the returned array will be [1, 1].
- If the shape can not move, the returned array will be [0, 0].
+ Checks whether the shape can travel to a point. The method will return an array with two floats between 0 and 1, both representing a fraction of [code]motion[/code]. The first is how far the shape can move without triggering a collision, and the second is the point at which a collision will occur. If no collision is detected, the returned array will be [code][1, 1][/code].
+ If the shape can not move, the returned array will be [code][0, 0][/code] under Bullet, and empty under GodotPhysics.
</description>
</method>
<method name="collide_shape">
diff --git a/doc/classes/PhysicsMaterial.xml b/doc/classes/PhysicsMaterial.xml
index 3eebcc57a1..b507b4f9f5 100644
--- a/doc/classes/PhysicsMaterial.xml
+++ b/doc/classes/PhysicsMaterial.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="PhysicsMaterial" inherits="Resource" category="Core" version="3.1">
+<class name="PhysicsMaterial" inherits="Resource" category="Core" version="3.2">
<brief_description>
A material for physics properties.
</brief_description>
@@ -8,8 +8,6 @@
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
</methods>
<members>
diff --git a/doc/classes/PhysicsServer.xml b/doc/classes/PhysicsServer.xml
index 7dfc8e66d4..78a6ed8ac0 100644
--- a/doc/classes/PhysicsServer.xml
+++ b/doc/classes/PhysicsServer.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="PhysicsServer" inherits="Object" category="Core" version="3.1">
+<class name="PhysicsServer" inherits="Object" category="Core" version="3.2">
<brief_description>
Server interface for low level physics access.
</brief_description>
@@ -8,8 +8,6 @@
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
<method name="area_add_shape">
<return type="void">
@@ -20,6 +18,8 @@
</argument>
<argument index="2" name="transform" type="Transform" default="Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0 )">
</argument>
+ <argument index="3" name="disabled" type="bool" default="false">
+ </argument>
<description>
Adds a shape to the area, along with a transform matrix. Shapes are usually referenced by their index, so you should track which shape has a given index.
</description>
@@ -135,7 +135,7 @@
<argument index="0" name="area" type="RID">
</argument>
<description>
- If [code]true[/code] area collides with rays.
+ If [code]true[/code], area collides with rays.
</description>
</method>
<method name="area_remove_shape">
@@ -248,6 +248,18 @@
Substitutes a given area shape by another. The old shape is selected by its index, the new one by its [RID].
</description>
</method>
+ <method name="area_set_shape_disabled">
+ <return type="void">
+ </return>
+ <argument index="0" name="area" type="RID">
+ </argument>
+ <argument index="1" name="shape_idx" type="int">
+ </argument>
+ <argument index="2" name="disabled" type="bool">
+ </argument>
+ <description>
+ </description>
+ </method>
<method name="area_set_shape_transform">
<return type="void">
</return>
@@ -336,6 +348,8 @@
</argument>
<argument index="2" name="transform" type="Transform" default="Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0 )">
</argument>
+ <argument index="3" name="disabled" type="bool" default="false">
+ </argument>
<description>
Adds a shape to the body, along with a transform matrix. Shapes are usually referenced by their index, so you should track which shape has a given index.
</description>
@@ -556,7 +570,7 @@
<argument index="0" name="body" type="RID">
</argument>
<description>
- If [code]true[/code] the continuous collision detection mode is enabled.
+ If [code]true[/code], the continuous collision detection mode is enabled.
</description>
</method>
<method name="body_is_omitting_force_integration" qualifiers="const">
@@ -574,7 +588,7 @@
<argument index="0" name="body" type="RID">
</argument>
<description>
- If [code]true[/code] the body can be detected by rays
+ If [code]true[/code], the body can be detected by rays
</description>
</method>
<method name="body_remove_collision_exception">
@@ -653,7 +667,7 @@
<argument index="1" name="enable" type="bool">
</argument>
<description>
- If [code]true[/code] the continuous collision detection mode is enabled.
+ If [code]true[/code], the continuous collision detection mode is enabled.
Continuous collision detection tries to predict where a moving body will collide, instead of moving it and correcting its movement if it collided.
</description>
</method>
@@ -752,6 +766,18 @@
Substitutes a given body shape by another. The old shape is selected by its index, the new one by its [RID].
</description>
</method>
+ <method name="body_set_shape_disabled">
+ <return type="void">
+ </return>
+ <argument index="0" name="body" type="RID">
+ </argument>
+ <argument index="1" name="shape_idx" type="int">
+ </argument>
+ <argument index="2" name="disabled" type="bool">
+ </argument>
+ <description>
+ </description>
+ </method>
<method name="body_set_shape_transform">
<return type="void">
</return>
@@ -773,7 +799,7 @@
<argument index="1" name="space" type="RID">
</argument>
<description>
- Assigns a space to the body (see [method create_space]).
+ Assigns a space to the body (see [method space_create]).
</description>
</method>
<method name="body_set_state">
@@ -884,7 +910,7 @@
<argument index="0" name="process_info" type="int" enum="PhysicsServer.ProcessInfo">
</argument>
<description>
- Returns an Info defined by the [ProcessInfo] input given.
+ Returns an Info defined by the [enum PhysicsServer.ProcessInfo] input given.
</description>
</method>
<method name="hinge_joint_get_flag" qualifiers="const">
@@ -1286,10 +1312,10 @@
Maximum acceleration for the motor.
</constant>
<constant name="HINGE_JOINT_FLAG_USE_LIMIT" value="0" enum="HingeJointFlag">
- If [code]true[/code] the Hinge has a maximum and a minimum rotation.
+ If [code]true[/code], the Hinge has a maximum and a minimum rotation.
</constant>
<constant name="HINGE_JOINT_FLAG_ENABLE_MOTOR" value="1" enum="HingeJointFlag">
- If [code]true[/code] a motor turns the Hinge
+ If [code]true[/code], a motor turns the Hinge
</constant>
<constant name="SLIDER_JOINT_LINEAR_LIMIT_UPPER" value="0" enum="SliderJointParam">
The maximum difference between the pivot points on their x-axis before damping happens.
@@ -1595,6 +1621,8 @@
<constant name="SPACE_PARAM_CONSTRAINT_DEFAULT_BIAS" value="7" enum="SpaceParameter">
Constant to set/get the default solver bias for all physics constraints. A solver bias is a factor controlling how much two objects "rebound", after violating a constraint, to avoid leaving them in that state because of numerical imprecision.
</constant>
+ <constant name="SPACE_PARAM_TEST_MOTION_MIN_CONTACT_DEPTH" value="8" enum="SpaceParameter">
+ </constant>
<constant name="BODY_AXIS_LINEAR_X" value="1" enum="BodyAxis">
</constant>
<constant name="BODY_AXIS_LINEAR_Y" value="2" enum="BodyAxis">
diff --git a/doc/classes/PhysicsShapeQueryParameters.xml b/doc/classes/PhysicsShapeQueryParameters.xml
index 7cca231ad2..c1f8b48d73 100644
--- a/doc/classes/PhysicsShapeQueryParameters.xml
+++ b/doc/classes/PhysicsShapeQueryParameters.xml
@@ -1,13 +1,11 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="PhysicsShapeQueryParameters" inherits="Reference" category="Core" version="3.1">
+<class name="PhysicsShapeQueryParameters" inherits="Reference" category="Core" version="3.2">
<brief_description>
</brief_description>
<description>
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
<method name="set_shape">
<return type="void">
diff --git a/doc/classes/PhysicsShapeQueryResult.xml b/doc/classes/PhysicsShapeQueryResult.xml
index 080d7389b7..92a4393979 100644
--- a/doc/classes/PhysicsShapeQueryResult.xml
+++ b/doc/classes/PhysicsShapeQueryResult.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="PhysicsShapeQueryResult" inherits="Reference" category="Core" version="3.1">
+<class name="PhysicsShapeQueryResult" inherits="Reference" category="Core" version="3.2">
<brief_description>
Result of a shape query in Physics2DServer.
</brief_description>
@@ -7,8 +7,6 @@
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
<method name="get_result_count" qualifiers="const">
<return type="int">
diff --git a/doc/classes/PinJoint.xml b/doc/classes/PinJoint.xml
index 470c22cd4c..4546377171 100644
--- a/doc/classes/PinJoint.xml
+++ b/doc/classes/PinJoint.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="PinJoint" inherits="Joint" category="Core" version="3.1">
+<class name="PinJoint" inherits="Joint" category="Core" version="3.2">
<brief_description>
Pin Joint for 3D Shapes.
</brief_description>
@@ -8,8 +8,6 @@
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
</methods>
<members>
diff --git a/doc/classes/PinJoint2D.xml b/doc/classes/PinJoint2D.xml
index 42708151ec..4a11ce30e1 100644
--- a/doc/classes/PinJoint2D.xml
+++ b/doc/classes/PinJoint2D.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="PinJoint2D" inherits="Joint2D" category="Core" version="3.1">
+<class name="PinJoint2D" inherits="Joint2D" category="Core" version="3.2">
<brief_description>
Pin Joint for 2D Shapes.
</brief_description>
@@ -8,8 +8,6 @@
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
</methods>
<members>
diff --git a/doc/classes/Plane.xml b/doc/classes/Plane.xml
index a57659abda..a5e5c7022f 100644
--- a/doc/classes/Plane.xml
+++ b/doc/classes/Plane.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="Plane" category="Built-In Types" version="3.1">
+<class name="Plane" category="Built-In Types" version="3.2">
<brief_description>
Plane in hessian form.
</brief_description>
@@ -9,8 +9,6 @@
<tutorials>
<link>https://docs.godotengine.org/en/latest/tutorials/math/index.html</link>
</tutorials>
- <demos>
- </demos>
<methods>
<method name="Plane">
<return type="Plane">
@@ -82,7 +80,7 @@
<argument index="1" name="epsilon" type="float" default="0.00001">
</argument>
<description>
- Returns true if "point" is inside the plane (by a very minimum threshold).
+ Returns [code]true[/code] if "point" is inside the plane (by a very minimum threshold).
</description>
</method>
<method name="intersect_3">
@@ -124,7 +122,7 @@
<argument index="0" name="point" type="Vector3">
</argument>
<description>
- Returns true if "point" is located above the plane.
+ Returns [code]true[/code] if "point" is located above the plane.
</description>
</method>
<method name="normalized">
diff --git a/doc/classes/PlaneMesh.xml b/doc/classes/PlaneMesh.xml
index fc293ab4df..a507f9f145 100644
--- a/doc/classes/PlaneMesh.xml
+++ b/doc/classes/PlaneMesh.xml
@@ -1,15 +1,13 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="PlaneMesh" inherits="PrimitiveMesh" category="Core" version="3.1">
+<class name="PlaneMesh" inherits="PrimitiveMesh" category="Core" version="3.2">
<brief_description>
Class representing a planar [PrimitiveMesh].
</brief_description>
<description>
- Class representing a planar [PrimitiveMesh]. This flat mesh does not have a thickness.
+ Class representing a planar [PrimitiveMesh]. This flat mesh does not have a thickness. By default, this mesh is aligned on the X and Z axes; this default rotation isn't suited for use with billboarded materials. For billboarded materials, use [QuadMesh] instead.
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
</methods>
<members>
@@ -17,10 +15,10 @@
Size of the generated plane. Defaults to (2.0, 2.0).
</member>
<member name="subdivide_depth" type="int" setter="set_subdivide_depth" getter="get_subdivide_depth">
- Number of subdivision along the z-axis. Defaults to 0.
+ Number of subdivision along the Z axis. Defaults to 0.
</member>
<member name="subdivide_width" type="int" setter="set_subdivide_width" getter="get_subdivide_width">
- Number of subdivision along the x-axis. Defaults to 0.
+ Number of subdivision along the X axis. Defaults to 0.
</member>
</members>
<constants>
diff --git a/doc/classes/PlaneShape.xml b/doc/classes/PlaneShape.xml
index bc3faf7c01..83d8b09280 100644
--- a/doc/classes/PlaneShape.xml
+++ b/doc/classes/PlaneShape.xml
@@ -1,13 +1,11 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="PlaneShape" inherits="Shape" category="Core" version="3.1">
+<class name="PlaneShape" inherits="Shape" category="Core" version="3.2">
<brief_description>
</brief_description>
<description>
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
</methods>
<members>
diff --git a/doc/classes/Polygon2D.xml b/doc/classes/Polygon2D.xml
index bf4519fd0a..8f434e5499 100644
--- a/doc/classes/Polygon2D.xml
+++ b/doc/classes/Polygon2D.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="Polygon2D" inherits="Node2D" category="Core" version="3.1">
+<class name="Polygon2D" inherits="Node2D" category="Core" version="3.2">
<brief_description>
A 2D polygon.
</brief_description>
@@ -8,8 +8,6 @@
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
<method name="add_bone">
<return type="void">
@@ -80,28 +78,30 @@
</methods>
<members>
<member name="antialiased" type="bool" setter="set_antialiased" getter="get_antialiased">
- If [code]true[/code] polygon edges will be anti-aliased. Default value: [code]false[/code].
+ If [code]true[/code], polygon edges will be anti-aliased. Default value: [code]false[/code].
</member>
<member name="bones" type="Array" setter="_set_bones" getter="_get_bones">
</member>
<member name="color" type="Color" setter="set_color" getter="get_color">
The polygon's fill color. If [code]texture[/code] is defined, it will be multiplied by this color. It will also be the default color for vertices not set in [code]vertex_colors[/code].
</member>
+ <member name="internal_vertex_count" type="int" setter="set_internal_vertex_count" getter="get_internal_vertex_count">
+ </member>
<member name="invert_border" type="float" setter="set_invert_border" getter="get_invert_border">
Added padding applied to the bounding box when using [code]invert[/code]. Setting this value too small may result in a "Bad Polygon" error. Default value: [code]100[/code].
</member>
<member name="invert_enable" type="bool" setter="set_invert" getter="get_invert">
- If [code]true[/code] polygon will be inverted, containing the area outside the defined points and extending to the [code]invert_border[/code]. Default value: [code]false[/code].
+ If [code]true[/code], polygon will be inverted, containing the area outside the defined points and extending to the [code]invert_border[/code]. Default value: [code]false[/code].
</member>
<member name="offset" type="Vector2" setter="set_offset" getter="get_offset">
The offset applied to each vertex.
</member>
<member name="polygon" type="PoolVector2Array" setter="set_polygon" getter="get_polygon">
- The polygon's list of vertices. The final point will be connected to the first.
+ The polygon's list of vertices. The final point will be connected to the first. Note that this returns a copy of the [PoolVector2Array] rather than a reference.
</member>
- <member name="skeleton" type="NodePath" setter="set_skeleton" getter="get_skeleton">
+ <member name="polygons" type="Array" setter="set_polygons" getter="get_polygons">
</member>
- <member name="splits" type="PoolIntArray" setter="set_splits" getter="get_splits">
+ <member name="skeleton" type="NodePath" setter="set_skeleton" getter="get_skeleton">
</member>
<member name="texture" type="Texture" setter="set_texture" getter="get_texture">
The polygon's fill texture. Use [code]uv[/code] to set texture coordinates.
@@ -109,7 +109,7 @@
<member name="texture_offset" type="Vector2" setter="set_texture_offset" getter="get_texture_offset">
Amount to offset the polygon's [code]texture[/code]. If [code](0, 0)[/code] the texture's origin (its top-left corner) will be placed at the polygon's [code]position[/code].
</member>
- <member name="texture_rotation" type="float" setter="set_texture_rotation_degrees" getter="get_texture_rotation_degrees">
+ <member name="texture_rotation" type="float" setter="set_texture_rotation" getter="get_texture_rotation">
The texture's rotation in radians.
</member>
<member name="texture_rotation_degrees" type="float" setter="set_texture_rotation_degrees" getter="get_texture_rotation_degrees">
diff --git a/doc/classes/PolygonPathFinder.xml b/doc/classes/PolygonPathFinder.xml
index e4a4d9b976..7286857b51 100644
--- a/doc/classes/PolygonPathFinder.xml
+++ b/doc/classes/PolygonPathFinder.xml
@@ -1,13 +1,11 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="PolygonPathFinder" inherits="Resource" category="Core" version="3.1">
+<class name="PolygonPathFinder" inherits="Resource" category="Core" version="3.2">
<brief_description>
</brief_description>
<description>
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
<method name="find_path">
<return type="PoolVector2Array">
diff --git a/doc/classes/PoolByteArray.xml b/doc/classes/PoolByteArray.xml
index ae722b1053..cb99b660ae 100644
--- a/doc/classes/PoolByteArray.xml
+++ b/doc/classes/PoolByteArray.xml
@@ -1,15 +1,13 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="PoolByteArray" category="Built-In Types" version="3.1">
+<class name="PoolByteArray" category="Built-In Types" version="3.2">
<brief_description>
- Raw byte array.
+ A pooled [Array] of bytes.
</brief_description>
<description>
- Raw byte array. Contains bytes. Optimized for memory usage, can't fragment the memory. Note that this type is passed by value and not by reference.
+ An [Array] specifically designed to hold bytes. Optimized for memory usage, does not fragment the memory. Note that this type is passed by value and not by reference.
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
<method name="PoolByteArray">
<return type="PoolByteArray">
@@ -17,7 +15,7 @@
<argument index="0" name="from" type="Array">
</argument>
<description>
- Create from a generic array.
+ Construct a new [PoolByteArray]. Optionally, you can pass in a generic [Array] that will be converted.
</description>
</method>
<method name="append">
@@ -31,7 +29,7 @@
<argument index="0" name="array" type="PoolByteArray">
</argument>
<description>
- Append a [code]PoolByteArray[/code] at the end of this array.
+ Append a [PoolByteArray] at the end of this array.
</description>
</method>
<method name="compress">
@@ -40,7 +38,7 @@
<argument index="0" name="compression_mode" type="int" default="0">
</argument>
<description>
- Returns a new [code]PoolByteArray[/code] with the data compressed. Set the compression mode using one of [File]'s COMPRESS_* constants.
+ Returns a new [PoolByteArray] with the data compressed. Set the compression mode using one of [enum File.CompressionMode]'s constants.
</description>
</method>
<method name="decompress">
@@ -51,21 +49,21 @@
<argument index="1" name="compression_mode" type="int" default="0">
</argument>
<description>
- Returns a new [code]PoolByteArray[/code] with the data decompressed. Set buffer_size to the size of the uncompressed data. Set the compression mode using one of [File]'s COMPRESS_* constants.
+ Returns a new [PoolByteArray] with the data decompressed. Set [code]buffer_size[/code] to the size of the uncompressed data. Set the compression mode using one of [enum File.CompressionMode]'s constants.
</description>
</method>
<method name="get_string_from_ascii">
<return type="String">
</return>
<description>
- Returns a copy of the array's contents as [String]. Fast alternative to [method PoolByteArray.get_string_from_utf8] if the content is ASCII-only. Unlike the UTF-8 function this function maps every byte to a character in the array. Multibyte sequences will not be interpreted correctly. For parsing user input always use [method PoolByteArray.get_string_from_utf8].
+ Returns a copy of the array's contents as [String]. Fast alternative to [method get_string_from_utf8] if the content is ASCII-only. Unlike the UTF-8 function this function maps every byte to a character in the array. Multibyte sequences will not be interpreted correctly. For parsing user input always use [method get_string_from_utf8].
</description>
</method>
<method name="get_string_from_utf8">
<return type="String">
</return>
<description>
- Returns a copy of the array's contents as [String]. Slower than [method PoolByteArray.get_string_from_ascii] but supports UTF-8 encoded data. Use this function if you are unsure about the source of the data. For user input this function should always be preferred.
+ Returns a copy of the array's contents as [String]. Slower than [method get_string_from_ascii] but supports UTF-8 encoded data. Use this function if you are unsure about the source of the data. For user input this function should always be preferred.
</description>
</method>
<method name="insert">
@@ -76,7 +74,7 @@
<argument index="1" name="byte" type="int">
</argument>
<description>
- Insert a new element at a given position in the array. The position must be valid, or at the end of the array (pos==size()).
+ Insert a new element at a given position in the array. The position must be valid, or at the end of the array ([code]idx == size()[/code]).
</description>
</method>
<method name="invert">
@@ -114,11 +112,18 @@
Change the byte at the given index.
</description>
</method>
+ <method name="sha256_string">
+ <return type="String">
+ </return>
+ <description>
+ Returns SHA256 string of the PoolByteArray.
+ </description>
+ </method>
<method name="size">
<return type="int">
</return>
<description>
- Return the size of the array.
+ Returns the size of the array.
</description>
</method>
<method name="subarray">
@@ -129,7 +134,7 @@
<argument index="1" name="to" type="int">
</argument>
<description>
- Returns the slice of the [code]PoolByteArray[/code] between indices (inclusive) as a new [code]PoolByteArray[/code]. Any negative index is considered to be from the end of the array.
+ Returns the slice of the [PoolByteArray] between indices (inclusive) as a new [PoolByteArray]. Any negative index is considered to be from the end of the array.
</description>
</method>
</methods>
diff --git a/doc/classes/PoolColorArray.xml b/doc/classes/PoolColorArray.xml
index 021d5f5089..efc3582ba4 100644
--- a/doc/classes/PoolColorArray.xml
+++ b/doc/classes/PoolColorArray.xml
@@ -1,15 +1,13 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="PoolColorArray" category="Built-In Types" version="3.1">
+<class name="PoolColorArray" category="Built-In Types" version="3.2">
<brief_description>
- Array of Colors
+ A pooled [Array] of [Color].
</brief_description>
<description>
- Array of Color, Contains colors. Optimized for memory usage, can't fragment the memory. Note that this type is passed by value and not by reference.
+ An [Array] specifically designed to hold [Color]. Optimized for memory usage, does not fragment the memory. Note that this type is passed by value and not by reference.
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
<method name="PoolColorArray">
<return type="PoolColorArray">
@@ -17,7 +15,7 @@
<argument index="0" name="from" type="Array">
</argument>
<description>
- Create from a generic array.
+ Construct a new [PoolColorArray]. Optionally, you can pass in a generic [Array] that will be converted.
</description>
</method>
<method name="append">
@@ -31,7 +29,7 @@
<argument index="0" name="array" type="PoolColorArray">
</argument>
<description>
- Append a [code]PoolColorArray[/code] at the end of this array.
+ Append a [PoolColorArray] at the end of this array.
</description>
</method>
<method name="insert">
@@ -42,7 +40,7 @@
<argument index="1" name="color" type="Color">
</argument>
<description>
- Insert a new element at a given position in the array. The position must be valid, or at the end of the array (pos==size()).
+ Insert a new element at a given position in the array. The position must be valid, or at the end of the array ([code]idx == size()[/code]).
</description>
</method>
<method name="invert">
@@ -84,7 +82,7 @@
<return type="int">
</return>
<description>
- Return the size of the array.
+ Returns the size of the array.
</description>
</method>
</methods>
diff --git a/doc/classes/PoolIntArray.xml b/doc/classes/PoolIntArray.xml
index 347dcb09f2..fca1083c25 100644
--- a/doc/classes/PoolIntArray.xml
+++ b/doc/classes/PoolIntArray.xml
@@ -1,15 +1,13 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="PoolIntArray" category="Built-In Types" version="3.1">
+<class name="PoolIntArray" category="Built-In Types" version="3.2">
<brief_description>
- Integer Array.
+ A pooled [Array] of integers ([int]).
</brief_description>
<description>
- Integer Array. Contains integers. Optimized for memory usage, can't fragment the memory. Note that this type is passed by value and not by reference.
+ An [Array] specifically designed to hold integer values ([int]). Optimized for memory usage, does not fragment the memory. Note that this type is passed by value and not by reference.
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
<method name="PoolIntArray">
<return type="PoolIntArray">
@@ -17,7 +15,7 @@
<argument index="0" name="from" type="Array">
</argument>
<description>
- Create from a generic array.
+ Construct a new [PoolIntArray]. Optionally, you can pass in a generic [Array] that will be converted.
</description>
</method>
<method name="append">
@@ -31,7 +29,7 @@
<argument index="0" name="array" type="PoolIntArray">
</argument>
<description>
- Append an [code]PoolIntArray[/code] at the end of this array.
+ Append a [PoolIntArray] at the end of this array.
</description>
</method>
<method name="insert">
@@ -42,7 +40,7 @@
<argument index="1" name="integer" type="int">
</argument>
<description>
- Insert a new int at a given position in the array. The position must be valid, or at the end of the array (pos==size()).
+ Insert a new int at a given position in the array. The position must be valid, or at the end of the array ([code]idx == size()[/code]).
</description>
</method>
<method name="invert">
@@ -84,7 +82,7 @@
<return type="int">
</return>
<description>
- Return the array size.
+ Returns the array size.
</description>
</method>
</methods>
diff --git a/doc/classes/PoolRealArray.xml b/doc/classes/PoolRealArray.xml
index c0c6ef8700..c5f6062175 100644
--- a/doc/classes/PoolRealArray.xml
+++ b/doc/classes/PoolRealArray.xml
@@ -1,15 +1,13 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="PoolRealArray" category="Built-In Types" version="3.1">
+<class name="PoolRealArray" category="Built-In Types" version="3.2">
<brief_description>
- Real Array.
+ A pooled [Array] of reals ([float]).
</brief_description>
<description>
- Real Array. Array of floating point values. Can only contain floats. Optimized for memory usage, can't fragment the memory. Note that this type is passed by value and not by reference.
+ An [Array] specifically designed to hold floating point values ([float]). Optimized for memory usage, does not fragment the memory. Note that this type is passed by value and not by reference.
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
<method name="PoolRealArray">
<return type="PoolRealArray">
@@ -17,7 +15,7 @@
<argument index="0" name="from" type="Array">
</argument>
<description>
- Create from a generic array.
+ Construct a new [PoolRealArray]. Optionally, you can pass in a generic [Array] that will be converted.
</description>
</method>
<method name="append">
@@ -31,7 +29,7 @@
<argument index="0" name="array" type="PoolRealArray">
</argument>
<description>
- Append an [RealArray] at the end of this array.
+ Append a [PoolRealArray] at the end of this array.
</description>
</method>
<method name="insert">
@@ -42,7 +40,7 @@
<argument index="1" name="value" type="float">
</argument>
<description>
- Insert a new element at a given position in the array. The position must be valid, or at the end of the array (pos==size()).
+ Insert a new element at a given position in the array. The position must be valid, or at the end of the array ([code]idx == size()[/code]).
</description>
</method>
<method name="invert">
@@ -84,7 +82,7 @@
<return type="int">
</return>
<description>
- Return the size of the array.
+ Returns the size of the array.
</description>
</method>
</methods>
diff --git a/doc/classes/PoolStringArray.xml b/doc/classes/PoolStringArray.xml
index 8b3ac4c16a..01dca93be3 100644
--- a/doc/classes/PoolStringArray.xml
+++ b/doc/classes/PoolStringArray.xml
@@ -1,15 +1,13 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="PoolStringArray" category="Built-In Types" version="3.1">
+<class name="PoolStringArray" category="Built-In Types" version="3.2">
<brief_description>
- String Array.
+ A pooled [Array] of [String].
</brief_description>
<description>
- String Array. Array of strings. Can only contain strings. Optimized for memory usage, can't fragment the memory. Note that this type is passed by value and not by reference.
+ An [Array] specifically designed to hold [String]. Optimized for memory usage, does not fragment the memory. Note that this type is passed by value and not by reference.
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
<method name="PoolStringArray">
<return type="PoolStringArray">
@@ -17,7 +15,7 @@
<argument index="0" name="from" type="Array">
</argument>
<description>
- Create from a generic array.
+ Construct a new [PoolStringArray]. Optionally, you can pass in a generic [Array] that will be converted.
</description>
</method>
<method name="append">
@@ -31,7 +29,7 @@
<argument index="0" name="array" type="PoolStringArray">
</argument>
<description>
- Append an [StringArray] at the end of this array.
+ Append a [PoolStringArray] at the end of this array.
</description>
</method>
<method name="insert">
@@ -42,7 +40,7 @@
<argument index="1" name="string" type="String">
</argument>
<description>
- Insert a new element at a given position in the array. The position must be valid, or at the end of the array (pos==size()).
+ Insert a new element at a given position in the array. The position must be valid, or at the end of the array ([code]idx == size()[/code]).
</description>
</method>
<method name="invert">
@@ -56,7 +54,7 @@
<argument index="0" name="delimiter" type="String">
</argument>
<description>
- Returns a [String] with each element of the array joined with the delimiter.
+ Returns a [String] with each element of the array joined with the given [code]delimiter[/code].
</description>
</method>
<method name="push_back">
@@ -93,7 +91,7 @@
<return type="int">
</return>
<description>
- Return the size of the array.
+ Returns the size of the array.
</description>
</method>
</methods>
diff --git a/doc/classes/PoolVector2Array.xml b/doc/classes/PoolVector2Array.xml
index ecf8f5a6ba..45f619dc5d 100644
--- a/doc/classes/PoolVector2Array.xml
+++ b/doc/classes/PoolVector2Array.xml
@@ -1,15 +1,13 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="PoolVector2Array" category="Built-In Types" version="3.1">
+<class name="PoolVector2Array" category="Built-In Types" version="3.2">
<brief_description>
- An Array of Vector2.
+ A pooled [Array] of [Vector2].
</brief_description>
<description>
- An Array specifically designed to hold Vector2. Note that this type is passed by value and not by reference.
+ An [Array] specifically designed to hold [Vector2]. Optimized for memory usage, does not fragment the memory. Note that this type is passed by value and not by reference.
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
<method name="PoolVector2Array">
<return type="PoolVector2Array">
@@ -17,7 +15,7 @@
<argument index="0" name="from" type="Array">
</argument>
<description>
- Construct a new [code]PoolVector2Array[/code]. Optionally, you can pass in an Array that will be converted.
+ Construct a new [PoolVector2Array]. Optionally, you can pass in a generic [Array] that will be converted.
</description>
</method>
<method name="append">
@@ -31,7 +29,7 @@
<argument index="0" name="array" type="PoolVector2Array">
</argument>
<description>
- Append an [code]PoolVector2Array[/code] at the end of this array.
+ Append a [PoolVector2Array] at the end of this array.
</description>
</method>
<method name="insert">
@@ -42,7 +40,7 @@
<argument index="1" name="vector2" type="Vector2">
</argument>
<description>
- Insert a new element at a given position in the array. The position must be valid, or at the end of the array (pos==size()).
+ Insert a new element at a given position in the array. The position must be valid, or at the end of the array ([code]idx == size()[/code]).
</description>
</method>
<method name="invert">
@@ -84,7 +82,7 @@
<return type="int">
</return>
<description>
- Return the size of the array.
+ Returns the size of the array.
</description>
</method>
</methods>
diff --git a/doc/classes/PoolVector3Array.xml b/doc/classes/PoolVector3Array.xml
index 456b54d209..0a682e2baf 100644
--- a/doc/classes/PoolVector3Array.xml
+++ b/doc/classes/PoolVector3Array.xml
@@ -1,15 +1,13 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="PoolVector3Array" category="Built-In Types" version="3.1">
+<class name="PoolVector3Array" category="Built-In Types" version="3.2">
<brief_description>
- An Array of Vector3.
+ A pooled [Array] of [Vector3].
</brief_description>
<description>
- An Array specifically designed to hold Vector3. Note that this type is passed by value and not by reference.
+ An [Array] specifically designed to hold [Vector3]. Optimized for memory usage, does not fragment the memory. Note that this type is passed by value and not by reference.
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
<method name="PoolVector3Array">
<return type="PoolVector3Array">
@@ -17,7 +15,7 @@
<argument index="0" name="from" type="Array">
</argument>
<description>
- Construct a new PoolVector3Array. Optionally, you can pass in an Array that will be converted.
+ Construct a new [PoolVector3Array]. Optionally, you can pass in a generic [Array] that will be converted.
</description>
</method>
<method name="append">
@@ -31,7 +29,7 @@
<argument index="0" name="array" type="PoolVector3Array">
</argument>
<description>
- Append an [code]PoolVector3Array[/code] at the end of this array.
+ Append a [PoolVector3Array] at the end of this array.
</description>
</method>
<method name="insert">
@@ -42,7 +40,7 @@
<argument index="1" name="vector3" type="Vector3">
</argument>
<description>
- Insert a new element at a given position in the array. The position must be valid, or at the end of the array (pos==size()).
+ Insert a new element at a given position in the array. The position must be valid, or at the end of the array ([code]idx == size()[/code]).
</description>
</method>
<method name="invert">
@@ -84,7 +82,7 @@
<return type="int">
</return>
<description>
- Return the size of the array.
+ Returns the size of the array.
</description>
</method>
</methods>
diff --git a/doc/classes/Popup.xml b/doc/classes/Popup.xml
index ae5bce5d7d..e1b51463b2 100644
--- a/doc/classes/Popup.xml
+++ b/doc/classes/Popup.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="Popup" inherits="Control" category="Core" version="3.1">
+<class name="Popup" inherits="Control" category="Core" version="3.2">
<brief_description>
Base container control for popups and dialogs.
</brief_description>
@@ -8,8 +8,6 @@
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
<method name="popup">
<return type="void">
@@ -26,7 +24,18 @@
<argument index="0" name="size" type="Vector2" default="Vector2( 0, 0 )">
</argument>
<description>
- Popup (show the control in modal form) in the center of the screen, at the current size, or at a size determined by "size".
+ Popup (show the control in modal form) in the center of the screen relative to its current canvas transform, at the current size, or at a size determined by "size".
+ </description>
+ </method>
+ <method name="popup_centered_clamped">
+ <return type="void">
+ </return>
+ <argument index="0" name="size" type="Vector2" default="Vector2( 0, 0 )">
+ </argument>
+ <argument index="1" name="fallback_ratio" type="float" default="0.75">
+ </argument>
+ <description>
+ Popup (show the control in modal form) in the center of the screen relative to the current canvas transform, clamping the size to [code]size[/code], then ensuring the popup is no larger than the viewport size multiplied by [code]fallback_ratio[/code].
</description>
</method>
<method name="popup_centered_minsize">
@@ -35,7 +44,7 @@
<argument index="0" name="minsize" type="Vector2" default="Vector2( 0, 0 )">
</argument>
<description>
- Popup (show the control in modal form) in the center of the screen, ensuring the size is never smaller than [code]minsize[/code].
+ Popup (show the control in modal form) in the center of the screen relative to the current canvas transform, ensuring the size is never smaller than [code]minsize[/code].
</description>
</method>
<method name="popup_centered_ratio">
@@ -44,13 +53,13 @@
<argument index="0" name="ratio" type="float" default="0.75">
</argument>
<description>
- Popup (show the control in modal form) in the center of the screen, scaled at a ratio of size of the screen.
+ Popup (show the control in modal form) in the center of the screen relative to the current canvas transform, scaled at a ratio of size of the screen.
</description>
</method>
</methods>
<members>
<member name="popup_exclusive" type="bool" setter="set_exclusive" getter="is_exclusive">
- If [code]true[/code] the popup will not be hidden when a click event occurs outside of it, or when it receives the [code]ui_cancel[/code] action event.
+ If [code]true[/code], the popup will not be hidden when a click event occurs outside of it, or when it receives the [code]ui_cancel[/code] action event.
</member>
</members>
<signals>
diff --git a/doc/classes/PopupDialog.xml b/doc/classes/PopupDialog.xml
index 4f15fb4b05..b510208ae2 100644
--- a/doc/classes/PopupDialog.xml
+++ b/doc/classes/PopupDialog.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="PopupDialog" inherits="Popup" category="Core" version="3.1">
+<class name="PopupDialog" inherits="Popup" category="Core" version="3.2">
<brief_description>
Base class for Popup Dialogs.
</brief_description>
@@ -8,8 +8,6 @@
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
</methods>
<constants>
diff --git a/doc/classes/PopupMenu.xml b/doc/classes/PopupMenu.xml
index fe7dbe52b0..d6249f73aa 100644
--- a/doc/classes/PopupMenu.xml
+++ b/doc/classes/PopupMenu.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="PopupMenu" inherits="Popup" category="Core" version="3.1">
+<class name="PopupMenu" inherits="Popup" category="Core" version="3.2">
<brief_description>
PopupMenu displays a list of options.
</brief_description>
@@ -8,8 +8,6 @@
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
<method name="add_check_item">
<return type="void">
@@ -180,14 +178,14 @@
<argument index="0" name="idx" type="int">
</argument>
<description>
- Return the accelerator of the item at index "idx". Accelerators are special combinations of keys that activate the item, no matter which control is focused.
+ Returns the accelerator of the item at index "idx". Accelerators are special combinations of keys that activate the item, no matter which control is focused.
</description>
</method>
<method name="get_item_count" qualifiers="const">
<return type="int">
</return>
<description>
- Return the amount of items.
+ Returns the amount of items.
</description>
</method>
<method name="get_item_icon" qualifiers="const">
@@ -196,7 +194,7 @@
<argument index="0" name="idx" type="int">
</argument>
<description>
- Return the icon of the item at index "idx".
+ Returns the icon of the item at index "idx".
</description>
</method>
<method name="get_item_id" qualifiers="const">
@@ -205,7 +203,7 @@
<argument index="0" name="idx" type="int">
</argument>
<description>
- Return the id of the item at index "idx".
+ Returns the id of the item at index "idx".
</description>
</method>
<method name="get_item_index" qualifiers="const">
@@ -223,7 +221,7 @@
<argument index="0" name="idx" type="int">
</argument>
<description>
- Return the metadata of an item, which might be of any type. You can set it with [method set_item_metadata], which provides a simple way of assigning context data to items.
+ Returns the metadata of an item, which might be of any type. You can set it with [method set_item_metadata], which provides a simple way of assigning context data to items.
</description>
</method>
<method name="get_item_shortcut" qualifiers="const">
@@ -240,7 +238,7 @@
<argument index="0" name="idx" type="int">
</argument>
<description>
- Return the submenu name of the item at index "idx".
+ Returns the submenu name of the item at index "idx".
</description>
</method>
<method name="get_item_text" qualifiers="const">
@@ -249,7 +247,7 @@
<argument index="0" name="idx" type="int">
</argument>
<description>
- Return the text of the item at index "idx".
+ Returns the text of the item at index "idx".
</description>
</method>
<method name="get_item_tooltip" qualifiers="const">
@@ -272,7 +270,7 @@
<argument index="0" name="idx" type="int">
</argument>
<description>
- Return whether the item at index "idx" is checkable in some way, i.e., whether has a checkbox or radio button. Note that checkable items just display a checkmark or radio button, but don't have any built-in checking behavior and must be checked/unchecked manually.
+ Returns whether the item at index "idx" is checkable in some way, i.e., whether has a checkbox or radio button. Note that checkable items just display a checkmark or radio button, but don't have any built-in checking behavior and must be checked/unchecked manually.
</description>
</method>
<method name="is_item_checked" qualifiers="const">
@@ -281,7 +279,7 @@
<argument index="0" name="idx" type="int">
</argument>
<description>
- Return whether the item at index "idx" is checked.
+ Returns whether the item at index "idx" is checked.
</description>
</method>
<method name="is_item_disabled" qualifiers="const">
@@ -290,7 +288,7 @@
<argument index="0" name="idx" type="int">
</argument>
<description>
- Return whether the item at index "idx" is disabled. When it is disabled it can't be selected, or its action invoked.
+ Returns whether the item at index "idx" is disabled. When it is disabled it can't be selected, or its action invoked.
</description>
</method>
<method name="is_item_radio_checkable" qualifiers="const">
@@ -299,7 +297,7 @@
<argument index="0" name="idx" type="int">
</argument>
<description>
- Return whether the item at index "idx" has radio-button-style checkability. Remember this is just cosmetic and you have to add the logic for checking/unchecking items in radio groups.
+ Returns whether the item at index "idx" has radio-button-style checkability. Remember this is just cosmetic and you have to add the logic for checking/unchecking items in radio groups.
</description>
</method>
<method name="is_item_separator" qualifiers="const">
@@ -308,7 +306,7 @@
<argument index="0" name="idx" type="int">
</argument>
<description>
- Return whether the item is a separator. If it is, it would be displayed as a line.
+ Returns whether the item is a separator. If it is, it would be displayed as a line.
</description>
</method>
<method name="is_item_shortcut_disabled" qualifiers="const">
@@ -378,7 +376,7 @@
<argument index="1" name="enable" type="bool">
</argument>
<description>
- Mark the item at index "idx" as a separator, which means that it would be displayed as a mere line.
+ Mark the item at index "idx" as a separator, which means that it would be displayed as a line.
</description>
</method>
<method name="set_item_checked">
@@ -517,6 +515,9 @@
</method>
</methods>
<members>
+ <member name="allow_search" type="bool" setter="set_allow_search" getter="get_allow_search">
+ If [code]true[/code], allows to navigate [PopupMenu] with letter keys. Default value: [code]false[/code].
+ </member>
<member name="hide_on_checkable_item_selection" type="bool" setter="set_hide_on_checkable_item_selection" getter="is_hide_on_checkable_item_selection">
</member>
<member name="hide_on_item_selection" type="bool" setter="set_hide_on_item_selection" getter="is_hide_on_item_selection">
@@ -529,14 +530,14 @@
</members>
<signals>
<signal name="id_focused">
- <argument index="0" name="ID" type="int">
+ <argument index="0" name="id" type="int">
</argument>
<description>
This event is emitted when user navigated to an item of some id using [code]ui_up[/code] or [code]ui_down[/code] action.
</description>
</signal>
<signal name="id_pressed">
- <argument index="0" name="ID" type="int">
+ <argument index="0" name="id" type="int">
</argument>
<description>
This event is emitted when an item of some id is pressed or its accelerator is activated.
diff --git a/doc/classes/PopupPanel.xml b/doc/classes/PopupPanel.xml
index 694c29efda..bed4d97112 100644
--- a/doc/classes/PopupPanel.xml
+++ b/doc/classes/PopupPanel.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="PopupPanel" inherits="Popup" category="Core" version="3.1">
+<class name="PopupPanel" inherits="Popup" category="Core" version="3.2">
<brief_description>
Class for displaying popups with a panel background.
</brief_description>
@@ -8,8 +8,6 @@
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
</methods>
<constants>
diff --git a/doc/classes/Position2D.xml b/doc/classes/Position2D.xml
index 6c26bf412c..916bd99131 100644
--- a/doc/classes/Position2D.xml
+++ b/doc/classes/Position2D.xml
@@ -1,15 +1,13 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="Position2D" inherits="Node2D" category="Core" version="3.1">
+<class name="Position2D" inherits="Node2D" category="Core" version="3.2">
<brief_description>
Generic 2D Position hint for editing.
</brief_description>
<description>
- Generic 2D Position hint for editing. It's just like a plain [Node2D] but displays as a cross in the 2D-Editor at all times.
+ Generic 2D Position hint for editing. It's just like a plain [Node2D] but displays as a cross in the 2D-Editor at all times. You can set visual size of the cross by changing Gizmo Extents in the inspector.
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
</methods>
<constants>
diff --git a/doc/classes/Position3D.xml b/doc/classes/Position3D.xml
index 7c0875cc0c..247f1fb6a3 100644
--- a/doc/classes/Position3D.xml
+++ b/doc/classes/Position3D.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="Position3D" inherits="Spatial" category="Core" version="3.1">
+<class name="Position3D" inherits="Spatial" category="Core" version="3.2">
<brief_description>
Generic 3D Position hint for editing.
</brief_description>
@@ -8,8 +8,6 @@
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
</methods>
<constants>
diff --git a/doc/classes/PrimitiveMesh.xml b/doc/classes/PrimitiveMesh.xml
index 0f0511258b..2214357308 100644
--- a/doc/classes/PrimitiveMesh.xml
+++ b/doc/classes/PrimitiveMesh.xml
@@ -1,27 +1,28 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="PrimitiveMesh" inherits="Mesh" category="Core" version="3.1">
+<class name="PrimitiveMesh" inherits="Mesh" category="Core" version="3.2">
<brief_description>
Base class for all primitive meshes. Handles applying a [Material] to a primitive mesh.
</brief_description>
<description>
- Base class for all primitive meshes. Handles applying a [Material] to a primitive mesh.
+ Base class for all primitive meshes. Handles applying a [Material] to a primitive mesh. Examples include [CapsuleMesh], [CubeMesh], [CylinderMesh], [PlaneMesh], [PrismMesh], [QuadMesh], and [SphereMesh].
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
<method name="get_mesh_arrays" qualifiers="const">
<return type="Array">
</return>
<description>
+ Returns mesh arrays used to constitute surface of [Mesh]. Mesh array can be used with [ArrayMesh] to create new surface.
</description>
</method>
</methods>
<members>
<member name="custom_aabb" type="AABB" setter="set_custom_aabb" getter="get_custom_aabb">
+ Overrides the [AABB] with one defined by user for use with frustum culling. Especially useful to avoid unnexpected culling when using a shader to offset vertices.
</member>
<member name="flip_faces" type="bool" setter="set_flip_faces" getter="get_flip_faces">
+ If set, the order of the vertices in each triangle are reversed resulting in the backside of the mesh being drawn. Result is the same as using *CULL_BACK* in [SpatialMaterial]. Default is false.
</member>
<member name="material" type="Material" setter="set_material" getter="get_material">
The current [Material] of the primitive mesh.
diff --git a/doc/classes/PrismMesh.xml b/doc/classes/PrismMesh.xml
index 11815d299b..62f1278bba 100644
--- a/doc/classes/PrismMesh.xml
+++ b/doc/classes/PrismMesh.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="PrismMesh" inherits="PrimitiveMesh" category="Core" version="3.1">
+<class name="PrismMesh" inherits="PrimitiveMesh" category="Core" version="3.2">
<brief_description>
Class representing a prism-shaped [PrimitiveMesh].
</brief_description>
@@ -8,25 +8,23 @@
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
</methods>
<members>
<member name="left_to_right" type="float" setter="set_left_to_right" getter="get_left_to_right">
- Displacement of the upper edge along the x-axis. 0.0 positions edge straight above the bottome left edge. Defaults to 0.5 (positioned on the midpoint).
+ Displacement of the upper edge along the X axis. 0.0 positions edge straight above the bottom-left edge. Defaults to 0.5 (positioned on the midpoint).
</member>
<member name="size" type="Vector3" setter="set_size" getter="get_size">
Size of the prism. Defaults to (2.0, 2.0, 2.0).
</member>
<member name="subdivide_depth" type="int" setter="set_subdivide_depth" getter="get_subdivide_depth">
- Number of added edge loops along the z-axis. Defaults to 0.
+ Number of added edge loops along the Z axis. Defaults to 0.
</member>
<member name="subdivide_height" type="int" setter="set_subdivide_height" getter="get_subdivide_height">
- Number of added edge loops along the y-axis. Defaults to 0.
+ Number of added edge loops along the Y axis. Defaults to 0.
</member>
<member name="subdivide_width" type="int" setter="set_subdivide_width" getter="get_subdivide_width">
- Number of added edge loops along the x-axis. Defaults to 0.
+ Number of added edge loops along the X axis. Defaults to 0.
</member>
</members>
<constants>
diff --git a/doc/classes/ProceduralSky.xml b/doc/classes/ProceduralSky.xml
index 090b626433..97ad1efa93 100644
--- a/doc/classes/ProceduralSky.xml
+++ b/doc/classes/ProceduralSky.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="ProceduralSky" inherits="Sky" category="Core" version="3.1">
+<class name="ProceduralSky" inherits="Sky" category="Core" version="3.2">
<brief_description>
Type of [Sky] that is generated procedurally based on user input parameters.
</brief_description>
@@ -9,8 +9,6 @@
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
</methods>
<members>
diff --git a/doc/classes/ProgressBar.xml b/doc/classes/ProgressBar.xml
index 0f03b7b80a..98d7e5c128 100644
--- a/doc/classes/ProgressBar.xml
+++ b/doc/classes/ProgressBar.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="ProgressBar" inherits="Range" category="Core" version="3.1">
+<class name="ProgressBar" inherits="Range" category="Core" version="3.2">
<brief_description>
General purpose progress bar.
</brief_description>
@@ -8,13 +8,11 @@
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
</methods>
<members>
<member name="percent_visible" type="bool" setter="set_percent_visible" getter="is_percent_visible">
- If [code]true[/code] the fill percentage is displayed on the bar. Default value: [code]true[/code].
+ If [code]true[/code], the fill percentage is displayed on the bar. Default value: [code]true[/code].
</member>
</members>
<constants>
diff --git a/doc/classes/ProjectSettings.xml b/doc/classes/ProjectSettings.xml
index 7a9918237f..316f948778 100644
--- a/doc/classes/ProjectSettings.xml
+++ b/doc/classes/ProjectSettings.xml
@@ -1,15 +1,13 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="ProjectSettings" inherits="Object" category="Core" version="3.1">
+<class name="ProjectSettings" inherits="Object" category="Core" version="3.2">
<brief_description>
Contains global variables accessible from everywhere.
</brief_description>
<description>
- Contains global variables accessible from everywhere. Use "ProjectSettings.get_setting(variable)", "ProjectSettings.set_setting(variable,value)" or "ProjectSettings.has_setting(variable)" to access them. Variables stored in project.godot are also loaded into ProjectSettings, making this object very useful for reading custom game configuration options.
+ Contains global variables accessible from everywhere. Use [method get_setting], [method set_setting] or [method has_setting] to access them. Variables stored in [code]project.godot[/code] are also loaded into ProjectSettings, making this object very useful for reading custom game configuration options.
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
<method name="add_property_info">
<return type="void">
@@ -17,7 +15,7 @@
<argument index="0" name="hint" type="Dictionary">
</argument>
<description>
- Add a custom property info to a property. The dictionary must contain: name:[String](the name of the property) and type:[int](see TYPE_* in [@GlobalScope]), and optionally hint:[int](see PROPERTY_HINT_* in [@GlobalScope]), hint_string:[String].
+ Adds a custom property info to a property. The dictionary must contain: name:[String](the property's name) and type:[int](see TYPE_* in [@GlobalScope]), and optionally hint:[int](see PROPERTY_HINT_* in [@GlobalScope]), hint_string:[String].
Example:
[codeblock]
ProjectSettings.set("category/property_name", 0)
@@ -39,7 +37,7 @@
<argument index="0" name="name" type="String">
</argument>
<description>
- Clear the whole configuration (not recommended, may break things).
+ Clears the whole configuration (not recommended, may break things).
</description>
</method>
<method name="get_order" qualifiers="const">
@@ -48,7 +46,7 @@
<argument index="0" name="name" type="String">
</argument>
<description>
- Return the order of a configuration value (influences when saved to the config file).
+ Returns the order of a configuration value (influences when saved to the config file).
</description>
</method>
<method name="get_setting" qualifiers="const">
@@ -65,7 +63,7 @@
<argument index="0" name="path" type="String">
</argument>
<description>
- Convert a localized path (res://) to a full native OS path.
+ Converts a localized path ([code]res://[/code]) to a full native OS path.
</description>
</method>
<method name="has_setting" qualifiers="const">
@@ -74,7 +72,7 @@
<argument index="0" name="name" type="String">
</argument>
<description>
- Return true if a configuration value is present.
+ Returns [code]true[/code] if a configuration value is present.
</description>
</method>
<method name="load_resource_pack">
@@ -83,7 +81,7 @@
<argument index="0" name="pack" type="String">
</argument>
<description>
- Loads the contents of the .pck or .zip file specified by [code]pack[/code] into the resource filesystem (res://). Returns true on success.
+ Loads the contents of the .pck or .zip file specified by [code]pack[/code] into the resource filesystem ([code]res://[/code]). Returns [code]true[/code] on success.
Note: If a file from [code]pack[/code] shares the same path as a file already in the resource filesystem, any attempts to load that file will use the file from [code]pack[/code].
</description>
</method>
@@ -93,7 +91,7 @@
<argument index="0" name="path" type="String">
</argument>
<description>
- Convert a path to a localized path (res:// path).
+ Convert a path to a localized path ([code]res://[/code] path).
</description>
</method>
<method name="property_can_revert">
@@ -102,7 +100,7 @@
<argument index="0" name="name" type="String">
</argument>
<description>
- Returns true if the specified property exists and its initial value differs from the current value.
+ Returns [code]true[/code] if the specified property exists and its initial value differs from the current value.
</description>
</method>
<method name="property_get_revert">
@@ -111,14 +109,14 @@
<argument index="0" name="name" type="String">
</argument>
<description>
- Returns the initial value of the specified property. Returns null if the property does not exist.
+ Returns the specified property's initial value. Returns [code]null[/code] if the property does not exist.
</description>
</method>
<method name="save">
<return type="int" enum="Error">
</return>
<description>
- Saves the configuration to the project.godot file.
+ Saves the configuration to the [code]project.godot[/code] file.
</description>
</method>
<method name="save_custom">
@@ -148,7 +146,7 @@
<argument index="1" name="position" type="int">
</argument>
<description>
- Set the order of a configuration value (influences when saved to the config file).
+ Sets the order of a configuration value (influences when saved to the config file).
</description>
</method>
<method name="set_setting">
@@ -163,57 +161,78 @@
</method>
</methods>
<members>
+ <member name="android/modules" type="String" setter="" getter="">
+ Comma-separated list of custom Android modules (which must have been built in the Android export templates) using their Java package path, e.g. [code]org/godotengine/org/GodotPaymentV3,org/godotengine/godot/MyCustomSingleton"[/code].
+ </member>
<member name="application/boot_splash/bg_color" type="Color" setter="" getter="">
+ Background color for the boot splash.
</member>
<member name="application/boot_splash/fullsize" type="bool" setter="" getter="">
- Scale the boot splash image to the full window length when engine starts (will leave it as default pixel size otherwise).
+ If [code]true[/code], scale the boot splash image to the full window length when engine starts. If [code]false[/code], the engine will leave it at the default pixel size.
</member>
<member name="application/boot_splash/image" type="String" setter="" getter="">
- Path to an image used for boot splash.
+ Path to an image used as the boot splash.
+ </member>
+ <member name="application/boot_splash/use_filter" type="bool" setter="" getter="">
+ If [code]true[/code], applies linear filtering when scaling the image (recommended for high resolution artwork). If [code]false[/code], uses nearest-neighbor interpolation (recommended for pixel art).
</member>
<member name="application/config/custom_user_dir_name" type="String" setter="" getter="">
- This directory is used for storing persistent data (user:// filesystem). If a custom name is set, then system paths will be used to store this on Desktop (AppData on Windows, user ~/.config on Unixes, etc), else the Godot config folder is used. This name needs to be unique, and it's recommended to set it to something before publishing.
- the "use_custom_user_dir" setting must be enabled for this to take effect.
+ This user directory is used for storing persistent data ([code]user://[/code] filesystem). If left empty, [code]user://[/code] resolves to a project-specific folder in Godot's own configuration folder (see [method OS.get_user_data_dir]). If a custom directory name is defined, this name will be used instead and appended to the system-specific user data directory (same parent folder as the Godot configuration folder documented in [method OS.get_user_data_dir]).
+ The [member application/config/use_custom_user_dir] setting must be enabled for this to take effect.
</member>
<member name="application/config/icon" type="String" setter="" getter="">
- Icon used for the project, set when project loads. Exporters will use this icon when possible to.
+ Icon used for the project, set when project loads. Exporters will also use this icon when possible.
+ </member>
+ <member name="application/config/macos_native_icon" type="String" setter="" getter="">
</member>
<member name="application/config/name" type="String" setter="" getter="">
- Name of the project. It is used from both project manager and by the exporters. Overriding this as name.locale allows setting it in multiple languages.
+ The project's name. It is used both by the Project Manager and by exporters. The project name can be translated by translating its value in localization files.
+ </member>
+ <member name="application/config/project_settings_override" type="String" setter="" getter="">
+ Specifies a file to override project settings. For example: [code]user://custom_settings.cfg[/code].
</member>
<member name="application/config/use_custom_user_dir" type="bool" setter="" getter="">
- Allow the project to save to its own custom user dir (in AppData on windows or ~/.config on unixes). This setting only works for desktop exporters. A name must be set in the "custom_user_dir_name" setting for this to take effect.
+ If [code]true[/code], the project will save user data to its own user directory (see [member application/config/custom_user_dir_name]). This setting is only effective on desktop platforms. A name must be set in the [member application/config/custom_user_dir_name] setting for this to take effect. If [code]false[/code], the project will save user data to [code](OS user data directory)/Godot/app_userdata/(project name)[/code].
+ </member>
+ <member name="application/config/windows_native_icon" type="String" setter="" getter="">
</member>
<member name="application/run/disable_stderr" type="bool" setter="" getter="">
- Disable printing to stderr on exported build.
+ If [code]true[/code], disables printing to standard error in an exported build.
</member>
<member name="application/run/disable_stdout" type="bool" setter="" getter="">
- Disable printing to stdout on exported build.
+ If [code]true[/code], disables printing to standard output in an exported build.
</member>
<member name="application/run/frame_delay_msec" type="int" setter="" getter="">
- Force a delay between frames in the main loop. This may be useful if you plan to disable vsync.
+ Forces a delay between frames in the main loop (in milliseconds). This may be useful if you plan to disable vertical synchronization.
</member>
<member name="application/run/low_processor_mode" type="bool" setter="" getter="">
- Turn on low processor mode. This setting only works on desktops. The screen is not redrawn if nothing changes visually. This is meant for writing applications and editors, but is pretty useless (and can hurt performance) on games.
+ If [code]true[/code], enables low-processor usage mode. This setting only works on desktop platforms. The screen is not redrawn if nothing changes visually. This is meant for writing applications and editors, but is pretty useless (and can hurt performance) in most games.
</member>
<member name="application/run/low_processor_mode_sleep_usec" type="int" setter="" getter="">
- Amount of sleeping between frames when the low_processor_mode is enabled. This effectively reduces CPU usage when this mode is enabled.
+ Amount of sleeping between frames when the low-processor usage mode is enabled (in microseconds). Higher values will result in lower CPU usage.
</member>
<member name="application/run/main_scene" type="String" setter="" getter="">
Path to the main scene file that will be loaded when the project runs.
</member>
<member name="audio/channel_disable_threshold_db" type="float" setter="" getter="">
- Audio buses will disable automatically when sound goes below a given DB threshold for a given time. This saves CPU as effects assigned to that bus will no longer do any processing.
+ Audio buses will disable automatically when sound goes below a given dB threshold for a given time. This saves CPU as effects assigned to that bus will no longer do any processing.
</member>
<member name="audio/channel_disable_time" type="float" setter="" getter="">
- Audio buses will disable automatically when sound goes below a given DB threshold for a given time. This saves CPU as effects assigned to that bus will no longer do any processing.
+ Audio buses will disable automatically when sound goes below a given dB threshold for a given time. This saves CPU as effects assigned to that bus will no longer do any processing.
+ </member>
+ <member name="audio/default_bus_layout" type="String" setter="" getter="">
</member>
<member name="audio/driver" type="String" setter="" getter="">
+ Specifies the audio driver to use. This setting is platform-dependent as each platform supports different audio drivers. If left empty, the default audio driver will be used.
+ </member>
+ <member name="audio/enable_audio_input" type="bool" setter="" getter="">
+ If [code]true[/code], microphone input will be allowed. This requires appropriate permissions to be set when exporting to Android or iOS.
</member>
<member name="audio/mix_rate" type="int" setter="" getter="">
- Mix rate used for audio. In general, it's better to not touch this and leave it to the host operating system.
+ Mixing rate used for audio. In general, it's better to not touch this and leave it to the host operating system.
</member>
<member name="audio/output_latency" type="int" setter="" getter="">
+ 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>
<member name="audio/video_delay_compensation_ms" type="int" setter="" getter="">
Setting to hardcode audio delay when playing video. Best to leave this untouched unless you know what you are doing.
@@ -222,73 +241,105 @@
Default compression level for gzip. Affects compressed scenes and resources.
</member>
<member name="compression/formats/zlib/compression_level" type="int" setter="" getter="">
- Default compression level for zlib. Affects compressed scenes and resources.
+ Default compression level for Zlib. Affects compressed scenes and resources.
</member>
<member name="compression/formats/zstd/compression_level" type="int" setter="" getter="">
- Default compression level for zstd. Affects compressed scenes and resources.
+ Default compression level for Zstandard. Affects compressed scenes and resources.
</member>
<member name="compression/formats/zstd/long_distance_matching" type="bool" setter="" getter="">
- Enable long distance matching in zstd.
+ Enables long-distance matching in Zstandard.
</member>
<member name="compression/formats/zstd/window_log_size" type="int" setter="" getter="">
</member>
<member name="debug/gdscript/completion/autocomplete_setters_and_getters" type="bool" setter="" getter="">
+ If [code]true[/code], displays getters and setters in autocompletion results in the script editor. This setting is meant to be used when porting old projects (Godot 2), as using member variables is the preferred style from Godot 3 onwards.
</member>
<member name="debug/gdscript/warnings/constant_used_as_function" type="bool" setter="" getter="">
+ If [code]true[/code], enables warnings when a constant is used as a function.
</member>
<member name="debug/gdscript/warnings/deprecated_keyword" type="bool" setter="" getter="">
+ If [code]true[/code], enables warnings when deprecated keywords such as [code]slave[/code] are used.
</member>
<member name="debug/gdscript/warnings/enable" type="bool" setter="" getter="">
+ If [code]true[/code], enables specific GDScript warnings (see [code]debug/gdscript/warnings/*[/code] settings). If [code]false[/code], disables all GDScript warnings.
</member>
<member name="debug/gdscript/warnings/function_conflicts_constant" type="bool" setter="" getter="">
+ If [code]true[/code], enables warnings when a function is declared with the same name as a constant.
</member>
<member name="debug/gdscript/warnings/function_conflicts_variable" type="bool" setter="" getter="">
+ If [code]true[/code], enables warnings when a function is declared with the same name as a variable. This will turn into an error in a future version when first-class functions become supported in GDScript.
</member>
<member name="debug/gdscript/warnings/function_may_yield" type="bool" setter="" getter="">
+ If [code]true[/code], enables warnings when a function assigned to a variable may yield and return a function state instead of a value.
</member>
<member name="debug/gdscript/warnings/function_used_as_property" type="bool" setter="" getter="">
+ If [code]true[/code], enables warnings when using a function as if it was a property.
</member>
<member name="debug/gdscript/warnings/incompatible_ternary" type="bool" setter="" getter="">
+ If [code]true[/code], enables warnings when a ternary operator may emit values with incompatible types.
</member>
<member name="debug/gdscript/warnings/integer_division" type="bool" setter="" getter="">
+ If [code]true[/code], enables warnings when dividing an integer by another integer (the decimal part will be discarded).
</member>
<member name="debug/gdscript/warnings/narrowing_conversion" type="bool" setter="" getter="">
+ If [code]true[/code], enables warnings when passing a floating-point value to a function that expects an integer (it will be converted and lose precision).
</member>
<member name="debug/gdscript/warnings/property_used_as_function" type="bool" setter="" getter="">
+ If [code]true[/code], enables warnings when using a property as if it was a function.
</member>
<member name="debug/gdscript/warnings/return_value_discarded" type="bool" setter="" getter="">
+ If [code]true[/code], enables warnings when calling a function without using its return value (by assigning it to a variable or using it as a function argument). Such return values are sometimes used to denote possible errors using the [enum Error] enum.
+ </member>
+ <member name="debug/gdscript/warnings/shadowed_variable" type="bool" setter="" getter="">
+ If [code]true[/code], enables warnings when defining a local or subclass member variable that would shadow a variable at an upper level (such as a member variable).
</member>
<member name="debug/gdscript/warnings/standalone_expression" type="bool" setter="" getter="">
+ If [code]true[/code], enables warnings when calling an expression that has no effect on the surrounding code, such as writing [code]2 + 2[/code] as a statement.
</member>
<member name="debug/gdscript/warnings/treat_warnings_as_errors" type="bool" setter="" getter="">
+ If [code]true[/code], all warnings will be reported as if they were errors.
</member>
<member name="debug/gdscript/warnings/unassigned_variable" type="bool" setter="" getter="">
+ If [code]true[/code], enables warnings when using a variable that wasn't previously assigned.
</member>
<member name="debug/gdscript/warnings/unassigned_variable_op_assign" type="bool" setter="" getter="">
+ If [code]true[/code], enables warnings when assigning a variable using an assignment operator like [code]+=[/code] if the variable wasn't previously assigned.
</member>
<member name="debug/gdscript/warnings/unreachable_code" type="bool" setter="" getter="">
+ If [code]true[/code], enables warnings when unreachable code is detected (such as after a [code]return[/code] statement that will always be executed).
</member>
<member name="debug/gdscript/warnings/unsafe_call_argument" type="bool" setter="" getter="">
+ If [code]true[/code], enables warnings when using an expression whose type may not be compatible with the function parameter expected.
</member>
<member name="debug/gdscript/warnings/unsafe_cast" type="bool" setter="" getter="">
+ If [code]true[/code], enables warnings when performing an unsafe cast.
</member>
<member name="debug/gdscript/warnings/unsafe_method_access" type="bool" setter="" getter="">
+ If [code]true[/code], enables warnings when calling a method whose presence is not guaranteed at compile-time in the class.
</member>
<member name="debug/gdscript/warnings/unsafe_property_access" type="bool" setter="" getter="">
+ If [code]true[/code], enables warnings when accessing a property whose presence is not guaranteed at compile-time in the class.
</member>
<member name="debug/gdscript/warnings/unused_argument" type="bool" setter="" getter="">
+ If [code]true[/code], enables warnings when a function parameter is unused.
</member>
<member name="debug/gdscript/warnings/unused_class_variable" type="bool" setter="" getter="">
+ If [code]true[/code], enables warnings when a member variable is unused.
</member>
<member name="debug/gdscript/warnings/unused_signal" type="bool" setter="" getter="">
+ If [code]true[/code], enables warnings when a signal is unused.
</member>
<member name="debug/gdscript/warnings/unused_variable" type="bool" setter="" getter="">
+ If [code]true[/code], enables warnings when a local variable is unused.
</member>
<member name="debug/gdscript/warnings/variable_conflicts_function" type="bool" setter="" getter="">
+ If [code]true[/code], enables warnings when a variable is declared with the same name as a function. This will turn into an error in a future version when first-class functions become supported in GDScript.
</member>
<member name="debug/gdscript/warnings/void_assignment" type="bool" setter="" getter="">
+ If [code]true[/code], enables warnings when assigning the result of a function that returns [code]void[/code] to a variable.
</member>
<member name="debug/settings/crash_handler/message" type="String" setter="" getter="">
+ Message to be displayed before the backtrace when the engine crashes.
</member>
<member name="debug/settings/fps/force_fps" type="int" setter="" getter="">
</member>
@@ -299,35 +350,37 @@
Maximum amount of functions per frame allowed when profiling.
</member>
<member name="debug/settings/stdout/print_fps" type="bool" setter="" getter="">
- Print frames per second to stdout. Not very useful in general.
+ Print frames per second to standard output every second.
</member>
<member name="debug/settings/stdout/verbose_stdout" type="bool" setter="" getter="">
- Print more information to stdout when running. It shows info such as memory leaks, which scenes and resources are being loaded, etc.
+ Print more information to standard output when running. It displays information such as memory leaks, which scenes and resources are being loaded, etc.
</member>
<member name="debug/settings/visual_script/max_call_stack" type="int" setter="" getter="">
Maximum call stack in visual scripting, to avoid infinite recursion.
</member>
<member name="display/mouse_cursor/custom_image" type="String" setter="" getter="">
- Custom image for the mouse cursor.
+ Custom image for the mouse cursor (limited to 256x256).
</member>
<member name="display/mouse_cursor/custom_image_hotspot" type="Vector2" setter="" getter="">
Hotspot for the custom mouse cursor image.
</member>
- <member name="display/window/allow_per_pixel_transparency" type="bool" setter="" getter="">
- Allow per pixel transparency in a Desktop window. This affects performance if not needed, so leave it off.
+ <member name="display/mouse_cursor/tooltip_position_offset" type="Vector2" setter="" getter="">
+ Position offset for tooltips, relative to the mouse cursor's hotspot.
</member>
<member name="display/window/dpi/allow_hidpi" type="bool" setter="" getter="">
- Allow HiDPI display on Windows and OSX. On Desktop Linux, this can't be enabled or disabled.
+ If [code]true[/code], allows HiDPI display on Windows and macOS. This setting has no effect on desktop Linux, as DPI-awareness fallbacks are not supported there.
</member>
<member name="display/window/energy_saving/keep_screen_on" type="bool" setter="" getter="">
- Force keep the screen on, so the screensaver does not take over. Works on Desktop and Mobile.
+ If [code]true[/code], keeps the screen on (even in case of inactivity), so the screensaver does not take over. Works on desktop and mobile platforms.
</member>
<member name="display/window/handheld/orientation" type="String" setter="" getter="">
- Default orientation for cell phone or tablet.
+ Default orientation on mobile devices.
</member>
- <member name="display/window/per_pixel_transparency" type="bool" setter="" getter="">
+ <member name="display/window/per_pixel_transparency/allowed" type="bool" setter="" getter="">
+ If [code]true[/code], allows per-pixel transparency in a desktop window. This affects performance, so leave it on [code]false[/code] unless you need it.
</member>
- <member name="display/window/per_pixel_transparency_splash" type="bool" setter="" getter="">
+ <member name="display/window/per_pixel_transparency/enabled" type="bool" setter="" getter="">
+ Set the window background to transparent when it starts.
</member>
<member name="display/window/size/always_on_top" type="bool" setter="" getter="">
Force the window to be always on top.
@@ -342,42 +395,44 @@
Set the main window height. On desktop, this is the default window size. Stretch mode settings use this also as a reference when enabled.
</member>
<member name="display/window/size/resizable" type="bool" setter="" getter="">
- Allow the window to be resizable by default.
+ Allows the window to be resizable by default.
</member>
<member name="display/window/size/test_height" type="int" setter="" getter="">
- Test a different height for the window. The main use for this is to test with stretch modes.
+ If greater than zero, uses a different height for the window when running from the editor. The main use for this is to test with stretch modes.
</member>
<member name="display/window/size/test_width" type="int" setter="" getter="">
- Test a different width for the window. The main use for this is to test with stretch modes.
+ If greater than zero, uses a different width for the window when running from the editor. The main use for this is to test with stretch modes.
</member>
<member name="display/window/size/width" type="int" setter="" getter="">
- Set the main window width. On desktop, this is the default window size. Stretch mode settings use this also as a reference when enabled.
+ Sets the main window width. On desktop platforms, this is the default window size. Stretch mode settings use this also as a reference when enabled.
</member>
<member name="display/window/vsync/use_vsync" type="bool" setter="" getter="">
- Use VSync. Don't be stupid, don't turn this off.
+ If [code]true[/code], enables vertical synchronization. This eliminates tearing that may appear in moving scenes, at the cost of higher input latency and stuttering at lower framerates. If [code]false[/code], vertical synchronization will be disabled, however, many platforms will enforce it regardless (such as mobile platforms and HTML5).
</member>
<member name="editor/active" type="bool" setter="" getter="">
Internal editor setting, don't touch.
</member>
+ <member name="editor/search_in_file_extensions" type="PoolStringArray" setter="" getter="">
+ </member>
<member name="gui/common/default_scroll_deadzone" type="int" setter="" getter="">
</member>
<member name="gui/common/swap_ok_cancel" type="bool" setter="" getter="">
- Enable swap OK and Cancel buttons on dialogs. This is because Windows/MacOS/Desktop Linux may use them in different order, so the GUI swaps them depending on the host OS. Disable this behavior by turning this setting off.
+ If [code]true[/code], swaps OK and Cancel buttons in dialogs on Windows and UWP to follow interface conventions.
</member>
<member name="gui/theme/custom" type="String" setter="" getter="">
Use a custom theme resource, set a path to it here.
</member>
<member name="gui/theme/custom_font" type="String" setter="" getter="">
- USe a custom default font resource, set a path to it here.
+ Use a custom default font resource, set a path to it here.
</member>
<member name="gui/theme/use_hidpi" type="bool" setter="" getter="">
- Make sure the theme used works with hidpi.
+ If [code]true[/code], makes sure the theme used works with HiDPI.
</member>
<member name="gui/timers/incremental_search_max_interval_msec" type="int" setter="" getter="">
- Timer setting for incremental search in Tree, IntemList, etc. controls.
+ Timer setting for incremental search in Tree, IntemList, etc. controls (in milliseconds).
</member>
<member name="gui/timers/text_edit_idle_detect_sec" type="float" setter="" getter="">
- Timer for detecting idle in the editor.
+ Timer for detecting idle in the editor (in seconds).
</member>
<member name="input/ui_accept" type="Dictionary" setter="" getter="">
</member>
@@ -406,8 +461,10 @@
<member name="input/ui_up" type="Dictionary" setter="" getter="">
</member>
<member name="input_devices/pointing/emulate_mouse_from_touch" type="bool" setter="" getter="">
+ If [code]true[/code], sends mouse input events when tapping or swiping on the touchscreen.
</member>
<member name="input_devices/pointing/emulate_touch_from_mouse" type="bool" setter="" getter="">
+ If [code]true[/code], sends touch input events when clicking or dragging the mouse.
</member>
<member name="layer_names/2d_physics/layer_1" type="String" setter="" getter="">
</member>
@@ -570,23 +627,25 @@
<member name="layer_names/3d_render/layer_9" type="String" setter="" getter="">
</member>
<member name="locale/fallback" type="String" setter="" getter="">
+ The locale to fall back to if a translation isn't available in a given language. If left empty, [code]en[/code] (English) will be used.
</member>
<member name="locale/test" type="String" setter="" getter="">
+ If non-empty, this locale will be used when running the project from the editor.
</member>
<member name="logging/file_logging/enable_file_logging" type="bool" setter="" getter="">
- Log all output to a file.
+ If [code]true[/code], logs all output to files.
</member>
<member name="logging/file_logging/log_path" type="String" setter="" getter="">
- Path to logs withint he project. Using an user:// based path is recommended.
+ Path to logs within the project. Using an [code]user://[/code] path is recommended.
</member>
<member name="logging/file_logging/max_log_files" type="int" setter="" getter="">
- Amount of log files (used for rotation)/
+ Specifies the maximum amount of log files allowed (used for rotation).
</member>
<member name="memory/limits/message_queue/max_size_kb" type="int" setter="" getter="">
Godot uses a message queue to defer some function calls. If you run out of space on it (you will see an error), you can increase the size here.
</member>
<member name="memory/limits/multithreaded_server/rid_pool_prealloc" type="int" setter="" getter="">
- This is used by servers when used in multi threading mode (servers and visual). RIDs are preallocated to avoid stalling the server requesting them on threads. If servers get stalled too often when loading resources in a thread, increase this number.
+ This is used by servers when used in multi-threading mode (servers and visual). RIDs are preallocated to avoid stalling the server requesting them on threads. If servers get stalled too often when loading resources in a thread, increase this number.
</member>
<member name="network/limits/debugger_stdout/max_chars_per_second" type="int" setter="" getter="">
Maximum amount of characters allowed to send as output from the debugger. Over this value, content is dropped. This helps not to stall the debugger connection.
@@ -598,7 +657,7 @@
Maximum amount of messages allowed to send as output from the debugger. Over this value, content is dropped. This helps not to stall the debugger connection.
</member>
<member name="network/limits/packet_peer_stream/max_buffer_po2" type="int" setter="" getter="">
- Default size of packet peer stream for deserializing godot data. Over this size, data is dropped.
+ Default size of packet peer stream for deserializing Godot data. Over this size, data is dropped.
</member>
<member name="network/limits/websocket_client/max_in_buffer_kb" type="int" setter="" getter="">
</member>
@@ -617,13 +676,13 @@
<member name="network/limits/websocket_server/max_out_packets" type="int" setter="" getter="">
</member>
<member name="network/remote_fs/page_read_ahead" type="int" setter="" getter="">
- Amount of read ahead used by remote filesystem. Improves latency.
+ Amount of read ahead used by remote filesystem. Higher values decrease the effects of latency at the cost of higher bandwidth usage.
</member>
<member name="network/remote_fs/page_size" type="int" setter="" getter="">
- Page size used by remote filesystem.
+ Page size used by remote filesystem (in bytes).
</member>
<member name="node/name_casing" type="int" setter="" getter="">
- When creating nodes names automatically, set the type of casing in this project. This is mostly an editor setting.
+ When creating node names automatically, set the type of casing in this project. This is mostly an editor setting.
</member>
<member name="node/name_num_separator" type="int" setter="" getter="">
What to use to separate node name from number. This is mostly an editor setting.
@@ -631,20 +690,21 @@
<member name="physics/2d/physics_engine" type="String" setter="" getter="">
</member>
<member name="physics/2d/thread_model" type="int" setter="" getter="">
- Set whether physics is run on the main thread or a separate one. Running the server on a thread increases performance, but restricts API Access to only physics process.
+ Sets whether physics is run on the main thread or a separate one. Running the server on a thread increases performance, but restricts API access to only physics process.
</member>
<member name="physics/3d/active_soft_world" type="bool" setter="" getter="">
</member>
<member name="physics/3d/physics_engine" type="String" setter="" getter="">
+ Sets which physics engine to use.
</member>
<member name="physics/common/physics_fps" type="int" setter="" getter="">
Frames per second used in the physics. Physics always needs a fixed amount of frames per second.
</member>
<member name="physics/common/physics_jitter_fix" type="float" setter="" getter="">
- Fix to improve physics jitter, specially on monitors where refresh rate is different than physics FPS.
+ Fix to improve physics jitter, specially on monitors where refresh rate is different than the physics FPS.
</member>
<member name="rendering/environment/default_clear_color" type="Color" setter="" getter="">
- Default background clear color. Overridable per [Viewport] using its [Environment]. See [member Environment.background_mode] and [member Environment.background_color] in particular. To change this default color programmatically, use [method VisualServer.set_default_clear_color].
+ Default background clear color. Overriddable per [Viewport] using its [Environment]. See [member Environment.background_mode] and [member Environment.background_color] in particular. To change this default color programmatically, use [method VisualServer.set_default_clear_color].
</member>
<member name="rendering/limits/buffers/blend_shape_max_buffer_size_kb" type="int" setter="" getter="">
Max buffer size for blend shapes. Any blend shape bigger than this will not work.
@@ -659,61 +719,70 @@
Max buffer size for drawing immediate objects (ImmediateGeometry nodes). Nodes using more than this size will not work.
</member>
<member name="rendering/limits/rendering/max_renderable_elements" type="int" setter="" getter="">
- Max amount of elements renderable in a frame. If more than this are visible per frame, they will be dropped. Keep in mind elements refer to mesh surfaces and not mesh themselves.
+ Max amount of elements renderable in a frame. If more than this are visible per frame, they will be dropped. Keep in mind elements refer to mesh surfaces and not meshes themselves.
</member>
<member name="rendering/limits/time/time_rollover_secs" type="float" setter="" getter="">
- Shaders have a time variable that constantly increases. At some point it needs to be rolled back to zero to avoid numerical errors on shader animations. This setting specifies when.
+ Shaders have a time variable that constantly increases. At some point, it needs to be rolled back to zero to avoid precision errors on shader animations. This setting specifies when (in seconds).
+ </member>
+ <member name="rendering/quality/2d/gles2_use_nvidia_rect_flicker_workaround" type="bool" setter="" getter="">
+ Some NVIDIA GPU drivers have a bug which produces flickering issues for the [code]draw_rect[/code] method, especially as used in [TileMap]. Refer to [url=https://github.com/godotengine/godot/issues/9913]GitHub issue 9913[/url] for details.
+ If [code]true[/code], this option enables a "safe" code path for such NVIDIA GPUs at the cost of performance. This option only impacts the GLES2 rendering backend (so the bug stays if you use GLES3), and only desktop platforms.
</member>
<member name="rendering/quality/2d/use_pixel_snap" type="bool" setter="" getter="">
- Force snapping of polygons to pixels in 2D rendering. May help in some pixel art styles.
+ If [code]true[/code], forces snapping of polygons to pixels in 2D rendering. May help in some pixel art styles.
</member>
<member name="rendering/quality/depth_prepass/disable_for_vendors" type="String" setter="" getter="">
Disable depth pre-pass for some GPU vendors (usually mobile), as their architecture already does this.
</member>
<member name="rendering/quality/depth_prepass/enable" type="bool" setter="" getter="">
- Do a previous depth pass before rendering materials. This increases performance in scenes with high overdraw, when complex materials and lighting are used.
+ If [code]true[/code], performs a previous depth pass before rendering materials. This increases performance in scenes with high overdraw, when complex materials and lighting are used.
</member>
<member name="rendering/quality/directional_shadow/size" type="int" setter="" getter="">
- Size in pixels of the directional shadow.
+ The directional shadow's size in pixels. Higher values will result in sharper shadows, at the cost of performance.
</member>
<member name="rendering/quality/directional_shadow/size.mobile" type="int" setter="" getter="">
</member>
- <member name="rendering/quality/driver/driver_fallback" type="String" setter="" getter="">
- Whether to allow falling back to other graphics drivers if the preferred driver is not available. Best means use the best working driver (this is the default). Never means never fall back to another driver even if it does not work. This means the project will not run if the preferred driver does not function.
- </member>
<member name="rendering/quality/driver/driver_name" type="String" setter="" getter="">
+ The video driver to use ("GLES2" or "GLES3").
+ Note that the backend in use can be overridden at runtime via the [code]--video-driver[/code] command line argument, or by the [member rendering/quality/driver/fallback_to_gles2] option if the target system does not support GLES3 and falls back to GLES2. In such cases, this property is not updated, so use [method OS.get_current_video_driver] to query it at run-time.
+ </member>
+ <member name="rendering/quality/driver/fallback_to_gles2" type="bool" setter="" getter="">
+ If [code]true[/code], allows falling back to the GLES2 driver if the GLES3 driver is not supported.
+ Note that the two video drivers are not drop-in replacements for each other, so a game designed for GLES3 might not work properly when falling back to GLES2. In particular, some features of the GLES3 backend are not available in GLES2. Enabling this setting also means that both ETC and ETC2 VRAM-compressed textures will be exported on Android and iOS, increasing the data pack's size.
</member>
<member name="rendering/quality/filters/anisotropic_filter_level" type="int" setter="" getter="">
- Maximum Anisotropic filter level used for textures when anisotropy enabled.
+ Maximum anisotropic filter level used for textures with anisotropy enabled. Higher values will result in sharper textures when viewed from oblique angles, at the cost of performance. Only power-of-two values are valid (2, 4, 8, 16).
</member>
<member name="rendering/quality/filters/use_nearest_mipmap_filter" type="bool" setter="" getter="">
- Force to use nearest mipmap filtering when using mipmaps. This may increase performance in mobile as less memory bandwidth is used.
+ If [code]true[/code], uses nearest-neighbor mipmap filtering when using mipmaps (also called "bilinear filtering"), which will result in visible seams appearing between mipmap stages. This may increase performance in mobile as less memory bandwidth is used. If [code]false[/code], linear mipmap filtering (also called "trilinear filtering") is used.
</member>
<member name="rendering/quality/intended_usage/framebuffer_allocation" type="int" setter="" getter="">
- Strategy used for framebuffer allocation. The simpler it is, the less memory it uses (but the least features it supports).
+ Strategy used for framebuffer allocation. The simpler it is, the less resources it uses (but the less features it supports).
</member>
<member name="rendering/quality/intended_usage/framebuffer_allocation.mobile" type="int" setter="" getter="">
</member>
<member name="rendering/quality/reflections/high_quality_ggx" type="bool" setter="" getter="">
- For reflection probes and panorama backgrounds (sky), use a high amount of samples to create ggx blurred versions (used for roughness).
+ If [code]true[/code], uses a high amount of samples to create blurred variants of reflection probes and panorama backgrounds (sky). Those blurred variants are used by rough materials.
</member>
<member name="rendering/quality/reflections/high_quality_ggx.mobile" type="bool" setter="" getter="">
</member>
<member name="rendering/quality/reflections/texture_array_reflections" type="bool" setter="" getter="">
- For reflection probes and panorama backgrounds (sky), use a texture array instead of mipmaps. This reduces jitter noise on reflections, but costs more performance and memory.
+ If [code]true[/code], uses texture arrays instead of mipmaps for reflection probes and panorama backgrounds (sky). This reduces jitter noise on reflections, but costs more performance and memory.
</member>
<member name="rendering/quality/reflections/texture_array_reflections.mobile" type="bool" setter="" getter="">
</member>
<member name="rendering/quality/shading/force_blinn_over_ggx" type="bool" setter="" getter="">
+ If [code]true[/code], uses faster but lower-quality Blinn model to generate blurred reflections instead of the GGX model.
</member>
<member name="rendering/quality/shading/force_blinn_over_ggx.mobile" type="bool" setter="" getter="">
</member>
<member name="rendering/quality/shading/force_lambert_over_burley" type="bool" setter="" getter="">
+ If [code]true[/code], uses faster but lower-quality Lambert material lighting model instead of Burley.
</member>
<member name="rendering/quality/shading/force_lambert_over_burley.mobile" type="bool" setter="" getter="">
</member>
<member name="rendering/quality/shading/force_vertex_shading" type="bool" setter="" getter="">
- Force vertex shading for all rendering. This can increase performance a lot, but also reduces quality immensely. Can work to optimize on very low end mobile.
+ If [code]true[/code], forces vertex shading for all rendering. This can increase performance a lot, but also reduces quality immensely. Can be used to optimize performance on low-end mobile devices.
</member>
<member name="rendering/quality/shading/force_vertex_shading.mobile" type="bool" setter="" getter="">
</member>
@@ -730,12 +799,12 @@
Subdivision quadrant size for shadow mapping. See shadow mapping documentation.
</member>
<member name="rendering/quality/shadow_atlas/size" type="int" setter="" getter="">
- Size for shadow atlas (used for point and omni lights). See documentation.
+ Size for shadow atlas (used for OmniLights and SpotLights). See documentation.
</member>
<member name="rendering/quality/shadow_atlas/size.mobile" type="int" setter="" getter="">
</member>
<member name="rendering/quality/shadows/filter_mode" type="int" setter="" getter="">
- Shadow filter mode. The more complex the filter, the more memory bandwidth required.
+ Shadow filter mode. Higher-quality settings result in smoother shadows that flicker less when moving. "Disabled" is the fastest option, but also has the lowest quality. "PCF5" is smoother but is also slower. "PCF13" is the smoothest option, but is also the slowest.
</member>
<member name="rendering/quality/shadows/filter_mode.mobile" type="int" setter="" getter="">
</member>
@@ -751,24 +820,25 @@
Weight subsurface scattering samples. Helps to avoid reading samples from unrelated parts of the screen.
</member>
<member name="rendering/quality/voxel_cone_tracing/high_quality" type="bool" setter="" getter="">
- Use high quality voxel cone tracing (looks better, but requires a higher end GPU).
+ Use high-quality voxel cone tracing. This results in better-looking reflections, but is much more expensive on the GPU.
</member>
<member name="rendering/threads/thread_model" type="int" setter="" getter="">
- Thread model for rendering. Rendering on a thread can vastly improve performance, but syncinc to the main thread can cause a bit more jitter.
+ Thread model for rendering. Rendering on a thread can vastly improve performance, but synchronizing to the main thread can cause a bit more jitter.
</member>
<member name="rendering/vram_compression/import_bptc" type="bool" setter="" getter="">
+ If [code]true[/code], the texture importer will import VRAM-compressed textures using the BPTC algorithm. This texture compression algorithm is only supported on desktop platforms, and only when using the GLES3 renderer.
</member>
<member name="rendering/vram_compression/import_etc" type="bool" setter="" getter="">
- If the project uses this compression (usually low end mobile), texture importer will import these.
+ If [code]true[/code], the texture importer will import VRAM-compressed textures using the Ericsson Texture Compression algorithm. This algorithm doesn't support alpha channels in textures.
</member>
<member name="rendering/vram_compression/import_etc2" type="bool" setter="" getter="">
- If the project uses this compression (usually high end mobile), texture importer will import these.
+ If [code]true[/code], the texture importer will import VRAM-compressed textures using the Ericsson Texture Compression 2 algorithm. This texture compression algorithm is only supported when using the GLES3 renderer.
</member>
<member name="rendering/vram_compression/import_pvrtc" type="bool" setter="" getter="">
- If the project uses this compression (usually iOS), texture importer will import these.
+ If [code]true[/code], the texture importer will import VRAM-compressed textures using the PowerVR Texture Compression algorithm. This texture compression algorithm is only supported on iOS.
</member>
<member name="rendering/vram_compression/import_s3tc" type="bool" setter="" getter="">
- If the project uses this compression (usually Desktop and Consoles), texture importer will import these.
+ If [code]true[/code], the texture importer will import VRAM-compressed textures using the S3 Texture Compression algorithm. This algorithm is only supported on desktop platforms and consoles.
</member>
<member name="script" type="Script" setter="" getter="">
</member>
diff --git a/doc/classes/ProximityGroup.xml b/doc/classes/ProximityGroup.xml
index 1f1c45fbf9..ad4cb682cb 100644
--- a/doc/classes/ProximityGroup.xml
+++ b/doc/classes/ProximityGroup.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="ProximityGroup" inherits="Spatial" category="Core" version="3.1">
+<class name="ProximityGroup" inherits="Spatial" category="Core" version="3.2">
<brief_description>
General purpose proximity-detection node.
</brief_description>
@@ -8,8 +8,6 @@
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
<method name="broadcast">
<return type="void">
diff --git a/doc/classes/ProxyTexture.xml b/doc/classes/ProxyTexture.xml
index 69702ee22e..a36f670c42 100644
--- a/doc/classes/ProxyTexture.xml
+++ b/doc/classes/ProxyTexture.xml
@@ -1,13 +1,11 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="ProxyTexture" inherits="Texture" category="Core" version="3.1">
+<class name="ProxyTexture" inherits="Texture" category="Core" version="3.2">
<brief_description>
</brief_description>
<description>
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
</methods>
<members>
diff --git a/doc/classes/QuadMesh.xml b/doc/classes/QuadMesh.xml
index a45b2ddf4b..cf7e56f895 100644
--- a/doc/classes/QuadMesh.xml
+++ b/doc/classes/QuadMesh.xml
@@ -1,19 +1,18 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="QuadMesh" inherits="PrimitiveMesh" category="Core" version="3.1">
+<class name="QuadMesh" inherits="PrimitiveMesh" category="Core" version="3.2">
<brief_description>
Class representing a square mesh.
</brief_description>
<description>
- Class representing a square mesh with size (2,2,0). Consider using a [PlaneMesh] if you require a differently sized plane.
+ Class representing a square [PrimitiveMesh]. This flat mesh does not have a thickness. By default, this mesh is aligned on the X and Y axes; this default rotation is more suited for use with billboarded materials. Unlike [PlaneMesh], this mesh doesn't provide subdivision options.
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
</methods>
<members>
<member name="size" type="Vector2" setter="set_size" getter="get_size">
+ Size in the X and Y axes. Default is [code]Vector2(1, 1)[/code].
</member>
</members>
<constants>
diff --git a/doc/classes/Quat.xml b/doc/classes/Quat.xml
index 468839dfba..3ef65e1edb 100644
--- a/doc/classes/Quat.xml
+++ b/doc/classes/Quat.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="Quat" category="Built-In Types" version="3.1">
+<class name="Quat" category="Built-In Types" version="3.2">
<brief_description>
Quaternion.
</brief_description>
@@ -10,10 +10,7 @@
</description>
<tutorials>
<link>https://docs.godotengine.org/en/latest/tutorials/3d/using_transforms.html#interpolating-with-quaternions</link>
- <link>https://docs.godotengine.org/en/latest/tutorials/math/rotations.html</link>
</tutorials>
- <demos>
- </demos>
<methods>
<method name="Quat">
<return type="Quat">
@@ -87,7 +84,7 @@
<return type="Vector3">
</return>
<description>
- Return Euler angles (in the YXZ convention: first Z, then X, and Y last) corresponding to the rotation represented by the unit quaternion. Returned vector contains the rotation angles in the format (X-angle, Y-angle, Z-angle).
+ Returns Euler angles (in the YXZ convention: first Z, then X, and Y last) corresponding to the rotation represented by the unit quaternion. Returned vector contains the rotation angles in the format (X-angle, Y-angle, Z-angle).
</description>
</method>
<method name="inverse">
diff --git a/doc/classes/RID.xml b/doc/classes/RID.xml
index a289b68c9a..89778e1c8b 100644
--- a/doc/classes/RID.xml
+++ b/doc/classes/RID.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="RID" category="Built-In Types" version="3.1">
+<class name="RID" category="Built-In Types" version="3.2">
<brief_description>
Handle for a [Resource]'s unique ID.
</brief_description>
@@ -8,8 +8,6 @@
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
<method name="RID">
<return type="RID">
diff --git a/doc/classes/RandomNumberGenerator.xml b/doc/classes/RandomNumberGenerator.xml
index aee9654561..be7bcc9c35 100644
--- a/doc/classes/RandomNumberGenerator.xml
+++ b/doc/classes/RandomNumberGenerator.xml
@@ -1,16 +1,22 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="RandomNumberGenerator" inherits="Reference" category="Core" version="3.1">
+<class name="RandomNumberGenerator" inherits="Reference" category="Core" version="3.2">
<brief_description>
- A class for generation pseudo-random numbers.
+ A class for generating pseudo-random numbers.
</brief_description>
<description>
+ RandomNumberGenerator is a class for generating pseudo-random numbers. It currently uses PCG32. The underlying algorithm is an implementation detail. As a result, it should not be depended upon for reproducible random streams across Godot versions.
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
- <method name="rand_range">
+ <method name="randf">
+ <return type="float">
+ </return>
+ <description>
+ Generates pseudo-random float between '0.0' and '1.0', inclusive.
+ </description>
+ </method>
+ <method name="randf_range">
<return type="float">
</return>
<argument index="0" name="from" type="float">
@@ -18,21 +24,36 @@
<argument index="1" name="to" type="float">
</argument>
<description>
- Generates pseudo-random float between [code]from[/code] and [code]to[/code].
+ Generates pseudo-random float between [code]from[/code] and [code]to[/code], inclusive.
</description>
</method>
- <method name="randf">
+ <method name="randfn">
<return type="float">
</return>
+ <argument index="0" name="mean" type="float" default="0.0">
+ </argument>
+ <argument index="1" name="deviation" type="float" default="1.0">
+ </argument>
<description>
- Generates pseudo-random float between '0.0' and '1.0'.
+ Generates normally(gaussian) distributed pseudo-random number, using Box-Muller transform with the specified [code]mean[/code] and a standard [code]deviation[/code].
</description>
</method>
<method name="randi">
<return type="int">
</return>
<description>
- Generates pseudo-random 32-bit integer between '0' and '4294967295'.
+ Generates pseudo-random 32-bit unsigned integer between '0' and '4294967295', inclusive.
+ </description>
+ </method>
+ <method name="randi_range">
+ <return type="int">
+ </return>
+ <argument index="0" name="from" type="int">
+ </argument>
+ <argument index="1" name="to" type="int">
+ </argument>
+ <description>
+ Generates pseudo-random 32-bit signed integer between [code]from[/code] and [code]to[/code] (inclusive).
</description>
</method>
<method name="randomize">
@@ -45,6 +66,8 @@
</methods>
<members>
<member name="seed" type="int" setter="set_seed" getter="get_seed">
+ The seed used by the random number generator. A given seed will give a reproducible sequence of pseudo-random numbers.
+ [b]Note:[/b] The RNG does not have an avalanche effect, and can output similar random streams given similar seeds. Consider using a hash function to improve your seed quality if they're sourced externally.
</member>
</members>
<constants>
diff --git a/doc/classes/Range.xml b/doc/classes/Range.xml
index 46a6132b94..3c7317bf85 100644
--- a/doc/classes/Range.xml
+++ b/doc/classes/Range.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="Range" inherits="Control" category="Core" version="3.1">
+<class name="Range" inherits="Control" category="Core" version="3.2">
<brief_description>
Abstract base class for range-based controls.
</brief_description>
@@ -8,8 +8,6 @@
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
<method name="share">
<return type="void">
@@ -30,13 +28,13 @@
</methods>
<members>
<member name="allow_greater" type="bool" setter="set_allow_greater" getter="is_greater_allowed">
- If [code]true[/code] [member value] may be greater than [member max_value]. Default value: [code]false[/code].
+ If [code]true[/code], [member value] may be greater than [member max_value]. Default value: [code]false[/code].
</member>
<member name="allow_lesser" type="bool" setter="set_allow_lesser" getter="is_lesser_allowed">
- If [code]true[/code] [member value] may be less than [member min_value]. Default value: [code]false[/code].
+ If [code]true[/code], [member value] may be less than [member min_value]. Default value: [code]false[/code].
</member>
<member name="exp_edit" type="bool" setter="set_exp_ratio" getter="is_ratio_exp">
- If [code]true[/code] and [code]min_value[/code] is greater than 0, [code]value[/code] will be represented exponentially rather than linearly.
+ If [code]true[/code], and [code]min_value[/code] is greater than 0, [code]value[/code] will be represented exponentially rather than linearly.
</member>
<member name="max_value" type="float" setter="set_max" getter="get_max">
Maximum value. Range is clamped if [code]value[/code] is greater than [code]max_value[/code]. Default value: [code]100[/code].
@@ -51,7 +49,7 @@
The value mapped between 0 and 1.
</member>
<member name="rounded" type="bool" setter="set_use_rounded_values" getter="is_using_rounded_values">
- If [code]true[/code] [code]value[/code] will always be rounded to the nearest integer. Default value: [code]false[/code].
+ If [code]true[/code], [code]value[/code] will always be rounded to the nearest integer. Default value: [code]false[/code].
</member>
<member name="step" type="float" setter="set_step" getter="get_step">
If greater than 0, [code]value[/code] will always be rounded to a multiple of [code]step[/code]. If [code]rounded[/code] is also [code]true[/code], [code]value[/code] will first be rounded to a multiple of [code]step[/code] then rounded to the nearest integer.
diff --git a/doc/classes/RayCast.xml b/doc/classes/RayCast.xml
index 84c83d1282..1368143b67 100644
--- a/doc/classes/RayCast.xml
+++ b/doc/classes/RayCast.xml
@@ -1,19 +1,17 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="RayCast" inherits="Spatial" category="Core" version="3.1">
+<class name="RayCast" inherits="Spatial" category="Core" version="3.2">
<brief_description>
Query the closest object intersecting a ray.
</brief_description>
<description>
A RayCast represents a line from its origin to its destination position, [code]cast_to[/code]. It is used to query the 3D space in order to find the closest object along the path of the ray.
- RayCast can ignore some objects by adding them to the exception list via [code]add_exception[/code], by setting proper filtering with collision layers, or by filtering object types with type masks.
+ RayCast can ignore some objects by adding them to the exception list via [code]add_exception[/code] or by setting proper filtering with collision layers and masks.
RayCast can be configured to report collisions with [Area]s ([member collide_with_areas]) and/or [PhysicsBody]s ([member collide_with_bodies]).
Only enabled raycasts will be able to query the space and report collisions.
- RayCast calculates intersection every physics frame (see [Node]), and the result is cached so it can be used later until the next frame. If multiple queries are required between physics frames (or during the same frame) use [method force_raycast_update] after adjusting the raycast.
+ RayCast calculates intersection every physics frame (see [Node]), and the result is cached so it can be used later until the next frame. If multiple queries are required between physics frames (or during the same frame), use [method force_raycast_update] after adjusting the raycast.
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
<method name="add_exception">
<return type="void">
@@ -52,7 +50,7 @@
<return type="Object">
</return>
<description>
- Return the first object that the ray intersects, or [code]null[/code] if no object is intersecting the ray (i.e. [method is_colliding] returns [code]false[/code]).
+ Returns the first object that the ray intersects, or [code]null[/code] if no object is intersecting the ray (i.e. [method is_colliding] returns [code]false[/code]).
</description>
</method>
<method name="get_collider_shape" qualifiers="const">
@@ -89,7 +87,7 @@
<return type="bool">
</return>
<description>
- Return whether any object is intersecting with the ray's vector (considering the vector length).
+ Returns whether any object is intersecting with the ray's vector (considering the vector length).
</description>
</method>
<method name="remove_exception">
@@ -136,10 +134,10 @@
The ray's collision mask. Only objects in at least one collision layer enabled in the mask will be detected.
</member>
<member name="enabled" type="bool" setter="set_enabled" getter="is_enabled">
- If [code]true[/code] collisions will be reported. Default value: [code]false[/code].
+ If [code]true[/code], collisions will be reported. Default value: [code]false[/code].
</member>
<member name="exclude_parent" type="bool" setter="set_exclude_parent_body" getter="get_exclude_parent_body">
- If [code]true[/code] collisions will be ignored for this RayCast's immediate parent. Default value: [code]true[/code].
+ If [code]true[/code], collisions will be ignored for this RayCast's immediate parent. Default value: [code]true[/code].
</member>
</members>
<constants>
diff --git a/doc/classes/RayCast2D.xml b/doc/classes/RayCast2D.xml
index afb80f2f6e..90e0178ddb 100644
--- a/doc/classes/RayCast2D.xml
+++ b/doc/classes/RayCast2D.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="RayCast2D" inherits="Node2D" category="Core" version="3.1">
+<class name="RayCast2D" inherits="Node2D" category="Core" version="3.2">
<brief_description>
Query the closest object intersecting a ray.
</brief_description>
@@ -12,8 +12,6 @@
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
<method name="add_exception">
<return type="void">
@@ -51,7 +49,7 @@
<return type="Object">
</return>
<description>
- Return the first object that the ray intersects, or [code]null[/code] if no object is intersecting the ray (i.e. [method is_colliding] returns [code]false[/code]).
+ Returns the first object that the ray intersects, or [code]null[/code] if no object is intersecting the ray (i.e. [method is_colliding] returns [code]false[/code]).
</description>
</method>
<method name="get_collider_shape" qualifiers="const">
@@ -67,7 +65,7 @@
<argument index="0" name="bit" type="int">
</argument>
<description>
- Return an individual bit on the collision mask.
+ Returns an individual bit on the collision mask.
</description>
</method>
<method name="get_collision_normal" qualifiers="const">
@@ -88,7 +86,7 @@
<return type="bool">
</return>
<description>
- Return whether any object is intersecting with the ray's vector (considering the vector length).
+ Returns whether any object is intersecting with the ray's vector (considering the vector length).
</description>
</method>
<method name="remove_exception">
diff --git a/doc/classes/RayShape.xml b/doc/classes/RayShape.xml
index e03541011d..69b159fa97 100644
--- a/doc/classes/RayShape.xml
+++ b/doc/classes/RayShape.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="RayShape" inherits="Shape" category="Core" version="3.1">
+<class name="RayShape" inherits="Shape" category="Core" version="3.2">
<brief_description>
Ray shape for 3D collisions.
</brief_description>
@@ -8,8 +8,6 @@
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
</methods>
<members>
@@ -17,7 +15,7 @@
The ray's length.
</member>
<member name="slips_on_slope" type="bool" setter="set_slips_on_slope" getter="get_slips_on_slope">
- If [code]true[/code] allow the shape to return the correct normal. Default value: [code]false[/code].
+ If [code]true[/code], allow the shape to return the correct normal. Default value: [code]false[/code].
</member>
</members>
<constants>
diff --git a/doc/classes/RayShape2D.xml b/doc/classes/RayShape2D.xml
index 37cfe4f2d3..e0ef01bd2a 100644
--- a/doc/classes/RayShape2D.xml
+++ b/doc/classes/RayShape2D.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="RayShape2D" inherits="Shape2D" category="Core" version="3.1">
+<class name="RayShape2D" inherits="Shape2D" category="Core" version="3.2">
<brief_description>
Ray shape for 2D collisions.
</brief_description>
@@ -8,8 +8,6 @@
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
</methods>
<members>
@@ -17,7 +15,7 @@
The ray's length.
</member>
<member name="slips_on_slope" type="bool" setter="set_slips_on_slope" getter="get_slips_on_slope">
- If [code]true[/code] allow the shape to return the correct normal. Default value: [code]false[/code].
+ If [code]true[/code], allow the shape to return the correct normal. Default value: [code]false[/code].
</member>
</members>
<constants>
diff --git a/doc/classes/Rect2.xml b/doc/classes/Rect2.xml
index 1392e53f8d..c4f7844a03 100644
--- a/doc/classes/Rect2.xml
+++ b/doc/classes/Rect2.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="Rect2" category="Built-In Types" version="3.1">
+<class name="Rect2" category="Built-In Types" version="3.2">
<brief_description>
2D Axis-aligned bounding box.
</brief_description>
@@ -9,8 +9,6 @@
<tutorials>
<link>https://docs.godotengine.org/en/latest/tutorials/math/index.html</link>
</tutorials>
- <demos>
- </demos>
<methods>
<method name="Rect2">
<return type="Rect2">
@@ -20,7 +18,7 @@
<argument index="1" name="size" type="Vector2">
</argument>
<description>
- Constructs a [code]Rect2[/code] by position and size.
+ Constructs a [Rect2] by position and size.
</description>
</method>
<method name="Rect2">
@@ -35,14 +33,14 @@
<argument index="3" name="height" type="float">
</argument>
<description>
- Constructs a [code]Rect2[/code] by x, y, width, and height.
+ Constructs a [Rect2] by x, y, width, and height.
</description>
</method>
<method name="abs">
<return type="Rect2">
</return>
<description>
- Returns a [code]Rect2[/code] with equivalent position and area, modified so that the top-left corner is the origin and [code]width[/code] and [code]height[/code] are positive.
+ Returns a [Rect2] with equivalent position and area, modified so that the top-left corner is the origin and [code]width[/code] and [code]height[/code] are positive.
</description>
</method>
<method name="clip">
@@ -51,7 +49,7 @@
<argument index="0" name="b" type="Rect2">
</argument>
<description>
- Returns the intersection of this [code]Rect2[/code] and b.
+ Returns the intersection of this [Rect2] and b.
</description>
</method>
<method name="encloses">
@@ -60,7 +58,7 @@
<argument index="0" name="b" type="Rect2">
</argument>
<description>
- Returns [code]true[/code] if this [code]Rect2[/code] completely encloses another one.
+ Returns [code]true[/code] if this [Rect2] completely encloses another one.
</description>
</method>
<method name="expand">
@@ -69,14 +67,14 @@
<argument index="0" name="to" type="Vector2">
</argument>
<description>
- Returns this [code]Rect2[/code] expanded to include a given point.
+ Returns this [Rect2] expanded to include a given point.
</description>
</method>
<method name="get_area">
<return type="float">
</return>
<description>
- Returns the area of the [code]Rect2[/code].
+ Returns the area of the [Rect2].
</description>
</method>
<method name="grow">
@@ -85,7 +83,7 @@
<argument index="0" name="by" type="float">
</argument>
<description>
- Returns a copy of the [code]Rect2[/code] grown a given amount of units towards all the sides.
+ Returns a copy of the [Rect2] grown a given amount of units towards all the sides.
</description>
</method>
<method name="grow_individual">
@@ -100,7 +98,7 @@
<argument index="3" name=" bottom" type="float">
</argument>
<description>
- Returns a copy of the [code]Rect2[/code] grown a given amount of units towards each direction individually.
+ Returns a copy of the [Rect2] grown a given amount of units towards each direction individually.
</description>
</method>
<method name="grow_margin">
@@ -111,14 +109,14 @@
<argument index="1" name="by" type="float">
</argument>
<description>
- Returns a copy of the [code]Rect2[/code] grown a given amount of units towards the [Margin] direction.
+ Returns a copy of the [Rect2] grown a given amount of units towards the [enum Margin] direction.
</description>
</method>
<method name="has_no_area">
<return type="bool">
</return>
<description>
- Returns [code]true[/code] if the [code]Rect2[/code] is flat or empty.
+ Returns [code]true[/code] if the [Rect2] is flat or empty.
</description>
</method>
<method name="has_point">
@@ -127,7 +125,7 @@
<argument index="0" name="point" type="Vector2">
</argument>
<description>
- Returns [code]true[/code] if the [code]Rect2[/code] contains a point.
+ Returns [code]true[/code] if the [Rect2] contains a point.
</description>
</method>
<method name="intersects">
@@ -136,7 +134,7 @@
<argument index="0" name="b" type="Rect2">
</argument>
<description>
- Returns [code]true[/code] if the [code]Rect2[/code] overlaps with another.
+ Returns [code]true[/code] if the [Rect2] overlaps with another.
</description>
</method>
<method name="merge">
@@ -145,7 +143,7 @@
<argument index="0" name="b" type="Rect2">
</argument>
<description>
- Returns a larger Rect2 that contains this Rect2 and [code]with[/code].
+ Returns a larger Rect2 that contains this Rect2 and [code]b[/code].
</description>
</method>
</methods>
diff --git a/doc/classes/RectangleShape2D.xml b/doc/classes/RectangleShape2D.xml
index 4a312503f4..62ead5598b 100644
--- a/doc/classes/RectangleShape2D.xml
+++ b/doc/classes/RectangleShape2D.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="RectangleShape2D" inherits="Shape2D" category="Core" version="3.1">
+<class name="RectangleShape2D" inherits="Shape2D" category="Core" version="3.2">
<brief_description>
Rectangle shape for 2D collisions.
</brief_description>
@@ -8,8 +8,6 @@
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
</methods>
<members>
diff --git a/doc/classes/Reference.xml b/doc/classes/Reference.xml
index 3238501633..bc24483367 100644
--- a/doc/classes/Reference.xml
+++ b/doc/classes/Reference.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="Reference" inherits="Object" category="Core" version="3.1">
+<class name="Reference" inherits="Object" category="Core" version="3.2">
<brief_description>
Base class for anything that keeps a reference count.
</brief_description>
@@ -8,8 +8,6 @@
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
<method name="init_ref">
<return type="bool">
diff --git a/doc/classes/ReferenceRect.xml b/doc/classes/ReferenceRect.xml
index e1cb104e40..0e19e35e58 100644
--- a/doc/classes/ReferenceRect.xml
+++ b/doc/classes/ReferenceRect.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="ReferenceRect" inherits="Control" category="Core" version="3.1">
+<class name="ReferenceRect" inherits="Control" category="Core" version="3.2">
<brief_description>
Reference frame for GUI.
</brief_description>
@@ -8,8 +8,6 @@
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
</methods>
<members>
diff --git a/doc/classes/ReflectionProbe.xml b/doc/classes/ReflectionProbe.xml
index 7662f72eca..3268e9f8e5 100644
--- a/doc/classes/ReflectionProbe.xml
+++ b/doc/classes/ReflectionProbe.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="ReflectionProbe" inherits="VisualInstance" category="Core" version="3.1">
+<class name="ReflectionProbe" inherits="VisualInstance" category="Core" version="3.2">
<brief_description>
</brief_description>
<description>
@@ -7,8 +7,6 @@
<tutorials>
<link>https://docs.godotengine.org/en/latest/tutorials/3d/reflection_probes.html</link>
</tutorials>
- <demos>
- </demos>
<methods>
</methods>
<members>
diff --git a/doc/classes/RemoteTransform.xml b/doc/classes/RemoteTransform.xml
index 1a5d1eb907..17ee7bf123 100644
--- a/doc/classes/RemoteTransform.xml
+++ b/doc/classes/RemoteTransform.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="RemoteTransform" inherits="Spatial" category="Core" version="3.1">
+<class name="RemoteTransform" inherits="Spatial" category="Core" version="3.2">
<brief_description>
RemoteTransform pushes its own [Transform] to another [Spatial] derived Node in the scene.
</brief_description>
@@ -9,8 +9,6 @@
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
</methods>
<members>
@@ -18,16 +16,16 @@
The [NodePath] to the remote node, relative to the RemoteTransform's position in the scene.
</member>
<member name="update_position" type="bool" setter="set_update_position" getter="get_update_position">
- If [code]true[/code] the remote node's position is updated. Default value: [code]true[/code].
+ If [code]true[/code], the remote node's position is updated. Default value: [code]true[/code].
</member>
<member name="update_rotation" type="bool" setter="set_update_rotation" getter="get_update_rotation">
- If [code]true[/code] the remote node's rotation is updated. Default value: [code]true[/code].
+ If [code]true[/code], the remote node's rotation is updated. Default value: [code]true[/code].
</member>
<member name="update_scale" type="bool" setter="set_update_scale" getter="get_update_scale">
- If [code]true[/code] the remote node's scale is updated. Default value: [code]true[/code].
+ If [code]true[/code], the remote node's scale is updated. Default value: [code]true[/code].
</member>
<member name="use_global_coordinates" type="bool" setter="set_use_global_coordinates" getter="get_use_global_coordinates">
- If [code]true[/code] global coordinates are used. If [code]false[/code] local coordinates are used. Default value: [code]true[/code].
+ If [code]true[/code], global coordinates are used. If [code]false[/code], local coordinates are used. Default value: [code]true[/code].
</member>
</members>
<constants>
diff --git a/doc/classes/RemoteTransform2D.xml b/doc/classes/RemoteTransform2D.xml
index d83ec9f6b1..b8eb7c6f13 100644
--- a/doc/classes/RemoteTransform2D.xml
+++ b/doc/classes/RemoteTransform2D.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="RemoteTransform2D" inherits="Node2D" category="Core" version="3.1">
+<class name="RemoteTransform2D" inherits="Node2D" category="Core" version="3.2">
<brief_description>
RemoteTransform2D pushes its own [Transform2D] to another [CanvasItem] derived Node in the scene.
</brief_description>
@@ -9,8 +9,6 @@
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
</methods>
<members>
@@ -18,16 +16,16 @@
The [NodePath] to the remote node, relative to the RemoteTransform2D's position in the scene.
</member>
<member name="update_position" type="bool" setter="set_update_position" getter="get_update_position">
- If [code]true[/code] the remote node's position is updated. Default value: [code]true[/code].
+ If [code]true[/code], the remote node's position is updated. Default value: [code]true[/code].
</member>
<member name="update_rotation" type="bool" setter="set_update_rotation" getter="get_update_rotation">
- If [code]true[/code] the remote node's rotation is updated. Default value: [code]true[/code].
+ If [code]true[/code], the remote node's rotation is updated. Default value: [code]true[/code].
</member>
<member name="update_scale" type="bool" setter="set_update_scale" getter="get_update_scale">
- If [code]true[/code] the remote node's scale is updated. Default value: [code]true[/code].
+ If [code]true[/code], the remote node's scale is updated. Default value: [code]true[/code].
</member>
<member name="use_global_coordinates" type="bool" setter="set_use_global_coordinates" getter="get_use_global_coordinates">
- If [code]true[/code] global coordinates are used. If [code]false[/code] local coordinates are used. Default value: [code]true[/code].
+ If [code]true[/code], global coordinates are used. If [code]false[/code], local coordinates are used. Default value: [code]true[/code].
</member>
</members>
<constants>
diff --git a/doc/classes/Resource.xml b/doc/classes/Resource.xml
index fc42635ce2..acd608de6a 100644
--- a/doc/classes/Resource.xml
+++ b/doc/classes/Resource.xml
@@ -1,20 +1,20 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="Resource" inherits="Reference" category="Core" version="3.1">
+<class name="Resource" inherits="Reference" category="Core" version="3.2">
<brief_description>
Base class for all resources.
</brief_description>
<description>
- Resource is the base class for all resource types. Resources are primarily data containers. They are reference counted and freed when no longer in use. They are also loaded only once from disk, and further attempts to load the resource will return the same reference (all this in contrast to a [Node], which is not reference counted and can be instanced from disk as many times as desired). Resources can be saved externally on disk or bundled into another object, such as a [Node] or another resource.
+ Resource is the base class for all Godot-specific resource types, serving primarily as data containers. They are reference counted and freed when no longer in use. They are also cached once loaded from disk, so that any further attempts to load a resource from a given path will return the same reference (all this in contrast to a [Node], which is not reference counted and can be instanced from disk as many times as desired). Resources can be saved externally on disk or bundled into another object, such as a [Node] or another resource.
</description>
<tutorials>
+ <link>https://docs.godotengine.org/en/latest/getting_started/step_by_step/resources.html</link>
</tutorials>
- <demos>
- </demos>
<methods>
<method name="_setup_local_to_scene" qualifiers="virtual">
<return type="void">
</return>
<description>
+ Virtual function which can be overridden to customize the behavior value of [method setup_local_to_scene].
</description>
</method>
<method name="duplicate" qualifiers="const">
@@ -23,25 +23,29 @@
<argument index="0" name="subresources" type="bool" default="false">
</argument>
<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.
</description>
</method>
<method name="get_local_scene" qualifiers="const">
<return type="Node">
</return>
<description>
+ If [member resource_local_to_scene] is enabled and the resource was loaded from a [PackedScene] instantiation, returns the local scene where this resource's unique copy is in use. Otherwise, returns [code]null[/code].
</description>
</method>
<method name="get_rid" qualifiers="const">
<return type="RID">
</return>
<description>
- Return the RID of the resource (or an empty RID). Many resources (such as [Texture], [Mesh], etc) are high level abstractions of resources stored in a server, so this function will return the original RID.
+ Returns the RID of the resource (or an empty RID). Many resources (such as [Texture], [Mesh], etc) are high level abstractions of resources stored in a server, so this function will return the original RID.
</description>
</method>
<method name="setup_local_to_scene">
<return type="void">
</return>
<description>
+ This method is called when a resource with [member resource_local_to_scene] enabled is loaded from a [PackedScene] instantiation. Its behavior can be customized by overriding [method _setup_local_to_scene] from script.
+ For most resources, this method performs no base logic. [ViewportTexture] performs custom logic to properly set the proxy texture and flags in the local viewport.
</description>
</method>
<method name="take_over_path">
@@ -50,16 +54,19 @@
<argument index="0" name="path" type="String">
</argument>
<description>
- Set the path of the resource. Differs from set_path(), if another [code]Resource[/code] exists with "path" it over-takes it, instead of failing.
+ Sets the path of the resource, potentially overriding an existing cache entry for this path. This differs from setting [member resource_path], as the latter would error out if another resource was already cached for the given path.
</description>
</method>
</methods>
<members>
<member name="resource_local_to_scene" type="bool" setter="set_local_to_scene" getter="is_local_to_scene">
+ If [code]true[/code], the resource will be made unique in each instance of its local scene. It can thus be modified in a scene instance without impacting other instances of that same scene.
</member>
<member name="resource_name" type="String" setter="set_name" getter="get_name">
+ The name of the resource. This is an optional identifier.
</member>
<member name="resource_path" type="String" setter="set_path" getter="get_path">
+ The path to the resource. In case it has its own file, it will return its filepath. If it's tied to the scene, it will return the scene's path, followed by the resource's index.
</member>
</members>
<signals>
diff --git a/doc/classes/ResourceFormatLoader.xml b/doc/classes/ResourceFormatLoader.xml
new file mode 100644
index 0000000000..f62191413a
--- /dev/null
+++ b/doc/classes/ResourceFormatLoader.xml
@@ -0,0 +1,76 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<class name="ResourceFormatLoader" inherits="Reference" category="Core" version="3.2">
+ <brief_description>
+ Loads a specific resource type from a file.
+ </brief_description>
+ <description>
+ Godot loads resources in the editor or in exported games using ResourceFormatLoaders. They are queried automatically via the [ResourceLoader] singleton, or when a resource with internal dependencies is loaded. Each file type may load as a different resource type, so multiple ResourceFormatLoaders are registered in the engine.
+ Extending this class allows you to define your own loader. Be sure to respect the documented return types and values. You should give it a global class name with [code]class_name[/code] for it to be registered. Like built-in ResourceFormatLoaders, it will be called automatically when loading resources of its handled type(s). You may also implement a [ResourceFormatSaver].
+ Note: You can also extend [EditorImportPlugin] if the resource type you need exists but Godot is unable to load its format. Choosing one way over another depends if the format is suitable or not for the final exported game. For example, it's better to import [code].png[/code] textures as [code].stex[/code] ([StreamTexture]) first, so they can be loaded with better efficiency on the graphics card.
+ </description>
+ <tutorials>
+ </tutorials>
+ <methods>
+ <method name="get_dependencies" qualifiers="virtual">
+ <return type="void">
+ </return>
+ <argument index="0" name="path" type="String">
+ </argument>
+ <argument index="1" name="add_types" type="String">
+ </argument>
+ <description>
+ If implemented, gets the dependencies of a given resource. If [code]add_types[/code] is [code]true[/code], paths should be appended [code]::TypeName[/code], where [code]TypeName[/code] is the class name of the dependency. Note that custom resource types defined by scripts aren't known by the [ClassDB], so you might just return [code]"Resource"[/code] for them.
+ </description>
+ </method>
+ <method name="get_recognized_extensions" qualifiers="virtual">
+ <return type="PoolStringArray">
+ </return>
+ <description>
+ Gets the list of extensions for files this loader is able to read.
+ </description>
+ </method>
+ <method name="get_resource_type" qualifiers="virtual">
+ <return type="String">
+ </return>
+ <argument index="0" name="path" type="String">
+ </argument>
+ <description>
+ Gets the class name of the resource associated with the given path. If the loader cannot handle it, it should return [code]""[/code]. Note that custom resource types defined by scripts aren't known by the [ClassDB], so you might just return [code]"Resource"[/code] for them.
+ </description>
+ </method>
+ <method name="handles_type" qualifiers="virtual">
+ <return type="bool">
+ </return>
+ <argument index="0" name="typename" type="String">
+ </argument>
+ <description>
+ Tells which resource class this loader can load. Note that custom resource types defined by scripts aren't known by the [ClassDB], so you might just handle [code]"Resource"[/code] for them.
+ </description>
+ </method>
+ <method name="load" qualifiers="virtual">
+ <return type="Variant">
+ </return>
+ <argument index="0" name="path" type="String">
+ </argument>
+ <argument index="1" name="original_path" type="String">
+ </argument>
+ <description>
+ Loads a resource when the engine finds this loader to be compatible. If the loaded resource is the result of an import, [code]original_path[/code] will target the source file. Returns a [Resource] object on success, or an [enum @GlobalScope.Error] constant in case of failure.
+ </description>
+ </method>
+ <method name="rename_dependencies" qualifiers="virtual">
+ <return type="int">
+ </return>
+ <argument index="0" name="path" type="String">
+ </argument>
+ <argument index="1" name="renames" type="String">
+ </argument>
+ <description>
+ If implemented, renames dependencies within the given resource and saves it. [code]renames[/code] is a dictionary [code]{ String =&gt; String }[/code] mapping old dependency paths to new paths.
+ Returns [constant @GlobalScope.OK] on success, or an [enum @GlobalScope.Error] constant in case of failure.
+ </description>
+ </method>
+ </methods>
+ <constants>
+ </constants>
+</class>
diff --git a/doc/classes/ResourceFormatSaver.xml b/doc/classes/ResourceFormatSaver.xml
new file mode 100644
index 0000000000..c40f614aa2
--- /dev/null
+++ b/doc/classes/ResourceFormatSaver.xml
@@ -0,0 +1,48 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<class name="ResourceFormatSaver" inherits="Reference" category="Core" version="3.2">
+ <brief_description>
+ Saves a specific resource type to a file.
+ </brief_description>
+ <description>
+ The engine can save resources when you do it from the editor, or when you use the [ResourceSaver] singleton. This is accomplished thanks to multiple [ResourceFormatSaver]s, each handling its own format and called automatically by the engine.
+ By default, Godot saves resources as [code].tres[/code] (text-based), [code].res[/code] (binary) or another built-in format, but you can choose to create your own format by extending this class. Be sure to respect the documented return types and values. You should give it a global class name with [code]class_name[/code] for it to be registered. Like built-in ResourceFormatSavers, it will be called automatically when saving resources of its recognized type(s). You may also implement a [ResourceFormatLoader].
+ </description>
+ <tutorials>
+ </tutorials>
+ <methods>
+ <method name="get_recognized_extensions" qualifiers="virtual">
+ <return type="PoolStringArray">
+ </return>
+ <argument index="0" name="resource" type="Resource">
+ </argument>
+ <description>
+ Returns the list of extensions available for saving the resource object, provided it is recognized (see [method recognize]).
+ </description>
+ </method>
+ <method name="recognize" qualifiers="virtual">
+ <return type="bool">
+ </return>
+ <argument index="0" name="resource" type="Resource">
+ </argument>
+ <description>
+ Returns whether the given resource object can be saved by this saver.
+ </description>
+ </method>
+ <method name="save" qualifiers="virtual">
+ <return type="int">
+ </return>
+ <argument index="0" name="path" type="String">
+ </argument>
+ <argument index="1" name="resource" type="Resource">
+ </argument>
+ <argument index="2" name="flags" type="int">
+ </argument>
+ <description>
+ Saves the given resource object to a file at the target [code]path[/code]. [code]flags[/code] is a bitmask composed with [enum ResourceSaver.SaverFlags] constants.
+ Returns [constant @GlobalScope.OK] on success, or an [enum @GlobalScope.Error] constant in case of failure.
+ </description>
+ </method>
+ </methods>
+ <constants>
+ </constants>
+</class>
diff --git a/doc/classes/ResourceInteractiveLoader.xml b/doc/classes/ResourceInteractiveLoader.xml
index 076121b42d..9d5a52deb2 100644
--- a/doc/classes/ResourceInteractiveLoader.xml
+++ b/doc/classes/ResourceInteractiveLoader.xml
@@ -1,48 +1,52 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="ResourceInteractiveLoader" inherits="Reference" category="Core" version="3.1">
+<class name="ResourceInteractiveLoader" inherits="Reference" category="Core" version="3.2">
<brief_description>
- Interactive Resource Loader.
+ Interactive [Resource] loader.
</brief_description>
<description>
- Interactive Resource Loader. This object is returned by ResourceLoader when performing an interactive load. It allows to load with high granularity, so this is mainly useful for displaying load bars/percentages.
+ Interactive [Resource] loader. This object is returned by [ResourceLoader] when performing an interactive load. It allows to load with high granularity, so this is mainly useful for displaying loading bars/percentages.
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
<method name="get_resource">
<return type="Resource">
</return>
<description>
- Return the loaded resource (only if loaded). Otherwise, returns null.
+ Returns the loaded resource if the load operation completed successfully, [code]null[/code] otherwise.
</description>
</method>
<method name="get_stage" qualifiers="const">
<return type="int">
</return>
<description>
- Return the load stage. The total amount of stages can be queried with [method get_stage_count]
+ Returns the load stage. The total amount of stages can be queried with [method get_stage_count].
</description>
</method>
<method name="get_stage_count" qualifiers="const">
<return type="int">
</return>
<description>
- Return the total amount of stages (calls to [method poll]) needed to completely load this resource.
+ Returns the total amount of stages (calls to [method poll]) needed to completely load this resource.
</description>
</method>
<method name="poll">
<return type="int" enum="Error">
</return>
<description>
- Poll the load. If OK is returned, this means poll will have to be called again. If ERR_FILE_EOF is returned, them the load has finished and the resource can be obtained by calling [method get_resource].
+ Polls the loading operation, i.e. loads a data chunk up to the next stage.
+ Returns [constant @GlobalScope.OK] if the poll is successful but the load operation has not finished yet (intermediate stage). This means [method poll] will have to be called again until the last stage is completed.
+ Returns [constant @GlobalScope.ERR_FILE_EOF] if the load operation has completed successfully. The loaded resource can be obtained by calling [method get_resource].
+ Returns another [enum @GlobalScope.Error] code if the poll has failed.
</description>
</method>
<method name="wait">
<return type="int" enum="Error">
</return>
<description>
+ Polls the loading operation successively until the resource is completely loaded or a [method poll] fails.
+ Returns [constant @GlobalScope.ERR_FILE_EOF] if the load operation has completed successfully. The loaded resource can be obtained by calling [method get_resource].
+ Returns another [enum @GlobalScope.Error] code if a poll has failed, aborting the operation.
</description>
</method>
</methods>
diff --git a/doc/classes/ResourceLoader.xml b/doc/classes/ResourceLoader.xml
index ae900e34ef..558852704e 100644
--- a/doc/classes/ResourceLoader.xml
+++ b/doc/classes/ResourceLoader.xml
@@ -1,15 +1,15 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="ResourceLoader" inherits="Object" category="Core" version="3.1">
+<class name="ResourceLoader" inherits="Object" category="Core" version="3.2">
<brief_description>
- Resource Loader.
+ Singleton used to load resource files.
</brief_description>
<description>
- Resource Loader. This is a static object accessible as [code]ResourceLoader[/code]. GDScript has a simplified load() function, though.
+ Singleton used to load resource files from the filesystem.
+ It uses the many [ResourceFormatLoader] classes registered in the engine (either built-in or from a plugin) to load files into memory and convert them to a format that can be used by the engine.
+ GDScript has a simplified [method @GDScript.load] built-in method which can be used in most situations, leaving the use of [ResourceLoader] for more advanced scenarios.
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
<method name="exists">
<return type="bool">
@@ -19,6 +19,8 @@
<argument index="1" name="type_hint" type="String" default="&quot;&quot;">
</argument>
<description>
+ Returns whether a recognized resource exists for the given [code]path[/code].
+ An optional [code]type_hint[/code] can be used to further specify the [Resource] type that should be handled by the [ResourceFormatLoader].
</description>
</method>
<method name="get_dependencies">
@@ -27,6 +29,7 @@
<argument index="0" name="path" type="String">
</argument>
<description>
+ Returns the dependencies for the resource at the given [code]path[/code].
</description>
</method>
<method name="get_recognized_extensions_for_type">
@@ -35,7 +38,7 @@
<argument index="0" name="type" type="String">
</argument>
<description>
- Return the list of recognized extensions for a resource type.
+ Returns the list of recognized extensions for a resource type.
</description>
</method>
<method name="has">
@@ -44,6 +47,7 @@
<argument index="0" name="path" type="String">
</argument>
<description>
+ Deprecated method. Use [method has_cached] or [method exists] instead.
</description>
</method>
<method name="has_cached">
@@ -52,6 +56,8 @@
<argument index="0" name="path" type="String">
</argument>
<description>
+ Returns whether a cached resource is available for the given [code]path[/code].
+ Once a resource has been loaded by the engine, it is cached in memory for faster access, and future calls to the [method load] or [method load_interactive] methods will use the cached version. The cached resource can be overridden by using [method Resource.take_over_path] on a new resource for that same path.
</description>
</method>
<method name="load">
@@ -61,9 +67,14 @@
</argument>
<argument index="1" name="type_hint" type="String" default="&quot;&quot;">
</argument>
- <argument index="2" name="p_no_cache" type="bool" default="false">
+ <argument index="2" name="no_cache" type="bool" default="false">
</argument>
<description>
+ Loads a resource at the given [code]path[/code], caching the result for further access.
+ The registered [ResourceFormatLoader]s are queried sequentially to find the first one which can handle the file's extension, and then attempt loading. If loading fails, the remaining ResourceFormatLoaders are also attempted.
+ An optional [code]type_hint[/code] can be used to further specify the [Resource] type that should be handled by the [ResourceFormatLoader].
+ If [code]no_cache[/code] is [code]true[/code], the resource cache will be bypassed and the resource will be loaded anew. Otherwise, the cached resource will be returned if it exists.
+ Returns an empty resource if no ResourceFormatLoader could handle the file.
</description>
</method>
<method name="load_interactive">
@@ -74,7 +85,8 @@
<argument index="1" name="type_hint" type="String" default="&quot;&quot;">
</argument>
<description>
- Load a resource interactively, the returned object allows to load with high granularity.
+ Starts loading a resource interactively. The returned [ResourceInteractiveLoader] object allows to load with high granularity, calling its [method ResourceInteractiveLoader.poll] method successively to load chunks.
+ An optional [code]type_hint[/code] can be used to further specify the [Resource] type that should be handled by the [ResourceFormatLoader].
</description>
</method>
<method name="set_abort_on_missing_resources">
diff --git a/doc/classes/ResourcePreloader.xml b/doc/classes/ResourcePreloader.xml
index 002bcd891a..2b00c038e1 100644
--- a/doc/classes/ResourcePreloader.xml
+++ b/doc/classes/ResourcePreloader.xml
@@ -1,15 +1,14 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="ResourcePreloader" inherits="Node" category="Core" version="3.1">
+<class name="ResourcePreloader" inherits="Node" category="Core" version="3.2">
<brief_description>
Resource Preloader Node.
</brief_description>
<description>
- Resource Preloader Node. This node is used to preload sub-resources inside a scene, so when the scene is loaded all the resources are ready to use and be retrieved from here.
+ This node is used to preload sub-resources inside a scene, so when the scene is loaded, all the resources are ready to use and can be retrieved from the preloader.
+ GDScript has a simplified [method @GDScript.preload] built-in method which can be used in most situations, leaving the use of [ResourcePreloader] for more advanced scenarios.
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
<method name="add_resource">
<return type="void">
@@ -19,6 +18,7 @@
<argument index="1" name="resource" type="Resource">
</argument>
<description>
+ Adds a resource to the preloader with the given [code]name[/code]. If a resource with the given [code]name[/code] already exists, the new resource will be renamed to "[code]name[/code] N" where N is an incrementing number starting from 2.
</description>
</method>
<method name="get_resource" qualifiers="const">
@@ -27,14 +27,14 @@
<argument index="0" name="name" type="String">
</argument>
<description>
- Return the resource given a text-id.
+ Returns the resource associated to [code]name[/code].
</description>
</method>
<method name="get_resource_list" qualifiers="const">
<return type="PoolStringArray">
</return>
<description>
- Return the list of resources inside the preloader.
+ Returns the list of resources inside the preloader.
</description>
</method>
<method name="has_resource" qualifiers="const">
@@ -43,7 +43,7 @@
<argument index="0" name="name" type="String">
</argument>
<description>
- Return true if the preloader has a given resource.
+ Returns [code]true[/code] if the preloader contains a resource associated to [code]name[/code].
</description>
</method>
<method name="remove_resource">
@@ -52,7 +52,7 @@
<argument index="0" name="name" type="String">
</argument>
<description>
- Remove a resource from the preloader by text id.
+ Removes the resource associated to [code]name[/code] from the preloader.
</description>
</method>
<method name="rename_resource">
@@ -63,7 +63,7 @@
<argument index="1" name="newname" type="String">
</argument>
<description>
- Rename a resource inside the preloader, from a text-id to a new text-id.
+ Renames a resource inside the preloader from [code]name[/code] to [code]newname[/code].
</description>
</method>
</methods>
diff --git a/doc/classes/ResourceSaver.xml b/doc/classes/ResourceSaver.xml
index f388667891..778ba4293f 100644
--- a/doc/classes/ResourceSaver.xml
+++ b/doc/classes/ResourceSaver.xml
@@ -1,15 +1,14 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="ResourceSaver" inherits="Object" category="Core" version="3.1">
+<class name="ResourceSaver" inherits="Object" category="Core" version="3.2">
<brief_description>
- Resource saving interface.
+ Singleton for saving Godot-specific resource types.
</brief_description>
<description>
- Resource saving interface, used for saving resources to disk.
+ Singleton for saving Godot-specific resource types to the filesystem.
+ It uses the many [ResourceFormatSaver] classes registered in the engine (either built-in or from a plugin) to save engine-specific resource data to text-based (e.g. [code].tres[/code] or [code].tscn[/code]) or binary files (e.g. [code].res[/code] or [code].scn[/code]).
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
<method name="get_recognized_extensions">
<return type="PoolStringArray">
@@ -27,27 +26,36 @@
</argument>
<argument index="1" name="resource" type="Resource">
</argument>
- <argument index="2" name="flags" type="int" default="0">
+ <argument index="2" name="flags" type="int" enum="ResourceSaver.SaverFlags" default="0">
</argument>
<description>
- Saves a resource to disk.
+ Saves a resource to disk to the given path, using a [ResourceFormatSaver] that recognizes the resource object.
+ The [code]flags[/code] bitmask can be specified to customize the save behavior.
+ Returns [constant @GlobalScope.OK] on success.
</description>
</method>
</methods>
<constants>
<constant name="FLAG_RELATIVE_PATHS" value="1" enum="SaverFlags">
+ Save the resource with a path relative to the scene which uses it.
</constant>
<constant name="FLAG_BUNDLE_RESOURCES" value="2" enum="SaverFlags">
+ Bundles external resources.
</constant>
<constant name="FLAG_CHANGE_PATH" value="4" enum="SaverFlags">
+ Change the [member Resource.resource_path] of the saved resource to match its new location.
</constant>
<constant name="FLAG_OMIT_EDITOR_PROPERTIES" value="8" enum="SaverFlags">
+ Do not save editor-specific metadata (identified by their [code]__editor[/code] prefix).
</constant>
<constant name="FLAG_SAVE_BIG_ENDIAN" value="16" enum="SaverFlags">
+ Save as big endian (see [member File.endian_swap]).
</constant>
<constant name="FLAG_COMPRESS" value="32" enum="SaverFlags">
+ Compress the resource on save using [constant File.COMPRESSION_ZSTD]. Only available for binary resource types.
</constant>
<constant name="FLAG_REPLACE_SUBRESOURCE_PATHS" value="64" enum="SaverFlags">
+ Take over the paths of the saved subresources (see [method Resource.take_over_path]).
</constant>
</constants>
</class>
diff --git a/doc/classes/RichTextLabel.xml b/doc/classes/RichTextLabel.xml
index 145ce7537b..c8dd7821a3 100644
--- a/doc/classes/RichTextLabel.xml
+++ b/doc/classes/RichTextLabel.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="RichTextLabel" inherits="Control" category="Core" version="3.1">
+<class name="RichTextLabel" inherits="Control" category="Core" version="3.2">
<brief_description>
Label that displays rich text.
</brief_description>
@@ -10,8 +10,6 @@
<tutorials>
<link>https://docs.godotengine.org/en/latest/tutorials/gui/bbcode_in_richtextlabel.html</link>
</tutorials>
- <demos>
- </demos>
<methods>
<method name="add_image">
<return type="void">
@@ -118,7 +116,7 @@
<return type="void">
</return>
<description>
- Adds a [code][cell][/code] tag to the tag stack. Must be inside a [table] tag. See [method push_table] for details.
+ Adds a [code][cell][/code] tag to the tag stack. Must be inside a [code][table][/code] tag. See [method push_table] for details.
</description>
</method>
<method name="push_color">
@@ -225,16 +223,16 @@
</methods>
<members>
<member name="bbcode_enabled" type="bool" setter="set_use_bbcode" getter="is_using_bbcode">
- If [code]true[/code] the label uses BBCode formatting. Default value: [code]false[/code].
+ If [code]true[/code], the label uses BBCode formatting. Default value: [code]false[/code].
</member>
<member name="bbcode_text" type="String" setter="set_bbcode" getter="get_bbcode">
The label's text in BBCode format. Is not representative of manual modifications to the internal tag stack. Erases changes made by other methods when edited.
</member>
<member name="meta_underlined" type="bool" setter="set_meta_underline" getter="is_meta_underlined">
- If [code]true[/code], the label underlines meta tags such as [url]{text}[/url]. Default value: [code]true[/code].
+ If [code]true[/code], the label underlines meta tags such as [code][url]{text}[/url][/code]. Default value: [code]true[/code].
</member>
<member name="override_selected_font_color" type="bool" setter="set_override_selected_font_color" getter="is_overriding_selected_font_color">
- If [code]true[/code] the label uses the custom font color. Default value: [code]false[/code].
+ If [code]true[/code], the label uses the custom font color. Default value: [code]false[/code].
</member>
<member name="percent_visible" type="float" setter="set_percent_visible" getter="get_percent_visible">
The text's visibility, as a [float] between 0.0 and 1.0.
@@ -264,7 +262,7 @@
<argument index="0" name="meta" type="Nil">
</argument>
<description>
- Triggered when the user clicks on content between [url] tags. If the meta is defined in text, e.g. [code][url={"data"="hi"}]hi[/url][/code], then the parameter for this signal will be a [String] type. If a particular type or an object is desired, the [method push_meta] method must be used to manually insert the data into the tag stack.
+ Triggered when the user clicks on content between [code][url][/code] tags. If the meta is defined in text, e.g. [code][url={"data"="hi"}]hi[/url][/code], then the parameter for this signal will be a [String] type. If a particular type or an object is desired, the [method push_meta] method must be used to manually insert the data into the tag stack.
</description>
</signal>
<signal name="meta_hover_ended">
diff --git a/doc/classes/RigidBody.xml b/doc/classes/RigidBody.xml
index 4ff332402b..8dadca49e1 100644
--- a/doc/classes/RigidBody.xml
+++ b/doc/classes/RigidBody.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="RigidBody" inherits="PhysicsBody" category="Core" version="3.1">
+<class name="RigidBody" inherits="PhysicsBody" category="Core" version="3.2">
<brief_description>
Physics Body whose position is determined through physics simulation in 3D space.
</brief_description>
@@ -12,8 +12,6 @@
<tutorials>
<link>https://docs.godotengine.org/en/latest/tutorials/physics/physics_introduction.html</link>
</tutorials>
- <demos>
- </demos>
<methods>
<method name="_integrate_forces" qualifiers="virtual">
<return type="void">
@@ -21,7 +19,7 @@
<argument index="0" name="state" type="PhysicsDirectBodyState">
</argument>
<description>
- Called during physics processing, allowing you to read and safely modify the simulation state for the object. By default it works in addition to the usual physics behavior, but [method set_use_custom_integrator] allows you to disable the default behavior and do fully custom force integration for a body.
+ Called during physics processing, allowing you to read and safely modify the simulation state for the object. By default, it works in addition to the usual physics behavior, but the [member custom_integrator] property allows you to disable the default behavior and do fully custom force integration for a body.
</description>
</method>
<method name="add_central_force">
@@ -72,7 +70,7 @@
<argument index="1" name="impulse" type="Vector3">
</argument>
<description>
- Applies a positioned impulse which will be affected by the body mass and shape. This is the equivalent of hitting a billiard ball with a cue: a force that is applied once, and only once. Both the impulse and the position are in global coordinates, and the position is relative to the object's origin.
+ Applies a positioned impulse to the body. An impulse is time independent! Applying an impulse every frame would result in a framerate dependent force. For this reason it should only be used when simulating one-time impacts. The position uses the rotation of the global coordinate system, but is centered at the object's origin.
</description>
</method>
<method name="apply_torque_impulse">
@@ -88,7 +86,7 @@
<return type="Array">
</return>
<description>
- Return a list of the bodies colliding with this one. By default, number of max contacts reported is at 0 , see [method set_max_contacts_reported] to increase it. Note that the result of this test is not immediate after moving objects. For performance, list of collisions is updated once per frame and before the physics step. Consider using signals instead.
+ Returns a list of the bodies colliding with this one. By default, number of max contacts reported is at 0, see the [member contacts_reported] property to increase it. Note that the result of this test is not immediate after moving objects. For performance, list of collisions is updated once per frame and before the physics step. Consider using signals instead.
</description>
</method>
<method name="set_axis_velocity">
@@ -121,29 +119,29 @@
Lock the body's movement in the x-axis.
</member>
<member name="axis_lock_linear_y" type="bool" setter="set_axis_lock" getter="get_axis_lock">
- Lock the body's movement in the x-axis.
+ Lock the body's movement in the y-axis.
</member>
<member name="axis_lock_linear_z" type="bool" setter="set_axis_lock" getter="get_axis_lock">
- Lock the body's movement in the x-axis.
+ Lock the body's movement in the z-axis.
</member>
<member name="bounce" type="float" setter="set_bounce" getter="get_bounce">
RigidBody's bounciness.
</member>
<member name="can_sleep" type="bool" setter="set_can_sleep" getter="is_able_to_sleep">
- If [code]true[/code] the RigidBody will not calculate forces and will act as a static body while there is no movement. It will wake up when forces are applied through other collisions or when the [code]apply_impulse[/code] method is used.
+ If [code]true[/code], the RigidBody will not calculate forces and will act as a static body while there is no movement. It will wake up when forces are applied through other collisions or when the [code]apply_impulse[/code] method is used.
</member>
<member name="contact_monitor" type="bool" setter="set_contact_monitor" getter="is_contact_monitor_enabled">
- If [code]true[/code] the RigidBody will emit signals when it collides with another RigidBody.
+ If [code]true[/code], the RigidBody will emit signals when it collides with another RigidBody.
</member>
<member name="contacts_reported" type="int" setter="set_max_contacts_reported" getter="get_max_contacts_reported">
The maximum contacts to report. Bodies can keep a log of the contacts with other bodies, this is enabled by setting the maximum amount of contacts reported to a number greater than 0.
</member>
<member name="continuous_cd" type="bool" setter="set_use_continuous_collision_detection" getter="is_using_continuous_collision_detection">
- If [code]true[/code] continuous collision detection is used.
+ If [code]true[/code], continuous collision detection is used.
Continuous collision detection tries to predict where a moving body will collide, instead of moving it and correcting its movement if it collided. Continuous collision detection is more precise, and misses less impacts by small, fast-moving objects. Not using continuous collision detection is faster to compute, but can miss small, fast-moving objects.
</member>
<member name="custom_integrator" type="bool" setter="set_use_custom_integrator" getter="is_using_custom_integrator">
- If [code]true[/code] internal force integration will be disabled (like gravity or air friction) for this body. Other than collision response, the body will only move as determined by the [method _integrate_forces] function, if defined.
+ If [code]true[/code], internal force integration will be disabled (like gravity or air friction) for this body. Other than collision response, the body will only move as determined by the [method _integrate_forces] function, if defined.
</member>
<member name="friction" type="float" setter="set_friction" getter="get_friction">
The body's friction, from 0 (frictionless) to 1 (max friction).
@@ -166,7 +164,7 @@
<member name="physics_material_override" type="PhysicsMaterial" setter="set_physics_material_override" getter="get_physics_material_override">
</member>
<member name="sleeping" type="bool" setter="set_sleeping" getter="is_sleeping">
- If [code]true[/code] the body is sleeping and will not calculate forces until woken up by a collision or the [code]apply_impulse[/code] method.
+ If [code]true[/code], the body is sleeping and will not calculate forces until woken up by a collision or the [code]apply_impulse[/code] method.
</member>
<member name="weight" type="float" setter="set_weight" getter="get_weight">
The body's weight based on its mass and the global 3D gravity. Global values are set in "Project &gt; Project Settings &gt; Physics &gt; 3d".
diff --git a/doc/classes/RigidBody2D.xml b/doc/classes/RigidBody2D.xml
index 079440ab8b..9a1802b515 100644
--- a/doc/classes/RigidBody2D.xml
+++ b/doc/classes/RigidBody2D.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="RigidBody2D" inherits="PhysicsBody2D" category="Core" version="3.1">
+<class name="RigidBody2D" inherits="PhysicsBody2D" category="Core" version="3.2">
<brief_description>
A body that is controlled by the 2D physics engine.
</brief_description>
@@ -7,12 +7,11 @@
This node implements simulated 2D physics. You do not control a RigidBody2D directly. Instead you apply forces to it (gravity, impulses, etc.) and the physics simulation calculates the resulting movement based on its mass, friction, and other physical properties.
A RigidBody2D has 4 behavior [member mode]s: Rigid, Static, Character, and Kinematic.
[b]Note:[/b] You should not change a RigidBody2D's [code]position[/code] or [code]linear_velocity[/code] every frame or even very often. If you need to directly affect the body's state, use [method _integrate_forces], which allows you to directly access the physics state.
- If you need to override the default physics behavior, you can write a custom force integration. See [member custom_integrator].
+ Please also keep in mind that physics bodies manage their own transform which overwrites the ones you set. So any direct or indirect transformation (including scaling of the node or its parent) will be visible in the editor only, and immediately reset at runtime.
+ If you need to override the default physics behavior or add a transformation at runtime, you can write a custom force integration. See [member custom_integrator].
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
<method name="_integrate_forces" qualifiers="virtual">
<return type="void">
@@ -20,7 +19,7 @@
<argument index="0" name="state" type="Physics2DDirectBodyState">
</argument>
<description>
- Allows you to read and safely modify the simulation state for the object. Use this instead of [Node._physics_process] if you need to directly change the body's [code]position[/code] or other physics properties. By default it works in addition to the usual physics behavior, but [member custom_integrator] allows you to disable the default behavior and write custom force integration for a body.
+ Allows you to read and safely modify the simulation state for the object. Use this instead of [method Node._physics_process] if you need to directly change the body's [code]position[/code] or other physics properties. By default, it works in addition to the usual physics behavior, but [member custom_integrator] allows you to disable the default behavior and write custom force integration for a body.
</description>
</method>
<method name="add_central_force">
@@ -69,7 +68,7 @@
<argument index="1" name="impulse" type="Vector2">
</argument>
<description>
- Applies a positioned impulse to the body (which will be affected by the body mass and shape). This is the equivalent of hitting a billiard ball with a cue: a force that is applied instantaneously. Both the impulse and the offset from the body origin are in global coordinates.
+ Applies a positioned impulse to the body. An impulse is time independent! Applying an impulse every frame would result in a framerate dependent force. For this reason it should only be used when simulating one-time impacts (use the "_force" functions otherwise). The position uses the rotation of the global coordinate system, but is centered at the object's origin.
</description>
</method>
<method name="apply_torque_impulse">
@@ -130,10 +129,10 @@
The body's bounciness. Default value: [code]0[/code].
</member>
<member name="can_sleep" type="bool" setter="set_can_sleep" getter="is_able_to_sleep">
- If [code]true[/code] the body will not calculate forces and will act as a static body if there is no movement. The body will wake up when other forces are applied via collisions or by using [method apply_impulse] or [method add_force]. Default value: [code]true[/code].
+ If [code]true[/code], the body will not calculate forces and will act as a static body if there is no movement. The body will wake up when other forces are applied via collisions or by using [method apply_impulse] or [method add_force]. Default value: [code]true[/code].
</member>
<member name="contact_monitor" type="bool" setter="set_contact_monitor" getter="is_contact_monitor_enabled">
- If [code]true[/code] the body will emit signals when it collides with another RigidBody2D. See also [member contacts_reported]. Default value: [code]false[/code].
+ If [code]true[/code], the body will emit signals when it collides with another RigidBody2D. See also [member contacts_reported]. Default value: [code]false[/code].
</member>
<member name="contacts_reported" type="int" setter="set_max_contacts_reported" getter="get_max_contacts_reported">
The maximum number of contacts to report. Default value: [code]0[/code].
@@ -143,7 +142,7 @@
Continuous collision detection tries to predict where a moving body will collide instead of moving it and correcting its movement after collision. Continuous collision detection is slower, but more precise and misses fewer collisions with small, fast-moving objects. Raycasting and shapecasting methods are available. See [code]CCD_MODE_[/code] constants for details.
</member>
<member name="custom_integrator" type="bool" setter="set_use_custom_integrator" getter="is_using_custom_integrator">
- If [code]true[/code] internal force integration is disabled for this body. Aside from collision response, the body will only move as determined by the [method _integrate_forces] function.
+ If [code]true[/code], internal force integration is disabled for this body. Aside from collision response, the body will only move as determined by the [method _integrate_forces] function.
</member>
<member name="friction" type="float" setter="set_friction" getter="get_friction">
The body's friction. Values range from [code]0[/code] (frictionless) to [code]1[/code] (maximum friction). Default value: [code]1[/code].
@@ -169,7 +168,7 @@
<member name="physics_material_override" type="PhysicsMaterial" setter="set_physics_material_override" getter="get_physics_material_override">
</member>
<member name="sleeping" type="bool" setter="set_sleeping" getter="is_sleeping">
- If [code]true[/code] the body is sleeping and will not calculate forces until woken up by a collision or by using [method apply_impulse] or [method add_force].
+ If [code]true[/code], the body is sleeping and will not calculate forces until woken up by a collision or by using [method apply_impulse] or [method add_force].
</member>
<member name="weight" type="float" setter="set_weight" getter="get_weight">
The body's weight based on its mass and the "Default Gravity" value in "Project &gt; Project Settings &gt; Physics &gt; 2d".
diff --git a/doc/classes/RootMotionView.xml b/doc/classes/RootMotionView.xml
index 97008f05ff..bb939e82f3 100644
--- a/doc/classes/RootMotionView.xml
+++ b/doc/classes/RootMotionView.xml
@@ -1,13 +1,11 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="RootMotionView" inherits="VisualInstance" category="Core" version="3.1">
+<class name="RootMotionView" inherits="VisualInstance" category="Core" version="3.2">
<brief_description>
</brief_description>
<description>
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
</methods>
<members>
diff --git a/doc/classes/SceneState.xml b/doc/classes/SceneState.xml
index bd2f883cae..34a28b5d1c 100644
--- a/doc/classes/SceneState.xml
+++ b/doc/classes/SceneState.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="SceneState" inherits="Reference" category="Core" version="3.1">
+<class name="SceneState" inherits="Reference" category="Core" version="3.2">
<brief_description>
A script interface to a scene file's data.
</brief_description>
@@ -8,8 +8,6 @@
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
<method name="get_connection_binds" qualifiers="const">
<return type="Array">
diff --git a/doc/classes/SceneTree.xml b/doc/classes/SceneTree.xml
index dd94ee66d2..a236d776c7 100644
--- a/doc/classes/SceneTree.xml
+++ b/doc/classes/SceneTree.xml
@@ -1,17 +1,15 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="SceneTree" inherits="MainLoop" category="Core" version="3.1">
+<class name="SceneTree" inherits="MainLoop" category="Core" version="3.2">
<brief_description>
SceneTree manages a hierarchy of nodes.
</brief_description>
<description>
- As one of the most important classes, the [code]SceneTree[/code] manages the hierarchy of nodes in a scene as well as scenes themselves. Nodes can be added, retrieved and removed. The whole scene tree (and thus the current scene) can be paused. Scenes can be loaded, switched and reloaded. You can also use the SceneTree to organize your nodes into groups: every node can be assigned as many groups as you want to create, e.g. a "enemy" group. You can then iterate these groups or even call methods and set properties on all the group's members at once.
+ As one of the most important classes, the [SceneTree] manages the hierarchy of nodes in a scene as well as scenes themselves. Nodes can be added, retrieved and removed. The whole scene tree (and thus the current scene) can be paused. Scenes can be loaded, switched and reloaded. You can also use the SceneTree to organize your nodes into groups: every node can be assigned as many groups as you want to create, e.g. a "enemy" group. You can then iterate these groups or even call methods and set properties on all the group's members at once.
</description>
<tutorials>
<link>https://docs.godotengine.org/en/latest/getting_started/step_by_step/scene_tree.html</link>
<link>https://docs.godotengine.org/en/latest/tutorials/viewports/multiple_resolutions.html</link>
</tutorials>
- <demos>
- </demos>
<methods>
<method name="call_group" qualifiers="vararg">
<return type="Variant">
@@ -63,13 +61,21 @@
<argument index="1" name="pause_mode_process" type="bool" default="true">
</argument>
<description>
- Returns a [SceneTreeTimer] which will [signal SceneTreeTimer.timeout] after the given time in seconds elapsed in this SceneTree. If [code]pause_mode_process[/code] is set to false, pausing the SceneTree will also pause the timer.
+ Returns a [SceneTreeTimer] which will [signal SceneTreeTimer.timeout] after the given time in seconds elapsed in this SceneTree. If [code]pause_mode_process[/code] is set to [code]false[/code], pausing the SceneTree will also pause the timer.
+ Commonly used to create a one-shot delay timer as in the following example:
+ [codeblock]
+ func some_function():
+ print("start")
+ yield(get_tree().create_timer(1.0), "timeout")
+ print("end")
+ [/codeblock]
</description>
</method>
<method name="get_frame" qualifiers="const">
<return type="int">
</return>
<description>
+ Returns the current frame, i.e. number of frames since the application started.
</description>
</method>
<method name="get_network_connected_peers" qualifiers="const">
@@ -192,7 +198,7 @@
<argument index="0" name="enabled" type="bool">
</argument>
<description>
- If [code]true[/code] the application automatically accepts quitting.
+ If [code]true[/code], the application automatically accepts quitting.
</description>
</method>
<method name="set_group">
@@ -236,7 +242,7 @@
<argument index="0" name="enabled" type="bool">
</argument>
<description>
- If [code]true[/code] the application quits automatically on going back (e.g. on Android).
+ If [code]true[/code], the application quits automatically on going back (e.g. on Android).
</description>
</method>
<method name="set_screen_stretch">
@@ -270,27 +276,27 @@
The default [MultiplayerAPI] instance for this SceneTree.
</member>
<member name="multiplayer_poll" type="bool" setter="set_multiplayer_poll_enabled" getter="is_multiplayer_poll_enabled">
- If [code]true[/code] (default) enable the automatic polling of the [MultiplayerAPI] for this SceneTree during [signal idle_frame].
+ If [code]true[/code], (default) enable the automatic polling of the [MultiplayerAPI] for this SceneTree during [signal idle_frame].
When [code]false[/code] you need to manually call [method MultiplayerAPI.poll] for processing network packets and delivering RPCs/RSETs. This allows to run RPCs/RSETs in a different loop (e.g. physics, thread, specific time step) and for manual [Mutex] protection when accessing the [MultiplayerAPI] from threads.
</member>
<member name="network_peer" type="NetworkedMultiplayerPeer" setter="set_network_peer" getter="get_network_peer">
- The peer object to handle the RPC system (effectively enabling networking when set). Depending on the peer itself, the SceneTree will become a network server (check with [method is_network_server()]) and will set root node's network mode to master (see NETWORK_MODE_* constants in [Node]), or it will become a regular peer with root node set to puppet. All child nodes are set to inherit the network mode by default. Handling of networking-related events (connection, disconnection, new clients) is done by connecting to SceneTree's signals.
+ The peer object to handle the RPC system (effectively enabling networking when set). Depending on the peer itself, the SceneTree will become a network server (check with [method is_network_server]) and will set root node's network mode to master (see NETWORK_MODE_* constants in [Node]), or it will become a regular peer with root node set to puppet. All child nodes are set to inherit the network mode by default. Handling of networking-related events (connection, disconnection, new clients) is done by connecting to SceneTree's signals.
</member>
<member name="paused" type="bool" setter="set_pause" getter="is_paused">
- If [code]true[/code] the SceneTree is paused.
+ If [code]true[/code], the SceneTree is paused.
Doing so will have the following behavior:
* 2D and 3D physics will be stopped.
* _process and _physics_process will not be called anymore in nodes.
* _input and _input_event will not be called anymore either.
</member>
<member name="refuse_new_network_connections" type="bool" setter="set_refuse_new_network_connections" getter="is_refusing_new_network_connections">
- If [code]true[/code] the SceneTree's [member network_peer] refuses new incoming connections.
+ If [code]true[/code], the SceneTree's [member network_peer] refuses new incoming connections.
</member>
<member name="root" type="Viewport" setter="" getter="get_root">
The SceneTree's [Viewport].
</member>
<member name="use_font_oversampling" type="bool" setter="set_use_font_oversampling" getter="is_using_font_oversampling">
- If [code]true[/code] font oversampling is used.
+ If [code]true[/code], font oversampling is used.
</member>
</members>
<signals>
@@ -353,6 +359,12 @@
Emitted whenever a node is removed from the SceneTree.
</description>
</signal>
+ <signal name="node_renamed">
+ <argument index="0" name="node" type="Node">
+ </argument>
+ <description>
+ </description>
+ </signal>
<signal name="physics_frame">
<description>
Emitted immediately before [method Node._physics_process] is called on every node in the SceneTree.
diff --git a/doc/classes/SceneTreeTimer.xml b/doc/classes/SceneTreeTimer.xml
index e1234ce88a..a33f875be2 100644
--- a/doc/classes/SceneTreeTimer.xml
+++ b/doc/classes/SceneTreeTimer.xml
@@ -1,22 +1,31 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="SceneTreeTimer" inherits="Reference" category="Core" version="3.1">
+<class name="SceneTreeTimer" inherits="Reference" category="Core" version="3.2">
<brief_description>
+ One-shot timer.
</brief_description>
<description>
+ A one-shot timer managed by the scene tree, which emits [signal timeout] on completion. See also [method SceneTree.create_timer].
+ As opposed to [Timer], it does not require the instantiation of a node. Commonly used to create a one-shot delay timer as in the following example:
+ [codeblock]
+ func some_function():
+ print("start")
+ yield(get_tree().create_timer(1.0), "timeout")
+ print("end")
+ [/codeblock]
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
</methods>
<members>
<member name="time_left" type="float" setter="set_time_left" getter="get_time_left">
+ The time remaining.
</member>
</members>
<signals>
<signal name="timeout">
<description>
+ Emitted when the timer reaches 0.
</description>
</signal>
</signals>
diff --git a/doc/classes/Script.xml b/doc/classes/Script.xml
index ec1d544c03..fca73e3ea7 100644
--- a/doc/classes/Script.xml
+++ b/doc/classes/Script.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="Script" inherits="Resource" category="Core" version="3.1">
+<class name="Script" inherits="Resource" category="Core" version="3.2">
<brief_description>
A class stored as a resource.
</brief_description>
@@ -10,8 +10,6 @@
<tutorials>
<link>https://docs.godotengine.org/en/latest/getting_started/step_by_step/scripting.html</link>
</tutorials>
- <demos>
- </demos>
<methods>
<method name="can_instance" qualifiers="const">
<return type="bool">
diff --git a/doc/classes/ScriptCreateDialog.xml b/doc/classes/ScriptCreateDialog.xml
index 67ce9a8e87..b2c2d0f060 100644
--- a/doc/classes/ScriptCreateDialog.xml
+++ b/doc/classes/ScriptCreateDialog.xml
@@ -1,21 +1,19 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="ScriptCreateDialog" inherits="ConfirmationDialog" category="Core" version="3.1">
+<class name="ScriptCreateDialog" inherits="ConfirmationDialog" category="Core" version="3.2">
<brief_description>
The Editor's popup dialog for creating new [Script] files.
</brief_description>
<description>
- The ScriptCreateDialog creates script files according to a given template for a given scripting language. The standard use is to configure its fields prior to calling a [method popup]() method.
+ The [ScriptCreateDialog] creates script files according to a given template for a given scripting language. The standard use is to configure its fields prior to calling one of the [method Popup.popup] methods.
[codeblock]
func _ready():
- dialog.config("Node", "res://new_node.gd") # for in-engine types
- dialog.config("\"res://base_node.gd\"", "res://derived_node.gd") # for script types
- dialog.popup_centered()
+ dialog.config("Node", "res://new_node.gd") # for in-engine types
+ dialog.config("\"res://base_node.gd\"", "res://derived_node.gd") # for script types
+ dialog.popup_centered()
[/codeblock]
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
<method name="config">
<return type="void">
diff --git a/doc/classes/ScriptEditor.xml b/doc/classes/ScriptEditor.xml
index 435ab8aafc..28e1f75ac1 100644
--- a/doc/classes/ScriptEditor.xml
+++ b/doc/classes/ScriptEditor.xml
@@ -1,13 +1,11 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="ScriptEditor" inherits="PanelContainer" category="Core" version="3.1">
+<class name="ScriptEditor" inherits="PanelContainer" category="Core" version="3.2">
<brief_description>
</brief_description>
<description>
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
<method name="can_drop_data_fw" qualifiers="const">
<return type="bool">
@@ -57,6 +55,15 @@
Returns an array with all [Script] objects which are currently open in editor.
</description>
</method>
+ <method name="goto_line">
+ <return type="void">
+ </return>
+ <argument index="0" name="line_number" type="int">
+ </argument>
+ <description>
+ Goes to the specified line in the current script.
+ </description>
+ </method>
<method name="open_script_create_dialog">
<return type="void">
</return>
diff --git a/doc/classes/ScrollBar.xml b/doc/classes/ScrollBar.xml
index 736b780218..8b8314d2c8 100644
--- a/doc/classes/ScrollBar.xml
+++ b/doc/classes/ScrollBar.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="ScrollBar" inherits="Range" category="Core" version="3.1">
+<class name="ScrollBar" inherits="Range" category="Core" version="3.2">
<brief_description>
Base class for scroll bars.
</brief_description>
@@ -8,8 +8,6 @@
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
</methods>
<members>
diff --git a/doc/classes/ScrollContainer.xml b/doc/classes/ScrollContainer.xml
index d310561233..7d7dfe167a 100644
--- a/doc/classes/ScrollContainer.xml
+++ b/doc/classes/ScrollContainer.xml
@@ -1,15 +1,13 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="ScrollContainer" inherits="Container" category="Core" version="3.1">
+<class name="ScrollContainer" inherits="Container" category="Core" version="3.2">
<brief_description>
A helper node for displaying scrollable elements (e.g. lists).
</brief_description>
<description>
- A ScrollContainer node with a [Control] child and scrollbar child ([HScrollbar], [VScrollBar], or both) will only draw the Control within the ScrollContainer area. Scrollbars will automatically be drawn at the right (for vertical) or bottom (for horizontal) and will enable dragging to move the viewable Control (and its children) within the ScrollContainer. Scrollbars will also automatically resize the grabber based on the minimum_size of the Control relative to the ScrollContainer. Works great with a [Panel] control. You can set EXPAND on children size flags, so they will upscale to ScrollContainer size if ScrollContainer size is bigger (scroll is invisible for chosen dimension).
+ A ScrollContainer node meant to contain a [Control] child. ScrollContainers will automatically create a scrollbar child ([HScrollBar], [VScrollBar], or both) when needed and will only draw the Control within the ScrollContainer area. Scrollbars will automatically be drawn at the right (for vertical) or bottom (for horizontal) and will enable dragging to move the viewable Control (and its children) within the ScrollContainer. Scrollbars will also automatically resize the grabber based on the minimum_size of the Control relative to the ScrollContainer. Works great with a [Panel] control. You can set EXPAND on children size flags, so they will upscale to ScrollContainer size if ScrollContainer size is bigger (scroll is invisible for chosen dimension).
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
<method name="get_h_scrollbar">
<return type="HScrollBar">
diff --git a/doc/classes/SegmentShape2D.xml b/doc/classes/SegmentShape2D.xml
index 63afb37a7b..af2392787c 100644
--- a/doc/classes/SegmentShape2D.xml
+++ b/doc/classes/SegmentShape2D.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="SegmentShape2D" inherits="Shape2D" category="Core" version="3.1">
+<class name="SegmentShape2D" inherits="Shape2D" category="Core" version="3.2">
<brief_description>
Segment shape for 2D collisions.
</brief_description>
@@ -8,8 +8,6 @@
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
</methods>
<members>
diff --git a/doc/classes/Semaphore.xml b/doc/classes/Semaphore.xml
index f3a37b78e1..dadb445d4b 100644
--- a/doc/classes/Semaphore.xml
+++ b/doc/classes/Semaphore.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="Semaphore" inherits="Reference" category="Core" version="3.1">
+<class name="Semaphore" inherits="Reference" category="Core" version="3.2">
<brief_description>
A synchronization Semaphore.
</brief_description>
@@ -8,21 +8,19 @@
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
<method name="post">
<return type="int" enum="Error">
</return>
<description>
- Lowers the [code]Semaphore[/code], allowing one more thread in. Returns [OK] on success, [ERR_BUSY] otherwise.
+ Lowers the [Semaphore], allowing one more thread in. Returns [code]OK[/code] on success, [code]ERR_BUSY[/code] otherwise.
</description>
</method>
<method name="wait">
<return type="int" enum="Error">
</return>
<description>
- Tries to wait for the [code]Semaphore[/code], if its value is zero, blocks until non-zero. Returns [OK] on success, [ERR_BUSY] otherwise.
+ Tries to wait for the [Semaphore], if its value is zero, blocks until non-zero. Returns [code]OK[/code] on success, [code]ERR_BUSY[/code] otherwise.
</description>
</method>
</methods>
diff --git a/doc/classes/Separator.xml b/doc/classes/Separator.xml
index e5efa4a100..11f6f1b22f 100644
--- a/doc/classes/Separator.xml
+++ b/doc/classes/Separator.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="Separator" inherits="Control" category="Core" version="3.1">
+<class name="Separator" inherits="Control" category="Core" version="3.2">
<brief_description>
Base class for separators.
</brief_description>
@@ -8,8 +8,6 @@
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
</methods>
<constants>
diff --git a/doc/classes/Shader.xml b/doc/classes/Shader.xml
index dd6a023af4..668fb6bafa 100644
--- a/doc/classes/Shader.xml
+++ b/doc/classes/Shader.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="Shader" inherits="Resource" category="Core" version="3.1">
+<class name="Shader" inherits="Resource" category="Core" version="3.2">
<brief_description>
A custom shader program.
</brief_description>
@@ -9,8 +9,6 @@
<tutorials>
<link>https://docs.godotengine.org/en/latest/tutorials/shading/index.html</link>
</tutorials>
- <demos>
- </demos>
<methods>
<method name="get_default_texture_param" qualifiers="const">
<return type="Texture">
diff --git a/doc/classes/ShaderMaterial.xml b/doc/classes/ShaderMaterial.xml
index 7491d22479..ef355c4417 100644
--- a/doc/classes/ShaderMaterial.xml
+++ b/doc/classes/ShaderMaterial.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="ShaderMaterial" inherits="Material" category="Core" version="3.1">
+<class name="ShaderMaterial" inherits="Material" category="Core" version="3.2">
<brief_description>
A material that uses a custom [Shader] program.
</brief_description>
@@ -7,9 +7,8 @@
A material that uses a custom [Shader] program to render either items to screen or process particles. You can create multiple materials for the same shader but configure different values for the uniforms defined in the shader.
</description>
<tutorials>
+ <link>http://docs.godotengine.org/en/latest/tutorials/shading/index.html</link>
</tutorials>
- <demos>
- </demos>
<methods>
<method name="get_shader_param" qualifiers="const">
<return type="Variant">
diff --git a/doc/classes/Shape.xml b/doc/classes/Shape.xml
index 6e51d3156f..d622ff1cf2 100644
--- a/doc/classes/Shape.xml
+++ b/doc/classes/Shape.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="Shape" inherits="Resource" category="Core" version="3.1">
+<class name="Shape" inherits="Resource" category="Core" version="3.2">
<brief_description>
Base class for all 3D shape resources.
</brief_description>
@@ -9,8 +9,6 @@
<tutorials>
<link>https://docs.godotengine.org/en/latest/tutorials/physics/physics_introduction.html</link>
</tutorials>
- <demos>
- </demos>
<methods>
</methods>
<members>
diff --git a/doc/classes/Shape2D.xml b/doc/classes/Shape2D.xml
index 96b8a77d9e..c887e23de0 100644
--- a/doc/classes/Shape2D.xml
+++ b/doc/classes/Shape2D.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="Shape2D" inherits="Resource" category="Core" version="3.1">
+<class name="Shape2D" inherits="Resource" category="Core" version="3.2">
<brief_description>
Base class for all 2D Shapes.
</brief_description>
@@ -9,8 +9,6 @@
<tutorials>
<link>https://docs.godotengine.org/en/latest/tutorials/physics/physics_introduction.html</link>
</tutorials>
- <demos>
- </demos>
<methods>
<method name="collide">
<return type="bool">
@@ -27,7 +25,7 @@
</description>
</method>
<method name="collide_and_get_contacts">
- <return type="Variant">
+ <return type="Array">
</return>
<argument index="0" name="local_xform" type="Transform2D">
</argument>
@@ -54,12 +52,12 @@
<argument index="4" name="shape_motion" type="Vector2">
</argument>
<description>
- Return whether this shape would collide with another, if a given movement was applied.
+ Returns whether this shape would collide with another, if a given movement was applied.
This method needs the transformation matrix for this shape ([code]local_xform[/code]), the movement to test on this shape ([code]local_motion[/code]), the shape to check collisions with ([code]with_shape[/code]), the transformation matrix of that shape ([code]shape_xform[/code]), and the movement to test onto the other object ([code]shape_motion[/code]).
</description>
</method>
<method name="collide_with_motion_and_get_contacts">
- <return type="Variant">
+ <return type="Array">
</return>
<argument index="0" name="local_xform" type="Transform2D">
</argument>
diff --git a/doc/classes/ShortCut.xml b/doc/classes/ShortCut.xml
index 1b5fc035c2..4c5dc0e77b 100644
--- a/doc/classes/ShortCut.xml
+++ b/doc/classes/ShortCut.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="ShortCut" inherits="Resource" category="Core" version="3.1">
+<class name="ShortCut" inherits="Resource" category="Core" version="3.2">
<brief_description>
A shortcut for binding input.
</brief_description>
@@ -9,8 +9,6 @@
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
<method name="get_as_text" qualifiers="const">
<return type="String">
@@ -32,7 +30,7 @@
<return type="bool">
</return>
<description>
- If [code]true[/code] this shortcut is valid.
+ If [code]true[/code], this shortcut is valid.
</description>
</method>
</methods>
diff --git a/doc/classes/Skeleton.xml b/doc/classes/Skeleton.xml
index 233df28255..b693ee0a5e 100644
--- a/doc/classes/Skeleton.xml
+++ b/doc/classes/Skeleton.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="Skeleton" inherits="Spatial" category="Core" version="3.1">
+<class name="Skeleton" inherits="Spatial" category="Core" version="3.2">
<brief_description>
Skeleton for characters and animated objects.
</brief_description>
@@ -10,8 +10,6 @@
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
<method name="add_bone">
<return type="void">
@@ -46,14 +44,14 @@
<argument index="0" name="name" type="String">
</argument>
<description>
- Return the bone index that matches "name" as its name.
+ Returns the bone index that matches "name" as its name.
</description>
</method>
<method name="get_bone_count" qualifiers="const">
<return type="int">
</return>
<description>
- Return the amount of bones in the skeleton.
+ Returns the amount of bones in the skeleton.
</description>
</method>
<method name="get_bone_custom_pose" qualifiers="const">
@@ -62,7 +60,7 @@
<argument index="0" name="bone_idx" type="int">
</argument>
<description>
- Return the custom pose of the specified bone. Custom pose is applied on top of the rest pose.
+ Returns the custom pose of the specified bone. Custom pose is applied on top of the rest pose.
</description>
</method>
<method name="get_bone_global_pose" qualifiers="const">
@@ -71,7 +69,7 @@
<argument index="0" name="bone_idx" type="int">
</argument>
<description>
- Return the overall transform of the specified bone, with respect to the skeleton. Being relative to the skeleton frame, this is not the actual "global" transform of the bone.
+ Returns the overall transform of the specified bone, with respect to the skeleton. Being relative to the skeleton frame, this is not the actual "global" transform of the bone.
</description>
</method>
<method name="get_bone_name" qualifiers="const">
@@ -80,7 +78,7 @@
<argument index="0" name="bone_idx" type="int">
</argument>
<description>
- Return the name of the bone at index "index".
+ Returns the name of the bone at index "index".
</description>
</method>
<method name="get_bone_parent" qualifiers="const">
@@ -89,7 +87,7 @@
<argument index="0" name="bone_idx" type="int">
</argument>
<description>
- Return the bone index which is the parent of the bone at "bone_idx". If -1, then bone has no parent. Note that the parent bone returned will always be less than "bone_idx".
+ Returns the bone index which is the parent of the bone at "bone_idx". If -1, then bone has no parent. Note that the parent bone returned will always be less than "bone_idx".
</description>
</method>
<method name="get_bone_pose" qualifiers="const">
@@ -98,7 +96,7 @@
<argument index="0" name="bone_idx" type="int">
</argument>
<description>
- Return the pose transform of the specified bone. Pose is applied on top of the custom pose, which is applied on top the rest pose.
+ Returns the pose transform of the specified bone. Pose is applied on top of the custom pose, which is applied on top the rest pose.
</description>
</method>
<method name="get_bone_rest" qualifiers="const">
@@ -107,7 +105,7 @@
<argument index="0" name="bone_idx" type="int">
</argument>
<description>
- Return the rest transform for a bone "bone_idx".
+ Returns the rest transform for a bone "bone_idx".
</description>
</method>
<method name="get_bone_transform" qualifiers="const">
@@ -116,7 +114,7 @@
<argument index="0" name="bone_idx" type="int">
</argument>
<description>
- Return the combination of custom pose and pose. The returned transform is in skeleton's reference frame.
+ Returns the combination of custom pose and pose. The returned transform is in skeleton's reference frame.
</description>
</method>
<method name="get_bound_child_nodes_to_bone" qualifiers="const">
@@ -136,6 +134,12 @@
<description>
</description>
</method>
+ <method name="localize_rests">
+ <return type="void">
+ </return>
+ <description>
+ </description>
+ </method>
<method name="physical_bones_add_collision_exception">
<return type="void">
</return>
@@ -225,7 +229,7 @@
<argument index="1" name="pose" type="Transform">
</argument>
<description>
- Return the pose transform for bone "bone_idx".
+ Returns the pose transform for bone "bone_idx".
</description>
</method>
<method name="set_bone_rest">
@@ -259,6 +263,10 @@
</description>
</method>
</methods>
+ <members>
+ <member name="bones_in_world_transform" type="bool" setter="set_use_bones_in_world_transform" getter="is_using_bones_in_world_transform">
+ </member>
+ </members>
<constants>
<constant name="NOTIFICATION_UPDATE_SKELETON" value="50">
</constant>
diff --git a/doc/classes/Skeleton2D.xml b/doc/classes/Skeleton2D.xml
index 712b9ca2a5..064a7266bd 100644
--- a/doc/classes/Skeleton2D.xml
+++ b/doc/classes/Skeleton2D.xml
@@ -1,13 +1,12 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="Skeleton2D" inherits="Node2D" category="Core" version="3.1">
+<class name="Skeleton2D" inherits="Node2D" category="Core" version="3.2">
<brief_description>
</brief_description>
<description>
</description>
<tutorials>
+ <link>http://docs.godotengine.org/en/latest/tutorials/animation/2d_skeletons.html</link>
</tutorials>
- <demos>
- </demos>
<methods>
<method name="get_bone">
<return type="Bone2D">
@@ -30,6 +29,12 @@
</description>
</method>
</methods>
+ <signals>
+ <signal name="bone_setup_changed">
+ <description>
+ </description>
+ </signal>
+ </signals>
<constants>
</constants>
</class>
diff --git a/doc/classes/SkeletonIK.xml b/doc/classes/SkeletonIK.xml
index e720ff8f52..42c7759c1f 100644
--- a/doc/classes/SkeletonIK.xml
+++ b/doc/classes/SkeletonIK.xml
@@ -1,13 +1,11 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="SkeletonIK" inherits="Node" category="Core" version="3.1">
+<class name="SkeletonIK" inherits="Node" category="Core" version="3.2">
<brief_description>
</brief_description>
<description>
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
<method name="get_parent_skeleton" qualifiers="const">
<return type="Skeleton">
diff --git a/doc/classes/Sky.xml b/doc/classes/Sky.xml
index 245da99084..ffd8c3fdee 100644
--- a/doc/classes/Sky.xml
+++ b/doc/classes/Sky.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="Sky" inherits="Resource" category="Core" version="3.1">
+<class name="Sky" inherits="Resource" category="Core" version="3.2">
<brief_description>
The base class for [PanoramaSky] and [ProceduralSky].
</brief_description>
@@ -8,8 +8,6 @@
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
</methods>
<members>
diff --git a/doc/classes/Slider.xml b/doc/classes/Slider.xml
index 1e6ed65b48..8fdf2bc848 100644
--- a/doc/classes/Slider.xml
+++ b/doc/classes/Slider.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="Slider" inherits="Range" category="Core" version="3.1">
+<class name="Slider" inherits="Range" category="Core" version="3.2">
<brief_description>
Base class for GUI Sliders.
</brief_description>
@@ -8,20 +8,22 @@
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
</methods>
<members>
<member name="editable" type="bool" setter="set_editable" getter="is_editable">
+ If [code]true[/code], the slider can be interacted with. If [code]false[/code], the value can be changed only by code.
</member>
<member name="focus_mode" type="int" setter="set_focus_mode" getter="get_focus_mode" enum="Control.FocusMode">
</member>
<member name="scrollable" type="bool" setter="set_scrollable" getter="is_scrollable">
+ If [code]true[/code], the value can be changed using the mouse wheel.
</member>
<member name="tick_count" type="int" setter="set_ticks" getter="get_ticks">
+ Number of ticks displayed on the slider, including border ticks. Ticks are uniformly-distributed value markers.
</member>
<member name="ticks_on_borders" type="bool" setter="set_ticks_on_borders" getter="get_ticks_on_borders">
+ If [code]true[/code], the slider will display ticks for minimum and maximum values.
</member>
</members>
<constants>
diff --git a/doc/classes/SliderJoint.xml b/doc/classes/SliderJoint.xml
index edb8e6d562..997930eaa3 100644
--- a/doc/classes/SliderJoint.xml
+++ b/doc/classes/SliderJoint.xml
@@ -1,15 +1,13 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="SliderJoint" inherits="Joint" category="Core" version="3.1">
+<class name="SliderJoint" inherits="Joint" category="Core" version="3.2">
<brief_description>
Piston kind of slider between two bodies in 3D.
</brief_description>
<description>
- Slides across the x-axis of the [Pivot] object.
+ Slides across the x-axis of the pivot object.
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
</methods>
<members>
diff --git a/doc/classes/SoftBody.xml b/doc/classes/SoftBody.xml
index 6c3929d65b..b235a26ad7 100644
--- a/doc/classes/SoftBody.xml
+++ b/doc/classes/SoftBody.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="SoftBody" inherits="MeshInstance" category="Core" version="3.1">
+<class name="SoftBody" inherits="MeshInstance" category="Core" version="3.2">
<brief_description>
A soft mesh physics body.
</brief_description>
@@ -8,8 +8,6 @@
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
<method name="add_collision_exception_with">
<return type="void">
diff --git a/doc/classes/Spatial.xml b/doc/classes/Spatial.xml
index 6f9d779737..9d1761ba9f 100644
--- a/doc/classes/Spatial.xml
+++ b/doc/classes/Spatial.xml
@@ -1,17 +1,15 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="Spatial" inherits="Node" category="Core" version="3.1">
+<class name="Spatial" inherits="Node" category="Core" version="3.2">
<brief_description>
Most basic 3D game object, parent of all 3D related nodes.
</brief_description>
<description>
- Most basic 3D game object, with a 3D [Transform] and visibility settings. All other 3D game objects inherit from Spatial. Use Spatial as a parent node to move, scale, rotate and show/hide children in a 3D project.
- Affine operations (rotate, scale, translate) happen in parent's local coordinate system, unless the Spatial object is set as top level. Affine operations in this coordinate system correspond to direct affine operations on the Spatial's transform. The word local below refers to this coordinate system. The coordinate system that is attached to the Spatial object itself is referred to as object-local coordinate system.
+ Most basic 3D game object, with a 3D [Transform] and visibility settings. All other 3D game objects inherit from Spatial. Use [Spatial] as a parent node to move, scale, rotate and show/hide children in a 3D project.
+ Affine operations (rotate, scale, translate) happen in parent's local coordinate system, unless the [Spatial] object is set as top level. Affine operations in this coordinate system correspond to direct affine operations on the [Spatial]'s transform. The word local below refers to this coordinate system. The coordinate system that is attached to the [Spatial] object itself is referred to as object-local coordinate system.
</description>
<tutorials>
<link>https://docs.godotengine.org/en/latest/tutorials/3d/introduction_to_3d.html</link>
</tutorials>
- <demos>
- </demos>
<methods>
<method name="force_update_transform">
<return type="void">
@@ -23,14 +21,14 @@
<return type="Spatial">
</return>
<description>
- Returns the parent [code]Spatial[/code], or an empty [Object] if no parent exists or parent is not of type [code]Spatial[/code].
+ Returns the parent [Spatial], or an empty [Object] if no parent exists or parent is not of type [Spatial].
</description>
</method>
<method name="get_world" qualifiers="const">
<return type="World">
</return>
<description>
- Returns the current [World] resource this Spatial node is registered to.
+ Returns the current [World] resource this [Spatial] node is registered to.
</description>
</method>
<method name="global_rotate">
@@ -65,14 +63,14 @@
<return type="void">
</return>
<description>
- Disables rendering of this node. Change Spatial Visible property to false.
+ Disables rendering of this node. Changes [member visible] to [code]false[/code].
</description>
</method>
<method name="is_local_transform_notification_enabled" qualifiers="const">
<return type="bool">
</return>
<description>
- Returns whether node notifies about its local transformation changes. Spatial will not propagate this by default.
+ Returns whether node notifies about its local transformation changes. [Spatial] will not propagate this by default.
</description>
</method>
<method name="is_scale_disabled" qualifiers="const">
@@ -92,7 +90,7 @@
<return type="bool">
</return>
<description>
- Returns whether the node notifies about its global and local transformation changes. Spatial will not propagate this by default.
+ Returns whether the node notifies about its global and local transformation changes. [Spatial] will not propagate this by default.
</description>
</method>
<method name="is_visible_in_tree" qualifiers="const">
@@ -132,7 +130,7 @@
<return type="void">
</return>
<description>
- Resets this node's transformations (like scale, skew and taper) preserving its rotation and translation by performing Gram-Schmidt orthonormalization on this node's [Transform3D].
+ Resets this node's transformations (like scale, skew and taper) preserving its rotation and translation by performing Gram-Schmidt orthonormalization on this node's [Transform].
</description>
</method>
<method name="rotate">
@@ -214,7 +212,7 @@
<return type="void">
</return>
<description>
- Reset all transformations for this node. Set its [Transform3D] to identity matrix.
+ Reset all transformations for this node. Set its [Transform] to identity matrix.
</description>
</method>
<method name="set_ignore_transform_notification">
@@ -232,7 +230,7 @@
<argument index="0" name="enable" type="bool">
</argument>
<description>
- Set whether the node notifies about its local transformation changes. Spatial will not propagate this by default.
+ Set whether the node notifies about its local transformation changes. [Spatial] will not propagate this by default.
</description>
</method>
<method name="set_notify_transform">
@@ -241,14 +239,14 @@
<argument index="0" name="enable" type="bool">
</argument>
<description>
- Set whether the node notifies about its global and local transformation changes. Spatial will not propagate this by default.
+ Set whether the node notifies about its global and local transformation changes. [Spatial] will not propagate this by default.
</description>
</method>
<method name="show">
<return type="void">
</return>
<description>
- Enables rendering of this node. Change Spatial Visible property to "True".
+ Enables rendering of this node. Changes [member visible] to [code]true[/code].
</description>
</method>
<method name="to_global" qualifiers="const">
@@ -296,7 +294,7 @@
</methods>
<members>
<member name="gizmo" type="SpatialGizmo" setter="set_gizmo" getter="get_gizmo">
- The SpatialGizmo for this node. Used for example in [EditorSpatialGizmo] as custom visualization and editing handles in Editor.
+ The [SpatialGizmo] for this node. Used for example in [EditorSpatialGizmo] as custom visualization and editing handles in Editor.
</member>
<member name="global_transform" type="Transform" setter="set_global_transform" getter="get_global_transform">
World space (global) [Transform] of this node.
@@ -318,7 +316,7 @@
Local translation of this node.
</member>
<member name="visible" type="bool" setter="set_visible" getter="is_visible">
- If [code]true[/code] this node is drawn. Default value: [code]true[/code].
+ If [code]true[/code], this node is drawn. Default value: [code]true[/code].
</member>
</members>
<signals>
@@ -329,9 +327,9 @@
</signal>
</signals>
<constants>
- <constant name="NOTIFICATION_TRANSFORM_CHANGED" value="29">
+ <constant name="NOTIFICATION_TRANSFORM_CHANGED" value="2000">
Spatial nodes receives this notification when their global transform changes. This means that either the current or a parent node changed its transform.
- In order for NOTIFICATION_TRANSFORM_CHANGED to work user first needs to ask for it, with set_notify_transform(true).
+ In order for [code]NOTIFICATION_TRANSFORM_CHANGED[/code] to work, users first need to ask for it, with [method set_notify_transform].
</constant>
<constant name="NOTIFICATION_ENTER_WORLD" value="41">
Spatial nodes receives this notification when they are registered to new [World] resource.
diff --git a/doc/classes/SpatialGizmo.xml b/doc/classes/SpatialGizmo.xml
index 68d1d03296..5cca1883b3 100644
--- a/doc/classes/SpatialGizmo.xml
+++ b/doc/classes/SpatialGizmo.xml
@@ -1,13 +1,11 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="SpatialGizmo" inherits="Reference" category="Core" version="3.1">
+<class name="SpatialGizmo" inherits="Reference" category="Core" version="3.2">
<brief_description>
</brief_description>
<description>
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
</methods>
<constants>
diff --git a/doc/classes/SpatialMaterial.xml b/doc/classes/SpatialMaterial.xml
index 3503505999..f0df5fac4a 100644
--- a/doc/classes/SpatialMaterial.xml
+++ b/doc/classes/SpatialMaterial.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="SpatialMaterial" inherits="Material" category="Core" version="3.1">
+<class name="SpatialMaterial" inherits="Material" category="Core" version="3.2">
<brief_description>
Default 3D rendering material.
</brief_description>
@@ -9,8 +9,6 @@
<tutorials>
<link>https://docs.godotengine.org/en/latest/tutorials/3d/spatial_material.html</link>
</tutorials>
- <demos>
- </demos>
<methods>
</methods>
<members>
@@ -23,12 +21,12 @@
The strength of the anisotropy effect.
</member>
<member name="anisotropy_enabled" type="bool" setter="set_feature" getter="get_feature">
- If [code]true[/code] anisotropy is enabled. Changes the shape of the specular blob and aligns it to tangent space. Default value: [code]false[/code].
+ If [code]true[/code], anisotropy is enabled. Changes the shape of the specular blob and aligns it to tangent space. Default value: [code]false[/code].
</member>
<member name="anisotropy_flowmap" type="Texture" setter="set_texture" getter="get_texture">
</member>
<member name="ao_enabled" type="bool" setter="set_feature" getter="get_feature">
- If [code]true[/code] ambient occlusion is enabled.
+ If [code]true[/code], ambient occlusion is enabled.
</member>
<member name="ao_light_affect" type="float" setter="set_ao_light_affect" getter="get_ao_light_affect">
</member>
@@ -41,7 +39,7 @@
<member name="clearcoat" type="float" setter="set_clearcoat" getter="get_clearcoat">
</member>
<member name="clearcoat_enabled" type="bool" setter="set_feature" getter="get_feature">
- If [code]true[/code] clearcoat rendering is enabled. Adds a secondary transparent pass to the material. Default value: [code]false[/code].
+ If [code]true[/code], clearcoat rendering is enabled. Adds a secondary transparent pass to the material. Default value: [code]false[/code].
</member>
<member name="clearcoat_gloss" type="float" setter="set_clearcoat_gloss" getter="get_clearcoat_gloss">
</member>
@@ -50,7 +48,7 @@
<member name="depth_deep_parallax" type="bool" setter="set_depth_deep_parallax" getter="is_depth_deep_parallax_enabled">
</member>
<member name="depth_enabled" type="bool" setter="set_feature" getter="get_feature">
- If [code]true[/code] Depth mapping is enabled. See also [member normal_enabled].
+ If [code]true[/code], Depth mapping is enabled. See also [member normal_enabled].
</member>
<member name="depth_flip_binormal" type="bool" setter="set_depth_deep_parallax_flip_binormal" getter="get_depth_deep_parallax_flip_binormal">
</member>
@@ -86,7 +84,7 @@
The emitted light's color. See [member emission_enabled].
</member>
<member name="emission_enabled" type="bool" setter="set_feature" getter="get_feature">
- If [code]true[/code] the body emits light.
+ If [code]true[/code], the body emits light.
</member>
<member name="emission_energy" type="float" setter="set_emission_energy" getter="get_emission_energy">
The emitted light's strength. See [member emission_enabled].
@@ -100,33 +98,35 @@
<member name="flags_albedo_tex_force_srgb" type="bool" setter="set_flag" getter="get_flag">
</member>
<member name="flags_disable_ambient_light" type="bool" setter="set_flag" getter="get_flag">
- If [code]true[/code] the object receives no ambient light. Default value: [code]false[/code].
+ If [code]true[/code], the object receives no ambient light. Default value: [code]false[/code].
</member>
<member name="flags_do_not_receive_shadows" type="bool" setter="set_flag" getter="get_flag">
- If [code]true[/code] the object receives no shadow that would otherwise be cast onto it. Default value: [code]false[/code].
+ If [code]true[/code], the object receives no shadow that would otherwise be cast onto it. Default value: [code]false[/code].
</member>
<member name="flags_ensure_correct_normals" type="bool" setter="set_flag" getter="get_flag">
</member>
<member name="flags_fixed_size" type="bool" setter="set_flag" getter="get_flag">
- If [code]true[/code] the object is rendered at the same size regardless of distance. Default value: [code]false[/code].
+ If [code]true[/code], the object is rendered at the same size regardless of distance. Default value: [code]false[/code].
</member>
<member name="flags_no_depth_test" type="bool" setter="set_flag" getter="get_flag">
- If [code]true[/code] depth testing is disabled and the object will be drawn in render order.
+ If [code]true[/code], depth testing is disabled and the object will be drawn in render order.
</member>
<member name="flags_transparent" type="bool" setter="set_feature" getter="get_feature">
- If [code]true[/code] transparency is enabled on the body. Default value: [code]false[/code]. See also [member params_blend_mode].
+ If [code]true[/code], transparency is enabled on the body. Default value: [code]false[/code]. See also [member params_blend_mode].
</member>
<member name="flags_unshaded" type="bool" setter="set_flag" getter="get_flag">
- If [code]true[/code] the object is unaffected by lighting. Default value: [code]false[/code].
+ If [code]true[/code], the object is unaffected by lighting. Default value: [code]false[/code].
</member>
<member name="flags_use_point_size" type="bool" setter="set_flag" getter="get_flag">
- If [code]true[/code] render point size can be changed. Note: this is only effective for objects whose geometry is point-based rather than triangle-based. See also [member params_point_size].
+ If [code]true[/code], render point size can be changed. Note: this is only effective for objects whose geometry is point-based rather than triangle-based. See also [member params_point_size].
+ </member>
+ <member name="flags_use_shadow_to_opacity" type="bool" setter="set_flag" getter="get_flag">
</member>
<member name="flags_vertex_lighting" type="bool" setter="set_flag" getter="get_flag">
- If [code]true[/code] lighting is calculated per vertex rather than per pixel. This may increase performance on low-end devices. Default value: [code]false[/code].
+ If [code]true[/code], lighting is calculated per vertex rather than per pixel. This may increase performance on low-end devices. Default value: [code]false[/code].
</member>
<member name="flags_world_triplanar" type="bool" setter="set_flag" getter="get_flag">
- If [code]true[/code] triplanar mapping is calculated in world space rather than object local space. See also [member uv1_triplanar]. Default value: [code]false[/code].
+ If [code]true[/code], triplanar mapping is calculated in world space rather than object local space. See also [member uv1_triplanar]. Default value: [code]false[/code].
</member>
<member name="metallic" type="float" setter="set_metallic" getter="get_metallic">
The reflectivity of the object's surface. The higher the value the more light is reflected.
@@ -139,7 +139,7 @@
<member name="metallic_texture_channel" type="int" setter="set_metallic_texture_channel" getter="get_metallic_texture_channel" enum="SpatialMaterial.TextureChannel">
</member>
<member name="normal_enabled" type="bool" setter="set_feature" getter="get_feature">
- If [code]true[/code] normal mapping is enabled.
+ If [code]true[/code], normal mapping is enabled.
</member>
<member name="normal_scale" type="float" setter="set_normal_scale" getter="get_normal_scale">
The strength of the normal map's effect.
@@ -166,7 +166,7 @@
The algorithm used for diffuse light scattering. See [enum DiffuseMode].
</member>
<member name="params_grow" type="bool" setter="set_grow_enabled" getter="is_grow_enabled">
- If [code]true[/code] enables the vertex grow setting. See [member params_grow_amount].
+ If [code]true[/code], enables the vertex grow setting. See [member params_grow_amount].
</member>
<member name="params_grow_amount" type="float" setter="set_grow" getter="get_grow">
Grows object vertices in the direction of their normals.
@@ -185,7 +185,7 @@
The number of horizontal frames in the particle spritesheet. Only enabled when using [code]BillboardMode.BILLBOARD_PARTICLES[/code]. See [member params_billboard_mode].
</member>
<member name="particles_anim_loop" type="bool" setter="set_particles_anim_loop" getter="get_particles_anim_loop">
- If [code]true[/code] particle animations are looped. Only enabled when using [code]BillboardMode.BILLBOARD_PARTICLES[/code]. See [member params_billboard_mode].
+ If [code]true[/code], particle animations are looped. Only enabled when using [code]BillboardMode.BILLBOARD_PARTICLES[/code]. See [member params_billboard_mode].
</member>
<member name="particles_anim_v_frames" type="int" setter="set_particles_anim_v_frames" getter="get_particles_anim_v_frames">
The number of vertical frames in the particle spritesheet. Only enabled when using [code]BillboardMode.BILLBOARD_PARTICLES[/code]. See [member params_billboard_mode].
@@ -193,10 +193,10 @@
<member name="proximity_fade_distance" type="float" setter="set_proximity_fade_distance" getter="get_proximity_fade_distance">
</member>
<member name="proximity_fade_enable" type="bool" setter="set_proximity_fade" getter="is_proximity_fade_enabled">
- If [code]true[/code] the proximity and distance fade effect is enabled. Default value: [code]false[/code].
+ If [code]true[/code], the proximity and distance fade effect is enabled. Default value: [code]false[/code].
</member>
<member name="refraction_enabled" type="bool" setter="set_feature" getter="get_feature">
- If [code]true[/code] the refraction effect is enabled. Distorts transparency based on light from behind the object. Default value: [code]false[/code].
+ If [code]true[/code], the refraction effect is enabled. Distorts transparency based on light from behind the object. Default value: [code]false[/code].
</member>
<member name="refraction_scale" type="float" setter="set_refraction" getter="get_refraction">
The strength of the refraction effect.
@@ -208,7 +208,7 @@
<member name="rim" type="float" setter="set_rim" getter="get_rim">
</member>
<member name="rim_enabled" type="bool" setter="set_feature" getter="get_feature">
- If [code]true[/code] rim effect is enabled. Default value: [code]false[/code].
+ If [code]true[/code], rim effect is enabled. Default value: [code]false[/code].
</member>
<member name="rim_texture" type="Texture" setter="set_texture" getter="get_texture">
</member>
@@ -223,7 +223,7 @@
<member name="roughness_texture_channel" type="int" setter="set_roughness_texture_channel" getter="get_roughness_texture_channel" enum="SpatialMaterial.TextureChannel">
</member>
<member name="subsurf_scatter_enabled" type="bool" setter="set_feature" getter="get_feature">
- If [code]true[/code] subsurface scattering is enabled. Emulates light that penetrates an object's surface, is scattered, and then emerges.
+ If [code]true[/code], subsurface scattering is enabled. Emulates light that penetrates an object's surface, is scattered, and then emerges.
</member>
<member name="subsurf_scatter_strength" type="float" setter="set_subsurface_scattering_strength" getter="get_subsurface_scattering_strength">
The strength of the subsurface scattering effect.
@@ -234,7 +234,7 @@
The color used by the transmission effect. Represents the light passing through an object.
</member>
<member name="transmission_enabled" type="bool" setter="set_feature" getter="get_feature">
- If [code]true[/code] the transmission effect is enabled. Default value: [code]false[/code].
+ If [code]true[/code], the transmission effect is enabled. Default value: [code]false[/code].
</member>
<member name="transmission_texture" type="Texture" setter="set_texture" getter="get_texture">
</member>
@@ -255,10 +255,10 @@
<member name="uv2_triplanar_sharpness" type="float" setter="set_uv2_triplanar_blend_sharpness" getter="get_uv2_triplanar_blend_sharpness">
</member>
<member name="vertex_color_is_srgb" type="bool" setter="set_flag" getter="get_flag">
- If [code]true[/code] the model's vertex colors are processed as sRGB mode. Default value: [code]false[/code].
+ If [code]true[/code], the model's vertex colors are processed as sRGB mode. Default value: [code]false[/code].
</member>
<member name="vertex_color_use_as_albedo" type="bool" setter="set_flag" getter="get_flag">
- If [code]true[/code] the vertex color is used as albedo color. Default value: [code]false[/code].
+ If [code]true[/code], the vertex color is used as albedo color. Default value: [code]false[/code].
</member>
</members>
<constants>
@@ -392,7 +392,9 @@
</constant>
<constant name="FLAG_ENSURE_CORRECT_NORMALS" value="16" enum="Flags">
</constant>
- <constant name="FLAG_MAX" value="18" enum="Flags">
+ <constant name="FLAG_USE_SHADOW_TO_OPACITY" value="18" enum="Flags">
+ </constant>
+ <constant name="FLAG_MAX" value="19" enum="Flags">
</constant>
<constant name="DIFFUSE_BURLEY" value="0" enum="DiffuseMode">
Default diffuse scattering algorithm.
diff --git a/doc/classes/SpatialVelocityTracker.xml b/doc/classes/SpatialVelocityTracker.xml
index 45cc4232dc..45dd06e926 100644
--- a/doc/classes/SpatialVelocityTracker.xml
+++ b/doc/classes/SpatialVelocityTracker.xml
@@ -1,13 +1,11 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="SpatialVelocityTracker" inherits="Reference" category="Core" version="3.1">
+<class name="SpatialVelocityTracker" inherits="Reference" category="Core" version="3.2">
<brief_description>
</brief_description>
<description>
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
<method name="get_tracked_linear_velocity" qualifiers="const">
<return type="Vector3">
diff --git a/doc/classes/SphereMesh.xml b/doc/classes/SphereMesh.xml
index e0e2d10408..4ebb2e919d 100644
--- a/doc/classes/SphereMesh.xml
+++ b/doc/classes/SphereMesh.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="SphereMesh" inherits="PrimitiveMesh" category="Core" version="3.1">
+<class name="SphereMesh" inherits="PrimitiveMesh" category="Core" version="3.2">
<brief_description>
Class representing a spherical [PrimitiveMesh].
</brief_description>
@@ -8,8 +8,6 @@
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
</methods>
<members>
@@ -17,7 +15,7 @@
Full height of the sphere. Defaults to 2.0.
</member>
<member name="is_hemisphere" type="bool" setter="set_is_hemisphere" getter="get_is_hemisphere">
- Determines whether a full sphere or a hemisphere is created. Attention: To get a regular hemisphere the height and radius of the sphere have to equal. Defaults to false.
+ Determines whether a full sphere or a hemisphere is created. Attention: To get a regular hemisphere, the height and radius of the sphere have to equal. Defaults to [code]false[/code].
</member>
<member name="radial_segments" type="int" setter="set_radial_segments" getter="get_radial_segments">
Number of radial segments on the sphere. Defaults to 64.
diff --git a/doc/classes/SphereShape.xml b/doc/classes/SphereShape.xml
index bc0cd79ddd..21309ae83e 100644
--- a/doc/classes/SphereShape.xml
+++ b/doc/classes/SphereShape.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="SphereShape" inherits="Shape" category="Core" version="3.1">
+<class name="SphereShape" inherits="Shape" category="Core" version="3.2">
<brief_description>
Sphere shape for 3D collisions.
</brief_description>
@@ -8,8 +8,6 @@
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
</methods>
<members>
diff --git a/doc/classes/SpinBox.xml b/doc/classes/SpinBox.xml
index 5087cf355a..8e2e2f1baa 100644
--- a/doc/classes/SpinBox.xml
+++ b/doc/classes/SpinBox.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="SpinBox" inherits="Range" category="Core" version="3.1">
+<class name="SpinBox" inherits="Range" category="Core" version="3.2">
<brief_description>
Numerical input text field.
</brief_description>
@@ -8,8 +8,6 @@
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
<method name="get_line_edit">
<return type="LineEdit">
diff --git a/doc/classes/SplitContainer.xml b/doc/classes/SplitContainer.xml
index 6370c40aba..5d9a233624 100644
--- a/doc/classes/SplitContainer.xml
+++ b/doc/classes/SplitContainer.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="SplitContainer" inherits="Container" category="Core" version="3.1">
+<class name="SplitContainer" inherits="Container" category="Core" version="3.2">
<brief_description>
Container for splitting and adjusting.
</brief_description>
@@ -8,8 +8,6 @@
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
<method name="clamp_split_offset">
<return type="void">
diff --git a/doc/classes/SpotLight.xml b/doc/classes/SpotLight.xml
index 11f914aac2..7369189c72 100644
--- a/doc/classes/SpotLight.xml
+++ b/doc/classes/SpotLight.xml
@@ -1,16 +1,14 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="SpotLight" inherits="Light" category="Core" version="3.1">
+<class name="SpotLight" inherits="Light" category="Core" version="3.2">
<brief_description>
Spotlight [Light], such as a reflector spotlight or a lantern.
</brief_description>
<description>
- A SpotLight light is a type of [Light] node that emits lights in a specific direction, in the shape of a cone. The light is attenuated through the distance and this attenuation can be configured by changing the energy, radius and attenuation parameters of [Light]. TODO: Image of a spotlight.
+ A SpotLight light is a type of [Light] node that emits lights in a specific direction, in the shape of a cone. The light is attenuated through the distance and this attenuation can be configured by changing the energy, radius and attenuation parameters of [Light].
</description>
<tutorials>
<link>https://docs.godotengine.org/en/latest/tutorials/3d/lights_and_shadows.html</link>
</tutorials>
- <demos>
- </demos>
<methods>
</methods>
<members>
diff --git a/doc/classes/SpringArm.xml b/doc/classes/SpringArm.xml
index 198ff4a81d..50c6fef148 100644
--- a/doc/classes/SpringArm.xml
+++ b/doc/classes/SpringArm.xml
@@ -1,13 +1,11 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="SpringArm" inherits="Spatial" category="Core" version="3.1">
+<class name="SpringArm" inherits="Spatial" category="Core" version="3.2">
<brief_description>
</brief_description>
<description>
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
<method name="add_excluded_object">
<return type="void">
diff --git a/doc/classes/Sprite.xml b/doc/classes/Sprite.xml
index 52650c7300..097a5f2ed2 100644
--- a/doc/classes/Sprite.xml
+++ b/doc/classes/Sprite.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="Sprite" inherits="Node2D" category="Core" version="3.1">
+<class name="Sprite" inherits="Node2D" category="Core" version="3.2">
<brief_description>
General purpose Sprite node.
</brief_description>
@@ -8,14 +8,18 @@
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
<method name="get_rect" qualifiers="const">
<return type="Rect2">
</return>
<description>
- Returns a Rect2 representing the Sprite's boundary relative to its local coordinates.
+ Returns a [Rect2] representing the Sprite's boundary in local coordinates. Can be used to detect if the Sprite was clicked. Example:
+ [codeblock]
+ func _input(event):
+ if event is InputEventMouseButton and event.pressed and event.button_index == BUTTON_LEFT:
+ if get_rect().has_point(to_local(event.position)):
+ print("A click!")
+ [/codeblock]
</description>
</method>
<method name="is_pixel_opaque" qualifiers="const">
@@ -24,18 +28,20 @@
<argument index="0" name="pos" type="Vector2">
</argument>
<description>
+ Returns [code]true[/code], if the pixel at the given position is opaque and [code]false[/code] in other case.
+ Note: It also returns [code]false[/code], if the sprite's texture is null or if the given position is invalid.
</description>
</method>
</methods>
<members>
<member name="centered" type="bool" setter="set_centered" getter="is_centered">
- If [code]true[/code] texture is centered. Default value: [code]true[/code].
+ If [code]true[/code], texture is centered. Default value: [code]true[/code].
</member>
<member name="flip_h" type="bool" setter="set_flip_h" getter="is_flipped_h">
- If [code]true[/code] texture is flipped horizontally. Default value: [code]false[/code].
+ If [code]true[/code], texture is flipped horizontally. Default value: [code]false[/code].
</member>
<member name="flip_v" type="bool" setter="set_flip_v" getter="is_flipped_v">
- If [code]true[/code] texture is flipped vertically. Default value: [code]false[/code].
+ If [code]true[/code], texture is flipped vertically. Default value: [code]false[/code].
</member>
<member name="frame" type="int" setter="set_frame" getter="get_frame">
Current frame to display from sprite sheet. [member vframes] or [member hframes] must be greater than 1.
@@ -50,10 +56,10 @@
The texture's drawing offset.
</member>
<member name="region_enabled" type="bool" setter="set_region" getter="is_region">
- If [code]true[/code] texture is cut from a larger atlas texture. See [code]region_rect[/code]. Default value: [code]false[/code].
+ If [code]true[/code], texture is cut from a larger atlas texture. See [member region_rect]. Default value: [code]false[/code].
</member>
<member name="region_filter_clip" type="bool" setter="set_region_filter_clip" getter="is_region_filter_clip_enabled">
- If [code]true[/code] the outermost pixels get blurred out.
+ If [code]true[/code], the outermost pixels get blurred out.
</member>
<member name="region_rect" type="Rect2" setter="set_region_rect" getter="get_region_rect">
The region of the atlas texture to display. [member region_enabled] must be [code]true[/code].
diff --git a/doc/classes/Sprite3D.xml b/doc/classes/Sprite3D.xml
index 2a65246dde..81fe182782 100644
--- a/doc/classes/Sprite3D.xml
+++ b/doc/classes/Sprite3D.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="Sprite3D" inherits="SpriteBase3D" category="Core" version="3.1">
+<class name="Sprite3D" inherits="SpriteBase3D" category="Core" version="3.2">
<brief_description>
2D Sprite node in 3D world.
</brief_description>
@@ -8,8 +8,6 @@
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
</methods>
<members>
@@ -20,7 +18,7 @@
The number of columns in the sprite sheet.
</member>
<member name="region_enabled" type="bool" setter="set_region" getter="is_region">
- If [code]true[/code] texture will be cut from a larger atlas texture. See [member region_rect]. Default value: [code]false[/code].
+ If [code]true[/code], texture will be cut from a larger atlas texture. See [member region_rect]. Default value: [code]false[/code].
</member>
<member name="region_rect" type="Rect2" setter="set_region_rect" getter="get_region_rect">
The region of the atlas texture to display. [member region_enabled] must be [code]true[/code].
diff --git a/doc/classes/SpriteBase3D.xml b/doc/classes/SpriteBase3D.xml
index fd4b583928..50e00fe333 100644
--- a/doc/classes/SpriteBase3D.xml
+++ b/doc/classes/SpriteBase3D.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="SpriteBase3D" inherits="GeometryInstance" category="Core" version="3.1">
+<class name="SpriteBase3D" inherits="GeometryInstance" category="Core" version="3.2">
<brief_description>
2D Sprite node in 3D environment.
</brief_description>
@@ -8,8 +8,6 @@
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
<method name="generate_triangle_mesh" qualifiers="const">
<return type="TriangleMesh">
@@ -31,16 +29,16 @@
The direction in which the front of the texture faces.
</member>
<member name="centered" type="bool" setter="set_centered" getter="is_centered">
- If [code]true[/code] texture will be centered. Default value: [code]true[/code].
+ If [code]true[/code], texture will be centered. Default value: [code]true[/code].
</member>
<member name="double_sided" type="bool" setter="set_draw_flag" getter="get_draw_flag">
- If [code]true[/code] texture can be seen from the back as well, if [code]false[/code], it is invisible when looking at it from behind. Default value: [code]true[/code].
+ If [code]true[/code], texture can be seen from the back as well, if [code]false[/code], it is invisible when looking at it from behind. Default value: [code]true[/code].
</member>
<member name="flip_h" type="bool" setter="set_flip_h" getter="is_flipped_h">
- If [code]true[/code] texture is flipped horizontally. Default value: [code]false[/code].
+ If [code]true[/code], texture is flipped horizontally. Default value: [code]false[/code].
</member>
<member name="flip_v" type="bool" setter="set_flip_v" getter="is_flipped_v">
- If [code]true[/code] texture is flipped vertically. Default value: [code]false[/code].
+ If [code]true[/code], texture is flipped vertically. Default value: [code]false[/code].
</member>
<member name="modulate" type="Color" setter="set_modulate" getter="get_modulate">
A color value that gets multiplied on, could be used for mood-coloring or to simulate the color of light.
@@ -55,10 +53,10 @@
The size of one pixel's width on the Sprite to scale it in 3D.
</member>
<member name="shaded" type="bool" setter="set_draw_flag" getter="get_draw_flag">
- If [code]true[/code] the [Light] in the [Environment] has effects on the Sprite. Default value: [code]false[/code].
+ If [code]true[/code], the [Light] in the [Environment] has effects on the Sprite. Default value: [code]false[/code].
</member>
<member name="transparent" type="bool" setter="set_draw_flag" getter="get_draw_flag">
- If [code]true[/code] the texture's transparency and the opacity are used to make those parts of the Sprite invisible. Default value: [code]true[/code].
+ If [code]true[/code], the texture's transparency and the opacity are used to make those parts of the Sprite invisible. Default value: [code]true[/code].
</member>
</members>
<constants>
diff --git a/doc/classes/SpriteFrames.xml b/doc/classes/SpriteFrames.xml
index 0e11d797e4..f28192519e 100644
--- a/doc/classes/SpriteFrames.xml
+++ b/doc/classes/SpriteFrames.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="SpriteFrames" inherits="Resource" category="Core" version="3.1">
+<class name="SpriteFrames" inherits="Resource" category="Core" version="3.2">
<brief_description>
Sprite frame library for AnimatedSprite.
</brief_description>
@@ -8,8 +8,6 @@
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
<method name="add_animation">
<return type="void">
@@ -55,7 +53,7 @@
<argument index="0" name="anim" type="String">
</argument>
<description>
- If [code]true[/code] the given animation will loop.
+ If [code]true[/code], the given animation will loop.
</description>
</method>
<method name="get_animation_names" qualifiers="const">
@@ -100,7 +98,7 @@
<argument index="0" name="anim" type="String">
</argument>
<description>
- If [code]true[/code] the named animation exists.
+ If [code]true[/code], the named animation exists.
</description>
</method>
<method name="remove_animation">
@@ -142,7 +140,7 @@
<argument index="1" name="loop" type="bool">
</argument>
<description>
- If [code]true[/code] the animation will loop.
+ If [code]true[/code], the animation will loop.
</description>
</method>
<method name="set_animation_speed">
diff --git a/doc/classes/StaticBody.xml b/doc/classes/StaticBody.xml
index 442a520e30..d2b7abebb1 100644
--- a/doc/classes/StaticBody.xml
+++ b/doc/classes/StaticBody.xml
@@ -1,17 +1,15 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="StaticBody" inherits="PhysicsBody" category="Core" version="3.1">
+<class name="StaticBody" inherits="PhysicsBody" category="Core" version="3.2">
<brief_description>
- Static body for 3D Physics.
+ Static body for 3D physics.
</brief_description>
<description>
- Static body for 3D Physics. A static body is a simple body that is not intended to move. They don't consume any CPU resources in contrast to a [RigidBody3D] so they are great for scenario collision.
+ Static body for 3D physics. A static body is a simple body that is not intended to move. They don't consume any CPU resources in contrast to a [RigidBody] so they are great for scenario collision.
A static body can also be animated by using simulated motion mode. This is useful for implementing functionalities such as moving platforms. When this mode is active the body can be animated and automatically computes linear and angular velocity to apply in that frame and to influence other bodies.
Alternatively, a constant linear or angular velocity can be set for the static body, so even if it doesn't move, it affects other bodies as if it was moving (this is useful for simulating conveyor belts or conveyor wheels).
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
</methods>
<members>
diff --git a/doc/classes/StaticBody2D.xml b/doc/classes/StaticBody2D.xml
index 917773d502..98b38e9e26 100644
--- a/doc/classes/StaticBody2D.xml
+++ b/doc/classes/StaticBody2D.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="StaticBody2D" inherits="PhysicsBody2D" category="Core" version="3.1">
+<class name="StaticBody2D" inherits="PhysicsBody2D" category="Core" version="3.2">
<brief_description>
Static body for 2D Physics.
</brief_description>
@@ -9,8 +9,6 @@
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
</methods>
<members>
diff --git a/doc/classes/StreamPeer.xml b/doc/classes/StreamPeer.xml
index 74ac8a79c0..d278312fc3 100644
--- a/doc/classes/StreamPeer.xml
+++ b/doc/classes/StreamPeer.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="StreamPeer" inherits="Reference" category="Core" version="3.1">
+<class name="StreamPeer" inherits="Reference" category="Core" version="3.2">
<brief_description>
Abstraction and base class for stream-based protocols.
</brief_description>
@@ -8,8 +8,6 @@
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
<method name="get_16">
<return type="int">
@@ -43,7 +41,7 @@
<return type="int">
</return>
<description>
- Return the amount of bytes this [code]StreamPeer[/code] has available.
+ Returns the amount of bytes this [StreamPeer] has available.
</description>
</method>
<method name="get_data">
@@ -52,7 +50,7 @@
<argument index="0" name="bytes" type="int">
</argument>
<description>
- Return a chunk data with the received bytes. The amount of bytes to be received can be requested in the "bytes" argument. If not enough bytes are available, the function will block until the desired amount is received. This function returns two values, an Error code and a data array.
+ Returns a chunk data with the received bytes. The amount of bytes to be received can be requested in the "bytes" argument. If not enough bytes are available, the function will block until the desired amount is received. This function returns two values, an Error code and a data array.
</description>
</method>
<method name="get_double">
@@ -75,7 +73,7 @@
<argument index="0" name="bytes" type="int">
</argument>
<description>
- Return a chunk data with the received bytes. The amount of bytes to be received can be requested in the "bytes" argument. If not enough bytes are available, the function will return how many were actually received. This function returns two values, an Error code, and a data array.
+ Returns a chunk data with the received bytes. The amount of bytes to be received can be requested in the "bytes" argument. If not enough bytes are available, the function will return how many were actually received. This function returns two values, an Error code, and a data array.
</description>
</method>
<method name="get_string">
@@ -127,8 +125,11 @@
<method name="get_var">
<return type="Variant">
</return>
+ <argument index="0" name="allow_objects" type="bool" default="false">
+ </argument>
<description>
- Get a Variant from the stream.
+ Get a Variant from the stream. When [code]allow_objects[/code] is [code]true[/code] decoding objects is allowed.
+ [b]WARNING:[/b] Deserialized object can contain code which gets executed. Do not use this option if the serialized object comes from untrusted sources to avoid potential security threats (remote code execution).
</description>
</method>
<method name="put_16">
@@ -262,14 +263,16 @@
</return>
<argument index="0" name="value" type="Variant">
</argument>
+ <argument index="1" name="full_objects" type="bool" default="false">
+ </argument>
<description>
- Put a Variant into the stream.
+ Put a Variant into the stream. When [code]full_objects[/code] is [code]true[/code] encoding objects is allowed (and can potentially include code).
</description>
</method>
</methods>
<members>
<member name="big_endian" type="bool" setter="set_big_endian" getter="is_big_endian_enabled">
- If [code]true[/code], this [code]StreamPeer[/code] will using big-endian format for encoding and decoding.
+ If [code]true[/code], this [StreamPeer] will using big-endian format for encoding and decoding.
</member>
</members>
<constants>
diff --git a/doc/classes/StreamPeerBuffer.xml b/doc/classes/StreamPeerBuffer.xml
index 3d9bdce762..de4603b7c0 100644
--- a/doc/classes/StreamPeerBuffer.xml
+++ b/doc/classes/StreamPeerBuffer.xml
@@ -1,13 +1,11 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="StreamPeerBuffer" inherits="StreamPeer" category="Core" version="3.1">
+<class name="StreamPeerBuffer" inherits="StreamPeer" category="Core" version="3.2">
<brief_description>
</brief_description>
<description>
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
<method name="clear">
<return type="void">
diff --git a/doc/classes/StreamPeerSSL.xml b/doc/classes/StreamPeerSSL.xml
index 40a4e04a80..f28e6e5544 100644
--- a/doc/classes/StreamPeerSSL.xml
+++ b/doc/classes/StreamPeerSSL.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="StreamPeerSSL" inherits="StreamPeer" category="Core" version="3.1">
+<class name="StreamPeerSSL" inherits="StreamPeer" category="Core" version="3.2">
<brief_description>
SSL Stream peer.
</brief_description>
@@ -9,8 +9,6 @@
<tutorials>
<link>https://docs.godotengine.org/en/latest/tutorials/networking/ssl_certificates.html</link>
</tutorials>
- <demos>
- </demos>
<methods>
<method name="accept_stream">
<return type="int" enum="Error">
@@ -30,7 +28,7 @@
<argument index="2" name="for_hostname" type="String" default="&quot;&quot;">
</argument>
<description>
- Connect to a peer using an underlying [StreamPeer] "stream", when "validate_certs" is true, [code]StreamPeerSSL[/code] will validate that the certificate presented by the peer matches the "for_hostname".
+ Connect to a peer using an underlying [StreamPeer] "stream", when "validate_certs" is [code]true[/code], [StreamPeerSSL] will validate that the certificate presented by the peer matches the "for_hostname".
</description>
</method>
<method name="disconnect_from_stream">
@@ -44,7 +42,7 @@
<return type="int" enum="StreamPeerSSL.Status">
</return>
<description>
- Return the status of the connection, one of STATUS_* enum.
+ Returns the status of the connection, one of STATUS_* enum.
</description>
</method>
<method name="poll">
@@ -61,12 +59,12 @@
</members>
<constants>
<constant name="STATUS_DISCONNECTED" value="0" enum="Status">
- A status representing a [code]StreamPeerSSL[/code] that is disconnected.
+ A status representing a [StreamPeerSSL] that is disconnected.
</constant>
<constant name="STATUS_HANDSHAKING" value="1" enum="Status">
</constant>
<constant name="STATUS_CONNECTED" value="2" enum="Status">
- A status representing a [code]StreamPeerSSL[/code] that is connected to a host.
+ A status representing a [StreamPeerSSL] that is connected to a host.
</constant>
<constant name="STATUS_ERROR" value="3" enum="Status">
</constant>
diff --git a/doc/classes/StreamPeerTCP.xml b/doc/classes/StreamPeerTCP.xml
index 9a0fceddab..0edea42521 100644
--- a/doc/classes/StreamPeerTCP.xml
+++ b/doc/classes/StreamPeerTCP.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="StreamPeerTCP" inherits="StreamPeer" category="Core" version="3.1">
+<class name="StreamPeerTCP" inherits="StreamPeer" category="Core" version="3.2">
<brief_description>
TCP Stream peer.
</brief_description>
@@ -8,8 +8,6 @@
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
<method name="connect_to_host">
<return type="int" enum="Error">
@@ -19,7 +17,7 @@
<argument index="1" name="port" type="int">
</argument>
<description>
- Connect to the specified host:port pair. A hostname will be resolved if valid. Returns [OK] on success or [FAILED] on failure.
+ Connect to the specified host:port pair. A hostname will be resolved if valid. Returns [code]OK[/code] on success or [code]FAILED[/code] on failure.
</description>
</method>
<method name="disconnect_from_host">
@@ -33,28 +31,28 @@
<return type="String">
</return>
<description>
- Return the IP of this peer.
+ Returns the IP of this peer.
</description>
</method>
<method name="get_connected_port" qualifiers="const">
<return type="int">
</return>
<description>
- Return the port of this peer.
+ Returns the port of this peer.
</description>
</method>
<method name="get_status">
<return type="int" enum="StreamPeerTCP.Status">
</return>
<description>
- Return the status of the connection, one of STATUS_* enum.
+ Returns the status of the connection, see [enum StreamPeerTCP.Status].
</description>
</method>
<method name="is_connected_to_host" qualifiers="const">
<return type="bool">
</return>
<description>
- Returns [code]true[/code] if this peer is currently connected to a host, [code]false[code] otherwise.
+ Returns [code]true[/code] if this peer is currently connected to a host, [code]false[/code] otherwise.
</description>
</method>
<method name="set_no_delay">
@@ -70,16 +68,16 @@
</methods>
<constants>
<constant name="STATUS_NONE" value="0" enum="Status">
- The initial status of the [code]StreamPeerTCP[/code], also the status after a disconnect.
+ The initial status of the [StreamPeerTCP], also the status after a disconnect.
</constant>
<constant name="STATUS_CONNECTING" value="1" enum="Status">
- A status representing a [code]StreamPeerTCP[/code] that is connecting to a host.
+ A status representing a [StreamPeerTCP] that is connecting to a host.
</constant>
<constant name="STATUS_CONNECTED" value="2" enum="Status">
- A status representing a [code]StreamPeerTCP[/code] that is connected to a host.
+ A status representing a [StreamPeerTCP] that is connected to a host.
</constant>
<constant name="STATUS_ERROR" value="3" enum="Status">
- A status representing a [code]StreamPeerTCP[/code] in error state.
+ A status representing a [StreamPeerTCP] in error state.
</constant>
</constants>
</class>
diff --git a/doc/classes/StreamTexture.xml b/doc/classes/StreamTexture.xml
index 3b44d0f00f..1ff2500d1a 100644
--- a/doc/classes/StreamTexture.xml
+++ b/doc/classes/StreamTexture.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="StreamTexture" inherits="Texture" category="Core" version="3.1">
+<class name="StreamTexture" inherits="Texture" category="Core" version="3.2">
<brief_description>
A .stex texture.
</brief_description>
@@ -8,8 +8,6 @@
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
</methods>
<members>
diff --git a/doc/classes/String.xml b/doc/classes/String.xml
index 536165487d..ff0572f384 100644
--- a/doc/classes/String.xml
+++ b/doc/classes/String.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="String" category="Built-In Types" version="3.1">
+<class name="String" category="Built-In Types" version="3.2">
<brief_description>
Built-in string class.
</brief_description>
@@ -7,9 +7,8 @@
This is the built-in string class (and the one used by GDScript). It supports Unicode and provides all necessary means for string handling. Strings are reference counted and use a copy-on-write approach, so passing them around is cheap in resources.
</description>
<tutorials>
+ <link>https://docs.godotengine.org/en/latest/getting_started/scripting/gdscript/gdscript_format_string.html</link>
</tutorials>
- <demos>
- </demos>
<methods>
<method name="String">
<return type="String">
@@ -432,6 +431,14 @@
Returns [code]true[/code] if this string is a subsequence of the given string, without considering case.
</description>
</method>
+ <method name="is_valid_filename">
+ <return type="bool">
+ </return>
+ <description>
+ Returns [code]true[/code] if this string is free from characters that aren't allowed in file names, those being:
+ [code]: / \ ? * " | % &lt; &gt;[/code]
+ </description>
+ </method>
<method name="is_valid_float">
<return type="bool">
</return>
@@ -439,6 +446,15 @@
Returns [code]true[/code] if this string contains a valid float.
</description>
</method>
+ <method name="is_valid_hex_number">
+ <return type="bool">
+ </return>
+ <argument index="0" name="with_prefix" type="bool" default="False">
+ </argument>
+ <description>
+ Returns [code]true[/code] if this string contains a valid hexadecimal number. If [code]with_prefix[/code] is [code]true[/code], then a validity of the hexadecimal number is determined by [code]0x[/code] prefix, for instance: [code]0xDEADC0DE[/code].
+ </description>
+ </method>
<method name="is_valid_html_color">
<return type="bool">
</return>
@@ -450,7 +466,7 @@
<return type="bool">
</return>
<description>
- Returns [code]true[/code] if this string is a valid identifier. A valid identifier may contain only letters, digits and underscores (_) and the first character may not be a digit.
+ Returns [code]true[/code] if this string is a valid identifier. A valid identifier may contain only letters, digits and underscores ([code]_[/code]) and the first character may not be a digit.
</description>
</method>
<method name="is_valid_integer">
@@ -505,7 +521,7 @@
<argument index="0" name="expr" type="String">
</argument>
<description>
- Does a simple expression match, where '*' matches zero or more arbitrary characters and '?' matches any single character except '.'.
+ Does a simple expression match, where [code]*[/code] matches zero or more arbitrary characters and [code]?[/code] matches any single character except '.'.
</description>
</method>
<method name="matchn">
@@ -514,7 +530,7 @@
<argument index="0" name="expr" type="String">
</argument>
<description>
- Does a simple case insensitive expression match, using ? and * wildcards (see [method match]).
+ Does a simple case insensitive expression match, using [code]?[/code] and [code]*[/code] wildcards (see [method match]).
</description>
</method>
<method name="md5_buffer">
@@ -646,16 +662,17 @@
<method name="rsplit">
<return type="PoolStringArray">
</return>
- <argument index="0" name="divisor" type="String">
+ <argument index="0" name="delimiter" type="String">
</argument>
<argument index="1" name="allow_empty" type="bool" default="True">
</argument>
<argument index="2" name="maxsplit" type="int" default="0">
</argument>
<description>
- Splits the string by a [code]divisor[/code] string and returns an array of the substrings, starting from right.
- [b]Example:[/b] "One,Two,Three" will return ["One","Two","Three"] if split by ",".
- If [code]maxsplit[/code] is specified, then it is number of splits to do, default is 0 which splits all the items.
+ Splits the string by a [code]delimiter[/code] string and returns an array of the substrings, starting from right.
+ The splits in the returned array are sorted in the same order as the original string, from left to right.
+ If [code]maxsplit[/code] is specified, it defines the number of splits to do from the right up to [code]maxsplit[/code]. The default value of 0 means that all items are split, thus giving the same result as [method split].
+ [b]Example:[/b] [code]"One,Two,Three,Four"[/code] will return [code]["Three","Four"][/code] if split by [code]","[/code] with [code]maxsplit[/code] of 2.
</description>
</method>
<method name="rstrip">
@@ -693,28 +710,28 @@
<method name="split">
<return type="PoolStringArray">
</return>
- <argument index="0" name="divisor" type="String">
+ <argument index="0" name="delimiter" type="String">
</argument>
<argument index="1" name="allow_empty" type="bool" default="True">
</argument>
<argument index="2" name="maxsplit" type="int" default="0">
</argument>
<description>
- Splits the string by a divisor string and returns an array of the substrings.
- [b]Example:[/b] "One,Two,Three" will return ["One","Two","Three"] if split by ",".
- If [code]maxsplit[/code] is given, at most maxsplit number of splits occur, and the remainder of the string is returned as the final element of the list (thus, the list will have at most maxsplit+1 elements)
+ Splits the string by a [code]delimiter[/code] string and returns an array of the substrings.
+ If [code]maxsplit[/code] is specified, it defines the number of splits to do from the left up to [code]maxsplit[/code]. The default value of 0 means that all items are split.
+ [b]Example:[/b] [code]"One,Two,Three"[/code] will return [code]["One","Two"][/code] if split by [code]","[/code] with [code]maxsplit[/code] of 2.
</description>
</method>
<method name="split_floats">
<return type="PoolRealArray">
</return>
- <argument index="0" name="divisor" type="String">
+ <argument index="0" name="delimiter" type="String">
</argument>
<argument index="1" name="allow_empty" type="bool" default="True">
</argument>
<description>
- Splits the string in floats by using a divisor string and returns an array of the substrings.
- [b]Example:[/b] "1,2.5,3" will return [1,2.5,3] if split by ",".
+ Splits the string in floats by using a delimiter string and returns an array of the substrings.
+ [b]Example:[/b] [code]"1,2.5,3"[/code] will return [code][1,2.5,3][/code] if split by [code]","[/code].
</description>
</method>
<method name="strip_edges">
@@ -725,7 +742,14 @@
<argument index="1" name="right" type="bool" default="True">
</argument>
<description>
- Returns a copy of the string stripped of any non-printable character at the beginning and the end. The optional arguments are used to toggle stripping on the left and right edges respectively.
+ Returns a copy of the string stripped of any non-printable character (including tabulations, spaces and line breaks) at the beginning and the end. The optional arguments are used to toggle stripping on the left and right edges respectively.
+ </description>
+ </method>
+ <method name="strip_escapes">
+ <return type="String">
+ </return>
+ <description>
+ Returns a copy of the string stripped of any escape character. These include all non-printable control characters of the first page of the ASCII table (&lt; 32), such as tabulation ([code]\t[/code] in C) and newline ([code]\n[/code] and [code]\r[/code]) characters, but not spaces.
</description>
</method>
<method name="substr">
@@ -733,17 +757,17 @@
</return>
<argument index="0" name="from" type="int">
</argument>
- <argument index="1" name="len" type="int">
+ <argument index="1" name="len" type="int" default="-1">
</argument>
<description>
- Returns part of the string from the position [code]from[/code] with length [code]len[/code].
+ Returns part of the string from the position [code]from[/code] with length [code]len[/code]. Argument [code]len[/code] is optional and using -1 will return remaining characters from given position.
</description>
</method>
<method name="to_ascii">
<return type="PoolByteArray">
</return>
<description>
- Converts the String (which is a character array) to [PoolByteArray] (which is an array of bytes). The conversion is sped up in comparison to to_utf8() with the assumption that all the characters the String contains are only ASCII characters.
+ Converts the String (which is a character array) to [PoolByteArray] (which is an array of bytes). The conversion is sped up in comparison to [method to_utf8] with the assumption that all the characters the String contains are only ASCII characters.
</description>
</method>
<method name="to_float">
@@ -778,7 +802,7 @@
<return type="PoolByteArray">
</return>
<description>
- Converts the String (which is an array of characters) to [PoolByteArray] (which is an array of bytes). The conversion is a bit slower than to_ascii(), but supports all UTF-8 characters. Therefore, you should prefer this function over to_ascii().
+ Converts the String (which is an array of characters) to [PoolByteArray] (which is an array of bytes). The conversion is a bit slower than [method to_ascii], but supports all UTF-8 characters. Therefore, you should prefer this function over [method to_ascii].
</description>
</method>
<method name="trim_prefix">
diff --git a/doc/classes/StyleBox.xml b/doc/classes/StyleBox.xml
index dee3e6db49..a156f134e7 100644
--- a/doc/classes/StyleBox.xml
+++ b/doc/classes/StyleBox.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="StyleBox" inherits="Resource" category="Core" version="3.1">
+<class name="StyleBox" inherits="Resource" category="Core" version="3.2">
<brief_description>
Base class for drawing stylized boxes for the UI.
</brief_description>
@@ -8,8 +8,6 @@
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
<method name="draw" qualifiers="const">
<return type="void">
@@ -27,27 +25,34 @@
<description>
</description>
</method>
+ <method name="get_current_item_drawn" qualifiers="const">
+ <return type="CanvasItem">
+ </return>
+ <description>
+ </description>
+ </method>
<method name="get_margin" qualifiers="const">
<return type="float">
</return>
<argument index="0" name="margin" type="int" enum="Margin">
</argument>
<description>
- Return the offset of margin "margin" (see MARGIN_* enum).
+ Returns the content margin offset for the specified margin
+ Positive values reduce size inwards, unlike [Control]'s margin values.
</description>
</method>
<method name="get_minimum_size" qualifiers="const">
<return type="Vector2">
</return>
<description>
- Return the minimum size that this stylebox can be shrunk to.
+ Returns the minimum size that this stylebox can be shrunk to.
</description>
</method>
<method name="get_offset" qualifiers="const">
<return type="Vector2">
</return>
<description>
- Return the "offset" of a stylebox, this is a helper function, like writing [code]Vector2(style.get_margin(MARGIN_LEFT), style.get_margin(MARGIN_TOP))[/code].
+ Returns the "offset" of a stylebox, this is a helper function, like writing [code]Vector2(style.get_margin(MARGIN_LEFT), style.get_margin(MARGIN_TOP))[/code].
</description>
</method>
<method name="test_mask" qualifiers="const">
@@ -64,12 +69,22 @@
</methods>
<members>
<member name="content_margin_bottom" type="float" setter="set_default_margin" getter="get_default_margin">
+ The bottom margin for the contents of this style box. Increasing this value reduces the space available to the contents from the bottom.
+ If this value is negative, it is ignored and a child-specific margin is used instead. For example for [StyleBoxFlat] the border thickness (if any) is used instead.
+ It is up to the code using this style box to decide what these contents are: for example, a [Button] respects this content margin for the textual contents of the button.
+ [method get_margin] should be used to fetch this value as consumer instead of reading these properties directly. This is because it correctly respects negative values and the fallback mentioned above.
</member>
<member name="content_margin_left" type="float" setter="set_default_margin" getter="get_default_margin">
+ The left margin for the contents of this style box. Increasing this value reduces the space available to the contents from the left.
+ Refer to [member content_margin_bottom] for extra considerations.
</member>
<member name="content_margin_right" type="float" setter="set_default_margin" getter="get_default_margin">
+ The right margin for the contents of this style box. Increasing this value reduces the space available to the contents from the right.
+ Refer to [member content_margin_bottom] for extra considerations.
</member>
<member name="content_margin_top" type="float" setter="set_default_margin" getter="get_default_margin">
+ The top margin for the contents of this style box. Increasing this value reduces the space available to the contents from the top.
+ Refer to [member content_margin_bottom] for extra considerations.
</member>
</members>
<constants>
diff --git a/doc/classes/StyleBoxEmpty.xml b/doc/classes/StyleBoxEmpty.xml
index a9eeeddd93..9dc8569b75 100644
--- a/doc/classes/StyleBoxEmpty.xml
+++ b/doc/classes/StyleBoxEmpty.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="StyleBoxEmpty" inherits="StyleBox" category="Core" version="3.1">
+<class name="StyleBoxEmpty" inherits="StyleBox" category="Core" version="3.2">
<brief_description>
Empty stylebox (does not display anything).
</brief_description>
@@ -8,8 +8,6 @@
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
</methods>
<constants>
diff --git a/doc/classes/StyleBoxFlat.xml b/doc/classes/StyleBoxFlat.xml
index bf544d2b78..ffee7366a3 100644
--- a/doc/classes/StyleBoxFlat.xml
+++ b/doc/classes/StyleBoxFlat.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="StyleBoxFlat" inherits="StyleBox" category="Core" version="3.1">
+<class name="StyleBoxFlat" inherits="StyleBox" category="Core" version="3.2">
<brief_description>
Customizable Stylebox with a given set of parameters. (no texture required)
</brief_description>
@@ -23,8 +23,6 @@
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
<method name="get_border_width_min" qualifiers="const">
<return type="int">
@@ -96,7 +94,7 @@
The background color of the stylebox.
</member>
<member name="border_blend" type="bool" setter="set_border_blend" getter="get_border_blend">
- When set to true, the border will fade into the background color.
+ When set to [code]true[/code], the border will fade into the background color.
</member>
<member name="border_color" type="Color" setter="set_border_color" getter="get_border_color">
Sets the color of the border.
@@ -114,9 +112,9 @@
Border width for the top border.
</member>
<member name="corner_detail" type="int" setter="set_corner_detail" getter="get_corner_detail">
- This sets the amount of vertices used for each corner. Higher values result in rounder corners but take more processing power to compute. When choosing a value you should take the corner radius ([method set_corner_radius]) into account.
- For corner radius smaller than 10: 4-5 should be enough
- For corner radius smaller than 30: 8-12 should be enough
+ This sets the amount of vertices used for each corner. Higher values result in rounder corners but take more processing power to compute. When choosing a value you should take the corner radius ([method set_corner_radius_all]) into account.
+ For corner radius smaller than 10, 4-5 should be enough.
+ For corner radius smaller than 30, 8-12 should be enough.
</member>
<member name="corner_radius_bottom_left" type="int" setter="set_corner_radius" getter="get_corner_radius">
The corner radius of the bottom left corner. When set to 0 the corner is not rounded.
@@ -148,6 +146,9 @@
<member name="shadow_color" type="Color" setter="set_shadow_color" getter="get_shadow_color">
The color of the shadow. (This has no effect when shadow_size &lt; 1)
</member>
+ <member name="shadow_offset" type="Vector2" setter="set_shadow_offset" getter="get_shadow_offset">
+ The shadow offset in pixels. Adjusts the position of the shadow relatively to the stylebox.
+ </member>
<member name="shadow_size" type="int" setter="set_shadow_size" getter="get_shadow_size">
The shadow size in pixels.
</member>
diff --git a/doc/classes/StyleBoxLine.xml b/doc/classes/StyleBoxLine.xml
index 146b4b0a3d..aa306291c8 100644
--- a/doc/classes/StyleBoxLine.xml
+++ b/doc/classes/StyleBoxLine.xml
@@ -1,13 +1,11 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="StyleBoxLine" inherits="StyleBox" category="Core" version="3.1">
+<class name="StyleBoxLine" inherits="StyleBox" category="Core" version="3.2">
<brief_description>
</brief_description>
<description>
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
</methods>
<members>
diff --git a/doc/classes/StyleBoxTexture.xml b/doc/classes/StyleBoxTexture.xml
index d8c378fde2..8e55795053 100644
--- a/doc/classes/StyleBoxTexture.xml
+++ b/doc/classes/StyleBoxTexture.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="StyleBoxTexture" inherits="StyleBox" category="Core" version="3.1">
+<class name="StyleBoxTexture" inherits="StyleBox" category="Core" version="3.2">
<brief_description>
Texture Based 3x3 scale style.
</brief_description>
@@ -8,8 +8,6 @@
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
<method name="set_expand_margin_all">
<return type="void">
@@ -42,28 +40,49 @@
<member name="draw_center" type="bool" setter="set_draw_center" getter="is_draw_center_enabled">
</member>
<member name="expand_margin_bottom" type="float" setter="set_expand_margin_size" getter="get_expand_margin_size">
+ Expands the bottom margin of this style box when drawing, causing it be drawn larger than requested.
</member>
<member name="expand_margin_left" type="float" setter="set_expand_margin_size" getter="get_expand_margin_size">
+ Expands the left margin of this style box when drawing, causing it be drawn larger than requested.
</member>
<member name="expand_margin_right" type="float" setter="set_expand_margin_size" getter="get_expand_margin_size">
+ Expands the right margin of this style box when drawing, causing it be drawn larger than requested.
</member>
<member name="expand_margin_top" type="float" setter="set_expand_margin_size" getter="get_expand_margin_size">
+ Expands the top margin of this style box when drawing, causing it be drawn larger than requested.
</member>
<member name="margin_bottom" type="float" setter="set_margin_size" getter="get_margin_size">
+ Increases the bottom margin of the 3x3 texture box.
+ A higher value means more of the source texture is considered to be part of the bottom border of the 3x3 box.
+ This is also the value used as fallback for [member StyleBox.content_margin_bottom] if it is negative.
</member>
<member name="margin_left" type="float" setter="set_margin_size" getter="get_margin_size">
+ Increases the left margin of the 3x3 texture box.
+ A higher value means more of the source texture is considered to be part of the left border of the 3x3 box.
+ This is also the value used as fallback for [member StyleBox.content_margin_left] if it is negative.
</member>
<member name="margin_right" type="float" setter="set_margin_size" getter="get_margin_size">
+ Increases the right margin of the 3x3 texture box.
+ A higher value means more of the source texture is considered to be part of the right border of the 3x3 box.
+ This is also the value used as fallback for [member StyleBox.content_margin_right] if it is negative.
</member>
<member name="margin_top" type="float" setter="set_margin_size" getter="get_margin_size">
+ Increases the top margin of the 3x3 texture box.
+ A higher value means more of the source texture is considered to be part of the top border of the 3x3 box.
+ This is also the value used as fallback for [member StyleBox.content_margin_top] if it is negative.
</member>
<member name="modulate_color" type="Color" setter="set_modulate" getter="get_modulate">
+ Modulates the color of the texture when this style box is drawn.
</member>
<member name="normal_map" type="Texture" setter="set_normal_map" getter="get_normal_map">
+ The normal map to use when drawing this style box.
</member>
<member name="region_rect" type="Rect2" setter="set_region_rect" getter="get_region_rect">
+ Species a sub region of the texture to use.
+ This is equivalent to first wrapping the texture in an [AtlasTexture] with the same region.
</member>
<member name="texture" type="Texture" setter="set_texture" getter="get_texture">
+ The texture to use when drawing this style box.
</member>
</members>
<signals>
diff --git a/doc/classes/SurfaceTool.xml b/doc/classes/SurfaceTool.xml
index 2e5d5d81c9..e97f9995ee 100644
--- a/doc/classes/SurfaceTool.xml
+++ b/doc/classes/SurfaceTool.xml
@@ -1,10 +1,10 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="SurfaceTool" inherits="Reference" category="Core" version="3.1">
+<class name="SurfaceTool" inherits="Reference" category="Core" version="3.2">
<brief_description>
Helper tool to create geometry.
</brief_description>
<description>
- The [code]SurfaceTool[/code] is used to construct a [Mesh] by specifying vertex attributes individually. It can be used to construct a [Mesh] from script. All properties except index need to be added before a call to [method add_vertex]. For example adding vertex colors and UVs looks like
+ The [SurfaceTool] is used to construct a [Mesh] by specifying vertex attributes individually. It can be used to construct a [Mesh] from script. All properties except index need to be added before a call to [method add_vertex]. For example adding vertex colors and UVs looks like
[codeblock]
var st = SurfaceTool.new()
st.begin(Mesh.PRIMITIVE_TRIANGLES)
@@ -12,14 +12,12 @@
st.add_uv(Vector2(0, 0))
st.add_vertex(Vector3(0, 0, 0))
[/codeblock]
- The [code]SurfaceTool[/code] now contains one vertex of a triangle which has a UV coordinate and a specified [Color]. If another vertex were added without calls to [method add_uv] or [method add_color] then the last values would be used.
+ The [SurfaceTool] now contains one vertex of a triangle which has a UV coordinate and a specified [Color]. If another vertex were added without calls to [method add_uv] or [method add_color] then the last values would be used.
It is very important that vertex attributes are passed [b]before[/b] the call to [method add_vertex], failure to do this will result in an error when committing the vertex information to a mesh.
Additionally, the attributes used before the first vertex is added determine the format of the mesh. For example if you only add UVs to the first vertex, you cannot add color to any of the subsequent vertices.
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
<method name="add_bones">
<return type="void">
@@ -75,18 +73,10 @@
Specify a Tangent for the next Vertex to use.
</description>
</method>
- <method name="add_to_format">
- <return type="void">
- </return>
- <argument index="0" name="flags" type="int">
- </argument>
- <description>
- </description>
- </method>
<method name="add_triangle_fan">
<return type="void">
</return>
- <argument index="0" name="vertexes" type="PoolVector3Array">
+ <argument index="0" name="vertices" type="PoolVector3Array">
</argument>
<argument index="1" name="uvs" type="PoolVector2Array" default="PoolVector2Array( )">
</argument>
@@ -179,6 +169,12 @@
Returns a constructed [ArrayMesh] from current information passed in. If an existing [ArrayMesh] is passed in as an argument, will add an extra surface to the existing [ArrayMesh].
</description>
</method>
+ <method name="commit_to_arrays">
+ <return type="Array">
+ </return>
+ <description>
+ </description>
+ </method>
<method name="create_from">
<return type="void">
</return>
@@ -190,6 +186,18 @@
Creates a vertex array from an existing [Mesh].
</description>
</method>
+ <method name="create_from_blend_shape">
+ <return type="void">
+ </return>
+ <argument index="0" name="existing" type="Mesh">
+ </argument>
+ <argument index="1" name="surface" type="int">
+ </argument>
+ <argument index="2" name="blend_shape" type="String">
+ </argument>
+ <description>
+ </description>
+ </method>
<method name="deindex">
<return type="void">
</return>
diff --git a/doc/classes/TCP_Server.xml b/doc/classes/TCP_Server.xml
index 4e3544ce5c..663d3248e8 100644
--- a/doc/classes/TCP_Server.xml
+++ b/doc/classes/TCP_Server.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="TCP_Server" inherits="Reference" category="Core" version="3.1">
+<class name="TCP_Server" inherits="Reference" category="Core" version="3.2">
<brief_description>
TCP Server.
</brief_description>
@@ -8,14 +8,12 @@
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
<method name="is_connection_available" qualifiers="const">
<return type="bool">
</return>
<description>
- Return true if a connection is available for taking.
+ Returns [code]true[/code] if a connection is available for taking.
</description>
</method>
<method name="listen">
diff --git a/doc/classes/TabContainer.xml b/doc/classes/TabContainer.xml
index f17c10b31e..06299d65b6 100644
--- a/doc/classes/TabContainer.xml
+++ b/doc/classes/TabContainer.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="TabContainer" inherits="Container" category="Core" version="3.1">
+<class name="TabContainer" inherits="Container" category="Core" version="3.2">
<brief_description>
Tabbed Container.
</brief_description>
@@ -7,12 +7,10 @@
Sets the active tab's [code]visible[/code] property to the value [code]true[/code]. Sets all other children's to [code]false[/code].
Ignores non-[Control] children.
Individual tabs are always visible unless you use [method set_tab_disabled] and [method set_tab_title] to hide it.
- To hide only a tab's content, nest the content inside a child [Control], so it receives the [code]TabContainer[/code]'s visibility setting instead.
+ To hide only a tab's content, nest the content inside a child [Control], so it receives the [TabContainer]'s visibility setting instead.
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
<method name="get_current_tab_control" qualifiers="const">
<return type="Control">
@@ -82,7 +80,7 @@
<return type="int">
</return>
<description>
- Returns the [code]TabContainer[/code] rearrange group id.
+ Returns the [TabContainer] rearrange group id.
</description>
</method>
<method name="set_popup">
@@ -91,7 +89,7 @@
<argument index="0" name="popup" type="Node">
</argument>
<description>
- If set on a [Popup] node instance, a popup menu icon appears in the top-right corner of the [code]TabContainer[/code]. Clicking it will expand the [Popup] node.
+ If set on a [Popup] node instance, a popup menu icon appears in the top-right corner of the [TabContainer]. Clicking it will expand the [Popup] node.
</description>
</method>
<method name="set_tab_disabled">
@@ -102,7 +100,7 @@
<argument index="1" name="disabled" type="bool">
</argument>
<description>
- If [code]disabled[/code] is false, hides the tab at index [code]tab_idx[/code]. Note that its title text will remain, unless also removed with [method set_tab_title].
+ If [code]disabled[/code] is [code]false[/code], hides the tab at index [code]tab_idx[/code]. Note that its title text will remain, unless also removed with [method set_tab_title].
</description>
</method>
<method name="set_tab_icon">
@@ -133,7 +131,7 @@
<argument index="0" name="group_id" type="int">
</argument>
<description>
- Defines rearrange group id, choose for each [code]TabContainer[/code] the same value to enable tab drag between [code]TabContainer[/code]. Enable drag with [code]set_drag_to_rearrange_enabled(true)[/code].
+ Defines rearrange group id, choose for each [TabContainer] the same value to enable tab drag between [TabContainer]. Enable drag with [code]set_drag_to_rearrange_enabled(true)[/code].
</description>
</method>
</methods>
@@ -148,13 +146,13 @@
The alignment of all tabs in the tab container. See the [code]ALIGN_*[/code] constants for details.
</member>
<member name="tabs_visible" type="bool" setter="set_tabs_visible" getter="are_tabs_visible">
- If [code]true[/code] tabs are visible. If [code]false[/code] tabs' content and titles are hidden. Default value: [code]true[/code].
+ If [code]true[/code], tabs are visible. If [code]false[/code], tabs' content and titles are hidden. Default value: [code]true[/code].
</member>
</members>
<signals>
<signal name="pre_popup_pressed">
<description>
- Emitted when the [code]TabContainer[/code]'s [Popup] button is clicked. See [method set_popup] for details.
+ Emitted when the [TabContainer]'s [Popup] button is clicked. See [method set_popup] for details.
</description>
</signal>
<signal name="tab_changed">
@@ -216,6 +214,8 @@
</theme_item>
<theme_item name="tab_bg" type="StyleBox">
</theme_item>
+ <theme_item name="tab_disabled" type="StyleBox">
+ </theme_item>
<theme_item name="tab_fg" type="StyleBox">
</theme_item>
<theme_item name="top_margin" type="int">
diff --git a/doc/classes/Tabs.xml b/doc/classes/Tabs.xml
index 350b49513d..8c7d657b4a 100644
--- a/doc/classes/Tabs.xml
+++ b/doc/classes/Tabs.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="Tabs" inherits="Control" category="Core" version="3.1">
+<class name="Tabs" inherits="Control" category="Core" version="3.2">
<brief_description>
Tabs Control.
</brief_description>
@@ -8,8 +8,6 @@
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
<method name="add_tab">
<return type="void">
@@ -97,7 +95,7 @@
<return type="int">
</return>
<description>
- Returns the [code]Tabs[/code] rearrange group id.
+ Returns the [Tabs] rearrange group id.
</description>
</method>
<method name="move_tab">
@@ -126,7 +124,7 @@
<argument index="0" name="enabled" type="bool">
</argument>
<description>
- If [code]true[/code] enables selecting a tab with right mouse button.
+ If [code]true[/code], enables selecting a tab with right mouse button.
</description>
</method>
<method name="set_tab_disabled">
@@ -137,7 +135,7 @@
<argument index="1" name="disabled" type="bool">
</argument>
<description>
- If [code]disabled[/code] is false, hides the tab at index [code]tab_idx[/code]. Note that its title text will remain, unless also removed with [method set_tab_title].
+ If [code]disabled[/code] is [code]false[/code], hides the tab at index [code]tab_idx[/code]. Note that its title text will remain, unless also removed with [method set_tab_title].
</description>
</method>
<method name="set_tab_icon">
@@ -168,7 +166,7 @@
<argument index="0" name="group_id" type="int">
</argument>
<description>
- Defines rearrange group id, choose for each [code]Tabs[/code] the same value to enable tab drag between [code]Tabs[/code]. Enable drag with [code]set_drag_to_rearrange_enabled(true)[/code].
+ Defines rearrange group id, choose for each [Tabs] the same value to enable tab drag between [Tabs]. Enable drag with [code]set_drag_to_rearrange_enabled(true)[/code].
</description>
</method>
</methods>
@@ -279,6 +277,8 @@
</theme_item>
<theme_item name="tab_bg" type="StyleBox">
</theme_item>
+ <theme_item name="tab_disabled" type="StyleBox">
+ </theme_item>
<theme_item name="tab_fg" type="StyleBox">
</theme_item>
<theme_item name="top_margin" type="int">
diff --git a/doc/classes/TextEdit.xml b/doc/classes/TextEdit.xml
index a958c3fcfa..8139da3a4c 100644
--- a/doc/classes/TextEdit.xml
+++ b/doc/classes/TextEdit.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="TextEdit" inherits="Control" category="Core" version="3.1">
+<class name="TextEdit" inherits="Control" category="Core" version="3.2">
<brief_description>
Multiline text editing control.
</brief_description>
@@ -8,8 +8,6 @@
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
<method name="add_color_region">
<return type="void">
@@ -34,7 +32,7 @@
<argument index="1" name="color" type="Color">
</argument>
<description>
- Add a keyword and its color.
+ Add a [code]keyword[/code] and its [Color].
</description>
</method>
<method name="can_fold" qualifiers="const">
@@ -43,41 +41,42 @@
<argument index="0" name="line" type="int">
</argument>
<description>
+ Returns if the given line is foldable, that is, it has indented lines right below it.
</description>
</method>
<method name="clear_colors">
<return type="void">
</return>
<description>
- Clear all the syntax coloring information.
+ Clears all the syntax coloring information.
</description>
</method>
<method name="clear_undo_history">
<return type="void">
</return>
<description>
- Clear the undo history.
+ Clears the undo history.
</description>
</method>
<method name="copy">
<return type="void">
</return>
<description>
- Copy the current selection.
+ Copy's the current text selection.
</description>
</method>
<method name="cursor_get_column" qualifiers="const">
<return type="int">
</return>
<description>
- Return the column the editing cursor is at.
+ Returns the column the editing cursor is at.
</description>
</method>
<method name="cursor_get_line" qualifiers="const">
<return type="int">
</return>
<description>
- Return the line the editing cursor is at.
+ Returns the line the editing cursor is at.
</description>
</method>
<method name="cursor_set_column">
@@ -88,6 +87,8 @@
<argument index="1" name="adjust_viewport" type="bool" default="true">
</argument>
<description>
+ Moves the cursor at the specified [code]column[/code] index.
+ If [code]adjust_viewport[/code] is set to true, the viewport will center at the cursor position after the move occurs. Default value is [code]true[/code].
</description>
</method>
<method name="cursor_set_line">
@@ -102,26 +103,30 @@
<argument index="3" name="wrap_index" type="int" default="0">
</argument>
<description>
+ Moves the cursor at the specified [code]line[/code] index.
+ If [code]adjust_viewport[/code] is set to true, the viewport will center at the cursor position after the move occurs. Default value is [code]true[/code].
+ If [code]can_be_hidden[/code] is set to true, the specified [code]line[/code] can be hidden using [method set_line_as_hidden]. Default value is [code]true[/code].
</description>
</method>
<method name="cut">
<return type="void">
</return>
<description>
- Cut the current selection.
+ Cut's the current selection.
</description>
</method>
<method name="deselect">
<return type="void">
</return>
<description>
- Clears the current selection.
+ Deselects the current selection.
</description>
</method>
<method name="fold_all_lines">
<return type="void">
</return>
<description>
+ Folds all lines that are possible to be folded (see [method can_fold]).
</description>
</method>
<method name="fold_line">
@@ -130,13 +135,14 @@
<argument index="0" name="line" type="int">
</argument>
<description>
+ Folds the given line, if possible (see [method can_fold]).
</description>
</method>
<method name="get_breakpoints" qualifiers="const">
<return type="Array">
</return>
<description>
- Return an array containing the line number of each breakpoint.
+ Returns an array containing the line number of each breakpoint.
</description>
</method>
<method name="get_keyword_color" qualifiers="const">
@@ -145,6 +151,7 @@
<argument index="0" name="keyword" type="String">
</argument>
<description>
+ Returns the [Color] of the specified [code]keyword[/code].
</description>
</method>
<method name="get_line" qualifiers="const">
@@ -153,61 +160,63 @@
<argument index="0" name="line" type="int">
</argument>
<description>
- Return the text of a specific line.
+ Returns the text of a specific line.
</description>
</method>
<method name="get_line_count" qualifiers="const">
<return type="int">
</return>
<description>
- Return the amount of total lines in the text.
+ Returns the amount of total lines in the text.
</description>
</method>
<method name="get_menu" qualifiers="const">
<return type="PopupMenu">
</return>
<description>
+ Returns the [PopupMenu] of this [TextEdit]. By default, this menu is displayed when right-clicking on the [TextEdit].
</description>
</method>
<method name="get_selection_from_column" qualifiers="const">
<return type="int">
</return>
<description>
- Return the selection begin column.
+ Returns the selection begin column.
</description>
</method>
<method name="get_selection_from_line" qualifiers="const">
<return type="int">
</return>
<description>
- Return the selection begin line.
+ Returns the selection begin line.
</description>
</method>
<method name="get_selection_text" qualifiers="const">
<return type="String">
</return>
<description>
- Return the text inside the selection.
+ Returns the text inside the selection.
</description>
</method>
<method name="get_selection_to_column" qualifiers="const">
<return type="int">
</return>
<description>
- Return the selection end column.
+ Returns the selection end column.
</description>
</method>
<method name="get_selection_to_line" qualifiers="const">
<return type="int">
</return>
<description>
- Return the selection end line.
+ Returns the selection end line.
</description>
</method>
<method name="get_word_under_cursor" qualifiers="const">
<return type="String">
</return>
<description>
+ Returns a [String] text with the word under the mouse cursor location.
</description>
</method>
<method name="has_keyword_color" qualifiers="const">
@@ -216,6 +225,7 @@
<argument index="0" name="keyword" type="String">
</argument>
<description>
+ Returns whether the specified [code]keyword[/code] has a color set to it or not.
</description>
</method>
<method name="insert_text_at_cursor">
@@ -224,7 +234,7 @@
<argument index="0" name="text" type="String">
</argument>
<description>
- Insert a given text at the cursor position.
+ Insert the specified text at the cursor position.
</description>
</method>
<method name="is_folded" qualifiers="const">
@@ -233,6 +243,7 @@
<argument index="0" name="line" type="int">
</argument>
<description>
+ Returns whether the line at the specified index is folded or not.
</description>
</method>
<method name="is_line_hidden" qualifiers="const">
@@ -241,13 +252,14 @@
<argument index="0" name="line" type="int">
</argument>
<description>
+ Returns whether the line at the specified index is hidden or not.
</description>
</method>
<method name="is_selection_active" qualifiers="const">
<return type="bool">
</return>
<description>
- Return true if the selection is active.
+ Returns [code]true[/code] if the selection is active.
</description>
</method>
<method name="menu_option">
@@ -256,6 +268,7 @@
<argument index="0" name="option" type="int">
</argument>
<description>
+ Triggers a right click menu action by the specified index. See [enum MenuItems] for a list of available indexes.
</description>
</method>
<method name="paste">
@@ -324,6 +337,7 @@
<argument index="1" name="enable" type="bool">
</argument>
<description>
+ If [code]true[/code], hides the line of the specified index.
</description>
</method>
<method name="toggle_fold_line">
@@ -348,62 +362,78 @@
<argument index="0" name="line" type="int">
</argument>
<description>
+ Unfolds the given line, if folded.
</description>
</method>
<method name="unhide_all_lines">
<return type="void">
</return>
<description>
+ Unhide all lines that were previously set to hidden by [method set_line_as_hidden].
</description>
</method>
</methods>
<members>
<member name="breakpoint_gutter" type="bool" setter="set_breakpoint_gutter_enabled" getter="is_breakpoint_gutter_enabled">
- If [code]true[/code] the breakpoint gutter is visible.
+ If [code]true[/code], the breakpoint gutter is visible.
</member>
<member name="caret_blink" type="bool" setter="cursor_set_blink_enabled" getter="cursor_get_blink_enabled">
- If [code]true[/code] the caret (visual cursor) blinks.
+ If [code]true[/code], the caret (visual cursor) blinks.
</member>
<member name="caret_blink_speed" type="float" setter="cursor_set_blink_speed" getter="cursor_get_blink_speed">
Duration (in seconds) of a caret's blinking cycle.
</member>
<member name="caret_block_mode" type="bool" setter="cursor_set_block_mode" getter="cursor_is_block_mode">
- If [code]true[/code] the caret displays as a rectangle.
- If [code]false[/code] the caret displays as a bar.
+ If [code]true[/code], the caret displays as a rectangle.
+ If [code]false[/code], the caret displays as a bar.
</member>
<member name="caret_moving_by_right_click" type="bool" setter="set_right_click_moves_caret" getter="is_right_click_moving_caret">
- If [code]true[/code] a right click moves the cursor at the mouse position before displaying the context menu.
- If [code]false[/code] the context menu disregards mouse location.
+ If [code]true[/code], a right click moves the cursor at the mouse position before displaying the context menu.
+ If [code]false[/code], the context menu disregards mouse location.
</member>
<member name="context_menu_enabled" type="bool" setter="set_context_menu_enabled" getter="is_context_menu_enabled">
- If [code]true[/code] a right click displays the context menu.
+ If [code]true[/code], a right click displays the context menu.
</member>
- <member name="hiding_enabled" type="int" setter="set_hiding_enabled" getter="is_hiding_enabled">
+ <member name="draw_spaces" type="bool" setter="set_draw_spaces" getter="is_drawing_spaces">
+ If [code]true[/code], the "space" character will have a visible representation.
+ </member>
+ <member name="draw_tabs" type="bool" setter="set_draw_tabs" getter="is_drawing_tabs">
+ If [code]true[/code], the "tab" character will have a visible representation.
+ </member>
+ <member name="fold_gutter" type="bool" setter="set_draw_fold_gutter" getter="is_drawing_fold_gutter">
+ If [code]true[/code], the fold gutter is visible. This enables folding groups of indented lines.
+ </member>
+ <member name="hiding_enabled" type="bool" setter="set_hiding_enabled" getter="is_hiding_enabled">
+ If [code]true[/code], all lines that have been set to hidden by [method set_line_as_hidden], will not be visible.
</member>
<member name="highlight_all_occurrences" type="bool" setter="set_highlight_all_occurrences" getter="is_highlight_all_occurrences_enabled">
+ If [code]true[/code], all occurrences of the selected text will be highlighted.
</member>
<member name="highlight_current_line" type="bool" setter="set_highlight_current_line" getter="is_highlight_current_line_enabled">
- If [code]true[/code] the line containing the cursor is highlighted.
+ If [code]true[/code], the line containing the cursor is highlighted.
</member>
<member name="override_selected_font_color" type="bool" setter="set_override_selected_font_color" getter="is_overriding_selected_font_color">
</member>
<member name="readonly" type="bool" setter="set_readonly" getter="is_readonly">
- If [code]true[/code] read-only mode is enabled. Existing text cannot be modified and new text cannot be added.
+ If [code]true[/code], read-only mode is enabled. Existing text cannot be modified and new text cannot be added.
</member>
<member name="show_line_numbers" type="bool" setter="set_show_line_numbers" getter="is_show_line_numbers_enabled">
- If [code]true[/code] line numbers are displayed to the left of the text.
+ If [code]true[/code], line numbers are displayed to the left of the text.
</member>
<member name="smooth_scrolling" type="bool" setter="set_smooth_scroll_enable" getter="is_smooth_scroll_enabled">
+ If [code]true[/code], sets the [code]step[/code] of the scrollbars to [code]0.25[/code] which results in smoother scrolling.
</member>
<member name="syntax_highlighting" type="bool" setter="set_syntax_coloring" getter="is_syntax_coloring_enabled">
+ If [code]true[/code], any custom color properties that have been set for this [TextEdit] will be visible.
</member>
<member name="text" type="String" setter="set_text" getter="get_text">
String value of the [TextEdit].
</member>
<member name="v_scroll_speed" type="float" setter="set_v_scroll_speed" getter="get_v_scroll_speed">
- If [code]true[/code], enables text wrapping when it goes beyond he edge of what is visible.
+ Vertical scroll sensitivity.
</member>
<member name="wrap_enabled" type="bool" setter="set_wrap_enabled" getter="is_wrap_enabled">
+ If [code]true[/code], enables text wrapping when it goes beyond the edge of what is visible.
</member>
</members>
<signals>
@@ -419,6 +449,15 @@
Emitted when the cursor changes.
</description>
</signal>
+ <signal name="info_clicked">
+ <argument index="0" name="row" type="int">
+ </argument>
+ <argument index="1" name="info" type="String">
+ </argument>
+ <description>
+ Emitted when the info icon is clicked.
+ </description>
+ </signal>
<signal name="request_completion">
<description>
</description>
@@ -467,12 +506,18 @@
<constant name="MENU_UNDO" value="5" enum="MenuItems">
Undoes the previous action.
</constant>
- <constant name="MENU_MAX" value="6" enum="MenuItems">
+ <constant name="MENU_REDO" value="6" enum="MenuItems">
+ Redoes the previous action.
+ </constant>
+ <constant name="MENU_MAX" value="7" enum="MenuItems">
+ Represents the size of the [enum MenuItems] enum.
</constant>
</constants>
<theme_items>
<theme_item name="background_color" type="Color">
</theme_item>
+ <theme_item name="bookmark_color" type="Color">
+ </theme_item>
<theme_item name="brace_mismatch_color" type="Color">
</theme_item>
<theme_item name="breakpoint_color" type="Color">
@@ -503,8 +548,14 @@
</theme_item>
<theme_item name="current_line_color" type="Color">
</theme_item>
+ <theme_item name="executing_line_color" type="Color">
+ </theme_item>
<theme_item name="focus" type="StyleBox">
</theme_item>
+ <theme_item name="fold" type="Texture">
+ </theme_item>
+ <theme_item name="folded" type="Texture">
+ </theme_item>
<theme_item name="font" type="Font">
</theme_item>
<theme_item name="font_color" type="Color">
@@ -531,6 +582,8 @@
</theme_item>
<theme_item name="selection_color" type="Color">
</theme_item>
+ <theme_item name="space" type="Texture">
+ </theme_item>
<theme_item name="symbol_color" type="Color">
</theme_item>
<theme_item name="tab" type="Texture">
diff --git a/doc/classes/TextFile.xml b/doc/classes/TextFile.xml
index f8c1fd690e..163900a482 100644
--- a/doc/classes/TextFile.xml
+++ b/doc/classes/TextFile.xml
@@ -1,13 +1,11 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="TextFile" inherits="Resource" category="Core" version="3.1">
+<class name="TextFile" inherits="Resource" category="Core" version="3.2">
<brief_description>
</brief_description>
<description>
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
</methods>
<constants>
diff --git a/doc/classes/Texture.xml b/doc/classes/Texture.xml
index a9be42d1a1..4418a6ce8f 100644
--- a/doc/classes/Texture.xml
+++ b/doc/classes/Texture.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="Texture" inherits="Resource" category="Core" version="3.1">
+<class name="Texture" inherits="Resource" category="Core" version="3.2">
<brief_description>
Texture for 2D and 3D.
</brief_description>
@@ -9,8 +9,6 @@
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
<method name="draw" qualifiers="const">
<return type="void">
@@ -76,21 +74,21 @@
<return type="int">
</return>
<description>
- Return the texture height.
+ Returns the texture height.
</description>
</method>
<method name="get_size" qualifiers="const">
<return type="Vector2">
</return>
<description>
- Return the texture size.
+ Returns the texture size.
</description>
</method>
<method name="get_width" qualifiers="const">
<return type="int">
</return>
<description>
- Return the texture width.
+ Returns the texture width.
</description>
</method>
<method name="has_alpha" qualifiers="const">
diff --git a/doc/classes/Texture3D.xml b/doc/classes/Texture3D.xml
index 691d1f229e..30724eed50 100644
--- a/doc/classes/Texture3D.xml
+++ b/doc/classes/Texture3D.xml
@@ -1,13 +1,11 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="Texture3D" inherits="TextureLayered" category="Core" version="3.1">
+<class name="Texture3D" inherits="TextureLayered" category="Core" version="3.2">
<brief_description>
</brief_description>
<description>
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
</methods>
<constants>
diff --git a/doc/classes/TextureArray.xml b/doc/classes/TextureArray.xml
index a08d8421f1..0a9ac1fb2e 100644
--- a/doc/classes/TextureArray.xml
+++ b/doc/classes/TextureArray.xml
@@ -1,13 +1,11 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="TextureArray" inherits="TextureLayered" category="Core" version="3.1">
+<class name="TextureArray" inherits="TextureLayered" category="Core" version="3.2">
<brief_description>
</brief_description>
<description>
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
</methods>
<constants>
diff --git a/doc/classes/TextureButton.xml b/doc/classes/TextureButton.xml
index 7e54ab9fe8..7b436fcf2b 100644
--- a/doc/classes/TextureButton.xml
+++ b/doc/classes/TextureButton.xml
@@ -1,27 +1,25 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="TextureButton" inherits="BaseButton" category="Core" version="3.1">
+<class name="TextureButton" inherits="BaseButton" category="Core" version="3.2">
<brief_description>
Texture-based button. Supports Pressed, Hover, Disabled and Focused states.
</brief_description>
<description>
- [code]TextureButton[/code] has the same functionality as [Button], except it uses sprites instead of Godot's [Theme] resource. It is faster to create, but it doesn't support localization like more complex Controls.
+ [TextureButton] has the same functionality as [Button], except it uses sprites instead of Godot's [Theme] resource. It is faster to create, but it doesn't support localization like more complex Controls.
The Normal state's texture is required. Others are optional.
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
</methods>
<members>
<member name="expand" type="bool" setter="set_expand" getter="get_expand">
- If [code]true[/code] the texture stretches to the edges of the node's bounding rectangle using the [member stretch_mode]. If [code]false[/code] the texture will not scale with the node. Default value: [code]false[/code].
+ If [code]true[/code], the texture stretches to the edges of the node's bounding rectangle using the [member stretch_mode]. If [code]false[/code], the texture will not scale with the node. Default value: [code]false[/code].
</member>
<member name="stretch_mode" type="int" setter="set_stretch_mode" getter="get_stretch_mode" enum="TextureButton.StretchMode">
Controls the texture's behavior when you resize the node's bounding rectangle, [b]only if[/b] [member expand] is [code]true[/code]. Set it to one of the [code]STRETCH_*[/code] constants. See the constants to learn more.
</member>
<member name="texture_click_mask" type="BitMap" setter="set_click_mask" getter="get_click_mask">
- Pure black and white [Bitmap] image to use for click detection. On the mask, white pixels represent the button's clickable area. Use it to create buttons with curved shapes.
+ Pure black and white [BitMap] image to use for click detection. On the mask, white pixels represent the button's clickable area. Use it to create buttons with curved shapes.
</member>
<member name="texture_disabled" type="Texture" setter="set_disabled_texture" getter="get_disabled_texture">
Texture to display when the node is disabled. See [member BaseButton.disabled].
diff --git a/doc/classes/TextureLayered.xml b/doc/classes/TextureLayered.xml
index 026144cf5a..7c77bd43a3 100644
--- a/doc/classes/TextureLayered.xml
+++ b/doc/classes/TextureLayered.xml
@@ -1,13 +1,11 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="TextureLayered" inherits="Resource" category="Core" version="3.1">
+<class name="TextureLayered" inherits="Resource" category="Core" version="3.2">
<brief_description>
</brief_description>
<description>
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
<method name="create">
<return type="void">
diff --git a/doc/classes/TextureProgress.xml b/doc/classes/TextureProgress.xml
index 3cbaf0429c..ae306c6862 100644
--- a/doc/classes/TextureProgress.xml
+++ b/doc/classes/TextureProgress.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="TextureProgress" inherits="Range" category="Core" version="3.1">
+<class name="TextureProgress" inherits="Range" category="Core" version="3.2">
<brief_description>
Texture-based progress bar. Useful for loading screens and life or stamina bars.
</brief_description>
@@ -8,8 +8,6 @@
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
</methods>
<members>
@@ -17,7 +15,7 @@
The fill direction. Uses FILL_* constants.
</member>
<member name="nine_patch_stretch" type="bool" setter="set_nine_patch_stretch" getter="get_nine_patch_stretch">
- If [code]true[/code] Godot treats the bar's textures like [NinePatchRect]. Use [code]stretch_margin_*[/code], like [member stretch_margin_bottom], to set up the nine patch's 3x3 grid. Default value: [code]false[/code].
+ If [code]true[/code], Godot treats the bar's textures like [NinePatchRect]. Use [code]stretch_margin_*[/code], like [member stretch_margin_bottom], to set up the nine patch's 3x3 grid. Default value: [code]false[/code].
</member>
<member name="radial_center_offset" type="Vector2" setter="set_radial_center_offset" getter="get_radial_center_offset">
Offsets [member texture_progress] if [member fill_mode] is [code]FILL_CLOCKWISE[/code] or [code]FILL_COUNTER_CLOCKWISE[/code].
diff --git a/doc/classes/TextureRect.xml b/doc/classes/TextureRect.xml
index 95afc5d281..829105d561 100644
--- a/doc/classes/TextureRect.xml
+++ b/doc/classes/TextureRect.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="TextureRect" inherits="Control" category="Core" version="3.1">
+<class name="TextureRect" inherits="Control" category="Core" version="3.2">
<brief_description>
Control for drawing textures.
</brief_description>
@@ -8,13 +8,17 @@
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
</methods>
<members>
<member name="expand" type="bool" setter="set_expand" getter="has_expand">
- If [code]true[/code] the texture scales to fit its bounding rectangle. Default value: [code]false[/code].
+ If [code]true[/code], the texture scales to fit its bounding rectangle. Default value: [code]false[/code].
+ </member>
+ <member name="flip_h" type="bool" setter="set_flip_h" getter="is_flipped_h">
+ If [code]true[/code], texture is flipped horizontally. Default value: [code]false[/code].
+ </member>
+ <member name="flip_v" type="bool" setter="set_flip_v" getter="is_flipped_v">
+ If [code]true[/code], texture is flipped vertically. Default value: [code]false[/code].
</member>
<member name="stretch_mode" type="int" setter="set_stretch_mode" getter="get_stretch_mode" enum="TextureRect.StretchMode">
Controls the texture's behavior when resizing the node's bounding rectangle. See [enum StretchMode].
diff --git a/doc/classes/Theme.xml b/doc/classes/Theme.xml
index fe43b54d5e..8fdef5540b 100644
--- a/doc/classes/Theme.xml
+++ b/doc/classes/Theme.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="Theme" inherits="Resource" category="Core" version="3.1">
+<class name="Theme" inherits="Resource" category="Core" version="3.2">
<brief_description>
Theme for controls.
</brief_description>
@@ -8,10 +8,15 @@
Theme resources can be alternatively loaded by writing them in a .theme file, see docs for more info.
</description>
<tutorials>
+ <link>https://docs.godotengine.org/en/latest/tutorials/gui/gui_skinning.html</link>
</tutorials>
- <demos>
- </demos>
<methods>
+ <method name="clear">
+ <return type="void">
+ </return>
+ <description>
+ </description>
+ </method>
<method name="clear_color">
<return type="void">
</return>
@@ -74,6 +79,14 @@
Sets theme values to a copy of the default theme values.
</description>
</method>
+ <method name="copy_theme">
+ <return type="void">
+ </return>
+ <argument index="0" name="other" type="Theme">
+ </argument>
+ <description>
+ </description>
+ </method>
<method name="get_color" qualifiers="const">
<return type="Color">
</return>
diff --git a/doc/classes/Thread.xml b/doc/classes/Thread.xml
index 48d075c7f5..ff8221fed3 100644
--- a/doc/classes/Thread.xml
+++ b/doc/classes/Thread.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="Thread" inherits="Reference" category="Core" version="3.1">
+<class name="Thread" inherits="Reference" category="Core" version="3.2">
<brief_description>
A unit of execution in a process.
</brief_description>
@@ -8,21 +8,19 @@
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
<method name="get_id" qualifiers="const">
<return type="String">
</return>
<description>
- Returns the current [code]Thread[/code]s id, uniquely identifying it among all threads.
+ Returns the current [Thread]s id, uniquely identifying it among all threads.
</description>
</method>
<method name="is_active" qualifiers="const">
<return type="bool">
</return>
<description>
- Returns true if this [code]Thread[/code] is currently active. An active [code]Thread[/code] cannot start work on a new method but can be joined with [method wait_to_finish].
+ Returns [code]true[/code] if this [Thread] is currently active. An active [Thread] cannot start work on a new method but can be joined with [method wait_to_finish].
</description>
</method>
<method name="start">
@@ -34,10 +32,10 @@
</argument>
<argument index="2" name="userdata" type="Variant" default="null">
</argument>
- <argument index="3" name="priority" type="int" default="1">
+ <argument index="3" name="priority" type="int" enum="Thread.Priority" default="1">
</argument>
<description>
- Starts a new [code]Thread[/code] that runs "method" on object "instance" with "userdata" passed as an argument. The "priority" of the [code]Thread[/code] can be changed by passing a PRIORITY_* enum.
+ Starts a new [Thread] that runs "method" on object "instance" with "userdata" passed as an argument. The "priority" of the [Thread] can be changed by passing a PRIORITY_* enum.
Returns OK on success, or ERR_CANT_CREATE on failure.
</description>
</method>
@@ -45,7 +43,7 @@
<return type="Variant">
</return>
<description>
- Joins the [code]Thread[/code] and waits for it to finish. Returns what the method called returned.
+ Joins the [Thread] and waits for it to finish. Returns what the method called returned.
</description>
</method>
</methods>
diff --git a/doc/classes/TileMap.xml b/doc/classes/TileMap.xml
index 7034d75473..ed4f914136 100644
--- a/doc/classes/TileMap.xml
+++ b/doc/classes/TileMap.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="TileMap" inherits="Node2D" category="Core" version="3.1">
+<class name="TileMap" inherits="Node2D" category="Core" version="3.2">
<brief_description>
Node for 2D tile-based maps.
</brief_description>
@@ -9,8 +9,6 @@
<tutorials>
<link>https://docs.godotengine.org/en/latest/tutorials/2d/using_tilemaps.html</link>
</tutorials>
- <demos>
- </demos>
<methods>
<method name="clear">
<return type="void">
@@ -34,7 +32,17 @@
<argument index="1" name="y" type="int">
</argument>
<description>
- Returns the tile index of the given cell.
+ Returns the tile index of the given cell. If no tile exists in the cell, returns [constant INVALID_CELL].
+ </description>
+ </method>
+ <method name="get_cell_autotile_coord" qualifiers="const">
+ <return type="Vector2">
+ </return>
+ <argument index="0" name="x" type="int">
+ </argument>
+ <argument index="1" name="y" type="int">
+ </argument>
+ <description>
</description>
</method>
<method name="get_cellv" qualifiers="const">
@@ -43,7 +51,7 @@
<argument index="0" name="position" type="Vector2">
</argument>
<description>
- Returns the tile index of the cell given by a Vector2.
+ Returns the tile index of the cell given by a Vector2. If no tile exists in the cell, returns [constant INVALID_CELL].
</description>
</method>
<method name="get_collision_layer_bit" qualifiers="const">
@@ -155,6 +163,13 @@
Optionally, the tile can also be flipped, transposed, or given autotile coordinates.
Note that data such as navigation polygons and collision shapes are not immediately updated for performance reasons.
If you need these to be immediately updated, you can call [method update_dirty_quadrants].
+ Overriding this method also overrides it internally, allowing custom logic to be implemented when tiles are placed/removed:
+ [codeblock]
+ func set_cell(x, y, tile, flip_x, flip_y, transpose, autotile_coord)
+ # Write your custom logic here.
+ # To call the default method:
+ .set_cell(x, y, tile, flip_x, flip_y, transpose, autotile_coord)
+ [/codeblock]
</description>
</method>
<method name="set_cellv">
@@ -234,7 +249,7 @@
<argument index="0" name="world_position" type="Vector2">
</argument>
<description>
- Returns the tilemap (grid-based) coordinatescorresponding to the given global position.
+ Returns the tilemap (grid-based) coordinates corresponding to the given local position.
</description>
</method>
</methods>
@@ -257,7 +272,7 @@
Position for tile origin. Uses TILE_ORIGIN_* constants. Default value: TILE_ORIGIN_TOP_LEFT.
</member>
<member name="cell_y_sort" type="bool" setter="set_y_sort_mode" getter="is_y_sort_mode_enabled">
- If [code]true[/code] the TileMap's children will be drawn in order of their Y coordinate. Default value: [code]false[/code].
+ If [code]true[/code], the TileMap's children will be drawn in order of their Y coordinate. Default value: [code]false[/code].
</member>
<member name="collision_bounce" type="float" setter="set_collision_bounce" getter="get_collision_bounce">
Bounce value for static body collisions (see [code]collision_use_kinematic[/code]). Default value: 0.
@@ -272,7 +287,7 @@
The collision mask(s) for all colliders in the TileMap.
</member>
<member name="collision_use_kinematic" type="bool" setter="set_collision_use_kinematic" getter="get_collision_use_kinematic">
- If [code]true[/code] TileMap collisions will be handled as a kinematic body. If [code]false[/code] collisions will be handled as static body. Default value: [code]false[/code].
+ If [code]true[/code], TileMap collisions will be handled as a kinematic body. If [code]false[/code], collisions will be handled as static body. Default value: [code]false[/code].
</member>
<member name="mode" type="int" setter="set_mode" getter="get_mode" enum="TileMap.Mode">
The TileMap orientation mode. Uses MODE_* constants. Default value: MODE_SQUARE.
@@ -313,6 +328,12 @@
<constant name="HALF_OFFSET_DISABLED" value="2" enum="HalfOffset">
Half offset disabled.
</constant>
+ <constant name="HALF_OFFSET_NEGATIVE_X" value="3" enum="HalfOffset">
+ Half offset on the X coordinate (negative).
+ </constant>
+ <constant name="HALF_OFFSET_NEGATIVE_Y" value="4" enum="HalfOffset">
+ Half offset on the Y coordinate (negative).
+ </constant>
<constant name="TILE_ORIGIN_TOP_LEFT" value="0" enum="TileOrigin">
Tile origin at its top-left corner.
</constant>
diff --git a/doc/classes/TileSet.xml b/doc/classes/TileSet.xml
index ffd15e8d8b..f29a7990ed 100644
--- a/doc/classes/TileSet.xml
+++ b/doc/classes/TileSet.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="TileSet" inherits="Resource" category="Core" version="3.1">
+<class name="TileSet" inherits="Resource" category="Core" version="3.2">
<brief_description>
Tile library for tilemaps.
</brief_description>
@@ -9,9 +9,19 @@
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
+ <method name="_forward_atlas_subtile_selection" qualifiers="virtual">
+ <return type="Vector2">
+ </return>
+ <argument index="0" name="atlastile_id" type="int">
+ </argument>
+ <argument index="1" name="tilemap" type="Object">
+ </argument>
+ <argument index="2" name="tile_location" type="Vector2">
+ </argument>
+ <description>
+ </description>
+ </method>
<method name="_forward_subtile_selection" qualifiers="virtual">
<return type="Vector2">
</return>
@@ -36,12 +46,66 @@
<description>
</description>
</method>
+ <method name="autotile_clear_bitmask_map">
+ <return type="void">
+ </return>
+ <argument index="0" name="id" type="int">
+ </argument>
+ <description>
+ Clears all bitmask info of the autotile.
+ </description>
+ </method>
+ <method name="autotile_get_bitmask">
+ <return type="int">
+ </return>
+ <argument index="0" name="id" type="int">
+ </argument>
+ <argument index="1" name="coord" type="Vector2">
+ </argument>
+ <description>
+ Returns the bitmask of the subtile from an autotile given its coordinates.
+ The value is the sum of the values in [enum TileSet.AutotileBindings] present in the subtile (e.g. a value of 5 means the bitmask has bindings in both the top left and top right).
+ </description>
+ </method>
<method name="autotile_get_bitmask_mode" qualifiers="const">
<return type="int" enum="TileSet.BitmaskMode">
</return>
<argument index="0" name="id" type="int">
</argument>
<description>
+ Returns the [enum TileSet.BitmaskMode] of the autotile.
+ </description>
+ </method>
+ <method name="autotile_get_icon_coordinate" qualifiers="const">
+ <return type="Vector2">
+ </return>
+ <argument index="0" name="id" type="int">
+ </argument>
+ <description>
+ Returns the subtile that's being used as an icon in an atlas/autotile given its coordinates.
+ The subtile defined as the icon will be used as a fallback when the atlas/autotile's bitmask info is incomplete. It will also be used to represent it in the TileSet editor.
+ </description>
+ </method>
+ <method name="autotile_get_light_occluder" qualifiers="const">
+ <return type="OccluderPolygon2D">
+ </return>
+ <argument index="0" name="id" type="int">
+ </argument>
+ <argument index="1" name="coord" type="Vector2">
+ </argument>
+ <description>
+ Returns the light occluder of the subtile from an atlas/autotile given its coordinates.
+ </description>
+ </method>
+ <method name="autotile_get_navigation_polygon" qualifiers="const">
+ <return type="NavigationPolygon">
+ </return>
+ <argument index="0" name="id" type="int">
+ </argument>
+ <argument index="1" name="coord" type="Vector2">
+ </argument>
+ <description>
+ Returns the navigation polygon of the subtile from an atlas/autotile given its coordinates.
</description>
</method>
<method name="autotile_get_size" qualifiers="const">
@@ -50,6 +114,53 @@
<argument index="0" name="id" type="int">
</argument>
<description>
+ Returns the size of the subtiles in an atlas/autotile.
+ </description>
+ </method>
+ <method name="autotile_get_spacing" qualifiers="const">
+ <return type="int">
+ </return>
+ <argument index="0" name="id" type="int">
+ </argument>
+ <description>
+ Returns the spacing between subtiles of the atlas/autotile.
+ </description>
+ </method>
+ <method name="autotile_get_subtile_priority">
+ <return type="int">
+ </return>
+ <argument index="0" name="id" type="int">
+ </argument>
+ <argument index="1" name="coord" type="Vector2">
+ </argument>
+ <description>
+ Returns the priority of the subtile from an autotile given its coordinates.
+ When more than one subtile has the same bitmask value, one of them will be picked randomly for drawing. Its priority will define how often it will be picked.
+ </description>
+ </method>
+ <method name="autotile_get_z_index">
+ <return type="int">
+ </return>
+ <argument index="0" name="id" type="int">
+ </argument>
+ <argument index="1" name="coord" type="Vector2">
+ </argument>
+ <description>
+ Returns the drawing index of the subtile from an atlas/autotile given its coordinates.
+ </description>
+ </method>
+ <method name="autotile_set_bitmask">
+ <return type="void">
+ </return>
+ <argument index="0" name="id" type="int">
+ </argument>
+ <argument index="1" name="bitmask" type="Vector2">
+ </argument>
+ <argument index="2" name="flag" type="int">
+ </argument>
+ <description>
+ Sets the bitmask of the subtile from an autotile given its coordinates.
+ The value is the sum of the values in [enum TileSet.AutotileBindings] present in the subtile (e.g. a value of 5 means the bitmask has bindings in both the top left and top right).
</description>
</method>
<method name="autotile_set_bitmask_mode">
@@ -60,6 +171,45 @@
<argument index="1" name="mode" type="int" enum="TileSet.BitmaskMode">
</argument>
<description>
+ Sets the [enum TileSet.BitmaskMode] of the autotile.
+ </description>
+ </method>
+ <method name="autotile_set_icon_coordinate">
+ <return type="void">
+ </return>
+ <argument index="0" name="id" type="int">
+ </argument>
+ <argument index="1" name="coord" type="Vector2">
+ </argument>
+ <description>
+ Sets the subtile that will be used as an icon in an atlas/autotile given its coordinates.
+ The subtile defined as the icon will be used as a fallback when the atlas/autotile's bitmask info is incomplete. It will also be used to represent it in the TileSet editor.
+ </description>
+ </method>
+ <method name="autotile_set_light_occluder">
+ <return type="void">
+ </return>
+ <argument index="0" name="id" type="int">
+ </argument>
+ <argument index="1" name="light_occluder" type="OccluderPolygon2D">
+ </argument>
+ <argument index="2" name="coord" type="Vector2">
+ </argument>
+ <description>
+ Sets the light occluder of the subtile from an atlas/autotile given its coordinates.
+ </description>
+ </method>
+ <method name="autotile_set_navigation_polygon">
+ <return type="void">
+ </return>
+ <argument index="0" name="id" type="int">
+ </argument>
+ <argument index="1" name="navigation_polygon" type="NavigationPolygon">
+ </argument>
+ <argument index="2" name="coord" type="Vector2">
+ </argument>
+ <description>
+ Sets the navigation polygon of the subtile from an atlas/autotile given its coordinates.
</description>
</method>
<method name="autotile_set_size">
@@ -70,6 +220,45 @@
<argument index="1" name="size" type="Vector2">
</argument>
<description>
+ Sets the size of the subtiles in an atlas/autotile.
+ </description>
+ </method>
+ <method name="autotile_set_spacing">
+ <return type="void">
+ </return>
+ <argument index="0" name="id" type="int">
+ </argument>
+ <argument index="1" name="spacing" type="int">
+ </argument>
+ <description>
+ Sets the spacing between subtiles of the atlas/autotile.
+ </description>
+ </method>
+ <method name="autotile_set_subtile_priority">
+ <return type="void">
+ </return>
+ <argument index="0" name="id" type="int">
+ </argument>
+ <argument index="1" name="coord" type="Vector2">
+ </argument>
+ <argument index="2" name="priority" type="int">
+ </argument>
+ <description>
+ Sets the priority of the subtile from an autotile given its coordinates.
+ When more than one subtile has the same bitmask value, one of them will be picked randomly for drawing. Its priority will define how often it will be picked.
+ </description>
+ </method>
+ <method name="autotile_set_z_index">
+ <return type="void">
+ </return>
+ <argument index="0" name="id" type="int">
+ </argument>
+ <argument index="1" name="coord" type="Vector2">
+ </argument>
+ <argument index="2" name="z_index" type="int">
+ </argument>
+ <description>
+ Sets the drawing index of the subtile from an atlas/autotile given its coordinates.
</description>
</method>
<method name="clear">
@@ -260,6 +449,16 @@
Returns the one-way collision value of a tile's shape.
</description>
</method>
+ <method name="tile_get_shape_one_way_margin" qualifiers="const">
+ <return type="float">
+ </return>
+ <argument index="0" name="id" type="int">
+ </argument>
+ <argument index="1" name="shape_id" type="int">
+ </argument>
+ <description>
+ </description>
+ </method>
<method name="tile_get_shape_transform" qualifiers="const">
<return type="Transform2D">
</return>
@@ -304,7 +503,7 @@
<argument index="0" name="id" type="int">
</argument>
<description>
- Returns the tile's [enum TileMode].
+ Returns the tile's [enum TileSet.TileMode].
</description>
</method>
<method name="tile_get_z_index" qualifiers="const">
@@ -454,6 +653,18 @@
Enables one-way collision on a tile's shape.
</description>
</method>
+ <method name="tile_set_shape_one_way_margin">
+ <return type="void">
+ </return>
+ <argument index="0" name="id" type="int">
+ </argument>
+ <argument index="1" name="shape_id" type="int">
+ </argument>
+ <argument index="2" name="one_way" type="float">
+ </argument>
+ <description>
+ </description>
+ </method>
<method name="tile_set_shape_transform">
<return type="void">
</return>
@@ -508,7 +719,7 @@
<argument index="1" name="tilemode" type="int" enum="TileSet.TileMode">
</argument>
<description>
- Sets the tile's [enum TileMode].
+ Sets the tile's [enum TileSet.TileMode].
</description>
</method>
<method name="tile_set_z_index">
diff --git a/doc/classes/Timer.xml b/doc/classes/Timer.xml
index 65d638c4c0..74bd86b34b 100644
--- a/doc/classes/Timer.xml
+++ b/doc/classes/Timer.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="Timer" inherits="Node" category="Core" version="3.1">
+<class name="Timer" inherits="Node" category="Core" version="3.2">
<brief_description>
A countdown timer.
</brief_description>
@@ -8,8 +8,6 @@
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
<method name="is_stopped" qualifiers="const">
<return type="bool">
@@ -24,8 +22,8 @@
<argument index="0" name="time_sec" type="float" default="-1">
</argument>
<description>
- Starts the timer. Sets [code]wait_time[/code] to [code]time_sec[/code] if [code]time_sec[/code] &gt; 0. This also resets the remaining time to [code]wait_time[/code].
- Note: this method will not resume a paused timer. See [method set_paused].
+ Starts the timer. Sets [code]wait_time[/code] to [code]time_sec[/code] if [code]time_sec &gt; 0[/code]. This also resets the remaining time to [code]wait_time[/code].
+ Note: this method will not resume a paused timer. See [member paused].
</description>
</method>
<method name="stop">
@@ -38,13 +36,13 @@
</methods>
<members>
<member name="autostart" type="bool" setter="set_autostart" getter="has_autostart">
- If [code]true[/code] the timer will automatically start when entering the scene tree. Default value: [code]false[/code].
+ If [code]true[/code], the timer will automatically start when entering the scene tree. Default value: [code]false[/code].
</member>
<member name="one_shot" type="bool" setter="set_one_shot" getter="is_one_shot">
- If [code]true[/code] the timer will stop when reaching 0. If [code]false[/code] it will restart. Default value: [code]false[/code].
+ If [code]true[/code], the timer will stop when reaching 0. If [code]false[/code], it will restart. Default value: [code]false[/code].
</member>
<member name="paused" type="bool" setter="set_paused" getter="is_paused">
- If [code]true[/code] the timer is paused and will not process until it is unpaused again, even if [method start] is called.
+ If [code]true[/code], the timer is paused and will not process until it is unpaused again, even if [method start] is called.
</member>
<member name="process_mode" type="int" setter="set_timer_process_mode" getter="get_timer_process_mode" enum="Timer.TimerProcessMode">
Processing mode. See [enum TimerProcessMode].
diff --git a/doc/classes/ToolButton.xml b/doc/classes/ToolButton.xml
index d8db95a854..b48ab75fd0 100644
--- a/doc/classes/ToolButton.xml
+++ b/doc/classes/ToolButton.xml
@@ -1,19 +1,17 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="ToolButton" inherits="Button" category="Core" version="3.1">
+<class name="ToolButton" inherits="Button" category="Core" version="3.2">
<brief_description>
Flat button helper class.
</brief_description>
<description>
- This is a helper class to generate a flat [Button] (see [method Button.set_flat]), creating a ToolButton is equivalent to:
+ This is a helper class to generate a flat [Button] (see [member Button.flat]), creating a [ToolButton] is equivalent to:
[codeblock]
var btn = Button.new()
- btn.set_flat(true)
+ btn.flat = true
[/codeblock]
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
</methods>
<constants>
diff --git a/doc/classes/TouchScreenButton.xml b/doc/classes/TouchScreenButton.xml
index 1b37ce95ba..4b5a832b05 100644
--- a/doc/classes/TouchScreenButton.xml
+++ b/doc/classes/TouchScreenButton.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="TouchScreenButton" inherits="Node2D" category="Core" version="3.1">
+<class name="TouchScreenButton" inherits="Node2D" category="Core" version="3.2">
<brief_description>
Button for touch screen devices.
</brief_description>
@@ -8,8 +8,6 @@
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
<method name="is_pressed" qualifiers="const">
<return type="bool">
@@ -30,7 +28,7 @@
The button's texture for the normal state.
</member>
<member name="passby_press" type="bool" setter="set_passby_press" getter="is_passby_press_enabled">
- If [code]true[/code] passby presses are enabled.
+ If [code]true[/code], passby presses are enabled.
</member>
<member name="pressed" type="Texture" setter="set_texture_pressed" getter="get_texture_pressed">
The button's texture for the pressed state.
@@ -39,10 +37,10 @@
The button's shape.
</member>
<member name="shape_centered" type="bool" setter="set_shape_centered" getter="is_shape_centered">
- If [code]true[/code] the button's shape is centered.
+ If [code]true[/code], the button's shape is centered.
</member>
<member name="shape_visible" type="bool" setter="set_shape_visible" getter="is_shape_visible">
- If [code]true[/code] the button's shape is visible.
+ If [code]true[/code], the button's shape is visible.
</member>
<member name="visibility_mode" type="int" setter="set_visibility_mode" getter="get_visibility_mode" enum="TouchScreenButton.VisibilityMode">
The button's visibility mode. See [code]VISIBILITY_*[/code] constants.
diff --git a/doc/classes/Transform.xml b/doc/classes/Transform.xml
index b3168ef129..dfbb93acfc 100644
--- a/doc/classes/Transform.xml
+++ b/doc/classes/Transform.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="Transform" category="Built-In Types" version="3.1">
+<class name="Transform" category="Built-In Types" version="3.2">
<brief_description>
3D Transformation. 3x4 matrix.
</brief_description>
@@ -10,8 +10,6 @@
<link>https://docs.godotengine.org/en/latest/tutorials/math/index.html</link>
<link>https://docs.godotengine.org/en/latest/tutorials/3d/using_transforms.html</link>
</tutorials>
- <demos>
- </demos>
<methods>
<method name="Transform">
<return type="Transform">
@@ -172,9 +170,9 @@
</constant>
<constant name="FLIP_X" value="Transform( -1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0 )">
</constant>
- <constant name="FLIP_Y" value="Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0 )">
+ <constant name="FLIP_Y" value="Transform( 1, 0, 0, 0, -1, 0, 0, 0, 1, 0, 0, 0 )">
</constant>
- <constant name="FLIP_Z" value="Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0 )">
+ <constant name="FLIP_Z" value="Transform( 1, 0, 0, 0, 1, 0, 0, 0, -1, 0, 0, 0 )">
</constant>
</constants>
</class>
diff --git a/doc/classes/Transform2D.xml b/doc/classes/Transform2D.xml
index bf0a745aa8..bc003284ad 100644
--- a/doc/classes/Transform2D.xml
+++ b/doc/classes/Transform2D.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="Transform2D" category="Built-In Types" version="3.1">
+<class name="Transform2D" category="Built-In Types" version="3.2">
<brief_description>
2D Transformation. 3x2 matrix.
</brief_description>
@@ -8,8 +8,6 @@
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
<method name="Transform2D">
<return type="Transform2D">
diff --git a/doc/classes/Translation.xml b/doc/classes/Translation.xml
index b57f8f3556..eea4f8ed03 100644
--- a/doc/classes/Translation.xml
+++ b/doc/classes/Translation.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="Translation" inherits="Resource" category="Core" version="3.1">
+<class name="Translation" inherits="Resource" category="Core" version="3.2">
<brief_description>
Language Translation.
</brief_description>
@@ -7,11 +7,9 @@
Translations are resources that can be loaded/unloaded on demand. They map a string to another string.
</description>
<tutorials>
- <link>https://docs.godotengine.org/en/stable/tutorials/i18n/internationalizing_games.html</link>
- <link>https://docs.godotengine.org/en/stable/tutorials/i18n/locales.html</link>
+ <link>https://docs.godotengine.org/en/latest/tutorials/i18n/internationalizing_games.html</link>
+ <link>https://docs.godotengine.org/en/latest/tutorials/i18n/locales.html</link>
</tutorials>
- <demos>
- </demos>
<methods>
<method name="add_message">
<return type="void">
diff --git a/doc/classes/TranslationServer.xml b/doc/classes/TranslationServer.xml
index c2c400ccd5..268fb5b6a5 100644
--- a/doc/classes/TranslationServer.xml
+++ b/doc/classes/TranslationServer.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="TranslationServer" inherits="Object" category="Core" version="3.1">
+<class name="TranslationServer" inherits="Object" category="Core" version="3.2">
<brief_description>
Server that manages all translations.
</brief_description>
@@ -7,11 +7,9 @@
Server that manages all translations. Translations can be set to it and removed from it.
</description>
<tutorials>
- <link>https://docs.godotengine.org/en/stable/tutorials/i18n/internationalizing_games.html</link>
- <link>https://docs.godotengine.org/en/stable/tutorials/i18n/locales.html</link>
+ <link>https://docs.godotengine.org/en/latest/tutorials/i18n/internationalizing_games.html</link>
+ <link>https://docs.godotengine.org/en/latest/tutorials/i18n/locales.html</link>
</tutorials>
- <demos>
- </demos>
<methods>
<method name="add_translation">
<return type="void">
@@ -29,6 +27,13 @@
Clears the server from all translations.
</description>
</method>
+ <method name="get_loaded_locales" qualifiers="const">
+ <return type="Array">
+ </return>
+ <description>
+ Returns an Array of all loaded locales of the game.
+ </description>
+ </method>
<method name="get_locale" qualifiers="const">
<return type="String">
</return>
diff --git a/doc/classes/Tree.xml b/doc/classes/Tree.xml
index 1ad8166b91..0272efeecb 100644
--- a/doc/classes/Tree.xml
+++ b/doc/classes/Tree.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="Tree" inherits="Control" category="Core" version="3.1">
+<class name="Tree" inherits="Control" category="Core" version="3.2">
<brief_description>
Control to show a tree of items.
</brief_description>
@@ -19,8 +19,6 @@
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
<method name="are_column_titles_visible" qualifiers="const">
<return type="bool">
@@ -184,7 +182,7 @@
<argument index="1" name="expand" type="bool">
</argument>
<description>
- If [code]true[/code] the column will have the "Expand" flag of [Control].
+ If [code]true[/code], the column will have the "Expand" flag of [Control].
</description>
</method>
<method name="set_column_min_width">
@@ -215,16 +213,16 @@
<argument index="0" name="visible" type="bool">
</argument>
<description>
- If [code]true[/code] column titles are visible.
+ If [code]true[/code], column titles are visible.
</description>
</method>
</methods>
<members>
<member name="allow_reselect" type="bool" setter="set_allow_reselect" getter="get_allow_reselect">
- If [code]true[/code] the currently selected cell may be selected again.
+ If [code]true[/code], the currently selected cell may be selected again.
</member>
<member name="allow_rmb_select" type="bool" setter="set_allow_rmb_select" getter="get_allow_rmb_select">
- If [code]true[/code] a right mouse button click can select items.
+ If [code]true[/code], a right mouse button click can select items.
</member>
<member name="columns" type="int" setter="set_columns" getter="get_columns">
The amount of columns.
@@ -233,10 +231,10 @@
The drop mode as an OR combination of flags. See [code]DROP_MODE_*[/code] constants. Once dropping is done, reverts to [code]DROP_MODE_DISABLED[/code]. Setting this during [method Control.can_drop_data] is recommended.
</member>
<member name="hide_folding" type="bool" setter="set_hide_folding" getter="is_folding_hidden">
- If [code]true[/code] the folding arrow is hidden.
+ If [code]true[/code], the folding arrow is hidden.
</member>
<member name="hide_root" type="bool" setter="set_hide_root" getter="is_root_hidden">
- If [code]true[/code] the tree's root is hidden.
+ If [code]true[/code], the tree's root is hidden.
</member>
<member name="select_mode" type="int" setter="set_select_mode" getter="get_select_mode" enum="Tree.SelectMode">
Allow single or multiple selection. See the [code]SELECT_*[/code] constants.
@@ -273,6 +271,12 @@
Emitted when a cell with the [code]CELL_MODE_CUSTOM[/code] is clicked to be edited.
</description>
</signal>
+ <signal name="empty_rmb">
+ <argument index="0" name="position" type="Vector2">
+ </argument>
+ <description>
+ </description>
+ </signal>
<signal name="empty_tree_rmb_selected">
<argument index="0" name="position" type="Vector2">
</argument>
diff --git a/doc/classes/TreeItem.xml b/doc/classes/TreeItem.xml
index b4227b34be..f7887a87c8 100644
--- a/doc/classes/TreeItem.xml
+++ b/doc/classes/TreeItem.xml
@@ -1,15 +1,13 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="TreeItem" inherits="Object" category="Core" version="3.1">
+<class name="TreeItem" inherits="Object" category="Core" version="3.2">
<brief_description>
Control for a single item inside a [Tree].
</brief_description>
<description>
- Control for a single item inside a [Tree]. May have child [code]TreeItem[/code]s and be styled as well as contain buttons.
+ Control for a single item inside a [Tree]. May have child [TreeItem]s and be styled as well as contain buttons.
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
<method name="add_button">
<return type="void">
@@ -165,8 +163,11 @@
<method name="get_next_visible">
<return type="TreeItem">
</return>
+ <argument index="0" name="wrap" type="bool" default="false">
+ </argument>
<description>
Returns the next visible TreeItem in the tree.
+ If [code]wrap[/code] is enabled, the method will wrap around to the first visible element in the tree when called on the last visible element, otherwise it returns [code]null[/code].
</description>
</method>
<method name="get_parent">
@@ -186,8 +187,11 @@
<method name="get_prev_visible">
<return type="TreeItem">
</return>
+ <argument index="0" name="wrap" type="bool" default="false">
+ </argument>
<description>
Returns the previous visible TreeItem in the tree.
+ If [code]wrap[/code] is enabled, the method will wrap around to the last visible element in the tree when called on the first visible element, otherwise it returns [code]null[/code].
</description>
</method>
<method name="get_range" qualifiers="const">
@@ -352,7 +356,7 @@
<argument index="1" name="checked" type="bool">
</argument>
<description>
- If [code]true[/code] the column [code]column[/code] is checked.
+ If [code]true[/code], the column [code]column[/code] is checked.
</description>
</method>
<method name="set_custom_as_button">
@@ -411,7 +415,7 @@
<argument index="1" name="enabled" type="bool">
</argument>
<description>
- If [code]true[/code] column [code]column[/code] is editable.
+ If [code]true[/code], column [code]column[/code] is editable.
</description>
</method>
<method name="set_expand_right">
@@ -422,7 +426,7 @@
<argument index="1" name="enable" type="bool">
</argument>
<description>
- If [code]true[/code] column [code]column[/code] is expanded to the right.
+ If [code]true[/code], column [code]column[/code] is expanded to the right.
</description>
</method>
<method name="set_icon">
@@ -502,7 +506,7 @@
<argument index="1" name="selectable" type="bool">
</argument>
<description>
- If [code]true[/code] the given column is selectable.
+ If [code]true[/code], the given column is selectable.
</description>
</method>
<method name="set_text">
@@ -540,13 +544,13 @@
</methods>
<members>
<member name="collapsed" type="bool" setter="set_collapsed" getter="is_collapsed">
- If [code]true[/code] the TreeItem is collapsed.
+ If [code]true[/code], the TreeItem is collapsed.
</member>
<member name="custom_minimum_height" type="int" setter="set_custom_minimum_height" getter="get_custom_minimum_height">
The custom minimum height.
</member>
<member name="disable_folding" type="bool" setter="set_disable_folding" getter="is_folding_disabled">
- If [code]true[/code] folding is disabled for this TreeItem.
+ If [code]true[/code], folding is disabled for this TreeItem.
</member>
</members>
<constants>
diff --git a/doc/classes/TriangleMesh.xml b/doc/classes/TriangleMesh.xml
index 2bdc7b61f4..2125aa5e17 100644
--- a/doc/classes/TriangleMesh.xml
+++ b/doc/classes/TriangleMesh.xml
@@ -1,13 +1,13 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="TriangleMesh" inherits="Reference" category="Core" version="3.1">
+<class name="TriangleMesh" inherits="Reference" category="Core" version="3.2">
<brief_description>
+ Internal mesh type.
</brief_description>
<description>
+ Mesh type used internally for collision calculations.
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
</methods>
<constants>
diff --git a/doc/classes/Tween.xml b/doc/classes/Tween.xml
index e792835605..d121fdc125 100644
--- a/doc/classes/Tween.xml
+++ b/doc/classes/Tween.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="Tween" inherits="Node" category="Core" version="3.1">
+<class name="Tween" inherits="Node" category="Core" version="3.2">
<brief_description>
Smoothly animates a node's properties over time.
</brief_description>
@@ -13,13 +13,11 @@
Tween.TRANS_LINEAR, Tween.EASE_IN_OUT)
tween.start()
[/codeblock]
- Many methods require a property name, such as "position" above. You can find the correct property name by hovering over the property in the Inspector.
+ Many methods require a property name, such as "position" above. You can find the correct property name by hovering over the property in the Inspector. You can also provide the components of a property directly by using "property:component" (eg. [code]position:x[/code]), where it would only apply to that particular component.
Many of the methods accept [code]trans_type[/code] and [code]ease_type[/code]. The first accepts an [enum TransitionType] constant, and refers to the way the timing of the animation is handled (see [code]http://easings.net/[/code] for some examples). The second accepts an [enum EaseType] constant, and controls the where [code]trans_type[/code] is applied to the interpolation (in the beginning, the end, or both). If you don't know which transition and easing to pick, you can try different [enum TransitionType] constants with [code]EASE_IN_OUT[/code], and use the one that looks best.
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
<method name="follow_method">
<return type="bool">
@@ -340,16 +338,21 @@
</methods>
<members>
<member name="playback_process_mode" type="int" setter="set_tween_process_mode" getter="get_tween_process_mode" enum="Tween.TweenProcessMode">
- The tween's animation process thread. See [enum TweenProcessMode]. Default value: [enum TWEEN_PROCESS_IDLE].
+ The tween's animation process thread. See [enum TweenProcessMode]. Default value: [constant TWEEN_PROCESS_IDLE].
</member>
<member name="playback_speed" type="float" setter="set_speed_scale" getter="get_speed_scale">
The tween's speed multiplier. For example, set it to [code]1.0[/code] for normal speed, [code]2.0[/code] for two times normal speed, or [code]0.5[/code] for half of the normal speed. A value of [code]0[/code] pauses the animation, but see also [method set_active] or [method stop_all] for this.
</member>
<member name="repeat" type="bool" setter="set_repeat" getter="is_repeat">
- If [code]true[/code] the tween loops.
+ If [code]true[/code], the tween loops.
</member>
</members>
<signals>
+ <signal name="tween_all_completed">
+ <description>
+ Emitted when all processes in a tween end.
+ </description>
+ </signal>
<signal name="tween_completed">
<argument index="0" name="object" type="Object">
</argument>
diff --git a/doc/classes/UndoRedo.xml b/doc/classes/UndoRedo.xml
index 93806ac326..c0b73cd8e3 100644
--- a/doc/classes/UndoRedo.xml
+++ b/doc/classes/UndoRedo.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="UndoRedo" inherits="Object" category="Core" version="3.1">
+<class name="UndoRedo" inherits="Object" category="Core" version="3.2">
<brief_description>
Helper to manage UndoRedo in the editor or custom tools.
</brief_description>
@@ -8,30 +8,28 @@
Common behavior is to create an action, then add do/undo calls to functions or property changes, then committing the action.
Here's an example on how to add an action to Godot editor's own 'undoredo':
[codeblock]
- var undoredo = get_undo_redo() # method of EditorPlugin
+ var undo_redo = get_undo_redo() # Method of EditorPlugin.
func do_something():
- pass # put your code here
+ pass # Put your code here.
func undo_something():
- pass # put here the code that reverts what's done by "do_something()"
+ pass # Put here the code that reverts what's done by "do_something()".
func _on_MyButton_pressed():
var node = get_node("MyNode2D")
- undoredo.create_action("Move the node")
- undoredo.add_do_method(self, "do_something")
- undoredo.add_undo_method(self, "undo_something")
- undoredo.add_do_property(node, "position", Vector2(100,100))
- undoredo.add_undo_property(node, "position", node.position)
- undoredo.commit_action()
+ undo_redo.create_action("Move the node")
+ undo_redo.add_do_method(self, "do_something")
+ undo_redo.add_undo_method(self, "undo_something")
+ undo_redo.add_do_property(node, "position", Vector2(100,100))
+ undo_redo.add_undo_property(node, "position", node.position)
+ undo_redo.commit_action()
[/codeblock]
[method create_action], [method add_do_method], [method add_undo_method], [method add_do_property], [method add_undo_property], and [method commit_action] should be called one after the other, like in the example. Not doing so could lead to crashes.
If you don't need to register a method you can leave [method add_do_method] and [method add_undo_method] out, and so it goes for properties. You can register more than one method/property.
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
<method name="add_do_method" qualifiers="vararg">
<return type="Variant">
@@ -125,6 +123,7 @@
</argument>
<description>
Create a new action. After this is called, do all your calls to [method add_do_method], [method add_undo_method], [method add_do_property], and [method add_undo_property], then commit the action with [method commit_action].
+ The way actions are merged is dictated by the [code]merge_mode[/code] argument. See [enum MergeMode] for details.
</description>
</method>
<method name="get_current_action_name" qualifiers="const">
@@ -142,6 +141,12 @@
This is useful mostly to check if something changed from a saved version.
</description>
</method>
+ <method name="is_commiting_action" qualifiers="const">
+ <return type="bool">
+ </return>
+ <description>
+ </description>
+ </method>
<method name="redo">
<return type="bool">
</return>
@@ -159,10 +164,13 @@
</methods>
<constants>
<constant name="MERGE_DISABLE" value="0" enum="MergeMode">
+ Makes [code]do[/code]/[code]undo[/code] operations stay in separate actions.
</constant>
<constant name="MERGE_ENDS" value="1" enum="MergeMode">
+ Makes so that the action's [code]do[/code] operation is from the first action created and the [code]undo[/code] operation is from the last subsequent action with the same name.
</constant>
<constant name="MERGE_ALL" value="2" enum="MergeMode">
+ Makes subsequent actions with the same name be merged into one.
</constant>
</constants>
</class>
diff --git a/doc/classes/VBoxContainer.xml b/doc/classes/VBoxContainer.xml
index 43a7be74c3..1b4a6a6b62 100644
--- a/doc/classes/VBoxContainer.xml
+++ b/doc/classes/VBoxContainer.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="VBoxContainer" inherits="BoxContainer" category="Core" version="3.1">
+<class name="VBoxContainer" inherits="BoxContainer" category="Core" version="3.2">
<brief_description>
Vertical box container.
</brief_description>
@@ -8,8 +8,6 @@
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
</methods>
<constants>
diff --git a/doc/classes/VScrollBar.xml b/doc/classes/VScrollBar.xml
index 5486140870..0f46654bc2 100644
--- a/doc/classes/VScrollBar.xml
+++ b/doc/classes/VScrollBar.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="VScrollBar" inherits="ScrollBar" category="Core" version="3.1">
+<class name="VScrollBar" inherits="ScrollBar" category="Core" version="3.2">
<brief_description>
Vertical version of [ScrollBar], which goes from left (min) to right (max).
</brief_description>
@@ -7,8 +7,6 @@
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
</methods>
<constants>
diff --git a/doc/classes/VSeparator.xml b/doc/classes/VSeparator.xml
index 4890b2d930..ab33c24bb6 100644
--- a/doc/classes/VSeparator.xml
+++ b/doc/classes/VSeparator.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="VSeparator" inherits="Separator" category="Core" version="3.1">
+<class name="VSeparator" inherits="Separator" category="Core" version="3.2">
<brief_description>
Vertical version of [Separator].
</brief_description>
@@ -8,8 +8,6 @@
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
</methods>
<constants>
diff --git a/doc/classes/VSlider.xml b/doc/classes/VSlider.xml
index 1dc1b795f7..550bd16074 100644
--- a/doc/classes/VSlider.xml
+++ b/doc/classes/VSlider.xml
@@ -1,15 +1,13 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="VSlider" inherits="Slider" category="Core" version="3.1">
+<class name="VSlider" inherits="Slider" category="Core" version="3.2">
<brief_description>
Vertical slider.
</brief_description>
<description>
- Vertical slider. See [Slider]. This one goes from left (min) to right (max).
+ Vertical slider. See [Slider]. This one goes from bottom (min) to top (max).
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
</methods>
<constants>
diff --git a/doc/classes/VSplitContainer.xml b/doc/classes/VSplitContainer.xml
index 2203035db3..594b662fea 100644
--- a/doc/classes/VSplitContainer.xml
+++ b/doc/classes/VSplitContainer.xml
@@ -1,15 +1,13 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="VSplitContainer" inherits="SplitContainer" category="Core" version="3.1">
+<class name="VSplitContainer" inherits="SplitContainer" category="Core" version="3.2">
<brief_description>
Vertical split container.
</brief_description>
<description>
- Vertical split container. See [SplitContainer]. This goes from left to right.
+ Vertical split container. See [SplitContainer]. This goes from top to bottom.
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
</methods>
<constants>
diff --git a/doc/classes/Variant.xml b/doc/classes/Variant.xml
index b2d21921a1..ee598c39f8 100644
--- a/doc/classes/Variant.xml
+++ b/doc/classes/Variant.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="Variant" category="Core" version="3.1">
+<class name="Variant" category="Core" version="3.2">
<brief_description>
The most important data type in Godot.
</brief_description>
@@ -8,8 +8,6 @@
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
</methods>
<constants>
diff --git a/doc/classes/Vector2.xml b/doc/classes/Vector2.xml
index 006a843c32..243dbceced 100644
--- a/doc/classes/Vector2.xml
+++ b/doc/classes/Vector2.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="Vector2" category="Built-In Types" version="3.1">
+<class name="Vector2" category="Built-In Types" version="3.2">
<brief_description>
Vector used for 2D math.
</brief_description>
@@ -9,8 +9,6 @@
<tutorials>
<link>https://docs.godotengine.org/en/latest/tutorials/math/index.html</link>
</tutorials>
- <demos>
- </demos>
<methods>
<method name="Vector2">
<return type="Vector2">
@@ -112,6 +110,15 @@
Cubicly interpolates between this vector and [code]b[/code] using [code]pre_a[/code] and [code]post_b[/code] as handles, and returns the result at position [code]t[/code]. [code]t[/code] is in the range of [code]0.0 - 1.0[/code], representing the amount of interpolation.
</description>
</method>
+ <method name="direction_to">
+ <return type="Vector2">
+ </return>
+ <argument index="0" name="b" type="Vector2">
+ </argument>
+ <description>
+ Returns the normalized vector pointing from this vector to [code]b[/code].
+ </description>
+ </method>
<method name="distance_squared_to">
<return type="float">
</return>
@@ -164,7 +171,7 @@
<return type="float">
</return>
<description>
- Returns the vector's length squared. Prefer this function over [member length] if you need to sort vectors or need the squared length for some formula.
+ Returns the vector's length squared. Prefer this method over [method length] if you need to sort vectors or need the squared length for some formula.
</description>
</method>
<method name="linear_interpolate">
@@ -178,6 +185,17 @@
Returns the result of the linear interpolation between this vector and [code]b[/code] by amount [code]t[/code]. [code]t[/code] is in the range of [code]0.0 - 1.0[/code], representing the amount of interpolation.
</description>
</method>
+ <method name="move_toward">
+ <return type="Vector2">
+ </return>
+ <argument index="0" name="to" type="Vector2">
+ </argument>
+ <argument index="1" name="delta" type="float">
+ </argument>
+ <description>
+ Moves the vector toward [code]to[/code] by the fixed [code]delta[/code] amount.
+ </description>
+ </method>
<method name="normalized">
<return type="Vector2">
</return>
@@ -209,7 +227,7 @@
<argument index="0" name="phi" type="float">
</argument>
<description>
- Returns the vector rotated by [code]phi[/code] radians.
+ Returns the vector rotated by [code]phi[/code] radians. See also [method @GDScript.deg2rad].
</description>
</method>
<method name="round">
diff --git a/doc/classes/Vector3.xml b/doc/classes/Vector3.xml
index 48856875e7..99bf3d2610 100644
--- a/doc/classes/Vector3.xml
+++ b/doc/classes/Vector3.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="Vector3" category="Built-In Types" version="3.1">
+<class name="Vector3" category="Built-In Types" version="3.2">
<brief_description>
Vector class, which performs basic 3D vector math operations.
</brief_description>
@@ -9,8 +9,6 @@
<tutorials>
<link>https://docs.godotengine.org/en/latest/tutorials/math/index.html</link>
</tutorials>
- <demos>
- </demos>
<methods>
<method name="Vector3">
<return type="Vector3">
@@ -81,6 +79,15 @@
Performs a cubic interpolation between vectors [code]pre_a[/code], [code]a[/code], [code]b[/code], [code]post_b[/code] ([code]a[/code] is current), by the given amount [code]t[/code]. [code]t[/code] is in the range of [code]0.0 - 1.0[/code], representing the amount of interpolation.
</description>
</method>
+ <method name="direction_to">
+ <return type="Vector3">
+ </return>
+ <argument index="0" name="b" type="Vector3">
+ </argument>
+ <description>
+ Returns the normalized vector pointing from this vector to [code]b[/code].
+ </description>
+ </method>
<method name="distance_squared_to">
<return type="float">
</return>
@@ -168,6 +175,17 @@
Returns the axis of the vector's smallest value. See [code]AXIS_*[/code] constants.
</description>
</method>
+ <method name="move_toward">
+ <return type="Vector3">
+ </return>
+ <argument index="0" name="to" type="Vector3">
+ </argument>
+ <argument index="1" name="delta" type="float">
+ </argument>
+ <description>
+ Moves the vector toward [code]to[/code] by the fixed [code]delta[/code] amount.
+ </description>
+ </method>
<method name="normalized">
<return type="Vector3">
</return>
diff --git a/doc/classes/VehicleBody.xml b/doc/classes/VehicleBody.xml
index 3ce0cadde9..ab821aafdc 100644
--- a/doc/classes/VehicleBody.xml
+++ b/doc/classes/VehicleBody.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="VehicleBody" inherits="RigidBody" category="Core" version="3.1">
+<class name="VehicleBody" inherits="RigidBody" category="Core" version="3.2">
<brief_description>
Physics body that simulates the behaviour of a car.
</brief_description>
@@ -9,8 +9,6 @@
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
</methods>
<members>
@@ -18,11 +16,11 @@
Slows down the vehicle by applying a braking force. The vehicle is only slowed down if the wheels are in contact with a surface. The force you need to apply to adequately slow down your vehicle depends on the [member RigidBody.mass] of the vehicle. For a vehicle with a mass set to 1000, try a value in the 25 - 30 range for hard braking.
</member>
<member name="engine_force" type="float" setter="set_engine_force" getter="get_engine_force">
- Accelerates the vehicle by applying an engine force. The vehicle is only speed up if the wheels that have [member VehicleWheel.set_use_as_traction] set to true and are in contact with a surface. The [member RigidBody.mass] of the vehicle has an effect on the acceleration of the vehicle. For a vehicle with a mass set to 1000, try a value in the 25 - 50 range for acceleration. Note that the simulation does not take the effect of gears into account, you will need to add logic for this if you wish to simulate gears.
+ Accelerates the vehicle by applying an engine force. The vehicle is only speed up if the wheels that have [member VehicleWheel.use_as_traction] set to [code]true[/code] and are in contact with a surface. The [member RigidBody.mass] of the vehicle has an effect on the acceleration of the vehicle. For a vehicle with a mass set to 1000, try a value in the 25 - 50 range for acceleration. Note that the simulation does not take the effect of gears into account, you will need to add logic for this if you wish to simulate gears.
A negative value will result in the vehicle reversing.
</member>
<member name="steering" type="float" setter="set_steering" getter="get_steering">
- The steering angle for the vehicle. Setting this to a non-zero value will result in the vehicle turning when it's moving. Wheels that have [member VehicleWheel.set_use_as_steering] set to true will automatically be rotated.
+ The steering angle for the vehicle. Setting this to a non-zero value will result in the vehicle turning when it's moving. Wheels that have [member VehicleWheel.use_as_steering] set to [code]true[/code] will automatically be rotated.
</member>
</members>
<constants>
diff --git a/doc/classes/VehicleWheel.xml b/doc/classes/VehicleWheel.xml
index f2c6f5f287..0bc0e351e4 100644
--- a/doc/classes/VehicleWheel.xml
+++ b/doc/classes/VehicleWheel.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="VehicleWheel" inherits="Spatial" category="Core" version="3.1">
+<class name="VehicleWheel" inherits="Spatial" category="Core" version="3.2">
<brief_description>
Physics object that simulates the behaviour of a wheel.
</brief_description>
@@ -8,21 +8,25 @@
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
+ <method name="get_rpm" qualifiers="const">
+ <return type="float">
+ </return>
+ <description>
+ </description>
+ </method>
<method name="get_skidinfo" qualifiers="const">
<return type="float">
</return>
<description>
- Returns a value between 0.0 and 1.0 that indicates whether this wheel is skidding. 0.0 is not skidding, 1.0 means the wheel has lost grip.
+ Returns a value between 0.0 and 1.0 that indicates whether this wheel is skidding. 0.0 is skidding (the wheel has lost grip, e.g. icy terrain), 1.0 means not skidding (the wheel has full grip, e.g. dry asphalt road).
</description>
</method>
<method name="is_in_contact" qualifiers="const">
<return type="bool">
</return>
<description>
- Returns true if this wheel is in contact with a surface.
+ Returns [code]true[/code] if this wheel is in contact with a surface.
</description>
</method>
</methods>
@@ -43,10 +47,10 @@
This is the distance the suspension can travel. As Godot measures are in meters keep this setting relatively low. Try a value between 0.1 and 0.3 depending on the type of car .
</member>
<member name="use_as_steering" type="bool" setter="set_use_as_steering" getter="is_used_as_steering">
- If true this wheel will be turned when the car steers.
+ If [code]true[/code] this wheel will be turned when the car steers.
</member>
<member name="use_as_traction" type="bool" setter="set_use_as_traction" getter="is_used_as_traction">
- If true this wheel transfers engine force to the ground to propel the vehicle forward.
+ If [code]true[/code] this wheel transfers engine force to the ground to propel the vehicle forward.
</member>
<member name="wheel_friction_slip" type="float" setter="set_friction_slip" getter="get_friction_slip">
This determines how much grip this wheel has. It is combined with the friction setting of the surface the wheel is in contact with. 0.0 means no grip, 1.0 is normal grip. For a drift car setup, try setting the grip of the rear wheels slightly lower than the front wheels, or use a lower value to simulate tire wear.
diff --git a/doc/classes/VideoPlayer.xml b/doc/classes/VideoPlayer.xml
index 9ffa3aa52b..15d1dfcf19 100644
--- a/doc/classes/VideoPlayer.xml
+++ b/doc/classes/VideoPlayer.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="VideoPlayer" inherits="Control" category="Core" version="3.1">
+<class name="VideoPlayer" inherits="Control" category="Core" version="3.2">
<brief_description>
Control for playing video streams.
</brief_description>
@@ -8,8 +8,6 @@
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
<method name="get_stream_name" qualifiers="const">
<return type="String">
@@ -52,7 +50,7 @@
The embedded audio track to play.
</member>
<member name="autoplay" type="bool" setter="set_autoplay" getter="has_autoplay">
- If [code]true[/code] playback starts when the scene loads. Default value: [code]false[/code].
+ If [code]true[/code], playback starts when the scene loads. Default value: [code]false[/code].
</member>
<member name="buffering_msec" type="int" setter="set_buffering_msec" getter="get_buffering_msec">
Amount of time in milliseconds to store in buffer while playing.
@@ -61,10 +59,10 @@
Audio bus to use for sound playback.
</member>
<member name="expand" type="bool" setter="set_expand" getter="has_expand">
- If [code]true[/code] the video scales to the control size. Default value: [code]true[/code].
+ If [code]true[/code], the video scales to the control size. Default value: [code]true[/code].
</member>
<member name="paused" type="bool" setter="set_paused" getter="is_paused">
- If [code]true[/code] the video is paused.
+ If [code]true[/code], the video is paused.
</member>
<member name="stream" type="VideoStream" setter="set_stream" getter="get_stream">
</member>
diff --git a/doc/classes/VideoStream.xml b/doc/classes/VideoStream.xml
index 9f2655ed1b..7772c61e85 100644
--- a/doc/classes/VideoStream.xml
+++ b/doc/classes/VideoStream.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="VideoStream" inherits="Resource" category="Core" version="3.1">
+<class name="VideoStream" inherits="Resource" category="Core" version="3.2">
<brief_description>
Base resource for video streams.
</brief_description>
@@ -7,8 +7,6 @@
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
</methods>
<constants>
diff --git a/doc/classes/Viewport.xml b/doc/classes/Viewport.xml
index 4706651c6e..53e66cee74 100644
--- a/doc/classes/Viewport.xml
+++ b/doc/classes/Viewport.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="Viewport" inherits="Node" category="Core" version="3.1">
+<class name="Viewport" inherits="Node" category="Core" version="3.2">
<brief_description>
Creates a sub-view into the screen.
</brief_description>
@@ -15,8 +15,6 @@
<link>https://docs.godotengine.org/en/latest/tutorials/2d/2d_transforms.html</link>
<link>https://docs.godotengine.org/en/latest/tutorials/viewports/index.html</link>
</tutorials>
- <demos>
- </demos>
<methods>
<method name="find_world" qualifiers="const">
<return type="World">
@@ -80,7 +78,11 @@
<return type="ViewportTexture">
</return>
<description>
- Returns the viewport's texture.
+ Returns the viewport's texture. Note that due to the way OpenGL works, the resulting [ViewportTexture] is flipped vertically. You can use [method Image.flip_y] on the result of [method Texture.get_data] to flip it back, for example:
+ [codeblock]
+ var img = get_viewport().get_texture().get_data()
+ img.flip_y()
+ [/codeblock]
</description>
</method>
<method name="get_viewport_rid" qualifiers="const">
@@ -178,7 +180,7 @@
<argument index="0" name="enabled" type="bool">
</argument>
<description>
- If [code]true[/code] the size override affects stretch as well.
+ If [code]true[/code], the size override affects stretch as well.
</description>
</method>
<method name="unhandled_input">
@@ -208,13 +210,13 @@
</methods>
<members>
<member name="arvr" type="bool" setter="set_use_arvr" getter="use_arvr">
- If [code]true[/code] the viewport will be used in AR/VR process. Default value: [code]false[/code].
+ If [code]true[/code], the viewport will be used in AR/VR process. Default value: [code]false[/code].
</member>
<member name="audio_listener_enable_2d" type="bool" setter="set_as_audio_listener_2d" getter="is_audio_listener_2d">
- If [code]true[/code] the viewport will process 2D audio streams. Default value: [code]false[/code].
+ If [code]true[/code], the viewport will process 2D audio streams. Default value: [code]false[/code].
</member>
<member name="audio_listener_enable_3d" type="bool" setter="set_as_audio_listener" getter="is_audio_listener">
- If [code]true[/code] the viewport will process 3D audio streams. Default value: [code]false[/code].
+ If [code]true[/code], the viewport will process 3D audio streams. Default value: [code]false[/code].
</member>
<member name="canvas_transform" type="Transform2D" setter="set_canvas_transform" getter="get_canvas_transform">
The canvas transform of the viewport, useful for changing the on-screen positions of all child [CanvasItem]s. This is relative to the global canvas transform of the viewport.
@@ -223,33 +225,36 @@
The overlay mode for test rendered geometry in debug purposes. Default value: [code]DEBUG_DRAW_DISABLED[/code].
</member>
<member name="disable_3d" type="bool" setter="set_disable_3d" getter="is_3d_disabled">
- If [code]true[/code] the viewport will disable 3D rendering. For actual disabling use [code]usage[/code]. Default value: [code]false[/code].
+ If [code]true[/code], the viewport will disable 3D rendering. For actual disabling use [code]usage[/code]. Default value: [code]false[/code].
</member>
<member name="global_canvas_transform" type="Transform2D" setter="set_global_canvas_transform" getter="get_global_canvas_transform">
The global canvas transform of the viewport. The canvas transform is relative to this.
</member>
<member name="gui_disable_input" type="bool" setter="set_disable_input" getter="is_input_disabled">
- If [code]true[/code] the viewport will not receive input event. Default value: [code]false[/code].
+ If [code]true[/code], the viewport will not receive input event. Default value: [code]false[/code].
</member>
<member name="gui_snap_controls_to_pixels" type="bool" setter="set_snap_controls_to_pixels" getter="is_snap_controls_to_pixels_enabled">
- If [code]true[/code] the GUI controls on the viewport will lay pixel perfectly. Default value: [code]true[/code].
+ If [code]true[/code], the GUI controls on the viewport will lay pixel perfectly. Default value: [code]true[/code].
</member>
<member name="handle_input_locally" type="bool" setter="set_handle_input_locally" getter="is_handling_input_locally">
</member>
<member name="hdr" type="bool" setter="set_hdr" getter="get_hdr">
- If [code]true[/code] the viewport rendering will receive benefits from High Dynamic Range algorithm. Default value: [code]true[/code].
+ If [code]true[/code], the viewport rendering will receive benefits from High Dynamic Range algorithm. Default value: [code]true[/code].
</member>
<member name="keep_3d_linear" type="bool" setter="set_keep_3d_linear" getter="get_keep_3d_linear">
- If [code]true[/code] the result after 3D rendering will not have a linear to sRGB color conversion applied. This is important when the viewport is used as a render target where the result is used as a texture on a 3D object rendered in another viewport. It is also important if the viewport is used to create data that is not color based (noise, heightmaps, pickmaps, etc.). Do not enable this when the viewport is used as a texture on a 2D object or if the viewport is your final output.
+ If [code]true[/code], the result after 3D rendering will not have a linear to sRGB color conversion applied. This is important when the viewport is used as a render target where the result is used as a texture on a 3D object rendered in another viewport. It is also important if the viewport is used to create data that is not color based (noise, heightmaps, pickmaps, etc.). Do not enable this when the viewport is used as a texture on a 2D object or if the viewport is your final output.
</member>
<member name="msaa" type="int" setter="set_msaa" getter="get_msaa" enum="Viewport.MSAA">
The multisample anti-aliasing mode. Default value: [code]MSAA_DISABLED[/code].
</member>
<member name="own_world" type="bool" setter="set_use_own_world" getter="is_using_own_world">
- If [code]true[/code] the viewport will use [World] defined in [code]world[/code] property. Default value: [code]false[/code].
+ If [code]true[/code], the viewport will use [World] defined in [code]world[/code] property. Default value: [code]false[/code].
</member>
<member name="physics_object_picking" type="bool" setter="set_physics_object_picking" getter="get_physics_object_picking">
- If [code]true[/code] the objects rendered by viewport become subjects of mouse picking process. Default value: [code]false[/code].
+ If [code]true[/code], the objects rendered by viewport become subjects of mouse picking process. Default value: [code]false[/code].
+ </member>
+ <member name="render_direct_to_screen" type="bool" setter="set_use_render_direct_to_screen" getter="is_using_render_direct_to_screen">
+ If [code]true[/code], renders the Viewport directly to the screen instead of to the root viewport. Only available in GLES2. This is a low-level optimization and should not be used in most cases. If used, reading from the Viewport or from [code]SCREEN_TEXTURE[/code] becomes unavailable. For more information see [method VisualServer.viewport_set_render_direct_to_screen]. Default value: [code]false[/code].
</member>
<member name="render_target_clear_mode" type="int" setter="set_clear_mode" getter="get_clear_mode" enum="Viewport.ClearMode">
The clear mode when viewport used as a render target. Default value: [code]CLEAR_MODE_ALWAYS[/code].
@@ -258,7 +263,7 @@
The update mode when viewport used as a render target. Default value: [code]UPDATE_WHEN_VISIBLE[/code].
</member>
<member name="render_target_v_flip" type="bool" setter="set_vflip" getter="get_vflip">
- If [code]true[/code] the result of rendering will be flipped vertically. Default value: [code]false[/code].
+ If [code]true[/code], the result of rendering will be flipped vertically. Default value: [code]false[/code].
</member>
<member name="shadow_atlas_quad_0" type="int" setter="set_shadow_atlas_quadrant_subdiv" getter="get_shadow_atlas_quadrant_subdiv" enum="Viewport.ShadowAtlasQuadrantSubdiv">
The subdivision amount of first quadrant on shadow atlas. Default value: [code]SHADOW_ATLAS_QUADRANT_SUBDIV_4[/code].
@@ -279,7 +284,7 @@
The width and height of viewport.
</member>
<member name="transparent_bg" type="bool" setter="set_transparent_background" getter="has_transparent_background">
- If [code]true[/code] the viewport should render its background as transparent. Default value: [code]false[/code].
+ If [code]true[/code], the viewport should render its background as transparent. Default value: [code]false[/code].
</member>
<member name="usage" type="int" setter="set_usage" getter="get_usage" enum="Viewport.Usage">
The rendering mode of viewport. Default value: [code]USAGE_3D[/code].
diff --git a/doc/classes/ViewportContainer.xml b/doc/classes/ViewportContainer.xml
index dde429440d..1642f7e85f 100644
--- a/doc/classes/ViewportContainer.xml
+++ b/doc/classes/ViewportContainer.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="ViewportContainer" inherits="Container" category="Core" version="3.1">
+<class name="ViewportContainer" inherits="Container" category="Core" version="3.2">
<brief_description>
Control for holding [Viewport]s.
</brief_description>
@@ -8,13 +8,11 @@
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
</methods>
<members>
<member name="stretch" type="bool" setter="set_stretch" getter="is_stretch_enabled">
- If [code]true[/code] the viewport will be scaled to the control's size. Default value:[code]false[/code].
+ If [code]true[/code], the viewport will be scaled to the control's size. Default value:[code]false[/code].
</member>
<member name="stretch_shrink" type="int" setter="set_stretch_shrink" getter="get_stretch_shrink">
</member>
diff --git a/doc/classes/ViewportTexture.xml b/doc/classes/ViewportTexture.xml
index 67f1e09c75..ab3c2696aa 100644
--- a/doc/classes/ViewportTexture.xml
+++ b/doc/classes/ViewportTexture.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="ViewportTexture" inherits="Texture" category="Core" version="3.1">
+<class name="ViewportTexture" inherits="Texture" category="Core" version="3.2">
<brief_description>
Texture which displays the content of a [Viewport].
</brief_description>
@@ -9,8 +9,6 @@
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
</methods>
<members>
diff --git a/doc/classes/VisibilityEnabler.xml b/doc/classes/VisibilityEnabler.xml
index 5f0a4ef0f4..910ca033d1 100644
--- a/doc/classes/VisibilityEnabler.xml
+++ b/doc/classes/VisibilityEnabler.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="VisibilityEnabler" inherits="VisibilityNotifier" category="Core" version="3.1">
+<class name="VisibilityEnabler" inherits="VisibilityNotifier" category="Core" version="3.2">
<brief_description>
Enable certain nodes only when visible.
</brief_description>
@@ -8,16 +8,14 @@
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
</methods>
<members>
<member name="freeze_bodies" type="bool" setter="set_enabler" getter="is_enabler_enabled">
- If [code]true[/code] [RigidBody] nodes will be paused.
+ If [code]true[/code], [RigidBody] nodes will be paused.
</member>
<member name="pause_animations" type="bool" setter="set_enabler" getter="is_enabler_enabled">
- If [code]true[/code] [AnimationPlayer] nodes will be paused.
+ If [code]true[/code], [AnimationPlayer] nodes will be paused.
</member>
</members>
<constants>
diff --git a/doc/classes/VisibilityEnabler2D.xml b/doc/classes/VisibilityEnabler2D.xml
index eab9bd1991..3943eca7f5 100644
--- a/doc/classes/VisibilityEnabler2D.xml
+++ b/doc/classes/VisibilityEnabler2D.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="VisibilityEnabler2D" inherits="VisibilityNotifier2D" category="Core" version="3.1">
+<class name="VisibilityEnabler2D" inherits="VisibilityNotifier2D" category="Core" version="3.2">
<brief_description>
Enable certain nodes only when visible.
</brief_description>
@@ -8,28 +8,26 @@
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
</methods>
<members>
<member name="freeze_bodies" type="bool" setter="set_enabler" getter="is_enabler_enabled">
- If [code]true[/code] [RigidBody2D] nodes will be paused.
+ If [code]true[/code], [RigidBody2D] nodes will be paused.
</member>
<member name="pause_animated_sprites" type="bool" setter="set_enabler" getter="is_enabler_enabled">
- If [code]true[/code] [AnimatedSprite] nodes will be paused.
+ If [code]true[/code], [AnimatedSprite] nodes will be paused.
</member>
<member name="pause_animations" type="bool" setter="set_enabler" getter="is_enabler_enabled">
- If [code]true[/code] [AnimationPlayer] nodes will be paused.
+ If [code]true[/code], [AnimationPlayer] nodes will be paused.
</member>
<member name="pause_particles" type="bool" setter="set_enabler" getter="is_enabler_enabled">
- If [code]true[/code] [Particles2D] nodes will be paused.
+ If [code]true[/code], [Particles2D] nodes will be paused.
</member>
<member name="physics_process_parent" type="bool" setter="set_enabler" getter="is_enabler_enabled">
- If [code]true[/code] the parent's [method Node._physics_process] will be stopped.
+ If [code]true[/code], the parent's [method Node._physics_process] will be stopped.
</member>
<member name="process_parent" type="bool" setter="set_enabler" getter="is_enabler_enabled">
- If [code]true[/code] the parent's [method Node._process] will be stopped.
+ If [code]true[/code], the parent's [method Node._process] will be stopped.
</member>
</members>
<constants>
diff --git a/doc/classes/VisibilityNotifier.xml b/doc/classes/VisibilityNotifier.xml
index 95da708420..986d6b8b13 100644
--- a/doc/classes/VisibilityNotifier.xml
+++ b/doc/classes/VisibilityNotifier.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="VisibilityNotifier" inherits="Spatial" category="Core" version="3.1">
+<class name="VisibilityNotifier" inherits="Spatial" category="Core" version="3.2">
<brief_description>
Detects when the node is visible on screen.
</brief_description>
@@ -8,14 +8,13 @@
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
<method name="is_on_screen" qualifiers="const">
<return type="bool">
</return>
<description>
- If [code]true[/code] the bounding box is on the screen.
+ If [code]true[/code], the bounding box is on the screen.
+ Note: It takes one frame for the node's visibility to be assessed once added to the scene tree, so this method will return [code]false[/code] right after it is instantiated, even if it will be on screen in the draw pass.
</description>
</method>
</methods>
diff --git a/doc/classes/VisibilityNotifier2D.xml b/doc/classes/VisibilityNotifier2D.xml
index aaaa9b63bb..787a33d752 100644
--- a/doc/classes/VisibilityNotifier2D.xml
+++ b/doc/classes/VisibilityNotifier2D.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="VisibilityNotifier2D" inherits="Node2D" category="Core" version="3.1">
+<class name="VisibilityNotifier2D" inherits="Node2D" category="Core" version="3.2">
<brief_description>
Detects when the node is visible on screen.
</brief_description>
@@ -8,14 +8,13 @@
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
<method name="is_on_screen" qualifiers="const">
<return type="bool">
</return>
<description>
- If [code]true[/code] the bounding rectangle is on the screen.
+ If [code]true[/code], the bounding rectangle is on the screen.
+ Note: It takes one frame for the node's visibility to be assessed once added to the scene tree, so this method will return [code]false[/code] right after it is instantiated, even if it will be on screen in the draw pass.
</description>
</method>
</methods>
diff --git a/doc/classes/VisualInstance.xml b/doc/classes/VisualInstance.xml
index 30dedb06f4..59f0a531dd 100644
--- a/doc/classes/VisualInstance.xml
+++ b/doc/classes/VisualInstance.xml
@@ -1,13 +1,11 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="VisualInstance" inherits="Spatial" category="Core" version="3.1">
+<class name="VisualInstance" inherits="Spatial" category="Core" version="3.2">
<brief_description>
</brief_description>
<description>
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
<method name="get_aabb" qualifiers="const">
<return type="AABB">
@@ -16,6 +14,18 @@
Returns the [AABB] (also known as the bounding box) for this VisualInstance.
</description>
</method>
+ <method name="get_base" qualifiers="const">
+ <return type="RID">
+ </return>
+ <description>
+ </description>
+ </method>
+ <method name="get_instance" qualifiers="const">
+ <return type="RID">
+ </return>
+ <description>
+ </description>
+ </method>
<method name="get_layer_mask_bit" qualifiers="const">
<return type="bool">
</return>
diff --git a/doc/classes/VisualServer.xml b/doc/classes/VisualServer.xml
index b24eeaa112..f9b668b38a 100644
--- a/doc/classes/VisualServer.xml
+++ b/doc/classes/VisualServer.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="VisualServer" inherits="Object" category="Core" version="3.1">
+<class name="VisualServer" inherits="Object" category="Core" version="3.2">
<brief_description>
Server for anything visible.
</brief_description>
@@ -9,8 +9,6 @@
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
<method name="black_bars_set_images">
<return type="void">
@@ -68,6 +66,22 @@
<description>
</description>
</method>
+ <method name="camera_set_frustum">
+ <return type="void">
+ </return>
+ <argument index="0" name="camera" type="RID">
+ </argument>
+ <argument index="1" name="size" type="float">
+ </argument>
+ <argument index="2" name="offset" type="Vector2">
+ </argument>
+ <argument index="3" name="z_near" type="float">
+ </argument>
+ <argument index="4" name="z_far" type="float">
+ </argument>
+ <description>
+ </description>
+ </method>
<method name="camera_set_orthogonal">
<return type="void">
</return>
@@ -175,12 +189,15 @@
</argument>
<argument index="1" name="mesh" type="RID">
</argument>
- <argument index="2" name="texture" type="RID">
+ <argument index="2" name="texture" type="Transform2D">
</argument>
- <argument index="3" name="normal_map" type="RID">
+ <argument index="3" name="normal_map" type="Color">
+ </argument>
+ <argument index="4" name="arg4" type="RID">
+ </argument>
+ <argument index="5" name="arg5" type="RID">
</argument>
<description>
- Adds a [Mesh] to the [CanvasItem]'s draw commands. Only affects its aabb at the moment.
</description>
</method>
<method name="canvas_item_add_multimesh">
@@ -1161,7 +1178,9 @@
</argument>
<argument index="8" name="hdr_bleed_scale" type="float">
</argument>
- <argument index="9" name="bicubic_upscale" type="bool">
+ <argument index="9" name="hdr_luminance_cap" type="float">
+ </argument>
+ <argument index="10" name="bicubic_upscale" type="bool">
</argument>
<description>
</description>
@@ -1186,6 +1205,16 @@
<description>
</description>
</method>
+ <method name="environment_set_sky_orientation">
+ <return type="void">
+ </return>
+ <argument index="0" name="env" type="RID">
+ </argument>
+ <argument index="1" name="orientation" type="Basis">
+ </argument>
+ <description>
+ </description>
+ </method>
<method name="environment_set_ssao">
<return type="void">
</return>
@@ -2056,6 +2085,17 @@
<description>
</description>
</method>
+ <method name="light_set_use_gi">
+ <return type="void">
+ </return>
+ <argument index="0" name="light" type="RID">
+ </argument>
+ <argument index="1" name="enabled" type="bool">
+ </argument>
+ <description>
+ Sets whether GI probes capture light information from this light.
+ </description>
+ </method>
<method name="lightmap_capture_create">
<return type="RID">
</return>
@@ -3101,7 +3141,7 @@
</return>
<argument index="0" name="scenario" type="RID">
</argument>
- <argument index="1" name="p_size" type="int">
+ <argument index="1" name="size" type="int">
</argument>
<argument index="2" name="subdiv" type="int">
</argument>
@@ -3117,8 +3157,10 @@
</argument>
<argument index="2" name="scale" type="bool">
</argument>
+ <argument index="3" name="use_filter" type="bool" default="true">
+ </argument>
<description>
- Sets a boot image. The color defines the background color and if scale is [code]true[/code] the image will be scaled to fit the screen size.
+ Sets a boot image. The color defines the background color. If [code]scale[/code] is [code]true[/code], the image will be scaled to fit the screen size. If [code]use_filter[/code] is [code]true[/code], the image will be scaled with linear interpolation. If [code]use_filter[/code] is [code]false[/code], the image will be scaled with nearest-neighbor interpolation.
</description>
</method>
<method name="set_debug_generate_wireframes">
@@ -3319,6 +3361,17 @@
<description>
</description>
</method>
+ <method name="texture_bind">
+ <return type="void">
+ </return>
+ <argument index="0" name="texture" type="RID">
+ </argument>
+ <argument index="1" name="number" type="int">
+ </argument>
+ <description>
+ Binds the texture to a texture slot.
+ </description>
+ </method>
<method name="texture_create">
<return type="RID">
</return>
@@ -3492,7 +3545,7 @@
<argument index="0" name="shrink" type="bool">
</argument>
<description>
- If [code]true[/code] sets internal processes to shrink all image data to half the size.
+ If [code]true[/code], sets internal processes to shrink all image data to half the size.
</description>
</method>
<method name="texture_set_size_override">
@@ -3515,7 +3568,7 @@
<argument index="0" name="enable" type="bool">
</argument>
<description>
- If [code]true[/code] the image will be stored in the texture's images array if overwritten.
+ If [code]true[/code], the image will be stored in the texture's images array if overwritten.
</description>
</method>
<method name="viewport_attach_camera">
@@ -3550,7 +3603,14 @@
<argument index="2" name="screen" type="int" default="0">
</argument>
<description>
- Attaches a viewport to a screen.
+ Copies viewport to a region of the screen specified by [code]rect[/code]. If Viewport.[member Viewport.render_direct_to_screen] is [code]true[/code], then viewport does not use a framebuffer and the contents of the viewport are rendered directly to screen. However, note that the root viewport is drawn last, therefore it will draw over the screen. Accordingly, you must set the root viewport to an area that does not cover the area that you have attached this viewport to.
+ For example, you can set the root viewport to not render at all with the following code:
+ [codeblock]
+ func _ready():
+ get_viewport().set_attach_to_screen_rect(Rect2())
+ $Viewport.set_attach_to_screen_rect(Rect2(0, 0, 600, 600))
+ [/codeblock]
+ Using this can result in significant optimization, especially on lower-end devices. However, it comes at the cost of having to manage your viewports manually. For a further optimization see, [method viewport_set_render_direct_to_screen].
</description>
</method>
<method name="viewport_create">
@@ -3608,7 +3668,7 @@
<argument index="1" name="active" type="bool">
</argument>
<description>
- If [code]true[/code] sets the viewport active, else sets it inactive.
+ If [code]true[/code], sets the viewport active, else sets it inactive.
</description>
</method>
<method name="viewport_set_canvas_stacking">
@@ -3648,7 +3708,7 @@
<argument index="1" name="clear_mode" type="int" enum="VisualServer.ViewportClearMode">
</argument>
<description>
- Sets the clear mode of a viewport. See VIEWPORT_CLEAR_MODE_* constants for options.
+ Sets the clear mode of a viewport. See [enum VisualServer.ViewportClearMode] for options.
</description>
</method>
<method name="viewport_set_debug_draw">
@@ -3659,7 +3719,7 @@
<argument index="1" name="draw" type="int" enum="VisualServer.ViewportDebugDraw">
</argument>
<description>
- Sets the debug draw mode of a viewport. See VIEWPORT_DEBUG_DRAW_* constants for options.
+ Sets the debug draw mode of a viewport. See [enum VisualServer.ViewportDebugDraw] for options.
</description>
</method>
<method name="viewport_set_disable_3d">
@@ -3670,7 +3730,7 @@
<argument index="1" name="disabled" type="bool">
</argument>
<description>
- If [code]true[/code] a viewport's 3D rendering is disabled.
+ If [code]true[/code], a viewport's 3D rendering is disabled.
</description>
</method>
<method name="viewport_set_disable_environment">
@@ -3681,7 +3741,7 @@
<argument index="1" name="disabled" type="bool">
</argument>
<description>
- If [code]true[/code] rendering of a viewport's environment is disabled.
+ If [code]true[/code], rendering of a viewport's environment is disabled.
</description>
</method>
<method name="viewport_set_global_canvas_transform">
@@ -3703,7 +3763,7 @@
<argument index="1" name="enabled" type="bool">
</argument>
<description>
- If [code]true[/code] the viewport renders to hdr.
+ If [code]true[/code], the viewport renders to hdr.
</description>
</method>
<method name="viewport_set_hide_canvas">
@@ -3714,7 +3774,7 @@
<argument index="1" name="hidden" type="bool">
</argument>
<description>
- If [code]true[/code] the viewport's canvas is not rendered.
+ If [code]true[/code], the viewport's canvas is not rendered.
</description>
</method>
<method name="viewport_set_hide_scenario">
@@ -3749,6 +3809,17 @@
Sets the viewport's parent to another viewport.
</description>
</method>
+ <method name="viewport_set_render_direct_to_screen">
+ <return type="void">
+ </return>
+ <argument index="0" name="viewport" type="RID">
+ </argument>
+ <argument index="1" name="enabled" type="bool">
+ </argument>
+ <description>
+ If [code]true[/code], render the contents of the viewport directly to screen. This allows a low-level optimization where you can skip drawing a viewport to the root viewport. While this optimization can result in a significant increase in speed (especially on older devices), it comes at a cost of usability. When this is enabled, you cannot read from the viewport or from the [code]SCREEN_TEXTURE[/code]. You also lose the benefit of certain window settings, such as the various stretch modes. Another consequence to be aware of is that in 2D the rendering happens in window coordinates, so if you have a viewport that is double the size of the window, and you set this, then only the portion that fits within the window will be drawn, no automatic scaling is possible, even if your game scene is significantly larger than the window size.
+ </description>
+ </method>
<method name="viewport_set_scenario">
<return type="void">
</return>
@@ -3806,7 +3877,7 @@
<argument index="1" name="enabled" type="bool">
</argument>
<description>
- If [code]true[/code] the viewport renders its background as transparent.
+ If [code]true[/code], the viewport renders its background as transparent.
</description>
</method>
<method name="viewport_set_update_mode">
@@ -3839,7 +3910,7 @@
<argument index="1" name="use_arvr" type="bool">
</argument>
<description>
- If [code]true[/code] the viewport uses augmented or virtual reality technologies. See [ARVRInterface].
+ If [code]true[/code], the viewport uses augmented or virtual reality technologies. See [ARVRInterface].
</description>
</method>
<method name="viewport_set_vflip">
@@ -3850,7 +3921,7 @@
<argument index="1" name="enabled" type="bool">
</argument>
<description>
- If [code]true[/code] the viewport's rendering is flipped vertically.
+ If [code]true[/code], the viewport's rendering is flipped vertically.
</description>
</method>
</methods>
@@ -4148,7 +4219,7 @@
The viewport is never cleared before drawing.
</constant>
<constant name="VIEWPORT_CLEAR_ONLY_NEXT_FRAME" value="2" enum="ViewportClearMode">
- The viewport is cleared once, then the clear mode is set to [VIEWPORT_CLEAR_NEVER].
+ The viewport is cleared once, then the clear mode is set to [code]VIEWPORT_CLEAR_NEVER[/code].
</constant>
<constant name="VIEWPORT_MSAA_DISABLED" value="0" enum="ViewportMSAA">
Multisample antialiasing is disabled.
@@ -4341,6 +4412,12 @@
</constant>
<constant name="MULTIMESH_COLOR_FLOAT" value="2" enum="MultimeshColorFormat">
</constant>
+ <constant name="MULTIMESH_CUSTOM_DATA_NONE" value="0" enum="MultimeshCustomDataFormat">
+ </constant>
+ <constant name="MULTIMESH_CUSTOM_DATA_8BIT" value="1" enum="MultimeshCustomDataFormat">
+ </constant>
+ <constant name="MULTIMESH_CUSTOM_DATA_FLOAT" value="2" enum="MultimeshCustomDataFormat">
+ </constant>
<constant name="REFLECTION_PROBE_UPDATE_ONCE" value="0" enum="ReflectionProbeUpdateMode">
</constant>
<constant name="REFLECTION_PROBE_UPDATE_ALWAYS" value="1" enum="ReflectionProbeUpdateMode">
@@ -4363,7 +4440,7 @@
</constant>
<constant name="ENV_BG_KEEP" value="5" enum="EnvironmentBG">
</constant>
- <constant name="ENV_BG_MAX" value="6" enum="EnvironmentBG">
+ <constant name="ENV_BG_MAX" value="7" enum="EnvironmentBG">
</constant>
<constant name="ENV_DOF_BLUR_QUALITY_LOW" value="0" enum="EnvironmentDOFBlurQuality">
</constant>
diff --git a/doc/classes/VisualShader.xml b/doc/classes/VisualShader.xml
index ab00080fef..6d5f53d992 100644
--- a/doc/classes/VisualShader.xml
+++ b/doc/classes/VisualShader.xml
@@ -1,13 +1,11 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="VisualShader" inherits="Shader" category="Core" version="3.1">
+<class name="VisualShader" inherits="Shader" category="Core" version="3.2">
<brief_description>
</brief_description>
<description>
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
<method name="add_node">
<return type="void">
@@ -55,6 +53,22 @@
<description>
</description>
</method>
+ <method name="connect_nodes_forced">
+ <return type="void">
+ </return>
+ <argument index="0" name="type" type="int" enum="VisualShader.Type">
+ </argument>
+ <argument index="1" name="from_node" type="int">
+ </argument>
+ <argument index="2" name="from_port" type="int">
+ </argument>
+ <argument index="3" name="to_node" type="int">
+ </argument>
+ <argument index="4" name="to_port" type="int">
+ </argument>
+ <description>
+ </description>
+ </method>
<method name="disconnect_nodes">
<return type="void">
</return>
@@ -131,6 +145,12 @@
<description>
</description>
</method>
+ <method name="rebuild">
+ <return type="void">
+ </return>
+ <description>
+ </description>
+ </method>
<method name="remove_node">
<return type="void">
</return>
diff --git a/doc/classes/VisualShaderNode.xml b/doc/classes/VisualShaderNode.xml
index ffcaf85eea..4fa80d8c82 100644
--- a/doc/classes/VisualShaderNode.xml
+++ b/doc/classes/VisualShaderNode.xml
@@ -1,13 +1,11 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="VisualShaderNode" inherits="Resource" category="Core" version="3.1">
+<class name="VisualShaderNode" inherits="Resource" category="Core" version="3.2">
<brief_description>
</brief_description>
<description>
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
<method name="get_input_port_default_value" qualifiers="const">
<return type="Variant">
diff --git a/doc/classes/VisualShaderNodeBooleanConstant.xml b/doc/classes/VisualShaderNodeBooleanConstant.xml
new file mode 100644
index 0000000000..fd406db053
--- /dev/null
+++ b/doc/classes/VisualShaderNodeBooleanConstant.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<class name="VisualShaderNodeBooleanConstant" inherits="VisualShaderNode" category="Core" version="3.2">
+ <brief_description>
+ </brief_description>
+ <description>
+ </description>
+ <tutorials>
+ </tutorials>
+ <methods>
+ </methods>
+ <members>
+ <member name="constant" type="bool" setter="set_constant" getter="get_constant">
+ </member>
+ </members>
+ <constants>
+ </constants>
+</class>
diff --git a/doc/classes/VisualShaderNodeBooleanUniform.xml b/doc/classes/VisualShaderNodeBooleanUniform.xml
new file mode 100644
index 0000000000..518c7ba3b8
--- /dev/null
+++ b/doc/classes/VisualShaderNodeBooleanUniform.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<class name="VisualShaderNodeBooleanUniform" inherits="VisualShaderNodeUniform" category="Core" version="3.2">
+ <brief_description>
+ </brief_description>
+ <description>
+ </description>
+ <tutorials>
+ </tutorials>
+ <methods>
+ </methods>
+ <constants>
+ </constants>
+</class>
diff --git a/doc/classes/VisualShaderNodeColorConstant.xml b/doc/classes/VisualShaderNodeColorConstant.xml
index f1079e0056..d9a927e75d 100644
--- a/doc/classes/VisualShaderNodeColorConstant.xml
+++ b/doc/classes/VisualShaderNodeColorConstant.xml
@@ -1,13 +1,11 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="VisualShaderNodeColorConstant" inherits="VisualShaderNode" category="Core" version="3.1">
+<class name="VisualShaderNodeColorConstant" inherits="VisualShaderNode" category="Core" version="3.2">
<brief_description>
</brief_description>
<description>
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
</methods>
<members>
diff --git a/doc/classes/VisualShaderNodeColorFunc.xml b/doc/classes/VisualShaderNodeColorFunc.xml
new file mode 100644
index 0000000000..23223587a5
--- /dev/null
+++ b/doc/classes/VisualShaderNodeColorFunc.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<class name="VisualShaderNodeColorFunc" inherits="VisualShaderNode" category="Core" version="3.2">
+ <brief_description>
+ </brief_description>
+ <description>
+ </description>
+ <tutorials>
+ </tutorials>
+ <methods>
+ </methods>
+ <members>
+ <member name="function" type="int" setter="set_function" getter="get_function" enum="VisualShaderNodeColorFunc.Function">
+ </member>
+ </members>
+ <constants>
+ <constant name="FUNC_GRAYSCALE" value="0" enum="Function">
+ </constant>
+ <constant name="FUNC_SEPIA" value="1" enum="Function">
+ </constant>
+ </constants>
+</class>
diff --git a/doc/classes/VisualShaderNodeColorOp.xml b/doc/classes/VisualShaderNodeColorOp.xml
index d23c674503..b78efa2adc 100644
--- a/doc/classes/VisualShaderNodeColorOp.xml
+++ b/doc/classes/VisualShaderNodeColorOp.xml
@@ -1,13 +1,11 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="VisualShaderNodeColorOp" inherits="VisualShaderNode" category="Core" version="3.1">
+<class name="VisualShaderNodeColorOp" inherits="VisualShaderNode" category="Core" version="3.2">
<brief_description>
</brief_description>
<description>
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
</methods>
<members>
diff --git a/doc/classes/VisualShaderNodeColorUniform.xml b/doc/classes/VisualShaderNodeColorUniform.xml
index 0b97c104a2..ec61729782 100644
--- a/doc/classes/VisualShaderNodeColorUniform.xml
+++ b/doc/classes/VisualShaderNodeColorUniform.xml
@@ -1,13 +1,11 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="VisualShaderNodeColorUniform" inherits="VisualShaderNodeUniform" category="Core" version="3.1">
+<class name="VisualShaderNodeColorUniform" inherits="VisualShaderNodeUniform" category="Core" version="3.2">
<brief_description>
</brief_description>
<description>
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
</methods>
<constants>
diff --git a/doc/classes/VisualShaderNodeCubeMap.xml b/doc/classes/VisualShaderNodeCubeMap.xml
index 9c56a23b7f..09f68a0e9a 100644
--- a/doc/classes/VisualShaderNodeCubeMap.xml
+++ b/doc/classes/VisualShaderNodeCubeMap.xml
@@ -1,13 +1,11 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="VisualShaderNodeCubeMap" inherits="VisualShaderNode" category="Core" version="3.1">
+<class name="VisualShaderNodeCubeMap" inherits="VisualShaderNode" category="Core" version="3.2">
<brief_description>
</brief_description>
<description>
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
</methods>
<members>
diff --git a/doc/classes/VisualShaderNodeCubeMapUniform.xml b/doc/classes/VisualShaderNodeCubeMapUniform.xml
index fc95e4ddd9..b06fc97b14 100644
--- a/doc/classes/VisualShaderNodeCubeMapUniform.xml
+++ b/doc/classes/VisualShaderNodeCubeMapUniform.xml
@@ -1,13 +1,11 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="VisualShaderNodeCubeMapUniform" inherits="VisualShaderNode" category="Core" version="3.1">
+<class name="VisualShaderNodeCubeMapUniform" inherits="VisualShaderNode" category="Core" version="3.2">
<brief_description>
</brief_description>
<description>
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
</methods>
<constants>
diff --git a/doc/classes/ResourceImporter.xml b/doc/classes/VisualShaderNodeDeterminant.xml
index 09fe828bd3..a86db216c4 100644
--- a/doc/classes/ResourceImporter.xml
+++ b/doc/classes/VisualShaderNodeDeterminant.xml
@@ -1,13 +1,11 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="ResourceImporter" inherits="Reference" category="Core" version="3.1">
+<class name="VisualShaderNodeDeterminant" inherits="VisualShaderNode" category="Core" version="3.2">
<brief_description>
</brief_description>
<description>
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
</methods>
<constants>
diff --git a/doc/classes/VisualShaderNodeDotProduct.xml b/doc/classes/VisualShaderNodeDotProduct.xml
index c82f4cec3b..f07827db29 100644
--- a/doc/classes/VisualShaderNodeDotProduct.xml
+++ b/doc/classes/VisualShaderNodeDotProduct.xml
@@ -1,13 +1,11 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="VisualShaderNodeDotProduct" inherits="VisualShaderNode" category="Core" version="3.1">
+<class name="VisualShaderNodeDotProduct" inherits="VisualShaderNode" category="Core" version="3.2">
<brief_description>
</brief_description>
<description>
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
</methods>
<constants>
diff --git a/doc/classes/VisualShaderNodeExpression.xml b/doc/classes/VisualShaderNodeExpression.xml
new file mode 100644
index 0000000000..8a5477280f
--- /dev/null
+++ b/doc/classes/VisualShaderNodeExpression.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<class name="VisualShaderNodeExpression" inherits="VisualShaderNodeGroupBase" category="Core" version="3.2">
+ <brief_description>
+ </brief_description>
+ <description>
+ </description>
+ <tutorials>
+ </tutorials>
+ <methods>
+ <method name="build">
+ <return type="void">
+ </return>
+ <description>
+ </description>
+ </method>
+ </methods>
+ <members>
+ <member name="expression" type="String" setter="set_expression" getter="get_expression">
+ </member>
+ </members>
+ <constants>
+ </constants>
+</class>
diff --git a/doc/classes/VisualShaderNodeFaceForward.xml b/doc/classes/VisualShaderNodeFaceForward.xml
new file mode 100644
index 0000000000..ea8589e6cb
--- /dev/null
+++ b/doc/classes/VisualShaderNodeFaceForward.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<class name="VisualShaderNodeFaceForward" inherits="VisualShaderNode" category="Core" version="3.2">
+ <brief_description>
+ </brief_description>
+ <description>
+ </description>
+ <tutorials>
+ </tutorials>
+ <methods>
+ </methods>
+ <constants>
+ </constants>
+</class>
diff --git a/doc/classes/VisualShaderNodeFresnel.xml b/doc/classes/VisualShaderNodeFresnel.xml
new file mode 100644
index 0000000000..2484a44fcd
--- /dev/null
+++ b/doc/classes/VisualShaderNodeFresnel.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<class name="VisualShaderNodeFresnel" inherits="VisualShaderNode" category="Core" version="3.2">
+ <brief_description>
+ </brief_description>
+ <description>
+ </description>
+ <tutorials>
+ </tutorials>
+ <methods>
+ </methods>
+ <constants>
+ </constants>
+</class>
diff --git a/doc/classes/VisualShaderNodeGroupBase.xml b/doc/classes/VisualShaderNodeGroupBase.xml
new file mode 100644
index 0000000000..37d48956f6
--- /dev/null
+++ b/doc/classes/VisualShaderNodeGroupBase.xml
@@ -0,0 +1,205 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<class name="VisualShaderNodeGroupBase" inherits="VisualShaderNode" category="Core" version="3.2">
+ <brief_description>
+ </brief_description>
+ <description>
+ </description>
+ <tutorials>
+ </tutorials>
+ <methods>
+ <method name="add_input_port">
+ <return type="void">
+ </return>
+ <argument index="0" name="id" type="int">
+ </argument>
+ <argument index="1" name="type" type="int">
+ </argument>
+ <argument index="2" name="name" type="String">
+ </argument>
+ <description>
+ </description>
+ </method>
+ <method name="add_output_port">
+ <return type="void">
+ </return>
+ <argument index="0" name="id" type="int">
+ </argument>
+ <argument index="1" name="type" type="int">
+ </argument>
+ <argument index="2" name="name" type="String">
+ </argument>
+ <description>
+ </description>
+ </method>
+ <method name="clear_input_ports">
+ <return type="void">
+ </return>
+ <description>
+ </description>
+ </method>
+ <method name="clear_output_ports">
+ <return type="void">
+ </return>
+ <description>
+ </description>
+ </method>
+ <method name="get_control">
+ <return type="Control">
+ </return>
+ <argument index="0" name="index" type="int">
+ </argument>
+ <description>
+ </description>
+ </method>
+ <method name="get_free_input_port_id" qualifiers="const">
+ <return type="int">
+ </return>
+ <description>
+ </description>
+ </method>
+ <method name="get_free_output_port_id" qualifiers="const">
+ <return type="int">
+ </return>
+ <description>
+ </description>
+ </method>
+ <method name="get_input_port_count" qualifiers="const">
+ <return type="int">
+ </return>
+ <description>
+ </description>
+ </method>
+ <method name="get_inputs" qualifiers="const">
+ <return type="String">
+ </return>
+ <description>
+ </description>
+ </method>
+ <method name="get_output_port_count" qualifiers="const">
+ <return type="int">
+ </return>
+ <description>
+ </description>
+ </method>
+ <method name="get_outputs" qualifiers="const">
+ <return type="String">
+ </return>
+ <description>
+ </description>
+ </method>
+ <method name="get_size" qualifiers="const">
+ <return type="Vector2">
+ </return>
+ <description>
+ </description>
+ </method>
+ <method name="has_input_port" qualifiers="const">
+ <return type="bool">
+ </return>
+ <argument index="0" name="id" type="int">
+ </argument>
+ <description>
+ </description>
+ </method>
+ <method name="has_output_port" qualifiers="const">
+ <return type="bool">
+ </return>
+ <argument index="0" name="id" type="int">
+ </argument>
+ <description>
+ </description>
+ </method>
+ <method name="remove_input_port">
+ <return type="void">
+ </return>
+ <argument index="0" name="id" type="int">
+ </argument>
+ <description>
+ </description>
+ </method>
+ <method name="remove_output_port">
+ <return type="void">
+ </return>
+ <argument index="0" name="id" type="int">
+ </argument>
+ <description>
+ </description>
+ </method>
+ <method name="set_control">
+ <return type="void">
+ </return>
+ <argument index="0" name="control" type="Control">
+ </argument>
+ <argument index="1" name="index" type="int">
+ </argument>
+ <description>
+ </description>
+ </method>
+ <method name="set_input_port_name">
+ <return type="void">
+ </return>
+ <argument index="0" name="arg0" type="int">
+ </argument>
+ <argument index="1" name="arg1" type="String">
+ </argument>
+ <description>
+ </description>
+ </method>
+ <method name="set_input_port_type">
+ <return type="void">
+ </return>
+ <argument index="0" name="arg0" type="int">
+ </argument>
+ <argument index="1" name="arg1" type="int">
+ </argument>
+ <description>
+ </description>
+ </method>
+ <method name="set_inputs">
+ <return type="void">
+ </return>
+ <argument index="0" name="inputs" type="String">
+ </argument>
+ <description>
+ </description>
+ </method>
+ <method name="set_output_port_name">
+ <return type="void">
+ </return>
+ <argument index="0" name="arg0" type="int">
+ </argument>
+ <argument index="1" name="arg1" type="String">
+ </argument>
+ <description>
+ </description>
+ </method>
+ <method name="set_output_port_type">
+ <return type="void">
+ </return>
+ <argument index="0" name="arg0" type="int">
+ </argument>
+ <argument index="1" name="arg1" type="int">
+ </argument>
+ <description>
+ </description>
+ </method>
+ <method name="set_outputs">
+ <return type="void">
+ </return>
+ <argument index="0" name="outputs" type="String">
+ </argument>
+ <description>
+ </description>
+ </method>
+ <method name="set_size">
+ <return type="void">
+ </return>
+ <argument index="0" name="size" type="Vector2">
+ </argument>
+ <description>
+ </description>
+ </method>
+ </methods>
+ <constants>
+ </constants>
+</class>
diff --git a/doc/classes/VisualShaderNodeIf.xml b/doc/classes/VisualShaderNodeIf.xml
new file mode 100644
index 0000000000..374a1e379a
--- /dev/null
+++ b/doc/classes/VisualShaderNodeIf.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<class name="VisualShaderNodeIf" inherits="VisualShaderNode" category="Core" version="3.2">
+ <brief_description>
+ </brief_description>
+ <description>
+ </description>
+ <tutorials>
+ </tutorials>
+ <methods>
+ </methods>
+ <constants>
+ </constants>
+</class>
diff --git a/doc/classes/VisualShaderNodeInput.xml b/doc/classes/VisualShaderNodeInput.xml
index 29de7f81d1..32398b8545 100644
--- a/doc/classes/VisualShaderNodeInput.xml
+++ b/doc/classes/VisualShaderNodeInput.xml
@@ -1,13 +1,11 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="VisualShaderNodeInput" inherits="VisualShaderNode" category="Core" version="3.1">
+<class name="VisualShaderNodeInput" inherits="VisualShaderNode" category="Core" version="3.2">
<brief_description>
</brief_description>
<description>
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
</methods>
<members>
diff --git a/doc/classes/VisualShaderNodeOuterProduct.xml b/doc/classes/VisualShaderNodeOuterProduct.xml
new file mode 100644
index 0000000000..3debde0634
--- /dev/null
+++ b/doc/classes/VisualShaderNodeOuterProduct.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<class name="VisualShaderNodeOuterProduct" inherits="VisualShaderNode" category="Core" version="3.2">
+ <brief_description>
+ </brief_description>
+ <description>
+ </description>
+ <tutorials>
+ </tutorials>
+ <methods>
+ </methods>
+ <constants>
+ </constants>
+</class>
diff --git a/doc/classes/VisualShaderNodeOutput.xml b/doc/classes/VisualShaderNodeOutput.xml
index 7b65c6fd5e..ff109a949e 100644
--- a/doc/classes/VisualShaderNodeOutput.xml
+++ b/doc/classes/VisualShaderNodeOutput.xml
@@ -1,13 +1,11 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="VisualShaderNodeOutput" inherits="VisualShaderNode" category="Core" version="3.1">
+<class name="VisualShaderNodeOutput" inherits="VisualShaderNode" category="Core" version="3.2">
<brief_description>
</brief_description>
<description>
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
</methods>
<constants>
diff --git a/doc/classes/VisualShaderNodeScalarClamp.xml b/doc/classes/VisualShaderNodeScalarClamp.xml
new file mode 100644
index 0000000000..4c5309d1e7
--- /dev/null
+++ b/doc/classes/VisualShaderNodeScalarClamp.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<class name="VisualShaderNodeScalarClamp" inherits="VisualShaderNode" category="Core" version="3.2">
+ <brief_description>
+ </brief_description>
+ <description>
+ </description>
+ <tutorials>
+ </tutorials>
+ <methods>
+ </methods>
+ <constants>
+ </constants>
+</class>
diff --git a/doc/classes/VisualShaderNodeScalarConstant.xml b/doc/classes/VisualShaderNodeScalarConstant.xml
index 424fb2b3bd..b18ac46fbd 100644
--- a/doc/classes/VisualShaderNodeScalarConstant.xml
+++ b/doc/classes/VisualShaderNodeScalarConstant.xml
@@ -1,13 +1,11 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="VisualShaderNodeScalarConstant" inherits="VisualShaderNode" category="Core" version="3.1">
+<class name="VisualShaderNodeScalarConstant" inherits="VisualShaderNode" category="Core" version="3.2">
<brief_description>
</brief_description>
<description>
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
</methods>
<members>
diff --git a/doc/classes/VisualShaderNodeScalarDerivativeFunc.xml b/doc/classes/VisualShaderNodeScalarDerivativeFunc.xml
new file mode 100644
index 0000000000..6c3eb95b6f
--- /dev/null
+++ b/doc/classes/VisualShaderNodeScalarDerivativeFunc.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<class name="VisualShaderNodeScalarDerivativeFunc" inherits="VisualShaderNode" category="Core" version="3.2">
+ <brief_description>
+ </brief_description>
+ <description>
+ </description>
+ <tutorials>
+ </tutorials>
+ <methods>
+ </methods>
+ <members>
+ <member name="function" type="int" setter="set_function" getter="get_function" enum="VisualShaderNodeScalarDerivativeFunc.Function">
+ </member>
+ </members>
+ <constants>
+ <constant name="FUNC_SUM" value="0" enum="Function">
+ </constant>
+ <constant name="FUNC_X" value="1" enum="Function">
+ </constant>
+ <constant name="FUNC_Y" value="2" enum="Function">
+ </constant>
+ </constants>
+</class>
diff --git a/doc/classes/VisualShaderNodeScalarFunc.xml b/doc/classes/VisualShaderNodeScalarFunc.xml
index 7362ededce..b0ee422bbd 100644
--- a/doc/classes/VisualShaderNodeScalarFunc.xml
+++ b/doc/classes/VisualShaderNodeScalarFunc.xml
@@ -1,13 +1,11 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="VisualShaderNodeScalarFunc" inherits="VisualShaderNode" category="Core" version="3.1">
+<class name="VisualShaderNodeScalarFunc" inherits="VisualShaderNode" category="Core" version="3.2">
<brief_description>
</brief_description>
<description>
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
</methods>
<members>
@@ -55,5 +53,29 @@
</constant>
<constant name="FUNC_NEGATE" value="19" enum="Function">
</constant>
+ <constant name="FUNC_ACOSH" value="20" enum="Function">
+ </constant>
+ <constant name="FUNC_ASINH" value="21" enum="Function">
+ </constant>
+ <constant name="FUNC_ATANH" value="22" enum="Function">
+ </constant>
+ <constant name="FUNC_DEGREES" value="23" enum="Function">
+ </constant>
+ <constant name="FUNC_EXP2" value="24" enum="Function">
+ </constant>
+ <constant name="FUNC_INVERSE_SQRT" value="25" enum="Function">
+ </constant>
+ <constant name="FUNC_LOG2" value="26" enum="Function">
+ </constant>
+ <constant name="FUNC_RADIANS" value="27" enum="Function">
+ </constant>
+ <constant name="FUNC_RECIPROCAL" value="28" enum="Function">
+ </constant>
+ <constant name="FUNC_ROUNDEVEN" value="29" enum="Function">
+ </constant>
+ <constant name="FUNC_TRUNC" value="30" enum="Function">
+ </constant>
+ <constant name="FUNC_ONEMINUS" value="31" enum="Function">
+ </constant>
</constants>
</class>
diff --git a/doc/classes/VisualShaderNodeScalarInterp.xml b/doc/classes/VisualShaderNodeScalarInterp.xml
index 8420b34dd3..9d01e20b8d 100644
--- a/doc/classes/VisualShaderNodeScalarInterp.xml
+++ b/doc/classes/VisualShaderNodeScalarInterp.xml
@@ -1,13 +1,11 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="VisualShaderNodeScalarInterp" inherits="VisualShaderNode" category="Core" version="3.1">
+<class name="VisualShaderNodeScalarInterp" inherits="VisualShaderNode" category="Core" version="3.2">
<brief_description>
</brief_description>
<description>
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
</methods>
<constants>
diff --git a/doc/classes/VisualShaderNodeScalarOp.xml b/doc/classes/VisualShaderNodeScalarOp.xml
index 0ab0a46d0a..b2939a55ee 100644
--- a/doc/classes/VisualShaderNodeScalarOp.xml
+++ b/doc/classes/VisualShaderNodeScalarOp.xml
@@ -1,13 +1,11 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="VisualShaderNodeScalarOp" inherits="VisualShaderNode" category="Core" version="3.1">
+<class name="VisualShaderNodeScalarOp" inherits="VisualShaderNode" category="Core" version="3.2">
<brief_description>
</brief_description>
<description>
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
</methods>
<members>
@@ -33,5 +31,7 @@
</constant>
<constant name="OP_ATAN2" value="8" enum="Operator">
</constant>
+ <constant name="OP_STEP" value="9" enum="Operator">
+ </constant>
</constants>
</class>
diff --git a/doc/classes/VisualShaderNodeScalarSmoothStep.xml b/doc/classes/VisualShaderNodeScalarSmoothStep.xml
new file mode 100644
index 0000000000..737c535659
--- /dev/null
+++ b/doc/classes/VisualShaderNodeScalarSmoothStep.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<class name="VisualShaderNodeScalarSmoothStep" inherits="VisualShaderNode" category="Core" version="3.2">
+ <brief_description>
+ </brief_description>
+ <description>
+ </description>
+ <tutorials>
+ </tutorials>
+ <methods>
+ </methods>
+ <constants>
+ </constants>
+</class>
diff --git a/doc/classes/VisualShaderNodeScalarUniform.xml b/doc/classes/VisualShaderNodeScalarUniform.xml
index 352355b475..bdbb02561b 100644
--- a/doc/classes/VisualShaderNodeScalarUniform.xml
+++ b/doc/classes/VisualShaderNodeScalarUniform.xml
@@ -1,13 +1,11 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="VisualShaderNodeScalarUniform" inherits="VisualShaderNodeUniform" category="Core" version="3.1">
+<class name="VisualShaderNodeScalarUniform" inherits="VisualShaderNodeUniform" category="Core" version="3.2">
<brief_description>
</brief_description>
<description>
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
</methods>
<constants>
diff --git a/doc/classes/VisualShaderNodeSwitch.xml b/doc/classes/VisualShaderNodeSwitch.xml
new file mode 100644
index 0000000000..930d914035
--- /dev/null
+++ b/doc/classes/VisualShaderNodeSwitch.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<class name="VisualShaderNodeSwitch" inherits="VisualShaderNode" category="Core" version="3.2">
+ <brief_description>
+ </brief_description>
+ <description>
+ </description>
+ <tutorials>
+ </tutorials>
+ <methods>
+ </methods>
+ <constants>
+ </constants>
+</class>
diff --git a/doc/classes/VisualShaderNodeTexture.xml b/doc/classes/VisualShaderNodeTexture.xml
index 18b2fc3b3f..7a73868c2b 100644
--- a/doc/classes/VisualShaderNodeTexture.xml
+++ b/doc/classes/VisualShaderNodeTexture.xml
@@ -1,13 +1,11 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="VisualShaderNodeTexture" inherits="VisualShaderNode" category="Core" version="3.1">
+<class name="VisualShaderNodeTexture" inherits="VisualShaderNode" category="Core" version="3.2">
<brief_description>
</brief_description>
<description>
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
</methods>
<members>
diff --git a/doc/classes/VisualShaderNodeTextureUniform.xml b/doc/classes/VisualShaderNodeTextureUniform.xml
index 1b5df52060..9312c24fe7 100644
--- a/doc/classes/VisualShaderNodeTextureUniform.xml
+++ b/doc/classes/VisualShaderNodeTextureUniform.xml
@@ -1,13 +1,11 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="VisualShaderNodeTextureUniform" inherits="VisualShaderNodeUniform" category="Core" version="3.1">
+<class name="VisualShaderNodeTextureUniform" inherits="VisualShaderNodeUniform" category="Core" version="3.2">
<brief_description>
</brief_description>
<description>
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
</methods>
<members>
diff --git a/doc/classes/VisualShaderNodeTransformCompose.xml b/doc/classes/VisualShaderNodeTransformCompose.xml
index e1bda001e3..0939eb393d 100644
--- a/doc/classes/VisualShaderNodeTransformCompose.xml
+++ b/doc/classes/VisualShaderNodeTransformCompose.xml
@@ -1,13 +1,11 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="VisualShaderNodeTransformCompose" inherits="VisualShaderNode" category="Core" version="3.1">
+<class name="VisualShaderNodeTransformCompose" inherits="VisualShaderNode" category="Core" version="3.2">
<brief_description>
</brief_description>
<description>
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
</methods>
<constants>
diff --git a/doc/classes/VisualShaderNodeTransformConstant.xml b/doc/classes/VisualShaderNodeTransformConstant.xml
index e86444563c..5b4c046ce1 100644
--- a/doc/classes/VisualShaderNodeTransformConstant.xml
+++ b/doc/classes/VisualShaderNodeTransformConstant.xml
@@ -1,13 +1,11 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="VisualShaderNodeTransformConstant" inherits="VisualShaderNode" category="Core" version="3.1">
+<class name="VisualShaderNodeTransformConstant" inherits="VisualShaderNode" category="Core" version="3.2">
<brief_description>
</brief_description>
<description>
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
</methods>
<members>
diff --git a/doc/classes/VisualShaderNodeTransformDecompose.xml b/doc/classes/VisualShaderNodeTransformDecompose.xml
index ee6d5c5d74..d986e6b7a8 100644
--- a/doc/classes/VisualShaderNodeTransformDecompose.xml
+++ b/doc/classes/VisualShaderNodeTransformDecompose.xml
@@ -1,13 +1,11 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="VisualShaderNodeTransformDecompose" inherits="VisualShaderNode" category="Core" version="3.1">
+<class name="VisualShaderNodeTransformDecompose" inherits="VisualShaderNode" category="Core" version="3.2">
<brief_description>
</brief_description>
<description>
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
</methods>
<constants>
diff --git a/doc/classes/VisualShaderNodeTransformFunc.xml b/doc/classes/VisualShaderNodeTransformFunc.xml
new file mode 100644
index 0000000000..e74f449212
--- /dev/null
+++ b/doc/classes/VisualShaderNodeTransformFunc.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<class name="VisualShaderNodeTransformFunc" inherits="VisualShaderNode" category="Core" version="3.2">
+ <brief_description>
+ </brief_description>
+ <description>
+ </description>
+ <tutorials>
+ </tutorials>
+ <methods>
+ </methods>
+ <members>
+ <member name="function" type="int" setter="set_function" getter="get_function" enum="VisualShaderNodeTransformFunc.Function">
+ </member>
+ </members>
+ <constants>
+ <constant name="FUNC_INVERSE" value="0" enum="Function">
+ </constant>
+ <constant name="FUNC_TRANSPOSE" value="1" enum="Function">
+ </constant>
+ </constants>
+</class>
diff --git a/doc/classes/VisualShaderNodeTransformMult.xml b/doc/classes/VisualShaderNodeTransformMult.xml
index 31aa40db96..6082434beb 100644
--- a/doc/classes/VisualShaderNodeTransformMult.xml
+++ b/doc/classes/VisualShaderNodeTransformMult.xml
@@ -1,13 +1,11 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="VisualShaderNodeTransformMult" inherits="VisualShaderNode" category="Core" version="3.1">
+<class name="VisualShaderNodeTransformMult" inherits="VisualShaderNode" category="Core" version="3.2">
<brief_description>
</brief_description>
<description>
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
</methods>
<members>
@@ -19,5 +17,9 @@
</constant>
<constant name="OP_BxA" value="1" enum="Operator">
</constant>
+ <constant name="OP_AxB_COMP" value="2" enum="Operator">
+ </constant>
+ <constant name="OP_BxA_COMP" value="3" enum="Operator">
+ </constant>
</constants>
</class>
diff --git a/doc/classes/VisualShaderNodeTransformUniform.xml b/doc/classes/VisualShaderNodeTransformUniform.xml
index 65b1088247..0a28e0c1f6 100644
--- a/doc/classes/VisualShaderNodeTransformUniform.xml
+++ b/doc/classes/VisualShaderNodeTransformUniform.xml
@@ -1,13 +1,11 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="VisualShaderNodeTransformUniform" inherits="VisualShaderNodeUniform" category="Core" version="3.1">
+<class name="VisualShaderNodeTransformUniform" inherits="VisualShaderNodeUniform" category="Core" version="3.2">
<brief_description>
</brief_description>
<description>
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
</methods>
<constants>
diff --git a/doc/classes/VisualShaderNodeTransformVecMult.xml b/doc/classes/VisualShaderNodeTransformVecMult.xml
index d3fb445717..46d3be2ded 100644
--- a/doc/classes/VisualShaderNodeTransformVecMult.xml
+++ b/doc/classes/VisualShaderNodeTransformVecMult.xml
@@ -1,13 +1,11 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="VisualShaderNodeTransformVecMult" inherits="VisualShaderNode" category="Core" version="3.1">
+<class name="VisualShaderNodeTransformVecMult" inherits="VisualShaderNode" category="Core" version="3.2">
<brief_description>
</brief_description>
<description>
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
</methods>
<members>
diff --git a/doc/classes/VisualShaderNodeUniform.xml b/doc/classes/VisualShaderNodeUniform.xml
index 2c02afd0a7..09371f91de 100644
--- a/doc/classes/VisualShaderNodeUniform.xml
+++ b/doc/classes/VisualShaderNodeUniform.xml
@@ -1,13 +1,11 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="VisualShaderNodeUniform" inherits="VisualShaderNode" category="Core" version="3.1">
+<class name="VisualShaderNodeUniform" inherits="VisualShaderNode" category="Core" version="3.2">
<brief_description>
</brief_description>
<description>
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
</methods>
<members>
diff --git a/doc/classes/VisualShaderNodeVec3Constant.xml b/doc/classes/VisualShaderNodeVec3Constant.xml
index 7492f56223..1ea7e8115e 100644
--- a/doc/classes/VisualShaderNodeVec3Constant.xml
+++ b/doc/classes/VisualShaderNodeVec3Constant.xml
@@ -1,13 +1,11 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="VisualShaderNodeVec3Constant" inherits="VisualShaderNode" category="Core" version="3.1">
+<class name="VisualShaderNodeVec3Constant" inherits="VisualShaderNode" category="Core" version="3.2">
<brief_description>
</brief_description>
<description>
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
</methods>
<members>
diff --git a/doc/classes/VisualShaderNodeVec3Uniform.xml b/doc/classes/VisualShaderNodeVec3Uniform.xml
index 79a21680fb..a1c9b14566 100644
--- a/doc/classes/VisualShaderNodeVec3Uniform.xml
+++ b/doc/classes/VisualShaderNodeVec3Uniform.xml
@@ -1,13 +1,11 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="VisualShaderNodeVec3Uniform" inherits="VisualShaderNodeUniform" category="Core" version="3.1">
+<class name="VisualShaderNodeVec3Uniform" inherits="VisualShaderNodeUniform" category="Core" version="3.2">
<brief_description>
</brief_description>
<description>
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
</methods>
<constants>
diff --git a/doc/classes/VisualShaderNodeVectorClamp.xml b/doc/classes/VisualShaderNodeVectorClamp.xml
new file mode 100644
index 0000000000..a5d1e94e2f
--- /dev/null
+++ b/doc/classes/VisualShaderNodeVectorClamp.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<class name="VisualShaderNodeVectorClamp" inherits="VisualShaderNode" category="Core" version="3.2">
+ <brief_description>
+ </brief_description>
+ <description>
+ </description>
+ <tutorials>
+ </tutorials>
+ <methods>
+ </methods>
+ <constants>
+ </constants>
+</class>
diff --git a/doc/classes/VisualShaderNodeVectorCompose.xml b/doc/classes/VisualShaderNodeVectorCompose.xml
index 39798a82d1..b7f650c82e 100644
--- a/doc/classes/VisualShaderNodeVectorCompose.xml
+++ b/doc/classes/VisualShaderNodeVectorCompose.xml
@@ -1,13 +1,11 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="VisualShaderNodeVectorCompose" inherits="VisualShaderNode" category="Core" version="3.1">
+<class name="VisualShaderNodeVectorCompose" inherits="VisualShaderNode" category="Core" version="3.2">
<brief_description>
</brief_description>
<description>
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
</methods>
<constants>
diff --git a/doc/classes/VisualShaderNodeVectorDecompose.xml b/doc/classes/VisualShaderNodeVectorDecompose.xml
index 8df12d8ba9..30727379e6 100644
--- a/doc/classes/VisualShaderNodeVectorDecompose.xml
+++ b/doc/classes/VisualShaderNodeVectorDecompose.xml
@@ -1,13 +1,11 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="VisualShaderNodeVectorDecompose" inherits="VisualShaderNode" category="Core" version="3.1">
+<class name="VisualShaderNodeVectorDecompose" inherits="VisualShaderNode" category="Core" version="3.2">
<brief_description>
</brief_description>
<description>
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
</methods>
<constants>
diff --git a/doc/classes/VisualShaderNodeVectorDerivativeFunc.xml b/doc/classes/VisualShaderNodeVectorDerivativeFunc.xml
new file mode 100644
index 0000000000..678df0fe3b
--- /dev/null
+++ b/doc/classes/VisualShaderNodeVectorDerivativeFunc.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<class name="VisualShaderNodeVectorDerivativeFunc" inherits="VisualShaderNode" category="Core" version="3.2">
+ <brief_description>
+ </brief_description>
+ <description>
+ </description>
+ <tutorials>
+ </tutorials>
+ <methods>
+ </methods>
+ <members>
+ <member name="function" type="int" setter="set_function" getter="get_function" enum="VisualShaderNodeVectorDerivativeFunc.Function">
+ </member>
+ </members>
+ <constants>
+ <constant name="FUNC_SUM" value="0" enum="Function">
+ </constant>
+ <constant name="FUNC_X" value="1" enum="Function">
+ </constant>
+ <constant name="FUNC_Y" value="2" enum="Function">
+ </constant>
+ </constants>
+</class>
diff --git a/doc/classes/VisualShaderNodeVectorDistance.xml b/doc/classes/VisualShaderNodeVectorDistance.xml
new file mode 100644
index 0000000000..f7c9acecf7
--- /dev/null
+++ b/doc/classes/VisualShaderNodeVectorDistance.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<class name="VisualShaderNodeVectorDistance" inherits="VisualShaderNode" category="Core" version="3.2">
+ <brief_description>
+ </brief_description>
+ <description>
+ </description>
+ <tutorials>
+ </tutorials>
+ <methods>
+ </methods>
+ <constants>
+ </constants>
+</class>
diff --git a/doc/classes/VisualShaderNodeVectorFunc.xml b/doc/classes/VisualShaderNodeVectorFunc.xml
index 850b089645..e67cb2e07f 100644
--- a/doc/classes/VisualShaderNodeVectorFunc.xml
+++ b/doc/classes/VisualShaderNodeVectorFunc.xml
@@ -1,13 +1,11 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="VisualShaderNodeVectorFunc" inherits="VisualShaderNode" category="Core" version="3.1">
+<class name="VisualShaderNodeVectorFunc" inherits="VisualShaderNode" category="Core" version="3.2">
<brief_description>
</brief_description>
<description>
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
</methods>
<members>
@@ -27,5 +25,63 @@
</constant>
<constant name="FUNC_HSV2RGB" value="5" enum="Function">
</constant>
+ <constant name="FUNC_ABS" value="6" enum="Function">
+ </constant>
+ <constant name="FUNC_ACOS" value="7" enum="Function">
+ </constant>
+ <constant name="FUNC_ACOSH" value="8" enum="Function">
+ </constant>
+ <constant name="FUNC_ASIN" value="9" enum="Function">
+ </constant>
+ <constant name="FUNC_ASINH" value="10" enum="Function">
+ </constant>
+ <constant name="FUNC_ATAN" value="11" enum="Function">
+ </constant>
+ <constant name="FUNC_ATANH" value="12" enum="Function">
+ </constant>
+ <constant name="FUNC_CEIL" value="13" enum="Function">
+ </constant>
+ <constant name="FUNC_COS" value="14" enum="Function">
+ </constant>
+ <constant name="FUNC_COSH" value="15" enum="Function">
+ </constant>
+ <constant name="FUNC_DEGREES" value="16" enum="Function">
+ </constant>
+ <constant name="FUNC_EXP" value="17" enum="Function">
+ </constant>
+ <constant name="FUNC_EXP2" value="18" enum="Function">
+ </constant>
+ <constant name="FUNC_FLOOR" value="19" enum="Function">
+ </constant>
+ <constant name="FUNC_FRAC" value="20" enum="Function">
+ </constant>
+ <constant name="FUNC_INVERSE_SQRT" value="21" enum="Function">
+ </constant>
+ <constant name="FUNC_LOG" value="22" enum="Function">
+ </constant>
+ <constant name="FUNC_LOG2" value="23" enum="Function">
+ </constant>
+ <constant name="FUNC_RADIANS" value="24" enum="Function">
+ </constant>
+ <constant name="FUNC_ROUND" value="25" enum="Function">
+ </constant>
+ <constant name="FUNC_ROUNDEVEN" value="26" enum="Function">
+ </constant>
+ <constant name="FUNC_SIGN" value="27" enum="Function">
+ </constant>
+ <constant name="FUNC_SIN" value="28" enum="Function">
+ </constant>
+ <constant name="FUNC_SINH" value="29" enum="Function">
+ </constant>
+ <constant name="FUNC_SQRT" value="30" enum="Function">
+ </constant>
+ <constant name="FUNC_TAN" value="31" enum="Function">
+ </constant>
+ <constant name="FUNC_TANH" value="32" enum="Function">
+ </constant>
+ <constant name="FUNC_TRUNC" value="33" enum="Function">
+ </constant>
+ <constant name="FUNC_ONEMINUS" value="34" enum="Function">
+ </constant>
</constants>
</class>
diff --git a/doc/classes/VisualShaderNodeVectorInterp.xml b/doc/classes/VisualShaderNodeVectorInterp.xml
index 909cd7eacc..2a398c653d 100644
--- a/doc/classes/VisualShaderNodeVectorInterp.xml
+++ b/doc/classes/VisualShaderNodeVectorInterp.xml
@@ -1,13 +1,11 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="VisualShaderNodeVectorInterp" inherits="VisualShaderNode" category="Core" version="3.1">
+<class name="VisualShaderNodeVectorInterp" inherits="VisualShaderNode" category="Core" version="3.2">
<brief_description>
</brief_description>
<description>
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
</methods>
<constants>
diff --git a/doc/classes/VisualShaderNodeVectorLen.xml b/doc/classes/VisualShaderNodeVectorLen.xml
index ad87d0bd0a..f6fdc0aff3 100644
--- a/doc/classes/VisualShaderNodeVectorLen.xml
+++ b/doc/classes/VisualShaderNodeVectorLen.xml
@@ -1,13 +1,11 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="VisualShaderNodeVectorLen" inherits="VisualShaderNode" category="Core" version="3.1">
+<class name="VisualShaderNodeVectorLen" inherits="VisualShaderNode" category="Core" version="3.2">
<brief_description>
</brief_description>
<description>
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
</methods>
<constants>
diff --git a/doc/classes/VisualShaderNodeVectorOp.xml b/doc/classes/VisualShaderNodeVectorOp.xml
index 3e20168f15..cfcd16bbff 100644
--- a/doc/classes/VisualShaderNodeVectorOp.xml
+++ b/doc/classes/VisualShaderNodeVectorOp.xml
@@ -1,13 +1,11 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="VisualShaderNodeVectorOp" inherits="VisualShaderNode" category="Core" version="3.1">
+<class name="VisualShaderNodeVectorOp" inherits="VisualShaderNode" category="Core" version="3.2">
<brief_description>
</brief_description>
<description>
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
</methods>
<members>
@@ -33,5 +31,11 @@
</constant>
<constant name="OP_CROSS" value="8" enum="Operator">
</constant>
+ <constant name="OP_ATAN2" value="9" enum="Operator">
+ </constant>
+ <constant name="OP_REFLECT" value="10" enum="Operator">
+ </constant>
+ <constant name="OP_STEP" value="11" enum="Operator">
+ </constant>
</constants>
</class>
diff --git a/doc/classes/VisualShaderNodeVectorRefract.xml b/doc/classes/VisualShaderNodeVectorRefract.xml
new file mode 100644
index 0000000000..4df072040a
--- /dev/null
+++ b/doc/classes/VisualShaderNodeVectorRefract.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<class name="VisualShaderNodeVectorRefract" inherits="VisualShaderNode" category="Core" version="3.2">
+ <brief_description>
+ </brief_description>
+ <description>
+ </description>
+ <tutorials>
+ </tutorials>
+ <methods>
+ </methods>
+ <constants>
+ </constants>
+</class>
diff --git a/doc/classes/VisualShaderNodeVectorScalarSmoothStep.xml b/doc/classes/VisualShaderNodeVectorScalarSmoothStep.xml
new file mode 100644
index 0000000000..4334eee7c1
--- /dev/null
+++ b/doc/classes/VisualShaderNodeVectorScalarSmoothStep.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<class name="VisualShaderNodeVectorScalarSmoothStep" inherits="VisualShaderNode" category="Core" version="3.2">
+ <brief_description>
+ </brief_description>
+ <description>
+ </description>
+ <tutorials>
+ </tutorials>
+ <methods>
+ </methods>
+ <constants>
+ </constants>
+</class>
diff --git a/doc/classes/VisualShaderNodeVectorScalarStep.xml b/doc/classes/VisualShaderNodeVectorScalarStep.xml
new file mode 100644
index 0000000000..ad8cac059b
--- /dev/null
+++ b/doc/classes/VisualShaderNodeVectorScalarStep.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<class name="VisualShaderNodeVectorScalarStep" inherits="VisualShaderNode" category="Core" version="3.2">
+ <brief_description>
+ </brief_description>
+ <description>
+ </description>
+ <tutorials>
+ </tutorials>
+ <methods>
+ </methods>
+ <constants>
+ </constants>
+</class>
diff --git a/doc/classes/VisualShaderNodeVectorSmoothStep.xml b/doc/classes/VisualShaderNodeVectorSmoothStep.xml
new file mode 100644
index 0000000000..59acff7d05
--- /dev/null
+++ b/doc/classes/VisualShaderNodeVectorSmoothStep.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<class name="VisualShaderNodeVectorSmoothStep" inherits="VisualShaderNode" category="Core" version="3.2">
+ <brief_description>
+ </brief_description>
+ <description>
+ </description>
+ <tutorials>
+ </tutorials>
+ <methods>
+ </methods>
+ <constants>
+ </constants>
+</class>
diff --git a/doc/classes/WeakRef.xml b/doc/classes/WeakRef.xml
index 4a0f3588c2..6845c81a13 100644
--- a/doc/classes/WeakRef.xml
+++ b/doc/classes/WeakRef.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="WeakRef" inherits="Reference" category="Core" version="3.1">
+<class name="WeakRef" inherits="Reference" category="Core" version="3.2">
<brief_description>
Holds an [Object], but does not contribute to the reference count if the object is a reference.
</brief_description>
@@ -8,8 +8,6 @@
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
<method name="get_ref" qualifiers="const">
<return type="Variant">
diff --git a/doc/classes/WindowDialog.xml b/doc/classes/WindowDialog.xml
index f7f2d10fcd..c5d66af984 100644
--- a/doc/classes/WindowDialog.xml
+++ b/doc/classes/WindowDialog.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="WindowDialog" inherits="Popup" category="Core" version="3.1">
+<class name="WindowDialog" inherits="Popup" category="Core" version="3.2">
<brief_description>
Base class for window dialogs.
</brief_description>
@@ -8,20 +8,18 @@
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
<method name="get_close_button">
<return type="TextureButton">
</return>
<description>
- Return the close [TextureButton].
+ Returns the close [TextureButton].
</description>
</method>
</methods>
<members>
<member name="resizable" type="bool" setter="set_resizable" getter="get_resizable">
- If [code]true[/code] the user can resize the window. Default value: [code]false[/code].
+ If [code]true[/code], the user can resize the window. Default value: [code]false[/code].
</member>
<member name="window_title" type="String" setter="set_title" getter="get_title">
The text displayed in the window's title bar.
diff --git a/doc/classes/World.xml b/doc/classes/World.xml
index 4e954acd48..c8e6944b83 100644
--- a/doc/classes/World.xml
+++ b/doc/classes/World.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="World" inherits="Resource" category="Core" version="3.1">
+<class name="World" inherits="Resource" category="Core" version="3.2">
<brief_description>
Class that has everything pertaining to a world.
</brief_description>
@@ -9,8 +9,6 @@
<tutorials>
<link>https://docs.godotengine.org/en/latest/tutorials/physics/ray-casting.html</link>
</tutorials>
- <demos>
- </demos>
<methods>
</methods>
<members>
diff --git a/doc/classes/World2D.xml b/doc/classes/World2D.xml
index 9c3d66dade..66ef18f8f4 100644
--- a/doc/classes/World2D.xml
+++ b/doc/classes/World2D.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="World2D" inherits="Resource" category="Core" version="3.1">
+<class name="World2D" inherits="Resource" category="Core" version="3.2">
<brief_description>
Class that has everything pertaining to a 2D world.
</brief_description>
@@ -9,8 +9,6 @@
<tutorials>
<link>https://docs.godotengine.org/en/latest/tutorials/physics/ray-casting.html</link>
</tutorials>
- <demos>
- </demos>
<methods>
</methods>
<members>
diff --git a/doc/classes/WorldEnvironment.xml b/doc/classes/WorldEnvironment.xml
index 45e1af4e42..b4524bfea0 100644
--- a/doc/classes/WorldEnvironment.xml
+++ b/doc/classes/WorldEnvironment.xml
@@ -1,23 +1,21 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="WorldEnvironment" inherits="Node" category="Core" version="3.1">
+<class name="WorldEnvironment" inherits="Node" category="Core" version="3.2">
<brief_description>
- Default environment properties for the entire scene (post-processing effects, lightning and background settings).
+ Default environment properties for the entire scene (post-processing effects, lighting and background settings).
</brief_description>
<description>
- The [code]WorldEnvironment[/code] node is used to configure the default [Environment] for the scene.
- The parameters defined in the [code]WorldEnvironment[/code] can be overridden by an [Environment] node set on the current [Camera]. Additionally, only one [code]WorldEnvironment[/code] may be instanced in a given scene at a time.
- The [code]WorldEnvironment[/code] allows the user to specify default lighting parameters (e.g. ambient lighting), various post-processing effects (e.g. SSAO, DOF, Tonemapping), and how to draw the background (e.g. solid color, skybox). Usually, these are added in order to improve the realism/color balance of the scene.
+ The [WorldEnvironment] node is used to configure the default [Environment] for the scene.
+ The parameters defined in the [WorldEnvironment] can be overridden by an [Environment] node set on the current [Camera]. Additionally, only one [WorldEnvironment] may be instanced in a given scene at a time.
+ The [WorldEnvironment] allows the user to specify default lighting parameters (e.g. ambient lighting), various post-processing effects (e.g. SSAO, DOF, Tonemapping), and how to draw the background (e.g. solid color, skybox). Usually, these are added in order to improve the realism/color balance of the scene.
</description>
<tutorials>
<link>https://docs.godotengine.org/en/latest/tutorials/3d/environment_and_post_processing.html</link>
</tutorials>
- <demos>
- </demos>
<methods>
</methods>
<members>
<member name="environment" type="Environment" setter="set_environment" getter="get_environment">
- The [Environment] resource used by this [code]WorldEnvironment[/code], defining the default properties.
+ The [Environment] resource used by this [WorldEnvironment], defining the default properties.
</member>
</members>
<constants>
diff --git a/doc/classes/XMLParser.xml b/doc/classes/XMLParser.xml
index fb03ab1692..a11e95db79 100644
--- a/doc/classes/XMLParser.xml
+++ b/doc/classes/XMLParser.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="XMLParser" inherits="Reference" category="Core" version="3.1">
+<class name="XMLParser" inherits="Reference" category="Core" version="3.2">
<brief_description>
Low-level class for creating parsers for XML files.
</brief_description>
@@ -8,8 +8,6 @@
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
<method name="get_attribute_count" qualifiers="const">
<return type="int">
diff --git a/doc/classes/YSort.xml b/doc/classes/YSort.xml
index 45ae8645b1..b9f3fa914b 100644
--- a/doc/classes/YSort.xml
+++ b/doc/classes/YSort.xml
@@ -1,20 +1,19 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="YSort" inherits="Node2D" category="Core" version="3.1">
+<class name="YSort" inherits="Node2D" category="Core" version="3.2">
<brief_description>
Sort all child nodes based on their Y positions.
</brief_description>
<description>
Sort all child nodes based on their Y positions. The child node must inherit from [CanvasItem] for it to be sorted. Nodes that have a higher Y position will be drawn later, so they will appear on top of nodes that have a lower Y position.
+ Nesting of YSort nodes is possible. Children YSort nodes will be sorted in the same space as the parent YSort, allowing to better organize a scene or divide it in multiple ones, yet keep the unique sorting.
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
</methods>
<members>
<member name="sort_enabled" type="bool" setter="set_sort_enabled" getter="is_sort_enabled">
- If [code]true[/code] child nodes are sorted, otherwise sorting is disabled. Default: [code]true[/code].
+ If [code]true[/code], child nodes are sorted, otherwise sorting is disabled. Default: [code]true[/code].
</member>
</members>
<constants>
diff --git a/doc/classes/bool.xml b/doc/classes/bool.xml
index 0fec8eb530..9ed029a500 100644
--- a/doc/classes/bool.xml
+++ b/doc/classes/bool.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="bool" category="Built-In Types" version="3.1">
+<class name="bool" category="Built-In Types" version="3.2">
<brief_description>
Boolean built-in type
</brief_description>
@@ -8,8 +8,6 @@
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
<method name="bool">
<return type="bool">
@@ -17,7 +15,7 @@
<argument index="0" name="from" type="int">
</argument>
<description>
- Cast an [int] value to a boolean value, this method will return true if called with an integer value different to 0 and false in other case.
+ Cast an [int] value to a boolean value, this method will return [code]true[/code] if called with an integer value different to 0 and [code]false[/code] in other case.
</description>
</method>
<method name="bool">
@@ -26,7 +24,7 @@
<argument index="0" name="from" type="float">
</argument>
<description>
- Cast a [float] value to a boolean value, this method will return true if called with a floating point value different to 0 and false in other case.
+ Cast a [float] value to a boolean value, this method will return [code]true[/code] if called with a floating point value different to 0 and [code]false[/code] in other case.
</description>
</method>
<method name="bool">
@@ -35,7 +33,7 @@
<argument index="0" name="from" type="String">
</argument>
<description>
- Cast a [String] value to a boolean value, this method will return true if called with a non empty string and false in other case. Examples: [code]bool('False')[/code] returns true, [code]bool('')[/code]. returns false
+ Cast a [String] value to a boolean value, this method will return [code]true[/code] if called with a non empty string and [code]false[/code] in other case. Examples: [code]bool('False')[/code] returns [code]true[/code], [code]bool('')[/code] returns [code]false[/code].
</description>
</method>
</methods>
diff --git a/doc/classes/float.xml b/doc/classes/float.xml
index 0c5536b5fe..506fb643e1 100644
--- a/doc/classes/float.xml
+++ b/doc/classes/float.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="float" category="Built-In Types" version="3.1">
+<class name="float" category="Built-In Types" version="3.2">
<brief_description>
Float built-in type
</brief_description>
@@ -8,8 +8,6 @@
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
<method name="float">
<return type="float">
@@ -17,7 +15,7 @@
<argument index="0" name="from" type="bool">
</argument>
<description>
- Cast a [bool] value to a floating point value, [code]float(true)[/code] will be equals to 1.0 and [code]float(false)[/code] will be equals to 0.0.
+ Cast a [bool] value to a floating point value, [code]float(true)[/code] will be equal to 1.0 and [code]float(false)[/code] will be equal to 0.0.
</description>
</method>
<method name="float">
@@ -26,7 +24,7 @@
<argument index="0" name="from" type="int">
</argument>
<description>
- Cast an [int] value to a floating point value, [code]float(1)[/code] will be equals to 1.0.
+ Cast an [int] value to a floating point value, [code]float(1)[/code] will be equal to 1.0.
</description>
</method>
<method name="float">
@@ -35,7 +33,7 @@
<argument index="0" name="from" type="String">
</argument>
<description>
- Cast a [String] value to a floating point value. This method accepts float value strings like [code] '1.23' [/code] and exponential notation strings for its parameter so calling [code] float('1e3') [/code] will return 1000.0 and calling [code] float('1e-3') [/code] will return 0.001.
+ Cast a [String] value to a floating point value. This method accepts float value strings like [code]"1.23"[/code] and exponential notation strings for its parameter so calling [code]float("1e3")[/code] will return 1000.0 and calling [code]float("1e-3")[/code] will return 0.001.
</description>
</method>
</methods>
diff --git a/doc/classes/int.xml b/doc/classes/int.xml
index 4855fa2848..dad0f0d8c0 100644
--- a/doc/classes/int.xml
+++ b/doc/classes/int.xml
@@ -1,15 +1,27 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="int" category="Built-In Types" version="3.1">
+<class name="int" category="Built-In Types" version="3.2">
<brief_description>
Integer built-in type.
</brief_description>
<description>
- Integer built-in type.
+ Signed 64-bit integer type.
+ It can take values in the interval [code][-2^63, 2^63 - 1][/code], i.e. [code][-9223372036854775808, 9223372036854775807][/code]. Exceeding those bounds will wrap around.
+ [int] is a [Variant] type, and will thus be used when assigning an integer value to a [Variant]. It can also be enforced with the [code]: int[/code] type hint.
+ [codeblock]
+ var my_variant = 0 # int, value 0
+ my_variant += 4.2 # float, value 4.2
+ var my_int: int = 1 # int, value 1
+ my_int = 4.2 # int, value 4, the right value is implicitly cast to int
+ my_int = int("6.7") # int, value 6, the String is explicitly cast with [method int]
+
+ var max_int = 9223372036854775807
+ print(max_int) # 9223372036854775807, OK
+ max_int += 1
+ print(max_int) # -9223372036854775808, we overflowed and wrapped around
+ [/codeblock]
</description>
<tutorials>
</tutorials>
- <demos>
- </demos>
<methods>
<method name="int">
<return type="int">
diff --git a/doc/tools/doc_status.py b/doc/tools/doc_status.py
index 4bb4342d5f..974ac2d05c 100644
--- a/doc/tools/doc_status.py
+++ b/doc/tools/doc_status.py
@@ -261,7 +261,7 @@ class ClassStatus:
for sub_tag in list(tag):
status.progresses[tag.tag].increment(len(sub_tag.text.strip()) > 0)
- elif tag.tag in ['tutorials', 'demos']:
+ elif tag.tag in ['tutorials']:
pass # Ignore those tags for now
elif tag.tag in ['theme_items']:
diff --git a/doc/tools/makerst.py b/doc/tools/makerst.py
index 7b7cc52547..454c71d3c7 100755
--- a/doc/tools/makerst.py
+++ b/doc/tools/makerst.py
@@ -1,73 +1,545 @@
-#!/usr/bin/env python
-# -*- coding: utf-8 -*-
+#!/usr/bin/env python3
-import codecs
-import sys
+import argparse
import os
import re
import xml.etree.ElementTree as ET
+from collections import OrderedDict
-input_list = []
-cur_file = ""
+# Uncomment to do type checks. I have it commented out so it works below Python 3.5
+#from typing import List, Dict, TextIO, Tuple, Iterable, Optional, DefaultDict, Any, Union
# http(s)://docs.godotengine.org/<langcode>/<tag>/path/to/page.html(#fragment-tag)
-godot_docs_pattern = re.compile('^http(?:s)?:\/\/docs\.godotengine\.org\/(?:[a-zA-Z0-9\.\-_]*)\/(?:[a-zA-Z0-9\.\-_]*)\/(.*)\.html(#.*)?$')
+GODOT_DOCS_PATTERN = re.compile(r'^http(?:s)?://docs\.godotengine\.org/(?:[a-zA-Z0-9.\-_]*)/(?:[a-zA-Z0-9.\-_]*)/(.*)\.html(#.*)?$')
-for arg in sys.argv[1:]:
- if arg.endswith(os.sep):
- arg = arg[:-1]
- input_list.append(arg)
-if len(input_list) < 1:
- print('usage: makerst.py <path to folders> and/or <path to .xml files> (order of arguments irrelevant)')
- print('example: makerst.py "../../modules/" "../classes" path_to/some_class.xml')
- sys.exit(0)
+def print_error(error, state): # type: (str, State) -> None
+ print(error)
+ state.errored = True
-def validate_tag(elem, tag):
- if elem.tag != tag:
- print("Tag mismatch, expected '" + tag + "', got " + elem.tag)
- sys.exit(255)
+class TypeName:
+ def __init__(self, type_name, enum=None): # type: (str, Optional[str]) -> None
+ self.type_name = type_name
+ self.enum = enum
+ def to_rst(self, state): # type: ("State") -> str
+ if self.enum is not None:
+ return make_enum(self.enum, state)
+ elif self.type_name == "void":
+ return "void"
+ else:
+ return make_type(self.type_name, state)
+
+ @classmethod
+ def from_element(cls, element): # type: (ET.Element) -> "TypeName"
+ return cls(element.attrib["type"], element.get("enum"))
+
+
+class PropertyDef:
+ def __init__(self, name, type_name, setter, getter, text): # type: (str, TypeName, Optional[str], Optional[str], Optional[str]) -> None
+ self.name = name
+ self.type_name = type_name
+ self.setter = setter
+ self.getter = getter
+ self.text = text
+
+class ParameterDef:
+ def __init__(self, name, type_name, default_value): # type: (str, TypeName, Optional[str]) -> None
+ self.name = name
+ self.type_name = type_name
+ self.default_value = default_value
+
+
+class SignalDef:
+ def __init__(self, name, parameters, description): # type: (str, List[ParameterDef], Optional[str]) -> None
+ self.name = name
+ self.parameters = parameters
+ self.description = description
+
+
+class MethodDef:
+ def __init__(self, name, return_type, parameters, description, qualifiers): # type: (str, TypeName, List[ParameterDef], Optional[str], Optional[str]) -> None
+ self.name = name
+ self.return_type = return_type
+ self.parameters = parameters
+ self.description = description
+ self.qualifiers = qualifiers
+
+
+class ConstantDef:
+ def __init__(self, name, value, text): # type: (str, str, Optional[str]) -> None
+ self.name = name
+ self.value = value
+ self.text = text
+
+
+class EnumDef:
+ def __init__(self, name): # type: (str) -> None
+ self.name = name
+ self.values = OrderedDict() # type: OrderedDict[str, ConstantDef]
+
+
+class ThemeItemDef:
+ def __init__(self, name, type_name): # type: (str, TypeName) -> None
+ self.name = name
+ self.type_name = type_name
+
+
+class ClassDef:
+ def __init__(self, name): # type: (str) -> None
+ self.name = name
+ self.constants = OrderedDict() # type: OrderedDict[str, ConstantDef]
+ self.enums = OrderedDict() # type: OrderedDict[str, EnumDef]
+ self.properties = OrderedDict() # type: OrderedDict[str, PropertyDef]
+ self.methods = OrderedDict() # type: OrderedDict[str, List[MethodDef]]
+ self.signals = OrderedDict() # type: OrderedDict[str, SignalDef]
+ self.inherits = None # type: Optional[str]
+ self.category = None # type: Optional[str]
+ self.brief_description = None # type: Optional[str]
+ self.description = None # type: Optional[str]
+ self.theme_items = None # type: Optional[OrderedDict[str, List[ThemeItemDef]]]
+ self.tutorials = [] # type: List[str]
+
+
+class State:
+ def __init__(self): # type: () -> None
+ # Has any error been reported?
+ self.errored = False
+ self.classes = OrderedDict() # type: OrderedDict[str, ClassDef]
+ self.current_class = "" # type: str
+
+ def parse_class(self, class_root): # type: (ET.Element) -> None
+ class_name = class_root.attrib["name"]
+
+ class_def = ClassDef(class_name)
+ self.classes[class_name] = class_def
+
+ inherits = class_root.get("inherits")
+ if inherits is not None:
+ class_def.inherits = inherits
+
+ category = class_root.get("category")
+ if category is not None:
+ class_def.category = category
+
+ brief_desc = class_root.find("brief_description")
+ if brief_desc is not None and brief_desc.text:
+ class_def.brief_description = brief_desc.text
+
+ desc = class_root.find("description")
+ if desc is not None and desc.text:
+ class_def.description = desc.text
+
+ properties = class_root.find("members")
+ if properties is not None:
+ for property in properties:
+ assert property.tag == "member"
+
+ property_name = property.attrib["name"]
+ if property_name in class_def.properties:
+ print_error("Duplicate property '{}', file: {}".format(property_name, class_name), self)
+ continue
+
+ type_name = TypeName.from_element(property)
+ setter = property.get("setter") or None # Use or None so '' gets turned into None.
+ getter = property.get("getter") or None
+
+ property_def = PropertyDef(property_name, type_name, setter, getter, property.text)
+ class_def.properties[property_name] = property_def
+
+ methods = class_root.find("methods")
+ if methods is not None:
+ for method in methods:
+ assert method.tag == "method"
+
+ method_name = method.attrib["name"]
+ qualifiers = method.get("qualifiers")
+
+ return_element = method.find("return")
+ if return_element is not None:
+ return_type = TypeName.from_element(return_element)
+
+ else:
+ return_type = TypeName("void")
+
+ params = parse_arguments(method)
+
+ desc_element = method.find("description")
+ method_desc = None
+ if desc_element is not None:
+ method_desc = desc_element.text
+
+ method_def = MethodDef(method_name, return_type, params, method_desc, qualifiers)
+ if method_name not in class_def.methods:
+ class_def.methods[method_name] = []
+
+ class_def.methods[method_name].append(method_def)
+
+ constants = class_root.find("constants")
+ if constants is not None:
+ for constant in constants:
+ assert constant.tag == "constant"
+
+ constant_name = constant.attrib["name"]
+ value = constant.attrib["value"]
+ enum = constant.get("enum")
+ constant_def = ConstantDef(constant_name, value, constant.text)
+ if enum is None:
+ if constant_name in class_def.constants:
+ print_error("Duplicate constant '{}', file: {}".format(constant_name, class_name), self)
+ continue
+
+ class_def.constants[constant_name] = constant_def
+
+ else:
+ if enum in class_def.enums:
+ enum_def = class_def.enums[enum]
+
+ else:
+ enum_def = EnumDef(enum)
+ class_def.enums[enum] = enum_def
+
+ enum_def.values[constant_name] = constant_def
+
+ signals = class_root.find("signals")
+ if signals is not None:
+ for signal in signals:
+ assert signal.tag == "signal"
+
+ signal_name = signal.attrib["name"]
+
+ if signal_name in class_def.signals:
+ print_error("Duplicate signal '{}', file: {}".format(signal_name, class_name), self)
+ continue
+
+ params = parse_arguments(signal)
+
+ desc_element = signal.find("description")
+ signal_desc = None
+ if desc_element is not None:
+ signal_desc = desc_element.text
+
+ signal_def = SignalDef(signal_name, params, signal_desc)
+ class_def.signals[signal_name] = signal_def
+
+ theme_items = class_root.find("theme_items")
+ if theme_items is not None:
+ class_def.theme_items = OrderedDict()
+ for theme_item in theme_items:
+ assert theme_item.tag == "theme_item"
+
+ theme_item_name = theme_item.attrib["name"]
+ theme_item_def = ThemeItemDef(theme_item_name, TypeName.from_element(theme_item))
+ if theme_item_name not in class_def.theme_items:
+ class_def.theme_items[theme_item_name] = []
+ class_def.theme_items[theme_item_name].append(theme_item_def)
+
+ tutorials = class_root.find("tutorials")
+ if tutorials is not None:
+ for link in tutorials:
+ assert link.tag == "link"
+
+ if link.text is not None:
+ class_def.tutorials.append(link.text)
+
+
+
+ def sort_classes(self): # type: () -> None
+ self.classes = OrderedDict(sorted(self.classes.items(), key=lambda t: t[0]))
+
+
+def parse_arguments(root): # type: (ET.Element) -> List[ParameterDef]
+ param_elements = root.findall("argument")
+ params = [None] * len(param_elements) # type: Any
+ for param_element in param_elements:
+ param_name = param_element.attrib["name"]
+ index = int(param_element.attrib["index"])
+ type_name = TypeName.from_element(param_element)
+ default = param_element.get("default")
+
+ params[index] = ParameterDef(param_name, type_name, default)
+
+ cast = params # type: List[ParameterDef]
+
+ return cast
+
+
+def main(): # type: () -> None
+ parser = argparse.ArgumentParser()
+ parser.add_argument("path", nargs="+", help="A path to an XML file or a directory containing XML files to parse.")
+ group = parser.add_mutually_exclusive_group()
+ group.add_argument("--output", "-o", default=".", help="The directory to save output .rst files in.")
+ group.add_argument("--dry-run", action="store_true", help="If passed, no output will be generated and XML files are only checked for errors.")
+ args = parser.parse_args()
+
+ file_list = [] # type: List[str]
+
+ for path in args.path:
+ # Cut off trailing slashes so os.path.basename doesn't choke.
+ if path.endswith(os.sep):
+ path = path[:-1]
+
+ if os.path.basename(path) == 'modules':
+ for subdir, dirs, _ in os.walk(path):
+ if 'doc_classes' in dirs:
+ doc_dir = os.path.join(subdir, 'doc_classes')
+ class_file_names = (f for f in os.listdir(doc_dir) if f.endswith('.xml'))
+ file_list += (os.path.join(doc_dir, f) for f in class_file_names)
+
+ elif os.path.isdir(path):
+ file_list += (os.path.join(path, f) for f in os.listdir(path) if f.endswith('.xml'))
+
+ elif os.path.isfile(path):
+ if not path.endswith(".xml"):
+ print("Got non-.xml file '{}' in input, skipping.".format(path))
+ continue
+
+ file_list.append(path)
+
+ classes = {} # type: Dict[str, ET.Element]
+ state = State()
+
+ for cur_file in file_list:
+ try:
+ tree = ET.parse(cur_file)
+ except ET.ParseError as e:
+ print_error("Parse error reading file '{}': {}".format(cur_file, e), state)
+ continue
+ doc = tree.getroot()
+
+ if 'version' not in doc.attrib:
+ print_error("Version missing from 'doc', file: {}".format(cur_file), state)
+ continue
+
+ name = doc.attrib["name"]
+ if name in classes:
+ print_error("Duplicate class '{}'".format(name), state)
+ continue
+
+ classes[name] = doc
+
+ for name, data in classes.items():
+ try:
+ state.parse_class(data)
+ except Exception as e:
+ print_error("Exception while parsing class '{}': {}".format(name, e), state)
+
+ state.sort_classes()
-class_names = []
-classes = {}
+ for class_name, class_def in state.classes.items():
+ state.current_class = class_name
+ make_rst_class(class_def, state, args.dry_run, args.output)
+ if state.errored:
+ exit(1)
-def ul_string(str, ul):
- str += "\n"
- for i in range(len(str) - 1):
- str += ul
- str += "\n"
- return str
+def make_rst_class(class_def, state, dry_run, output_dir): # type: (ClassDef, State, bool, str) -> None
+ class_name = class_def.name
+ if dry_run:
+ f = open(os.devnull, "w")
+ else:
+ f = open(os.path.join(output_dir, "class_" + class_name.lower() + '.rst'), 'w', encoding='utf-8')
+
+ # Warn contributors not to edit this file directly
+ f.write(".. Generated automatically by doc/tools/makerst.py in Godot's source tree.\n")
+ f.write(".. DO NOT EDIT THIS FILE, but the " + class_name + ".xml source instead.\n")
+ f.write(".. The source is found in doc/classes or modules/<name>/doc_classes.\n\n")
+
+ f.write(".. _class_" + class_name + ":\n\n")
+ f.write(make_heading(class_name, '='))
+
+ # Inheritance tree
+ # Ascendants
+ if class_def.inherits:
+ inh = class_def.inherits.strip()
+ f.write('**Inherits:** ')
+ first = True
+ while inh in state.classes:
+ if not first:
+ f.write(" **<** ")
+ else:
+ first = False
+
+ f.write(make_type(inh, state))
+ inode = state.classes[inh].inherits
+ if inode:
+ inh = inode.strip()
+ else:
+ break
+ f.write("\n\n")
+
+ # Descendents
+ inherited = []
+ for c in state.classes.values():
+ if c.inherits and c.inherits.strip() == class_name:
+ inherited.append(c.name)
+
+ if len(inherited):
+ f.write('**Inherited By:** ')
+ for i, child in enumerate(inherited):
+ if i > 0:
+ f.write(", ")
+ f.write(make_type(child, state))
+ f.write("\n\n")
+
+ # Category
+ if class_def.category is not None:
+ f.write('**Category:** ' + class_def.category.strip() + "\n\n")
+
+ # Brief description
+ f.write(make_heading('Brief Description', '-'))
+ if class_def.brief_description is not None:
+ f.write(rstize_text(class_def.brief_description.strip(), state) + "\n\n")
+
+ # Properties overview
+ if len(class_def.properties) > 0:
+ f.write(make_heading('Properties', '-'))
+ ml = [] # type: List[Tuple[str, str]]
+ for property_def in class_def.properties.values():
+ type_rst = property_def.type_name.to_rst(state)
+ ref = ":ref:`{0}<class_{1}_property_{0}>`".format(property_def.name, class_name)
+ ml.append((type_rst, ref))
+ format_table(f, ml)
+
+ # Methods overview
+ if len(class_def.methods) > 0:
+ f.write(make_heading('Methods', '-'))
+ ml = []
+ for method_list in class_def.methods.values():
+ for m in method_list:
+ ml.append(make_method_signature(class_def, m, True, state))
+ format_table(f, ml)
+
+ # Theme properties
+ if class_def.theme_items is not None and len(class_def.theme_items) > 0:
+ f.write(make_heading('Theme Properties', '-'))
+ ml = []
+ for theme_item_list in class_def.theme_items.values():
+ for theme_item in theme_item_list:
+ ml.append((theme_item.type_name.to_rst(state), theme_item.name))
+ format_table(f, ml)
+
+ # Signals
+ if len(class_def.signals) > 0:
+ f.write(make_heading('Signals', '-'))
+ for signal in class_def.signals.values():
+ #f.write(".. _class_{}_{}:\n\n".format(class_name, signal.name))
+ f.write(".. _class_{}_signal_{}:\n\n".format(class_name, signal.name))
+ _, signature = make_method_signature(class_def, signal, False, state)
+ f.write("- {}\n\n".format(signature))
+
+ if signal.description is None or signal.description.strip() == '':
+ continue
+ f.write(rstize_text(signal.description.strip(), state))
+ f.write("\n\n")
+
+ # Enums
+ if len(class_def.enums) > 0:
+ f.write(make_heading('Enumerations', '-'))
+ for e in class_def.enums.values():
+ f.write(".. _enum_{}_{}:\n\n".format(class_name, e.name))
+ # Sphinx seems to divide the bullet list into individual <ul> tags if we weave the labels into it.
+ # As such I'll put them all above the list. Won't be perfect but better than making the list visually broken.
+ # As to why I'm not modifying the reference parser to directly link to the _enum label:
+ # If somebody gets annoyed enough to fix it, all existing references will magically improve.
+ for value in e.values.values():
+ f.write(".. _class_{}_constant_{}:\n\n".format(class_name, value.name))
+
+ f.write("enum **{}**:\n\n".format(e.name))
+ for value in e.values.values():
+ f.write("- **{}** = **{}**".format(value.name, value.value))
+ if value.text is not None and value.text.strip() != '':
+ f.write(' --- ' + rstize_text(value.text.strip(), state))
+ f.write('\n\n')
+
+ # Constants
+ if len(class_def.constants) > 0:
+ f.write(make_heading('Constants', '-'))
+ # Sphinx seems to divide the bullet list into individual <ul> tags if we weave the labels into it.
+ # As such I'll put them all above the list. Won't be perfect but better than making the list visually broken.
+ for constant in class_def.constants.values():
+ f.write(".. _class_{}_constant_{}:\n\n".format(class_name, constant.name))
+
+ for constant in class_def.constants.values():
+ f.write("- **{}** = **{}**".format(constant.name, constant.value))
+ if constant.text is not None and constant.text.strip() != '':
+ f.write(' --- ' + rstize_text(constant.text.strip(), state))
+ f.write('\n\n')
+
+ # Class description
+ if class_def.description is not None and class_def.description.strip() != '':
+ f.write(make_heading('Description', '-'))
+ f.write(rstize_text(class_def.description.strip(), state) + "\n\n")
-def make_class_list(class_list, columns):
- f = codecs.open('class_list.rst', 'wb', 'utf-8')
- prev = 0
- col_max = len(class_list) / columns + 1
+ # Online tutorials
+ if len(class_def.tutorials) > 0:
+ f.write(make_heading('Tutorials', '-'))
+ for t in class_def.tutorials:
+ link = t.strip()
+ f.write("- " + make_url(link) + "\n\n")
+
+ # Property descriptions
+ if len(class_def.properties) > 0:
+ f.write(make_heading('Property Descriptions', '-'))
+ for property_def in class_def.properties.values():
+ #f.write(".. _class_{}_{}:\n\n".format(class_name, property_def.name))
+ f.write(".. _class_{}_property_{}:\n\n".format(class_name, property_def.name))
+ f.write('- {} **{}**\n\n'.format(property_def.type_name.to_rst(state), property_def.name))
+
+ setget = []
+ if property_def.setter is not None and not property_def.setter.startswith("_"):
+ setget.append(("*Setter*", property_def.setter + '(value)'))
+ if property_def.getter is not None and not property_def.getter.startswith("_"):
+ setget.append(('*Getter*', property_def.getter + '()'))
+
+ if len(setget) > 0:
+ format_table(f, setget)
+
+ if property_def.text is not None and property_def.text.strip() != '':
+ f.write(rstize_text(property_def.text.strip(), state))
+ f.write('\n\n')
+
+ # Method descriptions
+ if len(class_def.methods) > 0:
+ f.write(make_heading('Method Descriptions', '-'))
+ for method_list in class_def.methods.values():
+ for i, m in enumerate(method_list):
+ if i == 0:
+ #f.write(".. _class_{}_{}:\n\n".format(class_name, m.name))
+ f.write(".. _class_{}_method_{}:\n\n".format(class_name, m.name))
+ ret_type, signature = make_method_signature(class_def, m, False, state)
+ f.write("- {} {}\n\n".format(ret_type, signature))
+
+ if m.description is None or m.description.strip() == '':
+ continue
+ f.write(rstize_text(m.description.strip(), state))
+ f.write("\n\n")
+
+
+def make_class_list(class_list, columns): # type: (List[str], int) -> None
+ # This function is no longer used.
+ f = open('class_list.rst', 'w', encoding='utf-8')
+ col_max = len(class_list) // columns + 1
print(('col max is ', col_max))
- col_count = 0
- row_count = 0
- last_initial = ''
- fit_columns = []
+ fit_columns = [] # type: List[List[str]]
- for n in range(0, columns):
- fit_columns += [[]]
+ for _ in range(0, columns):
+ fit_columns.append([])
- indexers = []
+ indexers = [] # type List[str]
last_initial = ''
- idx = 0
- for n in class_list:
- col = idx / col_max
+ for idx, name in enumerate(class_list):
+ col = idx // col_max
if col >= columns:
col = columns - 1
- fit_columns[col] += [n]
+ fit_columns[col].append(name)
idx += 1
- if n[:1] != last_initial:
- indexers += [n]
- last_initial = n[:1]
+ if name[:1] != last_initial:
+ indexers.append(name)
+ last_initial = name[:1]
row_max = 0
f.write("\n")
@@ -111,7 +583,7 @@ def make_class_list(class_list, columns):
f.close()
-def rstize_text(text, cclass):
+def rstize_text(text, state): # type: (str, State) -> str
# Linebreak + tabs in the XML should become two line breaks unless in a "codeblock"
pos = 0
while True:
@@ -128,7 +600,8 @@ def rstize_text(text, cclass):
if post_text.startswith("[codeblock]"):
end_pos = post_text.find("[/codeblock]")
if end_pos == -1:
- sys.exit("ERROR! [codeblock] without a closing tag!")
+ print_error("[codeblock] without a closing tag, file: {}".format(state.current_class), state)
+ return ""
code_text = post_text[len("[codeblock]"):end_pos]
post_text = post_text[end_pos:]
@@ -193,9 +666,16 @@ def rstize_text(text, cclass):
# Handle [tags]
inside_code = False
+ inside_url = False
+ url_has_name = False
+ url_link = ""
pos = 0
+ tag_depth = 0
+ previous_pos = 0
while True:
pos = text.find('[', pos)
+ if inside_url and (pos > previous_pos):
+ url_has_name = True
if pos == -1:
break
@@ -209,53 +689,120 @@ def rstize_text(text, cclass):
escape_post = False
- if tag_text in class_names:
- tag_text = make_type(tag_text)
+ if tag_text in state.classes:
+ if tag_text == state.current_class:
+ # We don't want references to the same class
+ tag_text = '``{}``'.format(tag_text)
+ else:
+ tag_text = make_type(tag_text, state)
escape_post = True
else: # command
cmd = tag_text
space_pos = tag_text.find(' ')
if cmd == '/codeblock':
tag_text = ''
+ tag_depth -= 1
inside_code = False
# Strip newline if the tag was alone on one
if pre_text[-1] == '\n':
pre_text = pre_text[:-1]
elif cmd == '/code':
tag_text = '``'
+ tag_depth -= 1
inside_code = False
escape_post = True
elif inside_code:
tag_text = '[' + tag_text + ']'
elif cmd.find('html') == 0:
- cmd = tag_text[:space_pos]
param = tag_text[space_pos + 1:]
tag_text = param
- elif cmd.find('method') == 0 or cmd.find('member') == 0 or cmd.find('signal') == 0:
- cmd = tag_text[:space_pos]
+ elif cmd.startswith('method') or cmd.startswith('member') or cmd.startswith('signal') or cmd.startswith('constant'):
param = tag_text[space_pos + 1:]
if param.find('.') != -1:
ss = param.split('.')
if len(ss) > 2:
- sys.exit("Bad reference: '" + param + "' in file: " + cur_file)
- (class_param, method_param) = ss
- tag_text = ':ref:`' + class_param + '.' + method_param + '<class_' + class_param + '_' + method_param + '>`'
+ print_error("Bad reference: '{}', file: {}".format(param, state.current_class), state)
+ class_param, method_param = ss
+
+ else:
+ class_param = state.current_class
+ method_param = param
+
+ ref_type = ""
+ if class_param in state.classes:
+ class_def = state.classes[class_param]
+ if cmd.startswith("method"):
+ if method_param not in class_def.methods:
+ print_error("Unresolved method '{}', file: {}".format(param, state.current_class), state)
+ ref_type = "_method"
+
+ elif cmd.startswith("member"):
+ if method_param not in class_def.properties:
+ print_error("Unresolved member '{}', file: {}".format(param, state.current_class), state)
+ ref_type = "_property"
+
+ elif cmd.startswith("signal"):
+ if method_param not in class_def.signals:
+ print_error("Unresolved signal '{}', file: {}".format(param, state.current_class), state)
+ ref_type = "_signal"
+
+ elif cmd.startswith("constant"):
+ found = False
+
+ # Search in the current class
+ search_class_defs = [class_def]
+
+ if param.find('.') == -1:
+ # Also search in @GlobalScope as a last resort if no class was specified
+ search_class_defs.append(state.classes["@GlobalScope"])
+
+ for search_class_def in search_class_defs:
+ if method_param in search_class_def.constants:
+ class_param = search_class_def.name
+ found = True
+
+ else:
+ for enum in search_class_def.enums.values():
+ if method_param in enum.values:
+ class_param = search_class_def.name
+ found = True
+ break
+
+ if not found:
+ print_error("Unresolved constant '{}', file: {}".format(param, state.current_class), state)
+ ref_type = "_constant"
+
else:
- tag_text = ':ref:`' + param + '<class_' + cclass + "_" + param + '>`'
+ print_error("Unresolved type reference '{}' in method reference '{}', file: {}".format(class_param, param, state.current_class), state)
+
+ repl_text = method_param
+ if class_param != state.current_class:
+ repl_text = "{}.{}".format(class_param, method_param)
+ tag_text = ':ref:`{}<class_{}{}_{}>`'.format(repl_text, class_param, ref_type, method_param)
escape_post = True
elif cmd.find('image=') == 0:
tag_text = "" # '![](' + cmd[6:] + ')'
elif cmd.find('url=') == 0:
- tag_text = ':ref:`' + cmd[4:] + '<' + cmd[4:] + ">`"
+ url_link = cmd[4:]
+ tag_text = '`'
+ tag_depth += 1
+ inside_url = True
+ url_has_name = False
elif cmd == '/url':
- tag_text = ''
+ tag_text = ('' if url_has_name else url_link) + " <" + url_link + ">`_"
+ tag_depth -= 1
escape_post = True
+ inside_url = False
+ url_has_name = False
elif cmd == 'center':
+ tag_depth += 1
tag_text = ''
elif cmd == '/center':
+ tag_depth -= 1
tag_text = ''
elif cmd == 'codeblock':
+ tag_depth += 1
tag_text = '\n::\n'
inside_code = True
elif cmd == 'br':
@@ -265,22 +812,35 @@ def rstize_text(text, cclass):
while post_text[0] == ' ':
post_text = post_text[1:]
elif cmd == 'i' or cmd == '/i':
+ if cmd == "/i":
+ tag_depth -= 1
+ else:
+ tag_depth += 1
tag_text = '*'
elif cmd == 'b' or cmd == '/b':
+ if cmd == "/b":
+ tag_depth -= 1
+ else:
+ tag_depth += 1
tag_text = '**'
elif cmd == 'u' or cmd == '/u':
+ if cmd == "/u":
+ tag_depth -= 1
+ else:
+ tag_depth += 1
tag_text = ''
elif cmd == 'code':
tag_text = '``'
+ tag_depth += 1
inside_code = True
elif cmd.startswith('enum '):
- tag_text = make_enum(cmd[5:])
+ tag_text = make_enum(cmd[5:], state)
else:
- tag_text = make_type(tag_text)
+ tag_text = make_type(tag_text, state)
escape_post = True
# Properly escape things like `[Node]s`
- if escape_post and post_text and post_text[0].isalnum(): # not punctuation, escape
+ if escape_post and post_text and (post_text[0].isalnum() or post_text[0] == "("): # not punctuation, escape
post_text = '\ ' + post_text
next_brac_pos = post_text.find('[', 0)
@@ -305,19 +865,23 @@ def rstize_text(text, cclass):
text = pre_text + tag_text + post_text
pos = len(pre_text) + len(tag_text)
+ previous_pos = pos
+
+ if tag_depth > 0:
+ print_error("Tag depth mismatch: too many/little open/close tags, file: {}".format(state.current_class), state)
return text
-def format_table(f, pp):
+def format_table(f, pp): # type: (TextIO, Iterable[Tuple[str, ...]]) -> None
longest_t = 0
longest_s = 0
for s in pp:
sl = len(s[0])
- if (sl > longest_s):
+ if sl > longest_s:
longest_s = sl
tl = len(s[1])
- if (tl > longest_t):
+ if tl > longest_t:
longest_t = tl
sep = "+"
@@ -330,27 +894,25 @@ def format_table(f, pp):
f.write(sep)
for s in pp:
rt = s[0]
- while (len(rt) < longest_s):
+ while len(rt) < longest_s:
rt += " "
st = s[1]
- while (len(st) < longest_t):
+ while len(st) < longest_t:
st += " "
f.write("| " + rt + " | " + st + " |\n")
f.write(sep)
f.write('\n')
-def make_type(t):
- global class_names
- if t in class_names:
- return ':ref:`' + t + '<class_' + t + '>`'
+def make_type(t, state): # type: (str, State) -> str
+ if t in state.classes:
+ return ':ref:`{0}<class_{0}>`'.format(t)
+ print_error("Unresolved type '{}', file: {}".format(t, state.current_class), state)
return t
-def make_enum(t):
- global class_names
+def make_enum(t, state): # type: (str, State) -> str
p = t.find(".")
- # Global enums such as Error are relative to @GlobalScope.
if p >= 0:
c = t[0:p]
e = t[p + 1:]
@@ -359,362 +921,85 @@ def make_enum(t):
c = "@GlobalScope"
e = "Variant." + e
else:
- # Things in GlobalScope don't have a period.
- c = "@GlobalScope"
+ c = state.current_class
e = t
- if c in class_names:
- return ':ref:`' + e + '<enum_' + c + '_' + e + '>`'
- return t
+ if c in state.classes and e not in state.classes[c].enums:
+ c = "@GlobalScope"
+ if not c in state.classes and c.startswith("_"):
+ c = c[1:] # Remove the underscore prefix
-def make_method(
- f,
- cname,
- method_data,
- declare,
- event=False,
- pp=None
-):
- if (declare or pp is None):
- t = '- '
- else:
- t = ""
-
- ret_type = 'void'
- args = list(method_data)
- mdata = {}
- mdata['argidx'] = []
- for a in args:
- if a.tag == 'return':
- idx = -1
- elif a.tag == 'argument':
- idx = int(a.attrib['index'])
- else:
- continue
+ if c in state.classes and e in state.classes[c].enums:
+ return ":ref:`{0}<enum_{1}_{0}>`".format(e, c)
+ print_error("Unresolved enum '{}', file: {}".format(t, state.current_class), state)
+ return t
- mdata['argidx'].append(idx)
- mdata[idx] = a
- if not event:
- if -1 in mdata['argidx']:
- if 'enum' in mdata[-1].attrib:
- t += make_enum(mdata[-1].attrib['enum'])
- else:
- t += make_type(mdata[-1].attrib['type'])
- else:
- t += 'void'
- t += ' '
+def make_method_signature(class_def, method_def, make_ref, state): # type: (ClassDef, Union[MethodDef, SignalDef], bool, State) -> Tuple[str, str]
+ ret_type = " "
- if declare or pp is None:
+ ref_type = "signal"
+ if isinstance(method_def, MethodDef):
+ ret_type = method_def.return_type.to_rst(state)
+ ref_type = "method"
- s = '**' + method_data.attrib['name'] + '** '
- else:
- s = ':ref:`' + method_data.attrib['name'] + '<class_' + cname + "_" + method_data.attrib['name'] + '>` '
+ out = ""
- s += '**(**'
- argfound = False
- for a in mdata['argidx']:
- arg = mdata[a]
- if a < 0:
- continue
- if a > 0:
- s += ', '
- else:
- s += ' '
+ if make_ref:
+ out += ":ref:`{0}<class_{1}_{2}_{0}>` ".format(method_def.name, class_def.name, ref_type)
+ else:
+ out += "**{}** ".format(method_def.name)
- if 'enum' in arg.attrib:
- s += make_enum(arg.attrib['enum'])
+ out += '**(**'
+ for i, arg in enumerate(method_def.parameters):
+ if i > 0:
+ out += ', '
else:
- s += make_type(arg.attrib['type'])
- if 'name' in arg.attrib:
- s += ' ' + arg.attrib['name']
- else:
- s += ' arg' + str(a)
-
- if 'default' in arg.attrib:
- s += '=' + arg.attrib['default']
+ out += ' '
- s += ' **)**'
+ out += "{} {}".format(arg.type_name.to_rst(state), arg.name)
- if 'qualifiers' in method_data.attrib:
- s += ' ' + method_data.attrib['qualifiers']
+ if arg.default_value is not None:
+ out += '=' + arg.default_value
- if (not declare):
- if (pp != None):
- pp.append((t, s))
+ if isinstance(method_def, MethodDef) and method_def.qualifiers is not None and 'vararg' in method_def.qualifiers:
+ if len(method_def.parameters) > 0:
+ out += ', ...'
else:
- f.write("- " + t + " " + s + "\n")
- else:
- f.write(t + s + "\n")
-
-
-def make_properties(
- f,
- cname,
- prop_data,
- description=False,
- pp=None
-):
- t = ""
- if 'enum' in prop_data.attrib:
- t += make_enum(prop_data.attrib['enum'])
- else:
- t += make_type(prop_data.attrib['type'])
-
- if description:
- s = '**' + prop_data.attrib['name'] + '**'
- setget = []
- if 'setter' in prop_data.attrib and prop_data.attrib['setter'] != '' and not prop_data.attrib['setter'].startswith('_'):
- setget.append(("*Setter*", prop_data.attrib['setter'] + '(value)'))
- if 'getter' in prop_data.attrib and prop_data.attrib['getter'] != '' and not prop_data.attrib['getter'].startswith('_'):
- setget.append(('*Getter*', prop_data.attrib['getter'] + '()'))
- else:
- s = ':ref:`' + prop_data.attrib['name'] + '<class_' + cname + "_" + prop_data.attrib['name'] + '>`'
-
- if (pp != None):
- pp.append((t, s))
- elif description:
- f.write('- ' + t + ' ' + s + '\n\n')
- if len(setget) > 0:
- format_table(f, setget)
-
-
-def make_heading(title, underline):
- return title + '\n' + underline * len(title) + "\n\n"
-
+ out += ' ...'
-def make_rst_class(node):
- name = node.attrib['name']
+ out += ' **)**'
- f = codecs.open("class_" + name.lower() + '.rst', 'wb', 'utf-8')
+ if isinstance(method_def, MethodDef) and method_def.qualifiers is not None:
+ out += ' ' + method_def.qualifiers
- # Warn contributors not to edit this file directly
- f.write(".. Generated automatically by doc/tools/makerst.py in Godot's source tree.\n")
- f.write(".. DO NOT EDIT THIS FILE, but the " + name + ".xml source instead.\n")
- f.write(".. The source is found in doc/classes or modules/<name>/doc_classes.\n\n")
+ return ret_type, out
- f.write(".. _class_" + name + ":\n\n")
- f.write(make_heading(name, '='))
- # Inheritance tree
- # Ascendents
- if 'inherits' in node.attrib:
- inh = node.attrib['inherits'].strip()
- f.write('**Inherits:** ')
- first = True
- while (inh in classes):
- if (not first):
- f.write(" **<** ")
- else:
- first = False
+def make_heading(title, underline): # type: (str, str) -> str
+ return title + '\n' + (underline * len(title)) + "\n\n"
- f.write(make_type(inh))
- inode = classes[inh]
- if ('inherits' in inode.attrib):
- inh = inode.attrib['inherits'].strip()
- else:
- inh = None
- f.write("\n\n")
- # Descendents
- inherited = []
- for cn in classes:
- c = classes[cn]
- if 'inherits' in c.attrib:
- if (c.attrib['inherits'].strip() == name):
- inherited.append(c.attrib['name'])
- if (len(inherited)):
- f.write('**Inherited By:** ')
- for i in range(len(inherited)):
- if (i > 0):
- f.write(", ")
- f.write(make_type(inherited[i]))
- f.write("\n\n")
-
- # Category
- if 'category' in node.attrib:
- f.write('**Category:** ' + node.attrib['category'].strip() + "\n\n")
-
- # Brief description
- f.write(make_heading('Brief Description', '-'))
- briefd = node.find('brief_description')
- if briefd != None:
- f.write(rstize_text(briefd.text.strip(), name) + "\n\n")
-
- # Properties overview
- members = node.find('members')
- if members != None and len(list(members)) > 0:
- f.write(make_heading('Properties', '-'))
- ml = []
- for m in list(members):
- make_properties(f, name, m, False, ml)
- format_table(f, ml)
-
- # Methods overview
- methods = node.find('methods')
- if methods != None and len(list(methods)) > 0:
- f.write(make_heading('Methods', '-'))
- ml = []
- for m in list(methods):
- make_method(f, name, m, False, False, ml)
- format_table(f, ml)
-
- # Theme properties
- theme_items = node.find('theme_items')
- if theme_items != None and len(list(theme_items)) > 0:
- f.write(make_heading('Theme Properties', '-'))
- ml = []
- for m in list(theme_items):
- make_properties(f, name, m, False, ml)
- format_table(f, ml)
-
- # Signals
- events = node.find('signals')
- if events != None and len(list(events)) > 0:
- f.write(make_heading('Signals', '-'))
- for m in list(events):
- f.write(".. _class_" + name + "_" + m.attrib['name'] + ":\n\n")
- make_method(f, name, m, True, True)
- f.write('\n')
- d = m.find('description')
- if d is None or d.text.strip() == '':
- continue
- f.write(rstize_text(d.text.strip(), name))
- f.write("\n\n")
-
- # Constants and enums
- constants = node.find('constants')
- consts = []
- enum_names = set()
- enums = []
- if constants != None and len(list(constants)) > 0:
- for c in list(constants):
- if 'enum' in c.attrib:
- enum_names.add(c.attrib['enum'])
- enums.append(c)
- else:
- consts.append(c)
-
- # Enums
- if len(enum_names) > 0:
- f.write(make_heading('Enumerations', '-'))
- for e in enum_names:
- f.write(".. _enum_" + name + "_" + e + ":\n\n")
- f.write("enum **" + e + "**:\n\n")
- for c in enums:
- if c.attrib['enum'] != e:
- continue
- s = '- '
- s += '**' + c.attrib['name'] + '**'
- if 'value' in c.attrib:
- s += ' = **' + c.attrib['value'] + '**'
- if c.text.strip() != '':
- s += ' --- ' + rstize_text(c.text.strip(), name)
- f.write(s + '\n\n')
-
- # Constants
- if len(consts) > 0:
- f.write(make_heading('Constants', '-'))
- for c in list(consts):
- s = '- '
- s += '**' + c.attrib['name'] + '**'
- if 'value' in c.attrib:
- s += ' = **' + c.attrib['value'] + '**'
- if c.text.strip() != '':
- s += ' --- ' + rstize_text(c.text.strip(), name)
- f.write(s + '\n\n')
-
- # Class description
- descr = node.find('description')
- if descr != None and descr.text.strip() != '':
- f.write(make_heading('Description', '-'))
- f.write(rstize_text(descr.text.strip(), name) + "\n\n")
-
- # Online tutorials
- global godot_docs_pattern
- tutorials = node.find('tutorials')
- if tutorials != None and len(tutorials) > 0:
- f.write(make_heading('Tutorials', '-'))
- for t in tutorials:
- link = t.text.strip()
- match = godot_docs_pattern.search(link);
- if match:
- groups = match.groups()
- if match.lastindex == 2:
- # Doc reference with fragment identifier: emit direct link to section with reference to page, for example:
- # `#calling-javascript-from-script in Exporting For Web`
- f.write("- `" + groups[1] + " <../" + groups[0] + ".html" + groups[1] + ">`_ in :doc:`../" + groups[0] + "`\n\n")
- # Commented out alternative: Instead just emit:
- # `Subsection in Exporting For Web`
- # f.write("- `Subsection <../" + groups[0] + ".html" + groups[1] + ">`_ in :doc:`../" + groups[0] + "`\n\n")
- elif match.lastindex == 1:
- # Doc reference, for example:
- # `Math`
- f.write("- :doc:`../" + groups[0] + "`\n\n")
- else:
- # External link, for example:
- # `http://enet.bespin.org/usergroup0.html`
- f.write("- `" + link + " <" + link + ">`_\n\n")
-
- # Property descriptions
- members = node.find('members')
- if members != None and len(list(members)) > 0:
- f.write(make_heading('Property Descriptions', '-'))
- for m in list(members):
- f.write(".. _class_" + name + "_" + m.attrib['name'] + ":\n\n")
- make_properties(f, name, m, True)
- if m.text.strip() != '':
- f.write(rstize_text(m.text.strip(), name))
- f.write('\n\n')
-
- # Method descriptions
- methods = node.find('methods')
- if methods != None and len(list(methods)) > 0:
- f.write(make_heading('Method Descriptions', '-'))
- for m in list(methods):
- f.write(".. _class_" + name + "_" + m.attrib['name'] + ":\n\n")
- make_method(f, name, m, True)
- f.write('\n')
- d = m.find('description')
- if d is None or d.text.strip() == '':
- continue
- f.write(rstize_text(d.text.strip(), name))
- f.write("\n\n")
-
-
-file_list = []
-
-for path in input_list:
- if os.path.basename(path) == 'modules':
- for subdir, dirs, _ in os.walk(path):
- if 'doc_classes' in dirs:
- doc_dir = os.path.join(subdir, 'doc_classes')
- class_file_names = [f for f in os.listdir(doc_dir) if f.endswith('.xml')]
- file_list += [os.path.join(doc_dir, f) for f in class_file_names]
- elif not os.path.isfile(path):
- file_list += [os.path.join(path, f) for f in os.listdir(path) if f.endswith('.xml')]
- elif os.path.isfile(path) and path.endswith('.xml'):
- file_list.append(path)
-
-for cur_file in file_list:
- tree = ET.parse(cur_file)
- doc = tree.getroot()
-
- if 'version' not in doc.attrib:
- print("Version missing from 'doc'")
- sys.exit(255)
-
- version = doc.attrib['version']
- if doc.attrib['name'] in class_names:
- continue
- class_names.append(doc.attrib['name'])
- classes[doc.attrib['name']] = doc
-
-class_names.sort()
+def make_url(link): # type: (str) -> str
+ match = GODOT_DOCS_PATTERN.search(link)
+ if match:
+ groups = match.groups()
+ if match.lastindex == 2:
+ # Doc reference with fragment identifier: emit direct link to section with reference to page, for example:
+ # `#calling-javascript-from-script in Exporting For Web`
+ return "`" + groups[1] + " <../" + groups[0] + ".html" + groups[1] + ">`_ in :doc:`../" + groups[0] + "`"
+ # Commented out alternative: Instead just emit:
+ # `Subsection in Exporting For Web`
+ # return "`Subsection <../" + groups[0] + ".html" + groups[1] + ">`__ in :doc:`../" + groups[0] + "`"
+ elif match.lastindex == 1:
+ # Doc reference, for example:
+ # `Math`
+ return ":doc:`../" + groups[0] + "`"
+ else:
+ # External link, for example:
+ # `http://enet.bespin.org/usergroup0.html`
+ return "`" + link + " <" + link + ">`_"
-# Don't make class list for Sphinx, :toctree: handles it
-# make_class_list(class_names, 2)
-for cn in class_names:
- c = classes[cn]
- make_rst_class(c)
+if __name__ == '__main__':
+ main()