summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.mailmap1
-rw-r--r--AUTHORS.md2
-rw-r--r--CHANGELOG.md21
-rw-r--r--CONTRIBUTING.md4
-rw-r--r--DONORS.md2
-rw-r--r--core/bind/core_bind.cpp2
-rw-r--r--core/bind/core_bind.h2
-rw-r--r--core/color.cpp2
-rw-r--r--core/color_names.inc2
-rw-r--r--core/error_macros.cpp2
-rw-r--r--core/error_macros.h312
-rw-r--r--core/image.cpp6
-rw-r--r--core/math/basis.cpp2
-rw-r--r--core/math/camera_matrix.cpp10
-rw-r--r--core/math/camera_matrix.h2
-rw-r--r--core/math/quat.cpp18
-rw-r--r--core/math/quat.h2
-rw-r--r--core/math/vector2.cpp4
-rw-r--r--core/math/vector2.h2
-rw-r--r--core/math/vector3.h4
-rw-r--r--core/message_queue.cpp6
-rw-r--r--core/os/midi_driver.cpp7
-rw-r--r--core/os/os.cpp2
-rw-r--r--core/os/os.h4
-rw-r--r--doc/classes/@GlobalScope.xml8
-rw-r--r--doc/classes/AABB.xml2
-rw-r--r--doc/classes/ARVRAnchor.xml6
-rw-r--r--doc/classes/ARVRCamera.xml3
-rw-r--r--doc/classes/ARVRController.xml3
-rw-r--r--doc/classes/ARVRInterface.xml5
-rw-r--r--doc/classes/ARVROrigin.xml3
-rw-r--r--doc/classes/ARVRPositionalTracker.xml3
-rw-r--r--doc/classes/ARVRServer.xml21
-rw-r--r--doc/classes/AStar.xml2
-rw-r--r--doc/classes/AStar2D.xml4
-rw-r--r--doc/classes/AcceptDialog.xml2
-rw-r--r--doc/classes/AnimatedSprite.xml2
-rw-r--r--doc/classes/AnimatedSprite3D.xml2
-rw-r--r--doc/classes/AnimatedTexture.xml2
-rw-r--r--doc/classes/Animation.xml2
-rw-r--r--doc/classes/AnimationNode.xml16
-rw-r--r--doc/classes/AnimationNodeAdd2.xml3
-rw-r--r--doc/classes/AnimationNodeAdd3.xml3
-rw-r--r--doc/classes/AnimationNodeAnimation.xml3
-rw-r--r--doc/classes/AnimationNodeBlend2.xml3
-rw-r--r--doc/classes/AnimationNodeBlend3.xml3
-rw-r--r--doc/classes/AnimationNodeBlendSpace1D.xml11
-rw-r--r--doc/classes/AnimationNodeBlendSpace2D.xml13
-rw-r--r--doc/classes/AnimationNodeBlendTree.xml3
-rw-r--r--doc/classes/AnimationNodeOneShot.xml3
-rw-r--r--doc/classes/AnimationNodeOutput.xml3
-rw-r--r--doc/classes/AnimationNodeStateMachine.xml9
-rw-r--r--doc/classes/AnimationNodeStateMachinePlayback.xml6
-rw-r--r--doc/classes/AnimationNodeStateMachineTransition.xml8
-rw-r--r--doc/classes/AnimationNodeTimeScale.xml3
-rw-r--r--doc/classes/AnimationNodeTimeSeek.xml3
-rw-r--r--doc/classes/AnimationNodeTransition.xml131
-rw-r--r--doc/classes/AnimationPlayer.xml3
-rw-r--r--doc/classes/AnimationRootNode.xml2
-rw-r--r--doc/classes/AnimationTrackEditPlugin.xml2
-rw-r--r--doc/classes/AnimationTree.xml2
-rw-r--r--doc/classes/AnimationTreePlayer.xml66
-rw-r--r--doc/classes/Area.xml2
-rw-r--r--doc/classes/Area2D.xml2
-rw-r--r--doc/classes/Array.xml12
-rw-r--r--doc/classes/ArrayMesh.xml13
-rw-r--r--doc/classes/AtlasTexture.xml2
-rw-r--r--doc/classes/AudioBusLayout.xml2
-rw-r--r--doc/classes/AudioEffect.xml2
-rw-r--r--doc/classes/AudioEffectAmplify.xml2
-rw-r--r--doc/classes/AudioEffectBandLimitFilter.xml2
-rw-r--r--doc/classes/AudioEffectBandPassFilter.xml2
-rw-r--r--doc/classes/AudioEffectChorus.xml2
-rw-r--r--doc/classes/AudioEffectCompressor.xml2
-rw-r--r--doc/classes/AudioEffectDelay.xml2
-rw-r--r--doc/classes/AudioEffectDistortion.xml2
-rw-r--r--doc/classes/AudioEffectEQ.xml2
-rw-r--r--doc/classes/AudioEffectEQ10.xml2
-rw-r--r--doc/classes/AudioEffectEQ21.xml2
-rw-r--r--doc/classes/AudioEffectEQ6.xml2
-rw-r--r--doc/classes/AudioEffectFilter.xml2
-rw-r--r--doc/classes/AudioEffectHighPassFilter.xml2
-rw-r--r--doc/classes/AudioEffectHighShelfFilter.xml2
-rw-r--r--doc/classes/AudioEffectInstance.xml2
-rw-r--r--doc/classes/AudioEffectLimiter.xml2
-rw-r--r--doc/classes/AudioEffectLowPassFilter.xml2
-rw-r--r--doc/classes/AudioEffectLowShelfFilter.xml2
-rw-r--r--doc/classes/AudioEffectNotchFilter.xml2
-rw-r--r--doc/classes/AudioEffectPanner.xml2
-rw-r--r--doc/classes/AudioEffectPhaser.xml2
-rw-r--r--doc/classes/AudioEffectPitchShift.xml2
-rw-r--r--doc/classes/AudioEffectRecord.xml2
-rw-r--r--doc/classes/AudioEffectReverb.xml2
-rw-r--r--doc/classes/AudioEffectSpectrumAnalyzer.xml2
-rw-r--r--doc/classes/AudioEffectSpectrumAnalyzerInstance.xml2
-rw-r--r--doc/classes/AudioEffectStereoEnhance.xml2
-rw-r--r--doc/classes/AudioServer.xml15
-rw-r--r--doc/classes/AudioStream.xml2
-rw-r--r--doc/classes/AudioStreamGenerator.xml2
-rw-r--r--doc/classes/AudioStreamGeneratorPlayback.xml2
-rw-r--r--doc/classes/AudioStreamMicrophone.xml2
-rw-r--r--doc/classes/AudioStreamPlayback.xml2
-rw-r--r--doc/classes/AudioStreamPlaybackResampled.xml2
-rw-r--r--doc/classes/AudioStreamPlayer.xml2
-rw-r--r--doc/classes/AudioStreamPlayer2D.xml2
-rw-r--r--doc/classes/AudioStreamPlayer3D.xml2
-rw-r--r--doc/classes/AudioStreamRandomPitch.xml2
-rw-r--r--doc/classes/AudioStreamSample.xml2
-rw-r--r--doc/classes/BackBufferCopy.xml2
-rw-r--r--doc/classes/BakedLightmap.xml2
-rw-r--r--doc/classes/BakedLightmapData.xml2
-rw-r--r--doc/classes/BaseButton.xml2
-rw-r--r--doc/classes/Basis.xml2
-rw-r--r--doc/classes/BitMap.xml2
-rw-r--r--doc/classes/BitmapFont.xml4
-rw-r--r--doc/classes/Bone2D.xml2
-rw-r--r--doc/classes/BoneAttachment.xml2
-rw-r--r--doc/classes/BoxContainer.xml2
-rw-r--r--doc/classes/BoxShape.xml2
-rw-r--r--doc/classes/Button.xml13
-rw-r--r--doc/classes/ButtonGroup.xml2
-rw-r--r--doc/classes/CPUParticles.xml13
-rw-r--r--doc/classes/CPUParticles2D.xml15
-rw-r--r--doc/classes/Camera.xml2
-rw-r--r--doc/classes/Camera2D.xml2
-rw-r--r--doc/classes/CameraFeed.xml2
-rw-r--r--doc/classes/CameraServer.xml10
-rw-r--r--doc/classes/CameraTexture.xml7
-rw-r--r--doc/classes/CanvasItem.xml50
-rw-r--r--doc/classes/CanvasItemMaterial.xml10
-rw-r--r--doc/classes/CanvasLayer.xml4
-rw-r--r--doc/classes/CanvasModulate.xml2
-rw-r--r--doc/classes/CapsuleMesh.xml2
-rw-r--r--doc/classes/CapsuleShape.xml2
-rw-r--r--doc/classes/CapsuleShape2D.xml2
-rw-r--r--doc/classes/CenterContainer.xml2
-rw-r--r--doc/classes/CharFXTransform.xml4
-rw-r--r--doc/classes/CheckBox.xml25
-rw-r--r--doc/classes/CheckButton.xml25
-rw-r--r--doc/classes/CircleShape2D.xml2
-rw-r--r--doc/classes/ClassDB.xml2
-rw-r--r--doc/classes/ClippedCamera.xml2
-rw-r--r--doc/classes/CollisionObject.xml2
-rw-r--r--doc/classes/CollisionObject2D.xml2
-rw-r--r--doc/classes/CollisionPolygon.xml2
-rw-r--r--doc/classes/CollisionPolygon2D.xml2
-rw-r--r--doc/classes/CollisionShape.xml2
-rw-r--r--doc/classes/CollisionShape2D.xml2
-rw-r--r--doc/classes/Color.xml160
-rw-r--r--doc/classes/ColorPicker.xml2
-rw-r--r--doc/classes/ColorPickerButton.xml2
-rw-r--r--doc/classes/ColorRect.xml2
-rw-r--r--doc/classes/ConcavePolygonShape.xml2
-rw-r--r--doc/classes/ConcavePolygonShape2D.xml2
-rw-r--r--doc/classes/ConeTwistJoint.xml2
-rw-r--r--doc/classes/ConfigFile.xml2
-rw-r--r--doc/classes/ConfirmationDialog.xml2
-rw-r--r--doc/classes/Container.xml2
-rw-r--r--doc/classes/Control.xml2
-rw-r--r--doc/classes/ConvexPolygonShape.xml2
-rw-r--r--doc/classes/ConvexPolygonShape2D.xml2
-rw-r--r--doc/classes/Crypto.xml2
-rw-r--r--doc/classes/CryptoKey.xml2
-rw-r--r--doc/classes/CubeMap.xml2
-rw-r--r--doc/classes/CubeMesh.xml2
-rw-r--r--doc/classes/Curve.xml2
-rw-r--r--doc/classes/Curve2D.xml2
-rw-r--r--doc/classes/Curve3D.xml2
-rw-r--r--doc/classes/CurveTexture.xml2
-rw-r--r--doc/classes/CylinderMesh.xml2
-rw-r--r--doc/classes/CylinderShape.xml2
-rw-r--r--doc/classes/DampedSpringJoint2D.xml2
-rw-r--r--doc/classes/Dictionary.xml16
-rw-r--r--doc/classes/DirectionalLight.xml2
-rw-r--r--doc/classes/Directory.xml4
-rw-r--r--doc/classes/DynamicFont.xml2
-rw-r--r--doc/classes/DynamicFontData.xml2
-rw-r--r--doc/classes/EditorExportPlugin.xml2
-rw-r--r--doc/classes/EditorFeatureProfile.xml2
-rw-r--r--doc/classes/EditorFileDialog.xml2
-rw-r--r--doc/classes/EditorFileSystem.xml2
-rw-r--r--doc/classes/EditorFileSystemDirectory.xml2
-rw-r--r--doc/classes/EditorImportPlugin.xml2
-rw-r--r--doc/classes/EditorInspector.xml2
-rw-r--r--doc/classes/EditorInspectorPlugin.xml4
-rw-r--r--doc/classes/EditorInterface.xml2
-rw-r--r--doc/classes/EditorNavigationMeshGenerator.xml2
-rw-r--r--doc/classes/EditorPlugin.xml2
-rw-r--r--doc/classes/EditorProperty.xml6
-rw-r--r--doc/classes/EditorResourceConversionPlugin.xml2
-rw-r--r--doc/classes/EditorResourcePreview.xml2
-rw-r--r--doc/classes/EditorResourcePreviewGenerator.xml2
-rw-r--r--doc/classes/EditorSceneImporter.xml2
-rw-r--r--doc/classes/EditorSceneImporterAssimp.xml2
-rw-r--r--doc/classes/EditorScenePostImport.xml2
-rw-r--r--doc/classes/EditorScript.xml2
-rw-r--r--doc/classes/EditorSelection.xml2
-rw-r--r--doc/classes/EditorSettings.xml2
-rw-r--r--doc/classes/EditorSpatialGizmo.xml2
-rw-r--r--doc/classes/EditorSpatialGizmoPlugin.xml4
-rw-r--r--doc/classes/EditorSpinSlider.xml2
-rw-r--r--doc/classes/EditorVCSInterface.xml12
-rw-r--r--doc/classes/EncodedObjectAsID.xml2
-rw-r--r--doc/classes/Engine.xml2
-rw-r--r--doc/classes/Environment.xml2
-rw-r--r--doc/classes/Expression.xml2
-rw-r--r--doc/classes/File.xml2
-rw-r--r--doc/classes/FileDialog.xml2
-rw-r--r--doc/classes/Font.xml2
-rw-r--r--doc/classes/FuncRef.xml2
-rw-r--r--doc/classes/GIProbe.xml22
-rw-r--r--doc/classes/GIProbeData.xml2
-rw-r--r--doc/classes/Generic6DOFJoint.xml2
-rw-r--r--doc/classes/Geometry.xml19
-rw-r--r--doc/classes/GeometryInstance.xml2
-rw-r--r--doc/classes/Gradient.xml2
-rw-r--r--doc/classes/GradientTexture.xml2
-rw-r--r--doc/classes/GraphEdit.xml2
-rw-r--r--doc/classes/GraphNode.xml6
-rw-r--r--doc/classes/GridContainer.xml2
-rw-r--r--doc/classes/GrooveJoint2D.xml2
-rw-r--r--doc/classes/HBoxContainer.xml3
-rw-r--r--doc/classes/HScrollBar.xml2
-rw-r--r--doc/classes/HSeparator.xml2
-rw-r--r--doc/classes/HSlider.xml2
-rw-r--r--doc/classes/HSplitContainer.xml2
-rw-r--r--doc/classes/HTTPClient.xml4
-rw-r--r--doc/classes/HTTPRequest.xml4
-rw-r--r--doc/classes/HashingContext.xml2
-rw-r--r--doc/classes/HeightMapShape.xml2
-rw-r--r--doc/classes/HingeJoint.xml2
-rw-r--r--doc/classes/IP.xml2
-rw-r--r--doc/classes/IP_Unix.xml2
-rw-r--r--doc/classes/Image.xml2
-rw-r--r--doc/classes/ImageTexture.xml2
-rw-r--r--doc/classes/ImmediateGeometry.xml2
-rw-r--r--doc/classes/Input.xml8
-rw-r--r--doc/classes/InputDefault.xml2
-rw-r--r--doc/classes/InputEvent.xml4
-rw-r--r--doc/classes/InputEventAction.xml2
-rw-r--r--doc/classes/InputEventGesture.xml2
-rw-r--r--doc/classes/InputEventJoypadButton.xml2
-rw-r--r--doc/classes/InputEventJoypadMotion.xml2
-rw-r--r--doc/classes/InputEventKey.xml8
-rw-r--r--doc/classes/InputEventMIDI.xml2
-rw-r--r--doc/classes/InputEventMagnifyGesture.xml2
-rw-r--r--doc/classes/InputEventMouse.xml2
-rw-r--r--doc/classes/InputEventMouseButton.xml2
-rw-r--r--doc/classes/InputEventMouseMotion.xml2
-rw-r--r--doc/classes/InputEventPanGesture.xml2
-rw-r--r--doc/classes/InputEventScreenDrag.xml2
-rw-r--r--doc/classes/InputEventScreenTouch.xml2
-rw-r--r--doc/classes/InputEventWithModifiers.xml2
-rw-r--r--doc/classes/InputMap.xml2
-rw-r--r--doc/classes/InstancePlaceholder.xml2
-rw-r--r--doc/classes/InterpolatedCamera.xml2
-rw-r--r--doc/classes/ItemList.xml2
-rw-r--r--doc/classes/JSON.xml2
-rw-r--r--doc/classes/JSONParseResult.xml2
-rw-r--r--doc/classes/JSONRPC.xml2
-rw-r--r--doc/classes/JavaClass.xml2
-rw-r--r--doc/classes/JavaClassWrapper.xml2
-rw-r--r--doc/classes/JavaScript.xml2
-rw-r--r--doc/classes/Joint.xml2
-rw-r--r--doc/classes/Joint2D.xml2
-rw-r--r--doc/classes/KinematicBody.xml2
-rw-r--r--doc/classes/KinematicBody2D.xml2
-rw-r--r--doc/classes/KinematicCollision.xml2
-rw-r--r--doc/classes/KinematicCollision2D.xml2
-rw-r--r--doc/classes/Label.xml11
-rw-r--r--doc/classes/LargeTexture.xml2
-rw-r--r--doc/classes/Light.xml2
-rw-r--r--doc/classes/Light2D.xml4
-rw-r--r--doc/classes/LightOccluder2D.xml4
-rw-r--r--doc/classes/Line2D.xml3
-rw-r--r--doc/classes/LineEdit.xml11
-rw-r--r--doc/classes/LineShape2D.xml2
-rw-r--r--doc/classes/LinkButton.xml2
-rw-r--r--doc/classes/Listener.xml2
-rw-r--r--doc/classes/MainLoop.xml2
-rw-r--r--doc/classes/MarginContainer.xml2
-rw-r--r--doc/classes/Marshalls.xml2
-rw-r--r--doc/classes/Material.xml2
-rw-r--r--doc/classes/MenuButton.xml9
-rw-r--r--doc/classes/Mesh.xml2
-rw-r--r--doc/classes/MeshDataTool.xml2
-rw-r--r--doc/classes/MeshInstance.xml2
-rw-r--r--doc/classes/MeshInstance2D.xml6
-rw-r--r--doc/classes/MeshLibrary.xml2
-rw-r--r--doc/classes/MeshTexture.xml2
-rw-r--r--doc/classes/MultiMesh.xml6
-rw-r--r--doc/classes/MultiMeshInstance.xml8
-rw-r--r--doc/classes/MultiMeshInstance2D.xml2
-rw-r--r--doc/classes/MultiplayerAPI.xml2
-rw-r--r--doc/classes/Mutex.xml2
-rw-r--r--doc/classes/Navigation.xml2
-rw-r--r--doc/classes/Navigation2D.xml2
-rw-r--r--doc/classes/NavigationMesh.xml2
-rw-r--r--doc/classes/NavigationMeshInstance.xml2
-rw-r--r--doc/classes/NavigationPolygon.xml2
-rw-r--r--doc/classes/NavigationPolygonInstance.xml2
-rw-r--r--doc/classes/NetworkedMultiplayerPeer.xml2
-rw-r--r--doc/classes/Nil.xml169
-rw-r--r--doc/classes/NinePatchRect.xml2
-rw-r--r--doc/classes/Node.xml4
-rw-r--r--doc/classes/Node2D.xml2
-rw-r--r--doc/classes/NodePath.xml2
-rw-r--r--doc/classes/OS.xml5
-rw-r--r--doc/classes/Object.xml6
-rw-r--r--doc/classes/OccluderPolygon2D.xml2
-rw-r--r--doc/classes/OmniLight.xml2
-rw-r--r--doc/classes/OptionButton.xml2
-rw-r--r--doc/classes/PCKPacker.xml2
-rw-r--r--doc/classes/PHashTranslation.xml2
-rw-r--r--doc/classes/PackedDataContainer.xml2
-rw-r--r--doc/classes/PackedDataContainerRef.xml2
-rw-r--r--doc/classes/PackedScene.xml2
-rw-r--r--doc/classes/PacketPeer.xml2
-rw-r--r--doc/classes/PacketPeerStream.xml2
-rw-r--r--doc/classes/PacketPeerUDP.xml2
-rw-r--r--doc/classes/Panel.xml2
-rw-r--r--doc/classes/PanelContainer.xml2
-rw-r--r--doc/classes/PanoramaSky.xml2
-rw-r--r--doc/classes/ParallaxBackground.xml2
-rw-r--r--doc/classes/ParallaxLayer.xml2
-rw-r--r--doc/classes/Particles.xml4
-rw-r--r--doc/classes/Particles2D.xml2
-rw-r--r--doc/classes/ParticlesMaterial.xml10
-rw-r--r--doc/classes/Path.xml2
-rw-r--r--doc/classes/Path2D.xml2
-rw-r--r--doc/classes/PathFollow.xml2
-rw-r--r--doc/classes/PathFollow2D.xml2
-rw-r--r--doc/classes/Performance.xml2
-rw-r--r--doc/classes/PhysicalBone.xml2
-rw-r--r--doc/classes/Physics2DDirectBodyState.xml2
-rw-r--r--doc/classes/Physics2DDirectBodyStateSW.xml2
-rw-r--r--doc/classes/Physics2DDirectSpaceState.xml2
-rw-r--r--doc/classes/Physics2DServer.xml2
-rw-r--r--doc/classes/Physics2DServerSW.xml2
-rw-r--r--doc/classes/Physics2DShapeQueryParameters.xml2
-rw-r--r--doc/classes/Physics2DShapeQueryResult.xml2
-rw-r--r--doc/classes/Physics2DTestMotionResult.xml2
-rw-r--r--doc/classes/PhysicsBody.xml2
-rw-r--r--doc/classes/PhysicsBody2D.xml2
-rw-r--r--doc/classes/PhysicsDirectBodyState.xml2
-rw-r--r--doc/classes/PhysicsDirectSpaceState.xml2
-rw-r--r--doc/classes/PhysicsMaterial.xml2
-rw-r--r--doc/classes/PhysicsServer.xml4
-rw-r--r--doc/classes/PhysicsShapeQueryParameters.xml2
-rw-r--r--doc/classes/PhysicsShapeQueryResult.xml2
-rw-r--r--doc/classes/PinJoint.xml2
-rw-r--r--doc/classes/PinJoint2D.xml2
-rw-r--r--doc/classes/Plane.xml5
-rw-r--r--doc/classes/PlaneMesh.xml2
-rw-r--r--doc/classes/PlaneShape.xml2
-rw-r--r--doc/classes/PointMesh.xml2
-rw-r--r--doc/classes/Polygon2D.xml3
-rw-r--r--doc/classes/PolygonPathFinder.xml2
-rw-r--r--doc/classes/PoolByteArray.xml2
-rw-r--r--doc/classes/PoolColorArray.xml2
-rw-r--r--doc/classes/PoolIntArray.xml2
-rw-r--r--doc/classes/PoolRealArray.xml2
-rw-r--r--doc/classes/PoolStringArray.xml2
-rw-r--r--doc/classes/PoolVector2Array.xml2
-rw-r--r--doc/classes/PoolVector3Array.xml2
-rw-r--r--doc/classes/Popup.xml2
-rw-r--r--doc/classes/PopupDialog.xml2
-rw-r--r--doc/classes/PopupMenu.xml35
-rw-r--r--doc/classes/PopupPanel.xml2
-rw-r--r--doc/classes/Position2D.xml2
-rw-r--r--doc/classes/Position3D.xml2
-rw-r--r--doc/classes/PrimitiveMesh.xml2
-rw-r--r--doc/classes/PrismMesh.xml2
-rw-r--r--doc/classes/ProceduralSky.xml7
-rw-r--r--doc/classes/ProgressBar.xml2
-rw-r--r--doc/classes/ProjectSettings.xml261
-rw-r--r--doc/classes/ProximityGroup.xml2
-rw-r--r--doc/classes/ProxyTexture.xml2
-rw-r--r--doc/classes/QuadMesh.xml2
-rw-r--r--doc/classes/Quat.xml3
-rw-r--r--doc/classes/RID.xml2
-rw-r--r--doc/classes/RandomNumberGenerator.xml2
-rw-r--r--doc/classes/Range.xml2
-rw-r--r--doc/classes/RayCast.xml2
-rw-r--r--doc/classes/RayCast2D.xml2
-rw-r--r--doc/classes/RayShape.xml2
-rw-r--r--doc/classes/RayShape2D.xml2
-rw-r--r--doc/classes/Rect2.xml2
-rw-r--r--doc/classes/RectangleShape2D.xml2
-rw-r--r--doc/classes/Reference.xml2
-rw-r--r--doc/classes/ReferenceRect.xml2
-rw-r--r--doc/classes/ReflectionProbe.xml16
-rw-r--r--doc/classes/RemoteTransform.xml2
-rw-r--r--doc/classes/RemoteTransform2D.xml2
-rw-r--r--doc/classes/Resource.xml2
-rw-r--r--doc/classes/ResourceFormatLoader.xml2
-rw-r--r--doc/classes/ResourceFormatLoaderCrypto.xml2
-rw-r--r--doc/classes/ResourceFormatSaver.xml2
-rw-r--r--doc/classes/ResourceFormatSaverCrypto.xml2
-rw-r--r--doc/classes/ResourceImporter.xml2
-rw-r--r--doc/classes/ResourceInteractiveLoader.xml2
-rw-r--r--doc/classes/ResourceLoader.xml2
-rw-r--r--doc/classes/ResourcePreloader.xml2
-rw-r--r--doc/classes/ResourceSaver.xml2
-rw-r--r--doc/classes/RichTextEffect.xml4
-rw-r--r--doc/classes/RichTextLabel.xml8
-rw-r--r--doc/classes/RigidBody.xml2
-rw-r--r--doc/classes/RigidBody2D.xml2
-rw-r--r--doc/classes/RootMotionView.xml2
-rw-r--r--doc/classes/SceneState.xml2
-rw-r--r--doc/classes/SceneTree.xml6
-rw-r--r--doc/classes/SceneTreeTimer.xml2
-rw-r--r--doc/classes/Script.xml2
-rw-r--r--doc/classes/ScriptCreateDialog.xml2
-rw-r--r--doc/classes/ScriptEditor.xml2
-rw-r--r--doc/classes/ScrollBar.xml2
-rw-r--r--doc/classes/ScrollContainer.xml5
-rw-r--r--doc/classes/SegmentShape2D.xml2
-rw-r--r--doc/classes/Semaphore.xml2
-rw-r--r--doc/classes/Separator.xml2
-rw-r--r--doc/classes/Shader.xml4
-rw-r--r--doc/classes/ShaderMaterial.xml4
-rw-r--r--doc/classes/Shape.xml2
-rw-r--r--doc/classes/Shape2D.xml2
-rw-r--r--doc/classes/ShortCut.xml2
-rw-r--r--doc/classes/Skeleton.xml2
-rw-r--r--doc/classes/Skeleton2D.xml4
-rw-r--r--doc/classes/SkeletonIK.xml2
-rw-r--r--doc/classes/Skin.xml2
-rw-r--r--doc/classes/SkinReference.xml2
-rw-r--r--doc/classes/Sky.xml3
-rw-r--r--doc/classes/Slider.xml2
-rw-r--r--doc/classes/SliderJoint.xml2
-rw-r--r--doc/classes/SoftBody.xml2
-rw-r--r--doc/classes/Spatial.xml5
-rw-r--r--doc/classes/SpatialGizmo.xml2
-rw-r--r--doc/classes/SpatialMaterial.xml9
-rw-r--r--doc/classes/SpatialVelocityTracker.xml2
-rw-r--r--doc/classes/SphereMesh.xml2
-rw-r--r--doc/classes/SphereShape.xml2
-rw-r--r--doc/classes/SpinBox.xml2
-rw-r--r--doc/classes/SplitContainer.xml2
-rw-r--r--doc/classes/SpotLight.xml2
-rw-r--r--doc/classes/SpringArm.xml2
-rw-r--r--doc/classes/Sprite.xml2
-rw-r--r--doc/classes/Sprite3D.xml2
-rw-r--r--doc/classes/SpriteBase3D.xml2
-rw-r--r--doc/classes/SpriteFrames.xml2
-rw-r--r--doc/classes/StaticBody.xml5
-rw-r--r--doc/classes/StaticBody2D.xml2
-rw-r--r--doc/classes/StreamPeer.xml2
-rw-r--r--doc/classes/StreamPeerBuffer.xml2
-rw-r--r--doc/classes/StreamPeerSSL.xml2
-rw-r--r--doc/classes/StreamPeerTCP.xml2
-rw-r--r--doc/classes/StreamTexture.xml2
-rw-r--r--doc/classes/String.xml2
-rw-r--r--doc/classes/StyleBox.xml2
-rw-r--r--doc/classes/StyleBoxEmpty.xml2
-rw-r--r--doc/classes/StyleBoxFlat.xml5
-rw-r--r--doc/classes/StyleBoxLine.xml2
-rw-r--r--doc/classes/StyleBoxTexture.xml2
-rw-r--r--doc/classes/SurfaceTool.xml4
-rw-r--r--doc/classes/TCP_Server.xml2
-rw-r--r--doc/classes/TabContainer.xml2
-rw-r--r--doc/classes/Tabs.xml2
-rw-r--r--doc/classes/TextEdit.xml4
-rw-r--r--doc/classes/TextFile.xml2
-rw-r--r--doc/classes/Texture.xml10
-rw-r--r--doc/classes/Texture3D.xml2
-rw-r--r--doc/classes/TextureArray.xml4
-rw-r--r--doc/classes/TextureButton.xml2
-rw-r--r--doc/classes/TextureLayered.xml4
-rw-r--r--doc/classes/TextureProgress.xml2
-rw-r--r--doc/classes/TextureRect.xml2
-rw-r--r--doc/classes/Theme.xml2
-rw-r--r--doc/classes/Thread.xml2
-rw-r--r--doc/classes/TileMap.xml2
-rw-r--r--doc/classes/TileSet.xml4
-rw-r--r--doc/classes/Timer.xml2
-rw-r--r--doc/classes/ToolButton.xml13
-rw-r--r--doc/classes/TouchScreenButton.xml2
-rw-r--r--doc/classes/Transform.xml2
-rw-r--r--doc/classes/Transform2D.xml2
-rw-r--r--doc/classes/Translation.xml2
-rw-r--r--doc/classes/TranslationServer.xml2
-rw-r--r--doc/classes/Tree.xml2
-rw-r--r--doc/classes/TreeItem.xml2
-rw-r--r--doc/classes/TriangleMesh.xml2
-rw-r--r--doc/classes/Tween.xml3
-rw-r--r--doc/classes/UndoRedo.xml2
-rw-r--r--doc/classes/VBoxContainer.xml3
-rw-r--r--doc/classes/VScrollBar.xml2
-rw-r--r--doc/classes/VSeparator.xml2
-rw-r--r--doc/classes/VSlider.xml2
-rw-r--r--doc/classes/VSplitContainer.xml2
-rw-r--r--doc/classes/Variant.xml2
-rw-r--r--doc/classes/Vector2.xml2
-rw-r--r--doc/classes/Vector3.xml2
-rw-r--r--doc/classes/VehicleBody.xml2
-rw-r--r--doc/classes/VehicleWheel.xml2
-rw-r--r--doc/classes/VideoPlayer.xml7
-rw-r--r--doc/classes/VideoStream.xml3
-rw-r--r--doc/classes/Viewport.xml33
-rw-r--r--doc/classes/ViewportContainer.xml2
-rw-r--r--doc/classes/ViewportTexture.xml2
-rw-r--r--doc/classes/VisibilityEnabler.xml2
-rw-r--r--doc/classes/VisibilityEnabler2D.xml2
-rw-r--r--doc/classes/VisibilityNotifier.xml2
-rw-r--r--doc/classes/VisibilityNotifier2D.xml2
-rw-r--r--doc/classes/VisualInstance.xml20
-rw-r--r--doc/classes/VisualServer.xml12
-rw-r--r--doc/classes/VisualShader.xml2
-rw-r--r--doc/classes/VisualShaderNode.xml25
-rw-r--r--doc/classes/VisualShaderNodeBooleanConstant.xml7
-rw-r--r--doc/classes/VisualShaderNodeBooleanUniform.xml4
-rw-r--r--doc/classes/VisualShaderNodeColorConstant.xml7
-rw-r--r--doc/classes/VisualShaderNodeColorFunc.xml21
-rw-r--r--doc/classes/VisualShaderNodeColorOp.xml66
-rw-r--r--doc/classes/VisualShaderNodeColorUniform.xml4
-rw-r--r--doc/classes/VisualShaderNodeCompare.xml30
-rw-r--r--doc/classes/VisualShaderNodeCubeMap.xml13
-rw-r--r--doc/classes/VisualShaderNodeCubeMapUniform.xml4
-rw-r--r--doc/classes/VisualShaderNodeCustom.xml7
-rw-r--r--doc/classes/VisualShaderNodeDeterminant.xml7
-rw-r--r--doc/classes/VisualShaderNodeDotProduct.xml7
-rw-r--r--doc/classes/VisualShaderNodeExpression.xml13
-rw-r--r--doc/classes/VisualShaderNodeFaceForward.xml7
-rw-r--r--doc/classes/VisualShaderNodeFresnel.xml7
-rw-r--r--doc/classes/VisualShaderNodeGlobalExpression.xml7
-rw-r--r--doc/classes/VisualShaderNodeGroupBase.xml61
-rw-r--r--doc/classes/VisualShaderNodeIf.xml5
-rw-r--r--doc/classes/VisualShaderNodeInput.xml3
-rw-r--r--doc/classes/VisualShaderNodeIs.xml3
-rw-r--r--doc/classes/VisualShaderNodeOuterProduct.xml5
-rw-r--r--doc/classes/VisualShaderNodeOutput.xml2
-rw-r--r--doc/classes/VisualShaderNodeScalarClamp.xml5
-rw-r--r--doc/classes/VisualShaderNodeScalarConstant.xml3
-rw-r--r--doc/classes/VisualShaderNodeScalarDerivativeFunc.xml3
-rw-r--r--doc/classes/VisualShaderNodeScalarFunc.xml3
-rw-r--r--doc/classes/VisualShaderNodeScalarInterp.xml5
-rw-r--r--doc/classes/VisualShaderNodeScalarOp.xml3
-rw-r--r--doc/classes/VisualShaderNodeScalarSmoothStep.xml5
-rw-r--r--doc/classes/VisualShaderNodeScalarSwitch.xml5
-rw-r--r--doc/classes/VisualShaderNodeScalarUniform.xml2
-rw-r--r--doc/classes/VisualShaderNodeSwitch.xml5
-rw-r--r--doc/classes/VisualShaderNodeTexture.xml3
-rw-r--r--doc/classes/VisualShaderNodeTextureUniform.xml2
-rw-r--r--doc/classes/VisualShaderNodeTextureUniformTriplanar.xml2
-rw-r--r--doc/classes/VisualShaderNodeTransformCompose.xml5
-rw-r--r--doc/classes/VisualShaderNodeTransformConstant.xml3
-rw-r--r--doc/classes/VisualShaderNodeTransformDecompose.xml5
-rw-r--r--doc/classes/VisualShaderNodeTransformFunc.xml3
-rw-r--r--doc/classes/VisualShaderNodeTransformMult.xml3
-rw-r--r--doc/classes/VisualShaderNodeTransformUniform.xml2
-rw-r--r--doc/classes/VisualShaderNodeTransformVecMult.xml3
-rw-r--r--doc/classes/VisualShaderNodeUniform.xml3
-rw-r--r--doc/classes/VisualShaderNodeVec3Constant.xml3
-rw-r--r--doc/classes/VisualShaderNodeVec3Uniform.xml2
-rw-r--r--doc/classes/VisualShaderNodeVectorClamp.xml5
-rw-r--r--doc/classes/VisualShaderNodeVectorCompose.xml5
-rw-r--r--doc/classes/VisualShaderNodeVectorDecompose.xml2
-rw-r--r--doc/classes/VisualShaderNodeVectorDerivativeFunc.xml2
-rw-r--r--doc/classes/VisualShaderNodeVectorDistance.xml5
-rw-r--r--doc/classes/VisualShaderNodeVectorFunc.xml2
-rw-r--r--doc/classes/VisualShaderNodeVectorInterp.xml5
-rw-r--r--doc/classes/VisualShaderNodeVectorLen.xml2
-rw-r--r--doc/classes/VisualShaderNodeVectorOp.xml3
-rw-r--r--doc/classes/VisualShaderNodeVectorRefract.xml5
-rw-r--r--doc/classes/VisualShaderNodeVectorScalarMix.xml5
-rw-r--r--doc/classes/VisualShaderNodeVectorScalarSmoothStep.xml5
-rw-r--r--doc/classes/VisualShaderNodeVectorScalarStep.xml5
-rw-r--r--doc/classes/VisualShaderNodeVectorSmoothStep.xml5
-rw-r--r--doc/classes/WeakRef.xml2
-rw-r--r--doc/classes/WindowDialog.xml2
-rw-r--r--doc/classes/World.xml2
-rw-r--r--doc/classes/World2D.xml2
-rw-r--r--doc/classes/WorldEnvironment.xml2
-rw-r--r--doc/classes/X509Certificate.xml2
-rw-r--r--doc/classes/XMLParser.xml16
-rw-r--r--doc/classes/YSort.xml2
-rw-r--r--doc/classes/bool.xml4
-rw-r--r--doc/classes/float.xml2
-rw-r--r--doc/classes/int.xml16
-rwxr-xr-xdoc/tools/doc_status.py11
-rwxr-xr-xdoc/tools/makerst.py6
-rw-r--r--drivers/alsamidi/midi_driver_alsamidi.cpp23
-rw-r--r--drivers/gles2/rasterizer_scene_gles2.cpp8
-rw-r--r--drivers/gles2/rasterizer_storage_gles2.cpp1
-rw-r--r--drivers/gles2/shader_compiler_gles2.cpp2
-rw-r--r--drivers/gles3/rasterizer_scene_gles3.cpp20
-rw-r--r--drivers/gles3/rasterizer_storage_gles3.cpp10
-rw-r--r--drivers/gles3/shader_compiler_gles3.cpp2
-rw-r--r--drivers/unix/os_unix.h2
-rw-r--r--editor/animation_track_editor.cpp25
-rw-r--r--editor/code_editor.cpp3
-rw-r--r--editor/doc/doc_data.cpp43
-rw-r--r--editor/doc/doc_dump.cpp8
-rw-r--r--editor/editor_autoload_settings.cpp41
-rw-r--r--editor/editor_autoload_settings.h5
-rw-r--r--editor/editor_help.cpp34
-rw-r--r--editor/editor_inspector.cpp2
-rw-r--r--editor/editor_node.cpp7
-rw-r--r--editor/editor_profiler.cpp30
-rw-r--r--editor/editor_sectioned_inspector.cpp6
-rw-r--r--editor/editor_themes.cpp99
-rw-r--r--editor/import/editor_scene_importer_gltf.cpp12
-rw-r--r--editor/inspector_dock.cpp1
-rw-r--r--editor/plugins/canvas_item_editor_plugin.cpp4
-rw-r--r--editor/plugins/polygon_2d_editor_plugin.cpp5
-rw-r--r--editor/plugins/spatial_editor_plugin.cpp5
-rw-r--r--editor/plugins/texture_region_editor_plugin.cpp5
-rw-r--r--editor/plugins/tile_map_editor_plugin.cpp11
-rw-r--r--editor/rename_dialog.cpp51
-rw-r--r--editor/rename_dialog.h2
-rw-r--r--editor/script_create_dialog.cpp2
-rw-r--r--editor/script_editor_debugger.cpp48
-rw-r--r--editor/script_editor_debugger.h1
-rw-r--r--editor/translations/af.po26
-rw-r--r--editor/translations/ar.po26
-rw-r--r--editor/translations/bg.po14
-rw-r--r--editor/translations/bn.po28
-rw-r--r--editor/translations/ca.po105
-rw-r--r--editor/translations/cs.po26
-rw-r--r--editor/translations/da.po26
-rw-r--r--editor/translations/de.po32
-rw-r--r--editor/translations/de_CH.po99
-rw-r--r--editor/translations/editor.pot13
-rw-r--r--editor/translations/el.po426
-rw-r--r--editor/translations/eo.po14
-rw-r--r--editor/translations/es.po31
-rw-r--r--editor/translations/es_AR.po43
-rw-r--r--editor/translations/et.po13
-rw-r--r--editor/translations/eu.po13
-rw-r--r--editor/translations/fa.po14
-rw-r--r--editor/translations/fi.po31
-rw-r--r--editor/translations/fil.po13
-rw-r--r--editor/translations/fr.po25
-rw-r--r--editor/translations/ga.po13
-rw-r--r--editor/translations/he.po14
-rw-r--r--editor/translations/hi.po14
-rw-r--r--editor/translations/hr.po14
-rw-r--r--editor/translations/hu.po26
-rw-r--r--editor/translations/id.po26
-rw-r--r--editor/translations/is.po13
-rw-r--r--editor/translations/it.po141
-rw-r--r--editor/translations/ja.po217
-rw-r--r--editor/translations/ka.po14
-rw-r--r--editor/translations/ko.po61
-rw-r--r--editor/translations/lt.po14
-rw-r--r--editor/translations/lv.po14
-rw-r--r--editor/translations/mi.po13
-rw-r--r--editor/translations/ml.po14
-rw-r--r--editor/translations/mr.po13
-rw-r--r--editor/translations/ms.po29
-rw-r--r--editor/translations/nb.po26
-rw-r--r--editor/translations/nl.po144
-rw-r--r--editor/translations/or.po13
-rw-r--r--editor/translations/pl.po37
-rw-r--r--editor/translations/pr.po13
-rw-r--r--editor/translations/pt_BR.po46
-rw-r--r--editor/translations/pt_PT.po31
-rw-r--r--editor/translations/ro.po276
-rw-r--r--editor/translations/ru.po36
-rw-r--r--editor/translations/si.po14
-rw-r--r--editor/translations/sk.po14
-rw-r--r--editor/translations/sl.po25
-rw-r--r--editor/translations/sq.po26
-rw-r--r--editor/translations/sr_Cyrl.po26
-rw-r--r--editor/translations/sr_Latn.po14
-rw-r--r--editor/translations/sv.po26
-rw-r--r--editor/translations/ta.po13
-rw-r--r--editor/translations/te.po13
-rw-r--r--editor/translations/th.po24
-rw-r--r--editor/translations/tr.po26
-rw-r--r--editor/translations/uk.po31
-rw-r--r--editor/translations/ur_PK.po13
-rw-r--r--editor/translations/vi.po14
-rw-r--r--editor/translations/zh_CN.po29
-rw-r--r--editor/translations/zh_HK.po14
-rw-r--r--editor/translations/zh_TW.po24
-rw-r--r--main/gamecontrollerdb.txt11
-rw-r--r--main/main.cpp4
-rw-r--r--misc/dist/linux/godot.625
-rw-r--r--misc/dist/linux/org.godotengine.Godot.appdata.xml2
-rwxr-xr-xmisc/dist/osx_tools.app/Contents/Info.plist4
-rw-r--r--misc/dist/shell/godot.bash-completion124
-rw-r--r--modules/assimp/editor_scene_importer_assimp.cpp12
-rw-r--r--modules/bullet/doc_classes/BulletPhysicsDirectBodyState.xml2
-rw-r--r--modules/bullet/doc_classes/BulletPhysicsServer.xml2
-rw-r--r--modules/csg/doc_classes/CSGBox.xml2
-rw-r--r--modules/csg/doc_classes/CSGCombiner.xml2
-rw-r--r--modules/csg/doc_classes/CSGCylinder.xml2
-rw-r--r--modules/csg/doc_classes/CSGMesh.xml5
-rw-r--r--modules/csg/doc_classes/CSGPolygon.xml2
-rw-r--r--modules/csg/doc_classes/CSGPrimitive.xml3
-rw-r--r--modules/csg/doc_classes/CSGShape.xml4
-rw-r--r--modules/csg/doc_classes/CSGSphere.xml2
-rw-r--r--modules/csg/doc_classes/CSGTorus.xml2
-rw-r--r--modules/enet/doc_classes/NetworkedMultiplayerENet.xml6
-rw-r--r--modules/gdnative/SCsub20
-rw-r--r--modules/gdnative/doc_classes/@NativeScript.xml2
-rw-r--r--modules/gdnative/doc_classes/ARVRInterfaceGDNative.xml2
-rw-r--r--modules/gdnative/doc_classes/GDNative.xml2
-rw-r--r--modules/gdnative/doc_classes/GDNativeLibrary.xml2
-rw-r--r--modules/gdnative/doc_classes/MultiplayerPeerGDNative.xml2
-rw-r--r--modules/gdnative/doc_classes/NativeScript.xml2
-rw-r--r--modules/gdnative/doc_classes/PacketPeerGDNative.xml2
-rw-r--r--modules/gdnative/doc_classes/PluginScript.xml2
-rw-r--r--modules/gdnative/doc_classes/StreamPeerGDNative.xml2
-rw-r--r--modules/gdnative/doc_classes/VideoStreamGDNative.xml7
-rw-r--r--modules/gdnative/doc_classes/WebRTCDataChannelGDNative.xml2
-rw-r--r--modules/gdnative/doc_classes/WebRTCPeerConnectionGDNative.xml2
-rw-r--r--modules/gdnative/gdnative_builders.py97
-rw-r--r--modules/gdscript/doc_classes/@GDScript.xml7
-rw-r--r--modules/gdscript/doc_classes/GDScript.xml2
-rw-r--r--modules/gdscript/doc_classes/GDScriptFunctionState.xml4
-rw-r--r--modules/gdscript/doc_classes/GDScriptNativeClass.xml2
-rw-r--r--modules/gdscript/language_server/gdscript_extend_parser.cpp2
-rw-r--r--modules/gridmap/doc_classes/GridMap.xml2
-rw-r--r--modules/mobile_vr/doc_classes/MobileVRInterface.xml2
-rw-r--r--modules/mono/csharp_script.cpp32
-rw-r--r--modules/mono/csharp_script.h5
-rw-r--r--modules/mono/editor/GodotTools/GodotTools.BuildLogger/GodotTools.BuildLogger.csproj6
-rw-r--r--modules/mono/editor/GodotTools/GodotTools.Core/GodotTools.Core.csproj4
-rw-r--r--modules/mono/editor/GodotTools/GodotTools.IdeConnection/GodotTools.IdeConnection.csproj4
-rw-r--r--modules/mono/editor/GodotTools/GodotTools.ProjectEditor/GodotTools.ProjectEditor.csproj2
-rw-r--r--modules/mono/editor/GodotTools/GodotTools.ProjectEditor/ProjectGenerator.cs2
-rw-r--r--modules/mono/editor/GodotTools/GodotTools/Export/ExportPlugin.cs49
-rw-r--r--modules/mono/editor/GodotTools/GodotTools/GodotTools.csproj2
-rw-r--r--modules/mono/editor/script_class_parser.cpp19
-rw-r--r--modules/mono/glue/GodotSharp/GodotSharp/Core/Basis.cs13
-rw-r--r--modules/mono/glue/GodotSharp/GodotSharp/Core/Extensions/NodeExtensions.cs2
-rw-r--r--modules/mono/glue/GodotSharp/GodotSharp/Core/Quat.cs37
-rw-r--r--modules/mono/glue/GodotSharp/GodotSharp/Core/Vector3.cs6
-rw-r--r--modules/opensimplex/doc_classes/NoiseTexture.xml9
-rw-r--r--modules/opensimplex/doc_classes/OpenSimplexNoise.xml5
-rw-r--r--modules/opensimplex/open_simplex_noise.cpp9
-rw-r--r--modules/opensimplex/open_simplex_noise.h7
-rw-r--r--modules/regex/doc_classes/RegEx.xml4
-rw-r--r--modules/regex/doc_classes/RegExMatch.xml2
-rw-r--r--modules/stb_vorbis/audio_stream_ogg_vorbis.h2
-rw-r--r--modules/stb_vorbis/doc_classes/AudioStreamOGGVorbis.xml2
-rw-r--r--modules/svg/image_loader_svg.cpp13
-rw-r--r--modules/theora/doc_classes/VideoStreamTheora.xml6
-rw-r--r--modules/theora/video_stream_theora.cpp1
-rw-r--r--modules/upnp/doc_classes/UPNP.xml2
-rw-r--r--modules/upnp/doc_classes/UPNPDevice.xml2
-rw-r--r--modules/visual_script/doc_classes/@VisualScript.xml2
-rw-r--r--modules/visual_script/doc_classes/VisualScript.xml2
-rw-r--r--modules/visual_script/doc_classes/VisualScriptBasicTypeConstant.xml2
-rw-r--r--modules/visual_script/doc_classes/VisualScriptBuiltinFunc.xml4
-rw-r--r--modules/visual_script/doc_classes/VisualScriptClassConstant.xml2
-rw-r--r--modules/visual_script/doc_classes/VisualScriptComment.xml2
-rw-r--r--modules/visual_script/doc_classes/VisualScriptComposeArray.xml2
-rw-r--r--modules/visual_script/doc_classes/VisualScriptCondition.xml2
-rw-r--r--modules/visual_script/doc_classes/VisualScriptConstant.xml2
-rw-r--r--modules/visual_script/doc_classes/VisualScriptConstructor.xml2
-rw-r--r--modules/visual_script/doc_classes/VisualScriptCustomNode.xml2
-rw-r--r--modules/visual_script/doc_classes/VisualScriptDeconstruct.xml2
-rw-r--r--modules/visual_script/doc_classes/VisualScriptEditor.xml2
-rw-r--r--modules/visual_script/doc_classes/VisualScriptEmitSignal.xml2
-rw-r--r--modules/visual_script/doc_classes/VisualScriptEngineSingleton.xml6
-rw-r--r--modules/visual_script/doc_classes/VisualScriptExpression.xml2
-rw-r--r--modules/visual_script/doc_classes/VisualScriptFunction.xml2
-rw-r--r--modules/visual_script/doc_classes/VisualScriptFunctionCall.xml2
-rw-r--r--modules/visual_script/doc_classes/VisualScriptFunctionState.xml2
-rw-r--r--modules/visual_script/doc_classes/VisualScriptGlobalConstant.xml2
-rw-r--r--modules/visual_script/doc_classes/VisualScriptIndexGet.xml2
-rw-r--r--modules/visual_script/doc_classes/VisualScriptIndexSet.xml2
-rw-r--r--modules/visual_script/doc_classes/VisualScriptInputAction.xml2
-rw-r--r--modules/visual_script/doc_classes/VisualScriptIterator.xml2
-rw-r--r--modules/visual_script/doc_classes/VisualScriptLists.xml2
-rw-r--r--modules/visual_script/doc_classes/VisualScriptLocalVar.xml2
-rw-r--r--modules/visual_script/doc_classes/VisualScriptLocalVarSet.xml2
-rw-r--r--modules/visual_script/doc_classes/VisualScriptMathConstant.xml18
-rw-r--r--modules/visual_script/doc_classes/VisualScriptNode.xml2
-rw-r--r--modules/visual_script/doc_classes/VisualScriptOperator.xml2
-rw-r--r--modules/visual_script/doc_classes/VisualScriptPreload.xml2
-rw-r--r--modules/visual_script/doc_classes/VisualScriptPropertyGet.xml2
-rw-r--r--modules/visual_script/doc_classes/VisualScriptPropertySet.xml2
-rw-r--r--modules/visual_script/doc_classes/VisualScriptResourcePath.xml2
-rw-r--r--modules/visual_script/doc_classes/VisualScriptReturn.xml2
-rw-r--r--modules/visual_script/doc_classes/VisualScriptSceneNode.xml2
-rw-r--r--modules/visual_script/doc_classes/VisualScriptSceneTree.xml2
-rw-r--r--modules/visual_script/doc_classes/VisualScriptSelect.xml2
-rw-r--r--modules/visual_script/doc_classes/VisualScriptSelf.xml2
-rw-r--r--modules/visual_script/doc_classes/VisualScriptSequence.xml2
-rw-r--r--modules/visual_script/doc_classes/VisualScriptSubCall.xml2
-rw-r--r--modules/visual_script/doc_classes/VisualScriptSwitch.xml2
-rw-r--r--modules/visual_script/doc_classes/VisualScriptTypeCast.xml2
-rw-r--r--modules/visual_script/doc_classes/VisualScriptVariableGet.xml2
-rw-r--r--modules/visual_script/doc_classes/VisualScriptVariableSet.xml2
-rw-r--r--modules/visual_script/doc_classes/VisualScriptWhile.xml2
-rw-r--r--modules/visual_script/doc_classes/VisualScriptYield.xml2
-rw-r--r--modules/visual_script/doc_classes/VisualScriptYieldSignal.xml2
-rw-r--r--modules/webm/doc_classes/VideoStreamWebm.xml6
-rw-r--r--modules/webm/video_stream_webm.cpp27
-rw-r--r--modules/webrtc/doc_classes/WebRTCDataChannel.xml2
-rw-r--r--modules/webrtc/doc_classes/WebRTCMultiplayer.xml4
-rw-r--r--modules/webrtc/doc_classes/WebRTCPeerConnection.xml4
-rw-r--r--modules/websocket/doc_classes/WebSocketClient.xml2
-rw-r--r--modules/websocket/doc_classes/WebSocketMultiplayerPeer.xml2
-rw-r--r--modules/websocket/doc_classes/WebSocketPeer.xml14
-rw-r--r--modules/websocket/doc_classes/WebSocketServer.xml2
-rw-r--r--modules/websocket/emws_peer.cpp5
-rw-r--r--modules/websocket/emws_peer.h1
-rw-r--r--modules/websocket/websocket_peer.cpp1
-rw-r--r--modules/websocket/websocket_peer.h1
-rw-r--r--modules/websocket/websocket_server.cpp2
-rw-r--r--modules/websocket/wsl_client.cpp1
-rw-r--r--modules/websocket/wsl_peer.cpp10
-rw-r--r--modules/websocket/wsl_peer.h1
-rw-r--r--modules/websocket/wsl_server.cpp5
-rw-r--r--platform/android/export/export.cpp35
-rw-r--r--platform/android/java/app/build.gradle2
-rw-r--r--platform/android/java/app/config.gradle4
-rw-r--r--platform/android/java/lib/build.gradle2
-rw-r--r--platform/android/java/lib/src/org/godotengine/godot/GodotIO.java4
-rw-r--r--platform/android/java/lib/src/org/godotengine/godot/input/GodotEditText.java15
-rw-r--r--platform/android/java_godot_io_wrapper.cpp6
-rw-r--r--platform/android/java_godot_io_wrapper.h2
-rw-r--r--platform/android/os_android.cpp4
-rw-r--r--platform/android/os_android.h2
-rw-r--r--platform/iphone/os_iphone.cpp2
-rw-r--r--platform/iphone/os_iphone.h2
-rw-r--r--platform/javascript/http_request.js3
-rw-r--r--platform/javascript/id_handler.js5
-rw-r--r--platform/javascript/os_javascript.h2
-rw-r--r--platform/osx/detect.py18
-rw-r--r--platform/osx/os_osx.mm26
-rw-r--r--platform/uwp/os_uwp.cpp2
-rw-r--r--platform/uwp/os_uwp.h4
-rw-r--r--platform/windows/os_windows.h2
-rw-r--r--platform/x11/detect.py12
-rw-r--r--scene/2d/cpu_particles_2d.cpp15
-rw-r--r--scene/2d/cpu_particles_2d.h4
-rw-r--r--scene/2d/path_2d.cpp6
-rw-r--r--scene/3d/arvr_nodes.cpp10
-rw-r--r--scene/3d/camera.cpp10
-rw-r--r--scene/3d/path.cpp6
-rw-r--r--scene/3d/spatial.cpp1
-rw-r--r--scene/animation/animation_blend_tree.cpp4
-rw-r--r--scene/animation/skeleton_ik.cpp13
-rw-r--r--scene/animation/skeleton_ik.h1
-rw-r--r--scene/animation/tween.cpp1
-rw-r--r--scene/gui/label.cpp1
-rw-r--r--scene/gui/line_edit.cpp4
-rw-r--r--scene/gui/option_button.cpp9
-rw-r--r--scene/gui/tab_container.cpp16
-rw-r--r--scene/gui/tab_container.h2
-rw-r--r--scene/gui/video_player.cpp4
-rw-r--r--scene/resources/audio_stream_sample.cpp3
-rw-r--r--scene/resources/audio_stream_sample.h6
-rw-r--r--scene/resources/material.h4
-rw-r--r--scene/resources/texture.h3
-rw-r--r--scene/resources/tile_set.cpp2
-rw-r--r--scene/resources/video_stream.cpp39
-rw-r--r--scene/resources/video_stream.h11
-rw-r--r--scene/resources/visual_shader.cpp24
-rw-r--r--scene/resources/visual_shader.h7
-rw-r--r--scene/resources/visual_shader_nodes.cpp34
-rw-r--r--scene/resources/visual_shader_nodes.h10
-rw-r--r--servers/audio/audio_stream.cpp1
-rw-r--r--servers/audio/audio_stream.h2
-rw-r--r--servers/visual/shader_language.cpp201
-rw-r--r--servers/visual/visual_server_scene.cpp14
-rw-r--r--servers/visual_server.cpp2
-rw-r--r--thirdparty/README.md3
-rw-r--r--thirdparty/mbedtls/include/mbedtls/bignum.h20
-rw-r--r--thirdparty/mbedtls/include/mbedtls/check_config.h8
-rw-r--r--thirdparty/mbedtls/include/mbedtls/config.h14
-rw-r--r--thirdparty/mbedtls/include/mbedtls/ctr_drbg.h218
-rw-r--r--thirdparty/mbedtls/include/mbedtls/hmac_drbg.h309
-rw-r--r--thirdparty/mbedtls/include/mbedtls/version.h8
-rw-r--r--thirdparty/mbedtls/library/aes.c24
-rw-r--r--thirdparty/mbedtls/library/bignum.c103
-rw-r--r--thirdparty/mbedtls/library/ctr_drbg.c135
-rw-r--r--thirdparty/mbedtls/library/ecdsa.c1
-rw-r--r--thirdparty/mbedtls/library/ecp.c10
-rw-r--r--thirdparty/mbedtls/library/hmac_drbg.c25
-rw-r--r--thirdparty/mbedtls/library/version_features.c3
-rw-r--r--version.py6
882 files changed, 4849 insertions, 3986 deletions
diff --git a/.mailmap b/.mailmap
index 84337164ba..9c930c773c 100644
--- a/.mailmap
+++ b/.mailmap
@@ -18,6 +18,7 @@ Bastiaan Olij <mux213@gmail.com>
Benjamin <mafortion.benjamin@gmail.com>
Bernhard Liebl <Bernhard.Liebl@gmx.org> <poke1024@gmx.de>
Bernhard Liebl <Bernhard.Liebl@gmx.org> <poke1024@gmx.org>
+Bruno Lourenço <madequa@users.noreply.github.com> <bmlourenco@gmail.com>
Chaosus <chaosus89@gmail.com>
Chris Bradfield <chris@kidscancode.org> <cb@scribe.net>
Clay John <claynjohn@gmail.com>
diff --git a/AUTHORS.md b/AUTHORS.md
index cbc5bd0762..8be2d05455 100644
--- a/AUTHORS.md
+++ b/AUTHORS.md
@@ -46,6 +46,7 @@ name is available.
Bernard Liebl (poke1024)
Błażej Szczygieł (zaps166)
Bojidar Marinov (bojidar-bg)
+ Bruno Lourenço (MadEqua)
bruvzg
Cameron Reikes (creikey)
Camille Mohr-Daurat (pouleyKetchoupp)
@@ -65,6 +66,7 @@ name is available.
Emmanuel Leblond (touilleMan)
Eoin O'Neill (Eoin-ONeill-Yokai)
Eric Lasota (elasota)
+ Eric Rybicki (ericrybick)
Erik Selecký (rxlecky)
est31
Fabian Mathews (supagu)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index c7202cabb8..f2224c8a7e 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -2,9 +2,9 @@
All notable changes to this project will be documented in this file.
-The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/).
+The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
-## [3.2] - YYYY-MM-DD
+## [3.2] - 2020-01-29
### Added
@@ -161,7 +161,6 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/).
- `Light.use_gi_probe` property to exclude specific lights from GIProbe computations.
- TranslationServer method `get_loaded_locales()` to retrieve the list of languages with a translation loaded.
- `FRUSTUM` 3D camera mode to create tilted frustums for mirror or portal effects.
-- `Camera.project_position()` now accepts an optional `depth` parameter.
- `CanvasItem.draw_rect()` now has `width` and `antialiased` properties to match `draw_line()`'s functionality.
- `Engine.get_idle_frames()` and `Engine.get_physics_frames()` to get the number of idle and physics frame iterations since the project started.
- Unlike `Engine.get_frames_drawn()`, `Engine.get_idle_frames()` will be incremented even if the render loop is disabled.
@@ -376,6 +375,9 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/).
- Functions called from a signal can no longer disconnect the node from the signal they're connected to (unless using `call_deferred()`).
- Tabs and space indentation can no longer be mixed in the same GDScript file.
- Each file must now use only tabs or spaces for indentation (not both).
+- `assert()` in GDScript must now always be used with parentheses.
+ - `assert(true)` is still valid, but `assert true` isn't valid anymore.
+ - This is to account for the optional second parameter that defines a custom message.
- The "Trim" and "Normalize" WAV import options are now disabled by default.
- This makes the default behavior more consistent with Ogg import.
- Ogg samples now have an icon in the editor, like WAV samples.
@@ -449,7 +451,6 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/).
- Decreased the `rotation_degrees` range in various nodes to -360..360 to be easier to adjust using the slider.
- Lower and higher values can still be entered manually, which is useful for animation purposes.
- The default RichTextLabel color is now `#ffffff`, matching the default Label color for better consistency.
-- Label's `visible_characters` property now takes spaces into account to be consistent with RichTextLabel.
- SpinBoxes now calculate the entered value using the Expression class.
- For example, writing `2 + 2` in a SpinBox then pressing Enter will result in `4`.
- Saved resources no longer contain dependency indices and metadata such as node folding, resulting in more VCS-friendly files.
@@ -779,7 +780,7 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/).
- unreachable code after a `return` statement,
- …
- Warnings can be disabled in the Project Settings or by writing special comments.
-- [GDScript keyword `class_name` to register scripts as classes.](http://docs.godotengine.org/en/latest/getting_started/step_by_step/scripting_continued.html#register-scripts-as-classes)
+- [GDScript keyword `class_name` to register scripts as classes.](https://docs.godotengine.org/en/latest/getting_started/step_by_step/scripting_continued.html#register-scripts-as-classes)
- Simple expression language independent from GDScript, used by inspector boxes that accept numeric values.
- Can also be used in projects.
- C# projects can now be exported for Windows, Linux, and macOS targets.
@@ -1008,7 +1009,7 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/).
- Rewritten audio engine from scratch.
- Supports audio routing with arbitrary number of channels, including Area-based audio redirection ([video](https://youtu.be/K2XOBaJ5OQ0)).
- More than a dozen of audio effects included.
-- Rewritten 3D physics using [Bullet](http://bulletphysics.org/).
+- Rewritten 3D physics using [Bullet](https://bulletphysics.org/).
- UDP-based high-level networking API using [ENet](http://enet.bespin.org/).
- IPv6 support for all of the engine's networking APIs.
- Visual scripting.
@@ -1026,7 +1027,7 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/).
- Setters and getters for node properties.
- Underscores in number literals are now allowed for improved readability (for example,`1_000_000`).
- Improved performance (+20% to +40%, based on various benchmarks).
-- [Feature tags](http://docs.godotengine.org/en/latest/getting_started/workflow/export/feature_tags.html) in the Project Settings, for custom per-platform settings.
+- [Feature tags](https://docs.godotengine.org/en/latest/getting_started/workflow/export/feature_tags.html) in the Project Settings, for custom per-platform settings.
- Full support for the [glTF 2.0](https://www.khronos.org/gltf/) 3D interchange format.
- Freelook and fly navigation to the 3D editor.
- Built-in editor logging (logging standard output to a file), disabled by default.
@@ -1079,7 +1080,7 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/).
- Exporting to Windows now changes the exported project's icon using `rcedit` (requires WINE if exporting from Linux or macOS).
- Improved build system.
- Support for compiling using Visual Studio 2017.
- - [SCons](http://scons.org/) 3.0 and Python 3 are now supported (SCons 2.5 and Python 2.7 still work).
+ - [SCons](https://scons.org/) 3.0 and Python 3 are now supported (SCons 2.5 and Python 2.7 still work).
- Link-time optimization can now be enabled by passing `use_lto=yes` to the SCons command line.
- Produces faster and sometimes smaller binaries.
- Currently only supported with GCC and MSVC.
@@ -1094,11 +1095,11 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/).
- Increased the default 3D editor camera's field of view (55 → 70).
- Increased the default 3D Camera node's field of view (65 → 70).
- Changed the default editor font (Droid Sans → [Noto Sans](https://www.google.com/get/noto/)).
-- Changed the default script editor font (Source Code Pro → [Hack](http://sourcefoundry.org/hack/))
+- Changed the default script editor font (Source Code Pro → [Hack](https://sourcefoundry.org/hack/))
- Renamed `engine.cfg` to `project.godot`.
- This allows users to open a project by double-clicking the file if Godot is associated to `.godot` files.
- Some methods from the `OS` singleton were moved to the new `Engine` singleton.
-- Switched from [GLEW](http://glew.sourceforge.net/) to [GLAD](http://glad.dav1d.de/) for OpenGL wrapping.
+- Switched from [GLEW](http://glew.sourceforge.net/) to [GLAD](https://glad.dav1d.de/) for OpenGL wrapping.
- Changed the SCons build flag for simple logs (`colored=yes` → `verbose=no`).
- The HTML5 platform now uses WebGL 2.0 (instead of 1.0).
- Redesigned the Godot logo to be more legible at small sizes.
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index c27bee2b5c..b1afaaccfd 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -80,7 +80,7 @@ In addition to the following tips, also take a look at the
[Engine development guide](https://docs.godotengine.org/en/latest/development/cpp/)
for an introduction to developing on Godot.
-The [Contributing docs](http://docs.godotengine.org/en/latest/community/contributing/index.html)
+The [Contributing docs](https://docs.godotengine.org/en/latest/community/contributing/index.html)
also have important information on the PR workflow and the code style we use.
#### Be nice to the git history
@@ -102,7 +102,7 @@ Internet).
This git style guide has some good practices to have in mind:
[Git Style Guide](https://github.com/agis-/git-style-guide)
-See our [PR workflow](http://docs.godotengine.org/en/latest/community/contributing/pr_workflow.html)
+See our [PR workflow](https://docs.godotengine.org/en/latest/community/contributing/pr_workflow.html)
documentation for tips on using Git, amending commits and rebasing branches.
#### Format your commit logs with readability in mind
diff --git a/DONORS.md b/DONORS.md
index df066bc16c..b0f0c138ee 100644
--- a/DONORS.md
+++ b/DONORS.md
@@ -322,7 +322,6 @@ generous deed immortalized in the next stable release of Godot Engine.
Jako Danar
James A F Manley
Jannik Gröger
- Jarrod Davis
Jax
Jeff Hungerford
Jennifer Graves
@@ -464,6 +463,7 @@ generous deed immortalized in the next stable release of Godot Engine.
tiansheng li
Tim Drumheller
Timothy B. MacDonald
+ tinyBigGames LLC
Tobbun
Tom Fulp
Tom Glenn
diff --git a/core/bind/core_bind.cpp b/core/bind/core_bind.cpp
index 95f433607c..efd7e3dbf5 100644
--- a/core/bind/core_bind.cpp
+++ b/core/bind/core_bind.cpp
@@ -1266,7 +1266,7 @@ void _OS::_bind_methods() {
ClassDB::bind_method(D_METHOD("get_processor_count"), &_OS::get_processor_count);
ClassDB::bind_method(D_METHOD("get_executable_path"), &_OS::get_executable_path);
- ClassDB::bind_method(D_METHOD("execute", "path", "arguments", "blocking", "output", "read_stderr"), &_OS::execute, DEFVAL(Array()), DEFVAL(false));
+ ClassDB::bind_method(D_METHOD("execute", "path", "arguments", "blocking", "output", "read_stderr"), &_OS::execute, DEFVAL(true), DEFVAL(Array()), DEFVAL(false));
ClassDB::bind_method(D_METHOD("kill", "pid"), &_OS::kill);
ClassDB::bind_method(D_METHOD("shell_open", "uri"), &_OS::shell_open);
ClassDB::bind_method(D_METHOD("get_process_id"), &_OS::get_process_id);
diff --git a/core/bind/core_bind.h b/core/bind/core_bind.h
index 65f20c375e..87da51f97e 100644
--- a/core/bind/core_bind.h
+++ b/core/bind/core_bind.h
@@ -227,7 +227,7 @@ public:
int get_low_processor_usage_mode_sleep_usec() const;
String get_executable_path() const;
- int execute(const String &p_path, const Vector<String> &p_arguments, bool p_blocking, Array p_output = Array(), bool p_read_stderr = false);
+ int execute(const String &p_path, const Vector<String> &p_arguments, bool p_blocking = true, Array p_output = Array(), bool p_read_stderr = false);
Error kill(int p_pid);
Error shell_open(String p_uri);
diff --git a/core/color.cpp b/core/color.cpp
index 5cbe02067e..1baa8af45d 100644
--- a/core/color.cpp
+++ b/core/color.cpp
@@ -511,7 +511,7 @@ Color Color::from_hsv(float p_h, float p_s, float p_v, float p_a) const {
// FIXME: Remove once Godot 3.1 has been released
float Color::gray() const {
- WARN_DEPRECATED_MSG("Color.gray() is deprecated and will be removed in a future version. Use Color.get_v() for a better grayscale approximation.");
+ WARN_DEPRECATED_MSG("'Color.gray()' is deprecated and will be removed in a future version. Use 'Color.v' for a better grayscale approximation.");
return (r + g + b) / 3.0;
}
diff --git a/core/color_names.inc b/core/color_names.inc
index b0ef507d92..428a8473fe 100644
--- a/core/color_names.inc
+++ b/core/color_names.inc
@@ -1,4 +1,4 @@
-// Names from https://en.wikipedia.org/wiki/List_of_colors (through https://raw.githubusercontent.com/SuperUserNameMan/color_to_name/616a7cddafefda91478b7bc26167de97fb5badb1/godot_version.gd), slightly edited and normalized
+// Names from https://en.wikipedia.org/wiki/X11_color_names
#include "core/map.h"
static Map<String, Color> _named_colors;
diff --git a/core/error_macros.cpp b/core/error_macros.cpp
index 6dd7dd5e1c..f6da990562 100644
--- a/core/error_macros.cpp
+++ b/core/error_macros.cpp
@@ -106,7 +106,7 @@ void _err_print_error(const char *p_function, const char *p_file, int p_line, co
void _err_print_index_error(const char *p_function, const char *p_file, int p_line, int64_t p_index, int64_t p_size, const char *p_index_str, const char *p_size_str, const char *p_message, bool fatal) {
String fstr(fatal ? "FATAL: " : "");
- String err(fstr + "Index " + p_index_str + "=" + itos(p_index) + " out of size (" + p_size_str + "=" + itos(p_size) + ")");
+ String err(fstr + "Index " + p_index_str + " = " + itos(p_index) + " is out of bounds (" + p_size_str + " = " + itos(p_size) + ").");
_err_print_error(p_function, p_file, p_line, err.utf8().get_data(), p_message);
}
diff --git a/core/error_macros.h b/core/error_macros.h
index ed7f601089..8ba6618942 100644
--- a/core/error_macros.h
+++ b/core/error_macros.h
@@ -34,8 +34,8 @@
#include "core/typedefs.h"
/**
* Error macros. Unlike exceptions and asserts, these macros try to maintain consistency and stability
- * inside the code. It is recommended to always return processable data, so in case of an error, the
- * engine can stay working well.
+ * inside the code. It is recommended to always return processable data, so in case of an error,
+ * the engine can keep working well.
* In most cases, bugs and/or invalid data are not fatal and should never allow a perfectly running application
* to fail or crash.
*/
@@ -120,6 +120,11 @@ void _err_print_index_error(const char *p_function, const char *p_file, int p_li
// (*): See https://stackoverflow.com/questions/257418/do-while-0-what-is-it-good-for
+/**
+ * If `m_index` is less than 0 or greater than or equal to `m_size`, prints a generic
+ * error message and returns from the function. This macro should be preferred to
+ * `ERR_FAIL_COND` for bounds checking.
+ */
#define ERR_FAIL_INDEX(m_index, m_size) \
do { \
if (unlikely((m_index) < 0 || (m_index) >= (m_size))) { \
@@ -128,6 +133,11 @@ void _err_print_index_error(const char *p_function, const char *p_file, int p_li
} \
} while (0); // (*)
+/**
+ * If `m_index` is less than 0 or greater than or equal to `m_size`, prints a custom
+ * error message and returns from the function. This macro should be preferred to
+ * `ERR_FAIL_COND_MSG` for bounds checking.
+ */
#define ERR_FAIL_INDEX_MSG(m_index, m_size, m_msg) \
do { \
if (unlikely((m_index) < 0 || (m_index) >= (m_size))) { \
@@ -136,11 +146,11 @@ void _err_print_index_error(const char *p_function, const char *p_file, int p_li
} \
} while (0); // (*)
-/** An index has failed if m_index<0 or m_index >=m_size, the function exits.
-* This function returns an error value, if returning Error, please select the most
-* appropriate error condition from error_macros.h
-*/
-
+/**
+ * If `m_index` is less than 0 or greater than or equal to `m_size`,
+ * prints a generic error message and returns the value specified in `m_retval`.
+ * This macro should be preferred to `ERR_FAIL_COND_V` for bounds checking.
+ */
#define ERR_FAIL_INDEX_V(m_index, m_size, m_retval) \
do { \
if (unlikely((m_index) < 0 || (m_index) >= (m_size))) { \
@@ -149,6 +159,11 @@ void _err_print_index_error(const char *p_function, const char *p_file, int p_li
} \
} while (0); // (*)
+/**
+ * If `m_index` is less than 0 or greater than or equal to `m_size`,
+ * prints a custom error message and returns the value specified in `m_retval`.
+ * This macro should be preferred to `ERR_FAIL_COND_V_MSG` for bounds checking.
+ */
#define ERR_FAIL_INDEX_V_MSG(m_index, m_size, m_retval, m_msg) \
do { \
if (unlikely((m_index) < 0 || (m_index) >= (m_size))) { \
@@ -157,11 +172,11 @@ void _err_print_index_error(const char *p_function, const char *p_file, int p_li
} \
} while (0); // (*)
-/** An index has failed if m_index >=m_size, the function exits.
-* This function returns an error value, if returning Error, please select the most
-* appropriate error condition from error_macros.h
-*/
-
+/**
+ * If `m_index` is greater than or equal to `m_size`,
+ * prints a generic error message and returns the value specified in `m_retval`.
+ * This macro should be preferred to `ERR_FAIL_COND_V` for unsigned bounds checking.
+ */
#define ERR_FAIL_UNSIGNED_INDEX_V(m_index, m_size, m_retval) \
do { \
if (unlikely((m_index) >= (m_size))) { \
@@ -170,6 +185,11 @@ void _err_print_index_error(const char *p_function, const char *p_file, int p_li
} \
} while (0); // (*)
+/**
+ * If `m_index` is greater than or equal to `m_size`,
+ * prints a custom error message and returns the value specified in `m_retval`.
+ * This macro should be preferred to `ERR_FAIL_COND_V_MSG` for unsigned bounds checking.
+ */
#define ERR_FAIL_UNSIGNED_INDEX_V_MSG(m_index, m_size, m_retval, m_msg) \
do { \
if (unlikely((m_index) >= (m_size))) { \
@@ -178,9 +198,12 @@ void _err_print_index_error(const char *p_function, const char *p_file, int p_li
} \
} while (0); // (*)
-/** Use this one if there is no sensible fallback, that is, the error is unrecoverable.
-* We'll return a null reference and try to keep running.
-*/
+/**
+ * If `m_index` is less than 0 or greater than or equal to `m_size`,
+ * crashes the engine immediately with a generic error message.
+ * Only use this if there's no sensible fallback (i.e. the error is unrecoverable).
+ * This macro should be preferred to `CRASH_COND` for bounds checking.
+ */
#define CRASH_BAD_INDEX(m_index, m_size) \
do { \
if (unlikely((m_index) < 0 || (m_index) >= (m_size))) { \
@@ -189,6 +212,12 @@ void _err_print_index_error(const char *p_function, const char *p_file, int p_li
} \
} while (0); // (*)
+/**
+ * If `m_index` is less than 0 or greater than or equal to `m_size`,
+ * crashes the engine immediately with a custom error message.
+ * Only use this if there's no sensible fallback (i.e. the error is unrecoverable).
+ * This macro should be preferred to `CRASH_COND` for bounds checking.
+ */
#define CRASH_BAD_INDEX_MSG(m_index, m_size, m_msg) \
do { \
if (unlikely((m_index) < 0 || (m_index) >= (m_size))) { \
@@ -197,201 +226,239 @@ void _err_print_index_error(const char *p_function, const char *p_file, int p_li
} \
} while (0); // (*)
-/** An error condition happened (m_cond tested true) (WARNING this is the opposite as assert().
- * the function will exit.
- */
-
+/**
+ * If `m_param` is `null`, prints a generic error message and returns from the function.
+ */
#define ERR_FAIL_NULL(m_param) \
{ \
if (unlikely(!m_param)) { \
- _err_print_error(FUNCTION_STR, __FILE__, __LINE__, "Parameter ' " _STR(m_param) " ' is null."); \
+ _err_print_error(FUNCTION_STR, __FILE__, __LINE__, "Parameter \"" _STR(m_param) "\" is null."); \
return; \
} \
}
+/**
+ * If `m_param` is `null`, prints a custom error message and returns from the function.
+ */
#define ERR_FAIL_NULL_MSG(m_param, m_msg) \
{ \
if (unlikely(!m_param)) { \
- _err_print_error(FUNCTION_STR, __FILE__, __LINE__, "Parameter ' " _STR(m_param) " ' is null.", DEBUG_STR(m_msg)); \
+ _err_print_error(FUNCTION_STR, __FILE__, __LINE__, "Parameter \"" _STR(m_param) "\" is null.", DEBUG_STR(m_msg)); \
return; \
} \
}
+/**
+ * If `m_param` is `null`, prints a generic error message and returns the value specified in `m_retval`.
+ */
#define ERR_FAIL_NULL_V(m_param, m_retval) \
{ \
if (unlikely(!m_param)) { \
- _err_print_error(FUNCTION_STR, __FILE__, __LINE__, "Parameter ' " _STR(m_param) " ' is null."); \
+ _err_print_error(FUNCTION_STR, __FILE__, __LINE__, "Parameter \"" _STR(m_param) "\" is null."); \
return m_retval; \
} \
}
+/**
+ * If `m_param` is `null`, prints a custom error message and returns the value specified in `m_retval`.
+ */
#define ERR_FAIL_NULL_V_MSG(m_param, m_retval, m_msg) \
{ \
if (unlikely(!m_param)) { \
- _err_print_error(FUNCTION_STR, __FILE__, __LINE__, "Parameter ' " _STR(m_param) " ' is null.", DEBUG_STR(m_msg)); \
+ _err_print_error(FUNCTION_STR, __FILE__, __LINE__, "Parameter \"" _STR(m_param) "\" is null.", DEBUG_STR(m_msg)); \
return m_retval; \
} \
}
-/** An error condition happened (m_cond tested true) (WARNING this is the opposite as assert().
- * the function will exit.
+/**
+ * If `m_cond` evaluates to `true`, prints a generic error message and returns from the function.
*/
-
#define ERR_FAIL_COND(m_cond) \
{ \
if (unlikely(m_cond)) { \
- _err_print_error(FUNCTION_STR, __FILE__, __LINE__, "Condition ' " _STR(m_cond) " ' is true."); \
+ _err_print_error(FUNCTION_STR, __FILE__, __LINE__, "Condition \"" _STR(m_cond) "\" is true."); \
return; \
} \
}
+/**
+ * If `m_cond` evaluates to `true`, prints a custom error message and returns from the function.
+ */
#define ERR_FAIL_COND_MSG(m_cond, m_msg) \
{ \
if (unlikely(m_cond)) { \
- _err_print_error(FUNCTION_STR, __FILE__, __LINE__, "Condition ' " _STR(m_cond) " ' is true.", DEBUG_STR(m_msg)); \
+ _err_print_error(FUNCTION_STR, __FILE__, __LINE__, "Condition \"" _STR(m_cond) "\" is true.", DEBUG_STR(m_msg)); \
return; \
} \
}
-/** Use this one if there is no sensible fallback, that is, the error is unrecoverable.
+/**
+ * If `m_cond` evaluates to `true`, crashes the engine immediately with a generic error message.
+ * Only use this if there's no sensible fallback (i.e. the error is unrecoverable).
*/
-
#define CRASH_COND(m_cond) \
{ \
if (unlikely(m_cond)) { \
- _err_print_error(FUNCTION_STR, __FILE__, __LINE__, "FATAL: Condition ' " _STR(m_cond) " ' is true."); \
+ _err_print_error(FUNCTION_STR, __FILE__, __LINE__, "FATAL: Condition \"" _STR(m_cond) "\" is true."); \
GENERATE_TRAP \
} \
}
+/**
+ * If `m_cond` evaluates to `true`, crashes the engine immediately with a custom error message.
+ * Only use this if there's no sensible fallback (i.e. the error is unrecoverable).
+ */
#define CRASH_COND_MSG(m_cond, m_msg) \
{ \
if (unlikely(m_cond)) { \
- _err_print_error(FUNCTION_STR, __FILE__, __LINE__, "FATAL: Condition ' " _STR(m_cond) " ' is true.", DEBUG_STR(m_msg)); \
+ _err_print_error(FUNCTION_STR, __FILE__, __LINE__, "FATAL: Condition \"" _STR(m_cond) "\" is true.", DEBUG_STR(m_msg)); \
GENERATE_TRAP \
} \
}
-/** An error condition happened (m_cond tested true) (WARNING this is the opposite as assert().
- * the function will exit.
- * This function returns an error value, if returning Error, please select the most
- * appropriate error condition from error_macros.h
+/**
+ * If `m_cond` evaluates to `true`, prints a generic error message and returns the value specified in `m_retval`.
*/
-
#define ERR_FAIL_COND_V(m_cond, m_retval) \
{ \
if (unlikely(m_cond)) { \
- _err_print_error(FUNCTION_STR, __FILE__, __LINE__, "Condition ' " _STR(m_cond) " ' is true. returned: " _STR(m_retval)); \
+ _err_print_error(FUNCTION_STR, __FILE__, __LINE__, "Condition \"" _STR(m_cond) "\" is true. Returned: " _STR(m_retval)); \
return m_retval; \
} \
}
+/**
+ * If `m_cond` evaluates to `true`, prints a custom error message and returns the value specified in `m_retval`.
+ */
#define ERR_FAIL_COND_V_MSG(m_cond, m_retval, m_msg) \
{ \
if (unlikely(m_cond)) { \
- _err_print_error(FUNCTION_STR, __FILE__, __LINE__, "Condition ' " _STR(m_cond) " ' is true. returned: " _STR(m_retval), DEBUG_STR(m_msg)); \
+ _err_print_error(FUNCTION_STR, __FILE__, __LINE__, "Condition \"" _STR(m_cond) "\" is true. Returned: " _STR(m_retval), DEBUG_STR(m_msg)); \
return m_retval; \
} \
}
-/** An error condition happened (m_cond tested true) (WARNING this is the opposite as assert().
- * the loop will skip to the next iteration.
- */
-
-#define ERR_CONTINUE(m_cond) \
- { \
- if (unlikely(m_cond)) { \
- _err_print_error(FUNCTION_STR, __FILE__, __LINE__, "Condition ' " _STR(m_cond) " ' is true. Continuing..:"); \
- continue; \
- } \
- }
-
-#define ERR_CONTINUE_MSG(m_cond, m_msg) \
- { \
- if (unlikely(m_cond)) { \
- _err_print_error(FUNCTION_STR, __FILE__, __LINE__, "Condition ' " _STR(m_cond) " ' is true. Continuing..:", DEBUG_STR(m_msg)); \
- continue; \
- } \
- }
-
-/** An error condition happened (m_cond tested true) (WARNING this is the opposite as assert().
- * the loop will break
+/**
+ * If `m_cond` evaluates to `true`, prints a custom error message and continues the loop the macro is located in.
*/
-
-#define ERR_BREAK(m_cond) \
+#define ERR_CONTINUE(m_cond) \
{ \
if (unlikely(m_cond)) { \
- _err_print_error(FUNCTION_STR, __FILE__, __LINE__, "Condition ' " _STR(m_cond) " ' is true. Breaking..:"); \
- break; \
+ _err_print_error(FUNCTION_STR, __FILE__, __LINE__, "Condition \"" _STR(m_cond) "\" is true. Continuing."); \
+ continue; \
} \
}
-#define ERR_BREAK_MSG(m_cond, m_msg) \
+/**
+ * If `m_cond` evaluates to `true`, prints a custom error message and continues the loop the macro is located in.
+ */
+#define ERR_CONTINUE_MSG(m_cond, m_msg) \
{ \
if (unlikely(m_cond)) { \
- _err_print_error(FUNCTION_STR, __FILE__, __LINE__, "Condition ' " _STR(m_cond) " ' is true. Breaking..:", DEBUG_STR(m_msg)); \
- break; \
+ _err_print_error(FUNCTION_STR, __FILE__, __LINE__, "Condition \"" _STR(m_cond) "\" is true. Continuing.", DEBUG_STR(m_msg)); \
+ continue; \
} \
}
-/** Print an error string and return
+/**
+ * If `m_cond` evaluates to `true`, prints a generic error message and breaks from the loop the macro is located in.
*/
-
-#define ERR_FAIL() \
- { \
- _err_print_error(FUNCTION_STR, __FILE__, __LINE__, "Method/Function Failed."); \
- return; \
+#define ERR_BREAK(m_cond) \
+ { \
+ if (unlikely(m_cond)) { \
+ _err_print_error(FUNCTION_STR, __FILE__, __LINE__, "Condition \"" _STR(m_cond) "\" is true. Breaking."); \
+ break; \
+ } \
}
-#define ERR_FAIL_MSG(m_msg) \
- { \
- _err_print_error(FUNCTION_STR, __FILE__, __LINE__, "Method/Function Failed.", DEBUG_STR(m_msg)); \
- return; \
+/**
+ * If `m_cond` evaluates to `true`, prints a custom error message and breaks from the loop the macro is located in.
+ */
+#define ERR_BREAK_MSG(m_cond, m_msg) \
+ { \
+ if (unlikely(m_cond)) { \
+ _err_print_error(FUNCTION_STR, __FILE__, __LINE__, "Condition \"" _STR(m_cond) "\" is true. Breaking.", DEBUG_STR(m_msg)); \
+ break; \
+ } \
}
-/** Print an error string and return with value
+/**
+ * Prints a generic error message and returns from the function.
*/
-
-#define ERR_FAIL_V(m_value) \
- { \
- _err_print_error(FUNCTION_STR, __FILE__, __LINE__, "Method/Function Failed, returning: " __STR(m_value)); \
- return m_value; \
+#define ERR_FAIL() \
+ { \
+ _err_print_error(FUNCTION_STR, __FILE__, __LINE__, "Method failed."); \
+ return; \
}
-#define ERR_FAIL_V_MSG(m_value, m_msg) \
- { \
- _err_print_error(FUNCTION_STR, __FILE__, __LINE__, "Method/Function Failed, returning: " __STR(m_value), DEBUG_STR(m_msg)); \
- return m_value; \
+/**
+ * Prints a custom error message and returns from the function.
+ */
+#define ERR_FAIL_MSG(m_msg) \
+ { \
+ _err_print_error(FUNCTION_STR, __FILE__, __LINE__, "Method failed.", DEBUG_STR(m_msg)); \
+ return; \
}
-/** Use this one if there is no sensible fallback, that is, the error is unrecoverable.
+/**
+ * Prints a generic error message and returns the value specified in `m_retval`.
*/
+#define ERR_FAIL_V(m_retval) \
+ { \
+ _err_print_error(FUNCTION_STR, __FILE__, __LINE__, "Method failed. Returning: " __STR(m_retval)); \
+ return m_retval; \
+ }
-#define CRASH_NOW() \
- { \
- _err_print_error(FUNCTION_STR, __FILE__, __LINE__, "FATAL: Method/Function Failed."); \
- GENERATE_TRAP \
+/**
+ * Prints a custom error message and returns the value specified in `m_retval`.
+ */
+#define ERR_FAIL_V_MSG(m_retval, m_msg) \
+ { \
+ _err_print_error(FUNCTION_STR, __FILE__, __LINE__, "Method failed. Returning: " __STR(m_retval), DEBUG_STR(m_msg)); \
+ return m_retval; \
}
-#define CRASH_NOW_MSG(m_msg) \
- { \
- _err_print_error(FUNCTION_STR, __FILE__, __LINE__, "FATAL: Method/Function Failed.", DEBUG_STR(m_msg)); \
- GENERATE_TRAP \
+/**
+ * Crashes the engine immediately with a generic error message.
+ * Only use this if there's no sensible fallback (i.e. the error is unrecoverable).
+ */
+#define CRASH_NOW() \
+ { \
+ _err_print_error(FUNCTION_STR, __FILE__, __LINE__, "FATAL: Method failed."); \
+ GENERATE_TRAP \
}
-/** Print an error string.
+/**
+ * Crashes the engine immediately with a custom error message.
+ * Only use this if there's no sensible fallback (i.e. the error is unrecoverable).
*/
+#define CRASH_NOW_MSG(m_msg) \
+ { \
+ _err_print_error(FUNCTION_STR, __FILE__, __LINE__, "FATAL: Method failed.", DEBUG_STR(m_msg)); \
+ GENERATE_TRAP \
+ }
+/**
+ * Prints an error message without returning.
+ */
#define ERR_PRINT(m_string) \
{ \
_err_print_error(FUNCTION_STR, __FILE__, __LINE__, m_string); \
}
+/**
+ * Prints an error message without returning.
+ * FIXME: Remove this macro and replace all uses with `ERR_PRINT` as it's identical.
+ */
#define ERR_PRINTS(m_string) \
{ \
_err_print_error(FUNCTION_STR, __FILE__, __LINE__, m_string); \
}
+/**
+ * Prints an error message without returning, but only do so once in the application lifecycle.
+ * This can be used to avoid spamming the console with error messages.
+ */
#define ERR_PRINT_ONCE(m_string) \
{ \
static bool first_print = true; \
@@ -401,19 +468,28 @@ void _err_print_index_error(const char *p_function, const char *p_file, int p_li
} \
}
-/** Print a warning string.
+/**
+ * Prints a warning message without returning. To warn about deprecated usage,
+ * use `WARN_DEPRECATED` or `WARN_DEPRECATED_MSG` instead.
*/
-
#define WARN_PRINT(m_string) \
{ \
_err_print_error(FUNCTION_STR, __FILE__, __LINE__, m_string, ERR_HANDLER_WARNING); \
}
+/**
+ * Prints a warning message without returning.
+ * FIXME: Remove this macro and replace all uses with `WARN_PRINT` as it's identical.
+ */
#define WARN_PRINTS(m_string) \
{ \
_err_print_error(FUNCTION_STR, __FILE__, __LINE__, m_string, ERR_HANDLER_WARNING); \
}
+/**
+ * Prints a warning message without returning, but only do so once in the application lifecycle.
+ * This can be used to avoid spamming the console with warning messages.
+ */
#define WARN_PRINT_ONCE(m_string) \
{ \
static bool first_print = true; \
@@ -423,22 +499,30 @@ void _err_print_index_error(const char *p_function, const char *p_file, int p_li
} \
}
-#define WARN_DEPRECATED \
- { \
- static volatile bool warning_shown = false; \
- if (!warning_shown) { \
- _err_print_error(FUNCTION_STR, __FILE__, __LINE__, "This method has been deprecated and will be removed in the future", ERR_HANDLER_WARNING); \
- warning_shown = true; \
- } \
+/**
+ * Prints a generic deprecation warning message without returning.
+ * This should be preferred to `WARN_PRINT` for deprecation warnings.
+ */
+#define WARN_DEPRECATED \
+ { \
+ static volatile bool warning_shown = false; \
+ if (!warning_shown) { \
+ _err_print_error(FUNCTION_STR, __FILE__, __LINE__, "This method has been deprecated and will be removed in the future.", ERR_HANDLER_WARNING); \
+ warning_shown = true; \
+ } \
}
-#define WARN_DEPRECATED_MSG(m_msg) \
- { \
- static volatile bool warning_shown = false; \
- if (!warning_shown) { \
- _err_print_error(FUNCTION_STR, __FILE__, __LINE__, "This method has been deprecated and will be removed in the future", m_msg, ERR_HANDLER_WARNING); \
- warning_shown = true; \
- } \
+/**
+ * Prints a custom deprecation warning message without returning.
+ * This should be preferred to `WARN_PRINT` for deprecation warnings.
+ */
+#define WARN_DEPRECATED_MSG(m_msg) \
+ { \
+ static volatile bool warning_shown = false; \
+ if (!warning_shown) { \
+ _err_print_error(FUNCTION_STR, __FILE__, __LINE__, "This method has been deprecated and will be removed in the future.", m_msg, ERR_HANDLER_WARNING); \
+ warning_shown = true; \
+ } \
}
#endif
diff --git a/core/image.cpp b/core/image.cpp
index 18d0653bae..f43c26ab19 100644
--- a/core/image.cpp
+++ b/core/image.cpp
@@ -421,6 +421,8 @@ void Image::convert(Format p_new_format) {
if (p_new_format == format)
return;
+ ERR_FAIL_COND_MSG(write_lock.ptr(), "Cannot convert image when it is locked.");
+
if (format > FORMAT_RGBE9995 || p_new_format > FORMAT_RGBE9995) {
ERR_FAIL_MSG("Cannot convert to <-> from compressed formats. Use compress() and decompress() instead.");
@@ -880,8 +882,8 @@ void Image::resize_to_po2(bool p_square) {
void Image::resize(int p_width, int p_height, Interpolation p_interpolation) {
ERR_FAIL_COND_MSG(data.size() == 0, "Cannot resize image before creating it, use create() or create_from_data() first.");
-
ERR_FAIL_COND_MSG(!_can_modify(format), "Cannot resize in compressed or custom image formats.");
+ ERR_FAIL_COND_MSG(write_lock.ptr(), "Cannot resize image when it is locked.");
bool mipmap_aware = p_interpolation == INTERPOLATE_TRILINEAR /* || p_interpolation == INTERPOLATE_TRICUBIC */;
@@ -2063,6 +2065,7 @@ void Image::blit_rect(const Ref<Image> &p_src, const Rect2 &p_src_rect, const Po
ERR_FAIL_COND(dsize == 0);
ERR_FAIL_COND(srcdsize == 0);
ERR_FAIL_COND(format != p_src->format);
+ ERR_FAIL_COND_MSG(!_can_modify(format), "Cannot blit_rect in compressed or custom image formats.");
Rect2i clipped_src_rect = Rect2i(0, 0, p_src->width, p_src->height).clip(p_src_rect);
@@ -2283,6 +2286,7 @@ void Image::blend_rect_mask(const Ref<Image> &p_src, const Ref<Image> &p_mask, c
}
void Image::fill(const Color &c) {
+ ERR_FAIL_COND_MSG(!_can_modify(format), "Cannot fill in compressed or custom image formats.");
lock();
diff --git a/core/math/basis.cpp b/core/math/basis.cpp
index d15cb71db9..ddf5f13d55 100644
--- a/core/math/basis.cpp
+++ b/core/math/basis.cpp
@@ -800,7 +800,7 @@ void Basis::set_quat(const Quat &p_quat) {
void Basis::set_axis_angle(const Vector3 &p_axis, real_t p_phi) {
// Rotation matrix from axis and angle, see https://en.wikipedia.org/wiki/Rotation_matrix#Rotation_matrix_from_axis_angle
#ifdef MATH_CHECKS
- ERR_FAIL_COND_MSG(!p_axis.is_normalized(), "Axis must be normalized.");
+ ERR_FAIL_COND_MSG(!p_axis.is_normalized(), "The axis Vector3 must be normalized.");
#endif
Vector3 axis_sq(p_axis.x * p_axis.x, p_axis.y * p_axis.y, p_axis.z * p_axis.z);
real_t cosine = Math::cos(p_phi);
diff --git a/core/math/camera_matrix.cpp b/core/math/camera_matrix.cpp
index 165bb9f823..380bae871a 100644
--- a/core/math/camera_matrix.cpp
+++ b/core/math/camera_matrix.cpp
@@ -247,7 +247,7 @@ real_t CameraMatrix::get_z_near() const {
return new_plane.d;
}
-void CameraMatrix::get_viewport_size(real_t &r_width, real_t &r_height) const {
+Vector2 CameraMatrix::get_viewport_half_extents() const {
const real_t *matrix = (const real_t *)this->matrix;
///////--- Near Plane ---///////
@@ -273,8 +273,7 @@ void CameraMatrix::get_viewport_size(real_t &r_width, real_t &r_height) const {
Vector3 res;
near_plane.intersect_3(right_plane, top_plane, &res);
- r_width = res.x;
- r_height = res.y;
+ return Vector2(res.x, res.y);
}
bool CameraMatrix::get_endpoints(const Transform &p_transform, Vector3 *p_8points) const {
@@ -563,9 +562,8 @@ CameraMatrix::operator String() const {
real_t CameraMatrix::get_aspect() const {
- real_t w, h;
- get_viewport_size(w, h);
- return w / h;
+ Vector2 vp_he = get_viewport_half_extents();
+ return vp_he.x / vp_he.y;
}
int CameraMatrix::get_pixels_per_meter(int p_for_pixel_width) const {
diff --git a/core/math/camera_matrix.h b/core/math/camera_matrix.h
index 59e34c0855..2eed6d25d6 100644
--- a/core/math/camera_matrix.h
+++ b/core/math/camera_matrix.h
@@ -73,7 +73,7 @@ struct CameraMatrix {
Vector<Plane> get_projection_planes(const Transform &p_transform) const;
bool get_endpoints(const Transform &p_transform, Vector3 *p_8points) const;
- void get_viewport_size(real_t &r_width, real_t &r_height) const;
+ Vector2 get_viewport_half_extents() const;
void invert();
CameraMatrix inverse() const;
diff --git a/core/math/quat.cpp b/core/math/quat.cpp
index 418abf4384..61cd41b23d 100644
--- a/core/math/quat.cpp
+++ b/core/math/quat.cpp
@@ -100,7 +100,7 @@ void Quat::set_euler_yxz(const Vector3 &p_euler) {
// This implementation uses YXZ convention (Z is the first rotation).
Vector3 Quat::get_euler_yxz() const {
#ifdef MATH_CHECKS
- ERR_FAIL_COND_V(!is_normalized(), Vector3(0, 0, 0));
+ ERR_FAIL_COND_V_MSG(!is_normalized(), Vector3(0, 0, 0), "The quaternion must be normalized.");
#endif
Basis m(*this);
return m.get_euler_yxz();
@@ -145,15 +145,15 @@ bool Quat::is_normalized() const {
Quat Quat::inverse() const {
#ifdef MATH_CHECKS
- ERR_FAIL_COND_V(!is_normalized(), Quat());
+ ERR_FAIL_COND_V_MSG(!is_normalized(), Quat(), "The quaternion must be normalized.");
#endif
return Quat(-x, -y, -z, w);
}
Quat Quat::slerp(const Quat &q, const real_t &t) const {
#ifdef MATH_CHECKS
- ERR_FAIL_COND_V(!is_normalized(), Quat());
- ERR_FAIL_COND_V(!q.is_normalized(), Quat());
+ ERR_FAIL_COND_V_MSG(!is_normalized(), Quat(), "The start quaternion must be normalized.");
+ ERR_FAIL_COND_V_MSG(!q.is_normalized(), Quat(), "The end quaternion must be normalized.");
#endif
Quat to1;
real_t omega, cosom, sinom, scale0, scale1;
@@ -199,8 +199,8 @@ Quat Quat::slerp(const Quat &q, const real_t &t) const {
Quat Quat::slerpni(const Quat &q, const real_t &t) const {
#ifdef MATH_CHECKS
- ERR_FAIL_COND_V(!is_normalized(), Quat());
- ERR_FAIL_COND_V(!q.is_normalized(), Quat());
+ ERR_FAIL_COND_V_MSG(!is_normalized(), Quat(), "The start quaternion must be normalized.");
+ ERR_FAIL_COND_V_MSG(!q.is_normalized(), Quat(), "The end quaternion must be normalized.");
#endif
const Quat &from = *this;
@@ -221,8 +221,8 @@ Quat Quat::slerpni(const Quat &q, const real_t &t) const {
Quat Quat::cubic_slerp(const Quat &q, const Quat &prep, const Quat &postq, const real_t &t) const {
#ifdef MATH_CHECKS
- ERR_FAIL_COND_V(!is_normalized(), Quat());
- ERR_FAIL_COND_V(!q.is_normalized(), Quat());
+ ERR_FAIL_COND_V_MSG(!is_normalized(), Quat(), "The start quaternion must be normalized.");
+ ERR_FAIL_COND_V_MSG(!q.is_normalized(), Quat(), "The end quaternion must be normalized.");
#endif
//the only way to do slerp :|
real_t t2 = (1.0 - t) * t * 2;
@@ -238,7 +238,7 @@ Quat::operator String() const {
void Quat::set_axis_angle(const Vector3 &axis, const real_t &angle) {
#ifdef MATH_CHECKS
- ERR_FAIL_COND(!axis.is_normalized());
+ ERR_FAIL_COND_MSG(!axis.is_normalized(), "The axis Vector3 must be normalized.");
#endif
real_t d = axis.length();
if (d == 0)
diff --git a/core/math/quat.h b/core/math/quat.h
index c337192a5b..11ae03dffb 100644
--- a/core/math/quat.h
+++ b/core/math/quat.h
@@ -84,7 +84,7 @@ public:
_FORCE_INLINE_ Vector3 xform(const Vector3 &v) const {
#ifdef MATH_CHECKS
- ERR_FAIL_COND_V(!is_normalized(), v);
+ ERR_FAIL_COND_V_MSG(!is_normalized(), v, "The quaternion must be normalized.");
#endif
Vector3 u(x, y, z);
Vector3 uv = u.cross(v);
diff --git a/core/math/vector2.cpp b/core/math/vector2.cpp
index b306ad3d09..f4259e388b 100644
--- a/core/math/vector2.cpp
+++ b/core/math/vector2.cpp
@@ -187,7 +187,7 @@ Vector2 Vector2::move_toward(const Vector2 &p_to, const real_t p_delta) const {
// slide returns the component of the vector along the given plane, specified by its normal vector.
Vector2 Vector2::slide(const Vector2 &p_normal) const {
#ifdef MATH_CHECKS
- ERR_FAIL_COND_V(!p_normal.is_normalized(), Vector2());
+ ERR_FAIL_COND_V_MSG(!p_normal.is_normalized(), Vector2(), "The normal Vector2 must be normalized.");
#endif
return *this - p_normal * this->dot(p_normal);
}
@@ -198,7 +198,7 @@ Vector2 Vector2::bounce(const Vector2 &p_normal) const {
Vector2 Vector2::reflect(const Vector2 &p_normal) const {
#ifdef MATH_CHECKS
- ERR_FAIL_COND_V(!p_normal.is_normalized(), Vector2());
+ ERR_FAIL_COND_V_MSG(!p_normal.is_normalized(), Vector2(), "The normal Vector2 must be normalized.");
#endif
return 2.0 * p_normal * this->dot(p_normal) - *this;
}
diff --git a/core/math/vector2.h b/core/math/vector2.h
index 351c974cf3..1dec830821 100644
--- a/core/math/vector2.h
+++ b/core/math/vector2.h
@@ -242,7 +242,7 @@ Vector2 Vector2::linear_interpolate(const Vector2 &p_b, real_t p_t) const {
Vector2 Vector2::slerp(const Vector2 &p_b, real_t p_t) const {
#ifdef MATH_CHECKS
- ERR_FAIL_COND_V(!is_normalized(), Vector2());
+ ERR_FAIL_COND_V_MSG(!is_normalized(), Vector2(), "The start Vector2 must be normalized.");
#endif
real_t theta = angle_to(p_b);
return rotated(theta * p_t);
diff --git a/core/math/vector3.h b/core/math/vector3.h
index 9bf7c41729..4ad3017109 100644
--- a/core/math/vector3.h
+++ b/core/math/vector3.h
@@ -454,7 +454,7 @@ void Vector3::zero() {
// slide returns the component of the vector along the given plane, specified by its normal vector.
Vector3 Vector3::slide(const Vector3 &p_normal) const {
#ifdef MATH_CHECKS
- ERR_FAIL_COND_V(!p_normal.is_normalized(), Vector3());
+ ERR_FAIL_COND_V_MSG(!p_normal.is_normalized(), Vector3(), "The normal Vector3 must be normalized.");
#endif
return *this - p_normal * this->dot(p_normal);
}
@@ -465,7 +465,7 @@ Vector3 Vector3::bounce(const Vector3 &p_normal) const {
Vector3 Vector3::reflect(const Vector3 &p_normal) const {
#ifdef MATH_CHECKS
- ERR_FAIL_COND_V(!p_normal.is_normalized(), Vector3());
+ ERR_FAIL_COND_V_MSG(!p_normal.is_normalized(), Vector3(), "The normal Vector3 must be normalized.");
#endif
return 2.0 * p_normal * this->dot(p_normal) - *this;
}
diff --git a/core/message_queue.cpp b/core/message_queue.cpp
index d130934826..64ceec5ee4 100644
--- a/core/message_queue.cpp
+++ b/core/message_queue.cpp
@@ -52,7 +52,7 @@ Error MessageQueue::push_call(ObjectID p_id, const StringName &p_method, const V
type = ObjectDB::get_instance(p_id)->get_class();
print_line("Failed method: " + type + ":" + p_method + " target ID: " + itos(p_id));
statistics();
- ERR_FAIL_V_MSG(ERR_OUT_OF_MEMORY, "Message queue out of memory. Try increasing 'message_queue_size_kb' in project settings.");
+ ERR_FAIL_V_MSG(ERR_OUT_OF_MEMORY, "Message queue out of memory. Try increasing 'memory/limits/message_queue/max_size_kb' in project settings.");
}
Message *msg = memnew_placement(&buffer[buffer_end], Message);
@@ -102,7 +102,7 @@ Error MessageQueue::push_set(ObjectID p_id, const StringName &p_prop, const Vari
type = ObjectDB::get_instance(p_id)->get_class();
print_line("Failed set: " + type + ":" + p_prop + " target ID: " + itos(p_id));
statistics();
- ERR_FAIL_V_MSG(ERR_OUT_OF_MEMORY, "Message queue out of memory. Try increasing 'message_queue_size_kb' in project settings.");
+ ERR_FAIL_V_MSG(ERR_OUT_OF_MEMORY, "Message queue out of memory. Try increasing 'memory/limits/message_queue/max_size_kb' in project settings.");
}
Message *msg = memnew_placement(&buffer[buffer_end], Message);
@@ -131,7 +131,7 @@ Error MessageQueue::push_notification(ObjectID p_id, int p_notification) {
if ((buffer_end + room_needed) >= buffer_size) {
print_line("Failed notification: " + itos(p_notification) + " target ID: " + itos(p_id));
statistics();
- ERR_FAIL_V_MSG(ERR_OUT_OF_MEMORY, "Message queue out of memory. Try increasing 'message_queue_size_kb' in project settings.");
+ ERR_FAIL_V_MSG(ERR_OUT_OF_MEMORY, "Message queue out of memory. Try increasing 'memory/limits/message_queue/max_size_kb' in project settings.");
}
Message *msg = memnew_placement(&buffer[buffer_end], Message);
diff --git a/core/os/midi_driver.cpp b/core/os/midi_driver.cpp
index 614ce99b2e..3e020a1585 100644
--- a/core/os/midi_driver.cpp
+++ b/core/os/midi_driver.cpp
@@ -52,7 +52,12 @@ void MIDIDriver::receive_input_packet(uint64_t timestamp, uint8_t *data, uint32_
uint32_t param_position = 1;
if (length >= 1) {
- if ((data[0] & 0x80) == 0x00) {
+ if (data[0] >= 0xF0) {
+ // channel does not apply to system common messages
+ event->set_channel(0);
+ event->set_message(data[0]);
+ last_received_message = data[0];
+ } else if ((data[0] & 0x80) == 0x00) {
// running status
event->set_channel(last_received_message & 0xF);
event->set_message(last_received_message >> 4);
diff --git a/core/os/os.cpp b/core/os/os.cpp
index 81dea159a6..1ed9484208 100644
--- a/core/os/os.cpp
+++ b/core/os/os.cpp
@@ -221,7 +221,7 @@ bool OS::has_virtual_keyboard() const {
return false;
}
-void OS::show_virtual_keyboard(const String &p_existing_text, const Rect2 &p_screen_rect) {
+void OS::show_virtual_keyboard(const String &p_existing_text, const Rect2 &p_screen_rect, int p_max_input_length) {
}
void OS::hide_virtual_keyboard() {
diff --git a/core/os/os.h b/core/os/os.h
index 714c4e3f09..89b3414b3e 100644
--- a/core/os/os.h
+++ b/core/os/os.h
@@ -267,7 +267,7 @@ public:
virtual int get_low_processor_usage_mode_sleep_usec() const;
virtual String get_executable_path() const;
- virtual Error execute(const String &p_path, const List<String> &p_arguments, bool p_blocking, ProcessID *r_child_id = NULL, String *r_pipe = NULL, int *r_exitcode = NULL, bool read_stderr = false, Mutex *p_pipe_mutex = NULL) = 0;
+ virtual Error execute(const String &p_path, const List<String> &p_arguments, bool p_blocking = true, ProcessID *r_child_id = NULL, String *r_pipe = NULL, int *r_exitcode = NULL, bool read_stderr = false, Mutex *p_pipe_mutex = NULL) = 0;
virtual Error kill(const ProcessID &p_pid) = 0;
virtual int get_process_id() const;
virtual void vibrate_handheld(int p_duration_ms = 500);
@@ -380,7 +380,7 @@ public:
};
virtual bool has_virtual_keyboard() const;
- virtual void show_virtual_keyboard(const String &p_existing_text, const Rect2 &p_screen_rect = Rect2());
+ virtual void show_virtual_keyboard(const String &p_existing_text, const Rect2 &p_screen_rect = Rect2(), int p_max_input_length = -1);
virtual void hide_virtual_keyboard();
// returns height of the currently shown virtual keyboard (0 if keyboard is hidden)
diff --git a/doc/classes/@GlobalScope.xml b/doc/classes/@GlobalScope.xml
index a131f1f8c8..e346a312cb 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.2">
+<class name="@GlobalScope" version="3.2">
<brief_description>
Global scope constants and variables.
</brief_description>
@@ -1167,10 +1167,10 @@
Since [constant OK] has value 0, and all other failure codes are positive integers, it can also be used in boolean checks, e.g.:
[codeblock]
var err = method_that_returns_error()
- if (err != OK):
+ if err != OK:
print("Failure!)
# Or, equivalent:
- if (err):
+ if err:
print("Still failing!)
[/codeblock]
</constant>
@@ -1454,7 +1454,7 @@
Default method flags.
</constant>
<constant name="TYPE_NIL" value="0" enum="Variant.Type">
- Variable is of type [Nil] (only applied for [code]null[/code]).
+ Variable is [code]null[/code].
</constant>
<constant name="TYPE_BOOL" value="1" enum="Variant.Type">
Variable is of type [bool].
diff --git a/doc/classes/AABB.xml b/doc/classes/AABB.xml
index af5598f126..cfb0435ce6 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.2">
+<class name="AABB" version="3.2">
<brief_description>
Axis-Aligned Bounding Box.
</brief_description>
diff --git a/doc/classes/ARVRAnchor.xml b/doc/classes/ARVRAnchor.xml
index 2177ed8930..614fd73928 100644
--- a/doc/classes/ARVRAnchor.xml
+++ b/doc/classes/ARVRAnchor.xml
@@ -1,10 +1,10 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="ARVRAnchor" inherits="Spatial" category="Core" version="3.2">
+<class name="ARVRAnchor" inherits="Spatial" version="3.2">
<brief_description>
An 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.
+ The [ARVRAnchor] 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; the nodes will simply remain on 0,0,0 until a plane is recognized.
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>
@@ -29,7 +29,7 @@
<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.
+ If provided by the [ARVRInterface], 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">
diff --git a/doc/classes/ARVRCamera.xml b/doc/classes/ARVRCamera.xml
index 1c468f193f..07e22e043c 100644
--- a/doc/classes/ARVRCamera.xml
+++ b/doc/classes/ARVRCamera.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="ARVRCamera" inherits="Camera" category="Core" version="3.2">
+<class name="ARVRCamera" inherits="Camera" version="3.2">
<brief_description>
A camera node with a few overrules for AR/VR applied, such as location tracking.
</brief_description>
@@ -8,6 +8,7 @@
The position and orientation of this node is automatically updated by the ARVR Server to represent the location of the HMD if such tracking is available and can thus be used by game logic. Note that, in contrast to the ARVR Controller, the render thread has access to the most up-to-date tracking data of the HMD and the location of the ARVRCamera can lag a few milliseconds behind what is used for rendering as a result.
</description>
<tutorials>
+ <link>https://docs.godotengine.org/en/latest/tutorials/vr/index.html</link>
</tutorials>
<methods>
</methods>
diff --git a/doc/classes/ARVRController.xml b/doc/classes/ARVRController.xml
index 24d8b48077..e2c12fe859 100644
--- a/doc/classes/ARVRController.xml
+++ b/doc/classes/ARVRController.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="ARVRController" inherits="Spatial" category="Core" version="3.2">
+<class name="ARVRController" inherits="Spatial" version="3.2">
<brief_description>
A spatial node representing a spatially-tracked controller.
</brief_description>
@@ -9,6 +9,7 @@
The position of the controller node is automatically updated by the [ARVRServer]. This makes this node ideal to add child nodes to visualize the controller.
</description>
<tutorials>
+ <link>https://docs.godotengine.org/en/latest/tutorials/vr/index.html</link>
</tutorials>
<methods>
<method name="get_controller_name" qualifiers="const">
diff --git a/doc/classes/ARVRInterface.xml b/doc/classes/ARVRInterface.xml
index 41effcaecb..24a5102677 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.2">
+<class name="ARVRInterface" inherits="Reference" version="3.2">
<brief_description>
Base class for an AR/VR interface implementation.
</brief_description>
@@ -8,6 +8,7 @@
Interfaces should be written in such a way that simply enabling them will give us a working setup. You can query the available interfaces through [ARVRServer].
</description>
<tutorials>
+ <link>https://docs.godotengine.org/en/latest/tutorials/vr/index.html</link>
</tutorials>
<methods>
<method name="get_camera_feed_id">
@@ -120,7 +121,7 @@
We don't know the status of the tracking or this interface does not provide feedback.
</constant>
<constant name="ARVR_NOT_TRACKING" value="4" enum="Tracking_status">
- Tracking is not functional (camera not plugged in or obscured, lighthouses turned off, etc.)
+ Tracking is not functional (camera not plugged in or obscured, lighthouses turned off, etc.).
</constant>
</constants>
</class>
diff --git a/doc/classes/ARVROrigin.xml b/doc/classes/ARVROrigin.xml
index b6b55741aa..42ac34ddb0 100644
--- a/doc/classes/ARVROrigin.xml
+++ b/doc/classes/ARVROrigin.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="ARVROrigin" inherits="Spatial" category="Core" version="3.2">
+<class name="ARVROrigin" inherits="Spatial" version="3.2">
<brief_description>
The origin point in AR/VR.
</brief_description>
@@ -10,6 +10,7 @@
For example, if your character is driving a car, the ARVROrigin node should be a child node of this car. Or, if you're implementing a teleport system to move your character, you should change the position of this node.
</description>
<tutorials>
+ <link>https://docs.godotengine.org/en/latest/tutorials/vr/index.html</link>
</tutorials>
<methods>
</methods>
diff --git a/doc/classes/ARVRPositionalTracker.xml b/doc/classes/ARVRPositionalTracker.xml
index c4acfd3b51..a281d02be1 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.2">
+<class name="ARVRPositionalTracker" inherits="Object" version="3.2">
<brief_description>
A tracked object.
</brief_description>
@@ -9,6 +9,7 @@
The [ARVRController] and [ARVRAnchor] both consume objects of this type and should be used in your project. The positional trackers are just under-the-hood objects that make this all work. These are mostly exposed so that GDNative-based interfaces can interact with them.
</description>
<tutorials>
+ <link>https://docs.godotengine.org/en/latest/tutorials/vr/index.html</link>
</tutorials>
<methods>
<method name="get_hand" qualifiers="const">
diff --git a/doc/classes/ARVRServer.xml b/doc/classes/ARVRServer.xml
index b71a18858f..192de95aed 100644
--- a/doc/classes/ARVRServer.xml
+++ b/doc/classes/ARVRServer.xml
@@ -1,12 +1,13 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="ARVRServer" inherits="Object" category="Core" version="3.2">
+<class name="ARVRServer" inherits="Object" version="3.2">
<brief_description>
- The AR/VR server.
+ Server for AR and VR features.
</brief_description>
<description>
- The AR/VR server is the heart of our AR/VR solution and handles all the processing.
+ The AR/VR server is the heart of our Advanced and Virtual Reality solution and handles all the processing.
</description>
<tutorials>
+ <link>https://docs.godotengine.org/en/latest/tutorials/vr/index.html</link>
</tutorials>
<methods>
<method name="center_on_hmd">
@@ -47,14 +48,14 @@
<argument index="0" name="idx" type="int">
</argument>
<description>
- Gets the interface registered at a given index in our list of interfaces.
+ Returns the interface registered at a given index in our list of interfaces.
</description>
</method>
<method name="get_interface_count" qualifiers="const">
<return type="int">
</return>
<description>
- Gets the number of interfaces currently registered with the AR/VR server. If your project supports multiple AR/VR platforms, you can look through the available interface, and either present the user with a selection or simply try to initialize each interface and use the first one that returns [code]true[/code].
+ Returns the number of interfaces currently registered with the AR/VR server. If your project supports multiple AR/VR platforms, you can look through the available interface, and either present the user with a selection or simply try to initialize each interface and use the first one that returns [code]true[/code].
</description>
</method>
<method name="get_interfaces" qualifiers="const">
@@ -68,25 +69,28 @@
<return type="int">
</return>
<description>
+ Returns the absolute timestamp (in μs) of the last [ARVRServer] commit of the AR/VR eyes to [VisualServer]. The value comes from an internal call to [method OS.get_ticks_usec].
</description>
</method>
<method name="get_last_frame_usec">
<return type="int">
</return>
<description>
+ Returns the duration (in μs) of the last frame. This is computed as the difference between [method get_last_commit_usec] and [method get_last_process_usec] when committing.
</description>
</method>
<method name="get_last_process_usec">
<return type="int">
</return>
<description>
+ Returns the absolute timestamp (in μs) of the last [ARVRServer] process callback. The value comes from an internal call to [method OS.get_ticks_usec].
</description>
</method>
<method name="get_reference_frame" qualifiers="const">
<return type="Transform">
</return>
<description>
- Gets the reference frame transform. Mostly used internally and exposed for GDNative build interfaces.
+ Returns the reference frame transform. Mostly used internally and exposed for GDNative build interfaces.
</description>
</method>
<method name="get_tracker" qualifiers="const">
@@ -95,19 +99,20 @@
<argument index="0" name="idx" type="int">
</argument>
<description>
- Gets the positional tracker at the given ID.
+ Returns the positional tracker at the given ID.
</description>
</method>
<method name="get_tracker_count" qualifiers="const">
<return type="int">
</return>
<description>
- Gets the number of trackers currently registered.
+ Returns the number of trackers currently registered.
</description>
</method>
</methods>
<members>
<member name="primary_interface" type="ARVRInterface" setter="set_primary_interface" getter="get_primary_interface">
+ The primary [ARVRInterface] currently bound to the [ARVRServer].
</member>
<member name="world_scale" type="float" setter="set_world_scale" getter="get_world_scale" default="1.0">
Allows you to adjust the scale to your game's units. Most AR/VR platforms assume a scale of 1 game world unit = 1 real world meter.
diff --git a/doc/classes/AStar.xml b/doc/classes/AStar.xml
index 6304bd34f6..22c22b0c16 100644
--- a/doc/classes/AStar.xml
+++ b/doc/classes/AStar.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="AStar" inherits="Reference" category="Core" version="3.2">
+<class name="AStar" inherits="Reference" version="3.2">
<brief_description>
An implementation of A* to find shortest paths among connected points in space.
</brief_description>
diff --git a/doc/classes/AStar2D.xml b/doc/classes/AStar2D.xml
index 3002e3c351..7a6ba746c7 100644
--- a/doc/classes/AStar2D.xml
+++ b/doc/classes/AStar2D.xml
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="AStar2D" inherits="Reference" category="Core" version="3.2">
+<class name="AStar2D" inherits="Reference" version="3.2">
<brief_description>
- AStar class representation that uses 2d-vectors as edges.
+ 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.
diff --git a/doc/classes/AcceptDialog.xml b/doc/classes/AcceptDialog.xml
index 8acaaa4819..159295250c 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.2">
+<class name="AcceptDialog" inherits="WindowDialog" version="3.2">
<brief_description>
Base dialog for user notification.
</brief_description>
diff --git a/doc/classes/AnimatedSprite.xml b/doc/classes/AnimatedSprite.xml
index 10ee4222c8..785d0ea09b 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.2">
+<class name="AnimatedSprite" inherits="Node2D" version="3.2">
<brief_description>
Sprite node that can use multiple textures for animation.
</brief_description>
diff --git a/doc/classes/AnimatedSprite3D.xml b/doc/classes/AnimatedSprite3D.xml
index eac5822d53..602a32e57f 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.2">
+<class name="AnimatedSprite3D" inherits="SpriteBase3D" version="3.2">
<brief_description>
2D sprite node in 3D world, that can use multiple 2D textures for animation.
</brief_description>
diff --git a/doc/classes/AnimatedTexture.xml b/doc/classes/AnimatedTexture.xml
index 5c43ce4d74..f53af6fa5d 100644
--- a/doc/classes/AnimatedTexture.xml
+++ b/doc/classes/AnimatedTexture.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="AnimatedTexture" inherits="Texture" category="Core" version="3.2">
+<class name="AnimatedTexture" inherits="Texture" version="3.2">
<brief_description>
Proxy texture for simple frame-based animations.
</brief_description>
diff --git a/doc/classes/Animation.xml b/doc/classes/Animation.xml
index 9924f75289..f1bfcdb175 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.2">
+<class name="Animation" inherits="Resource" version="3.2">
<brief_description>
Contains data used to animate everything in the engine.
</brief_description>
diff --git a/doc/classes/AnimationNode.xml b/doc/classes/AnimationNode.xml
index 79ec0f0a47..554aae7a20 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.2">
+<class name="AnimationNode" inherits="Resource" version="3.2">
<brief_description>
Base resource for [AnimationTree] nodes.
</brief_description>
@@ -8,6 +8,7 @@
Inherit this when creating nodes mainly for use in [AnimationNodeBlendTree], otherwise [AnimationRootNode] should be used instead.
</description>
<tutorials>
+ <link>https://docs.godotengine.org/en/latest/tutorials/animation/animation_tree.html</link>
</tutorials>
<methods>
<method name="add_input">
@@ -16,7 +17,7 @@
<argument index="0" name="name" type="String">
</argument>
<description>
- Adds an input to the node. This is only useful for nodes created for use in an [AnimationNodeBlendTree]
+ Adds an input to the node. This is only useful for nodes created for use in an [AnimationNodeBlendTree].
</description>
</method>
<method name="blend_animation">
@@ -33,7 +34,7 @@
<argument index="4" name="blend" type="float">
</argument>
<description>
- Blend an animation by "blend" amount (name must be valid in the linked [AnimationPlayer]). A time and delta mas be passed, as well as whether seek happened.
+ Blend an animation by [code]blend[/code] amount (name must be valid in the linked [AnimationPlayer]). A [code]time[/code] and [code]delta[/code] may be passed, as well as whether [code]seek[/code] happened.
</description>
</method>
<method name="blend_input">
@@ -52,7 +53,7 @@
<argument index="5" name="optimize" type="bool" default="true">
</argument>
<description>
- 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.
+ Blend an input. This is only useful for nodes created for an [AnimationNodeBlendTree]. The [code]time[/code] parameter is a relative delta, unless [code]seek[/code] is [code]true[/code], in which case it is absolute. A filter mode may be optionally passed (see [enum FilterAction] for options).
</description>
</method>
<method name="blend_node">
@@ -164,10 +165,9 @@
<argument index="1" name="seek" type="bool">
</argument>
<description>
- 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).
+ User-defined callback called when a custom node is processed. The [code]time[/code] parameter is a relative delta, unless [code]seek[/code] 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 should return the time left for the current animation to finish (if unsure, pass the value from the main blend being called).
</description>
</method>
<method name="remove_input">
diff --git a/doc/classes/AnimationNodeAdd2.xml b/doc/classes/AnimationNodeAdd2.xml
index bb7857717d..53f95dee39 100644
--- a/doc/classes/AnimationNodeAdd2.xml
+++ b/doc/classes/AnimationNodeAdd2.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="AnimationNodeAdd2" inherits="AnimationNode" category="Core" version="3.2">
+<class name="AnimationNodeAdd2" inherits="AnimationNode" version="3.2">
<brief_description>
Blends two animations additively inside of an [AnimationNodeBlendTree].
</brief_description>
@@ -7,6 +7,7 @@
A resource to add to an [AnimationNodeBlendTree]. Blends two animations additively based on an amount value in the [code][0.0, 1.0][/code] range.
</description>
<tutorials>
+ <link>https://docs.godotengine.org/en/latest/tutorials/animation/animation_tree.html</link>
</tutorials>
<methods>
</methods>
diff --git a/doc/classes/AnimationNodeAdd3.xml b/doc/classes/AnimationNodeAdd3.xml
index d338c2cf9e..dd0f827605 100644
--- a/doc/classes/AnimationNodeAdd3.xml
+++ b/doc/classes/AnimationNodeAdd3.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="AnimationNodeAdd3" inherits="AnimationNode" category="Core" version="3.2">
+<class name="AnimationNodeAdd3" inherits="AnimationNode" version="3.2">
<brief_description>
Blends two of three animations additively inside of an [AnimationNodeBlendTree].
</brief_description>
@@ -11,6 +11,7 @@
- A +add animation to blend with when the blend amount is in the [code][0.0, 1.0][/code] range
</description>
<tutorials>
+ <link>https://docs.godotengine.org/en/latest/tutorials/animation/animation_tree.html</link>
</tutorials>
<methods>
</methods>
diff --git a/doc/classes/AnimationNodeAnimation.xml b/doc/classes/AnimationNodeAnimation.xml
index a964877068..1ea6850318 100644
--- a/doc/classes/AnimationNodeAnimation.xml
+++ b/doc/classes/AnimationNodeAnimation.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="AnimationNodeAnimation" inherits="AnimationRootNode" category="Core" version="3.2">
+<class name="AnimationNodeAnimation" inherits="AnimationRootNode" version="3.2">
<brief_description>
Input animation to use in an [AnimationNodeBlendTree].
</brief_description>
@@ -7,6 +7,7 @@
A resource to add to an [AnimationNodeBlendTree]. Only features one output set using the [member animation] property. Use it as an input for [AnimationNode] that blend animations together.
</description>
<tutorials>
+ <link>https://docs.godotengine.org/en/latest/tutorials/animation/animation_tree.html</link>
</tutorials>
<methods>
</methods>
diff --git a/doc/classes/AnimationNodeBlend2.xml b/doc/classes/AnimationNodeBlend2.xml
index cac97b9ee7..1b599ed1ec 100644
--- a/doc/classes/AnimationNodeBlend2.xml
+++ b/doc/classes/AnimationNodeBlend2.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="AnimationNodeBlend2" inherits="AnimationNode" category="Core" version="3.2">
+<class name="AnimationNodeBlend2" inherits="AnimationNode" version="3.2">
<brief_description>
Blends two animations linearly inside of an [AnimationNodeBlendTree].
</brief_description>
@@ -7,6 +7,7 @@
A resource to add to an [AnimationNodeBlendTree]. Blends two animations linearly based on an amount value in the [code][0.0, 1.0][/code] range.
</description>
<tutorials>
+ <link>https://docs.godotengine.org/en/latest/tutorials/animation/animation_tree.html</link>
</tutorials>
<methods>
</methods>
diff --git a/doc/classes/AnimationNodeBlend3.xml b/doc/classes/AnimationNodeBlend3.xml
index 3b5c1f0b99..422ba17ccb 100644
--- a/doc/classes/AnimationNodeBlend3.xml
+++ b/doc/classes/AnimationNodeBlend3.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="AnimationNodeBlend3" inherits="AnimationNode" category="Core" version="3.2">
+<class name="AnimationNodeBlend3" inherits="AnimationNode" version="3.2">
<brief_description>
Blends two of three animations linearly inside of an [AnimationNodeBlendTree].
</brief_description>
@@ -11,6 +11,7 @@
- A +blend animation to blend with when the blend amount is in the [code][0.0, 1.0][/code] range
</description>
<tutorials>
+ <link>https://docs.godotengine.org/en/latest/tutorials/animation/animation_tree.html</link>
</tutorials>
<methods>
</methods>
diff --git a/doc/classes/AnimationNodeBlendSpace1D.xml b/doc/classes/AnimationNodeBlendSpace1D.xml
index 82d5716ee3..78a1040264 100644
--- a/doc/classes/AnimationNodeBlendSpace1D.xml
+++ b/doc/classes/AnimationNodeBlendSpace1D.xml
@@ -1,15 +1,16 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="AnimationNodeBlendSpace1D" inherits="AnimationRootNode" category="Core" version="3.2">
+<class name="AnimationNodeBlendSpace1D" inherits="AnimationRootNode" 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].
+ Outputs the linear blend of the two [AnimationNode]s closest to the node's current value.
You can set the extents of the axis using the [member min_space] and [member max_space].
</description>
<tutorials>
+ <link>https://docs.godotengine.org/en/latest/tutorials/animation/animation_tree.html</link>
</tutorials>
<methods>
<method name="add_blend_point">
@@ -22,7 +23,7 @@
<argument index="2" name="at_index" type="int" default="-1">
</argument>
<description>
- Adds 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.
+ Adds 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">
@@ -38,7 +39,7 @@
<argument index="0" name="point" type="int">
</argument>
<description>
- Returns the [code]AnimationNode[/code] referenced by the point at index [code]point[/code].
+ Returns the [AnimationNode] referenced by the point at index [code]point[/code].
</description>
</method>
<method name="get_blend_point_position" qualifiers="const">
@@ -67,7 +68,7 @@
<argument index="1" name="node" type="AnimationRootNode">
</argument>
<description>
- Changes the AnimationNode referenced by the point at index [code]point[/code].
+ Changes the [AnimationNode] referenced by the point at index [code]point[/code].
</description>
</method>
<method name="set_blend_point_position">
diff --git a/doc/classes/AnimationNodeBlendSpace2D.xml b/doc/classes/AnimationNodeBlendSpace2D.xml
index d8ea7fea5b..478a558909 100644
--- a/doc/classes/AnimationNodeBlendSpace2D.xml
+++ b/doc/classes/AnimationNodeBlendSpace2D.xml
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="AnimationNodeBlendSpace2D" inherits="AnimationRootNode" category="Core" version="3.2">
+<class name="AnimationNodeBlendSpace2D" inherits="AnimationRootNode" version="3.2">
<brief_description>
- Blends linearly between three [AnimationNode] of any type placed in a 2d space.
+ Blends linearly between three [AnimationNode] of any type placed in a 2D space.
</brief_description>
<description>
A resource to add to an [AnimationNodeBlendTree].
@@ -9,6 +9,7 @@
You can add vertices to the blend space with [method add_blend_point] and automatically triangulate it by setting [member auto_triangles] to [code]true[/code]. Otherwise, use [method add_triangle] and [method remove_triangle] to create up the blend space by hand.
</description>
<tutorials>
+ <link>https://docs.godotengine.org/en/latest/tutorials/animation/animation_tree.html</link>
</tutorials>
<methods>
<method name="add_blend_point">
@@ -21,7 +22,7 @@
<argument index="2" name="at_index" type="int" default="-1">
</argument>
<description>
- Adds 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.
+ Adds 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">
@@ -36,7 +37,7 @@
<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.
+ 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">
@@ -52,7 +53,7 @@
<argument index="0" name="point" type="int">
</argument>
<description>
- Returns the [code]AnimationRootNode[/code] referenced by the point at index [code]point[/code].
+ Returns the [AnimationRootNode] referenced by the point at index [code]point[/code].
</description>
</method>
<method name="get_blend_point_position" qualifiers="const">
@@ -108,7 +109,7 @@
<argument index="1" name="node" type="AnimationRootNode">
</argument>
<description>
- Changes the AnimationNode referenced by the point at index [code]point[/code].
+ Changes the [AnimationNode] referenced by the point at index [code]point[/code].
</description>
</method>
<method name="set_blend_point_position">
diff --git a/doc/classes/AnimationNodeBlendTree.xml b/doc/classes/AnimationNodeBlendTree.xml
index 76a0d65920..bd821da454 100644
--- a/doc/classes/AnimationNodeBlendTree.xml
+++ b/doc/classes/AnimationNodeBlendTree.xml
@@ -1,10 +1,11 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="AnimationNodeBlendTree" inherits="AnimationRootNode" category="Core" version="3.2">
+<class name="AnimationNodeBlendTree" inherits="AnimationRootNode" version="3.2">
<brief_description>
</brief_description>
<description>
</description>
<tutorials>
+ <link>https://docs.godotengine.org/en/latest/tutorials/animation/animation_tree.html</link>
</tutorials>
<methods>
<method name="add_node">
diff --git a/doc/classes/AnimationNodeOneShot.xml b/doc/classes/AnimationNodeOneShot.xml
index 099548f60a..6c0b9caa84 100644
--- a/doc/classes/AnimationNodeOneShot.xml
+++ b/doc/classes/AnimationNodeOneShot.xml
@@ -1,10 +1,11 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="AnimationNodeOneShot" inherits="AnimationNode" category="Core" version="3.2">
+<class name="AnimationNodeOneShot" inherits="AnimationNode" version="3.2">
<brief_description>
</brief_description>
<description>
</description>
<tutorials>
+ <link>https://docs.godotengine.org/en/latest/tutorials/animation/animation_tree.html</link>
</tutorials>
<methods>
<method name="get_mix_mode" qualifiers="const">
diff --git a/doc/classes/AnimationNodeOutput.xml b/doc/classes/AnimationNodeOutput.xml
index bfe28319c6..5ed021a871 100644
--- a/doc/classes/AnimationNodeOutput.xml
+++ b/doc/classes/AnimationNodeOutput.xml
@@ -1,10 +1,11 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="AnimationNodeOutput" inherits="AnimationNode" category="Core" version="3.2">
+<class name="AnimationNodeOutput" inherits="AnimationNode" version="3.2">
<brief_description>
</brief_description>
<description>
</description>
<tutorials>
+ <link>https://docs.godotengine.org/en/latest/tutorials/animation/animation_tree.html</link>
</tutorials>
<methods>
</methods>
diff --git a/doc/classes/AnimationNodeStateMachine.xml b/doc/classes/AnimationNodeStateMachine.xml
index 9a21492b8a..6dd5af6bc1 100644
--- a/doc/classes/AnimationNodeStateMachine.xml
+++ b/doc/classes/AnimationNodeStateMachine.xml
@@ -1,10 +1,10 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="AnimationNodeStateMachine" inherits="AnimationRootNode" category="Core" version="3.2">
+<class name="AnimationNodeStateMachine" inherits="AnimationRootNode" version="3.2">
<brief_description>
State machine for control of animations.
</brief_description>
<description>
- Contains multiple nodes representing animation states, connected in a graph. Node 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 programmatically.
+ Contains multiple nodes representing animation states, connected in a graph. Node 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 programmatically.
[b]Example:[/b]
[codeblock]
var state_machine = $AnimationTree.get("parameters/playback")
@@ -12,6 +12,7 @@
[/codeblock]
</description>
<tutorials>
+ <link>https://docs.godotengine.org/en/latest/tutorials/animation/animation_tree.html</link>
</tutorials>
<methods>
<method name="add_node">
@@ -159,7 +160,7 @@
<argument index="1" name="to" type="String">
</argument>
<description>
- Deletes the given transition.
+ Deletes the transition between the two specified nodes.
</description>
</method>
<method name="remove_transition_by_index">
@@ -168,7 +169,7 @@
<argument index="0" name="idx" type="int">
</argument>
<description>
- Deletes the given transition.
+ Deletes the given transition by index.
</description>
</method>
<method name="rename_node">
diff --git a/doc/classes/AnimationNodeStateMachinePlayback.xml b/doc/classes/AnimationNodeStateMachinePlayback.xml
index 09cd369bc4..b4739e97e5 100644
--- a/doc/classes/AnimationNodeStateMachinePlayback.xml
+++ b/doc/classes/AnimationNodeStateMachinePlayback.xml
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="AnimationNodeStateMachinePlayback" inherits="Resource" category="Core" version="3.2">
+<class name="AnimationNodeStateMachinePlayback" inherits="Resource" version="3.2">
<brief_description>
- Playback control for AnimationNodeStateMachine.
+ Playback control for [AnimationNodeStateMachine].
</brief_description>
<description>
Allows control of [AnimationTree] state machines created with [AnimationNodeStateMachine]. Retrieve with [code]$AnimationTree.get("parameters/playback")[/code].
@@ -12,6 +12,7 @@
[/codeblock]
</description>
<tutorials>
+ <link>https://docs.godotengine.org/en/latest/tutorials/animation/animation_tree.html</link>
</tutorials>
<methods>
<method name="get_current_node" qualifiers="const">
@@ -25,6 +26,7 @@
<return type="PoolStringArray">
</return>
<description>
+ Returns the current travel path as computed internally by the A* algorithm.
</description>
</method>
<method name="is_playing" qualifiers="const">
diff --git a/doc/classes/AnimationNodeStateMachineTransition.xml b/doc/classes/AnimationNodeStateMachineTransition.xml
index 08ff9997cf..e2e7a6ebf9 100644
--- a/doc/classes/AnimationNodeStateMachineTransition.xml
+++ b/doc/classes/AnimationNodeStateMachineTransition.xml
@@ -1,18 +1,19 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="AnimationNodeStateMachineTransition" inherits="Resource" category="Core" version="3.2">
+<class name="AnimationNodeStateMachineTransition" inherits="Resource" version="3.2">
<brief_description>
</brief_description>
<description>
</description>
<tutorials>
+ <link>https://docs.godotengine.org/en/latest/tutorials/animation/animation_tree.html</link>
</tutorials>
<methods>
</methods>
<members>
<member name="advance_condition" type="String" setter="set_advance_condition" getter="get_advance_condition" default="&quot;&quot;">
- Turn on auto advance when this condition is set. The provided name will become a boolean parameter on the [AnimationTree] that can be controlled from code (see [url=https://docs.godotengine.org/en/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":
+ 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 [code]"idle"[/code]:
[codeblock]
- $animation_tree["parameters/conditions/idle"] = is_on_floor and linear_velocity.x == 0
+ $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" default="false">
@@ -34,6 +35,7 @@
<signals>
<signal name="advance_condition_changed">
<description>
+ Emitted when [member advance_condition] is changed.
</description>
</signal>
</signals>
diff --git a/doc/classes/AnimationNodeTimeScale.xml b/doc/classes/AnimationNodeTimeScale.xml
index 9ce773c4e2..9f30a468e4 100644
--- a/doc/classes/AnimationNodeTimeScale.xml
+++ b/doc/classes/AnimationNodeTimeScale.xml
@@ -1,10 +1,11 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="AnimationNodeTimeScale" inherits="AnimationNode" category="Core" version="3.2">
+<class name="AnimationNodeTimeScale" inherits="AnimationNode" version="3.2">
<brief_description>
</brief_description>
<description>
</description>
<tutorials>
+ <link>https://docs.godotengine.org/en/latest/tutorials/animation/animation_tree.html</link>
</tutorials>
<methods>
</methods>
diff --git a/doc/classes/AnimationNodeTimeSeek.xml b/doc/classes/AnimationNodeTimeSeek.xml
index d593f5489c..d7fc2ee9e8 100644
--- a/doc/classes/AnimationNodeTimeSeek.xml
+++ b/doc/classes/AnimationNodeTimeSeek.xml
@@ -1,10 +1,11 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="AnimationNodeTimeSeek" inherits="AnimationNode" category="Core" version="3.2">
+<class name="AnimationNodeTimeSeek" inherits="AnimationNode" version="3.2">
<brief_description>
</brief_description>
<description>
</description>
<tutorials>
+ <link>https://docs.godotengine.org/en/latest/tutorials/animation/animation_tree.html</link>
</tutorials>
<methods>
</methods>
diff --git a/doc/classes/AnimationNodeTransition.xml b/doc/classes/AnimationNodeTransition.xml
index 82839b6bab..5495e20ab6 100644
--- a/doc/classes/AnimationNodeTransition.xml
+++ b/doc/classes/AnimationNodeTransition.xml
@@ -1,10 +1,11 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="AnimationNodeTransition" inherits="AnimationNode" category="Core" version="3.2">
+<class name="AnimationNodeTransition" inherits="AnimationNode" version="3.2">
<brief_description>
</brief_description>
<description>
</description>
<tutorials>
+ <link>https://docs.godotengine.org/en/latest/tutorials/animation/animation_tree.html</link>
</tutorials>
<methods>
<method name="get_input_caption" qualifiers="const">
@@ -45,134 +46,6 @@
</method>
</methods>
<members>
- <member name="input_0/auto_advance" type="bool" setter="set_input_as_auto_advance" getter="is_input_set_as_auto_advance">
- </member>
- <member name="input_0/name" type="String" setter="set_input_caption" getter="get_input_caption">
- </member>
- <member name="input_1/auto_advance" type="bool" setter="set_input_as_auto_advance" getter="is_input_set_as_auto_advance">
- </member>
- <member name="input_1/name" type="String" setter="set_input_caption" getter="get_input_caption">
- </member>
- <member name="input_10/auto_advance" type="bool" setter="set_input_as_auto_advance" getter="is_input_set_as_auto_advance">
- </member>
- <member name="input_10/name" type="String" setter="set_input_caption" getter="get_input_caption">
- </member>
- <member name="input_11/auto_advance" type="bool" setter="set_input_as_auto_advance" getter="is_input_set_as_auto_advance">
- </member>
- <member name="input_11/name" type="String" setter="set_input_caption" getter="get_input_caption">
- </member>
- <member name="input_12/auto_advance" type="bool" setter="set_input_as_auto_advance" getter="is_input_set_as_auto_advance">
- </member>
- <member name="input_12/name" type="String" setter="set_input_caption" getter="get_input_caption">
- </member>
- <member name="input_13/auto_advance" type="bool" setter="set_input_as_auto_advance" getter="is_input_set_as_auto_advance">
- </member>
- <member name="input_13/name" type="String" setter="set_input_caption" getter="get_input_caption">
- </member>
- <member name="input_14/auto_advance" type="bool" setter="set_input_as_auto_advance" getter="is_input_set_as_auto_advance">
- </member>
- <member name="input_14/name" type="String" setter="set_input_caption" getter="get_input_caption">
- </member>
- <member name="input_15/auto_advance" type="bool" setter="set_input_as_auto_advance" getter="is_input_set_as_auto_advance">
- </member>
- <member name="input_15/name" type="String" setter="set_input_caption" getter="get_input_caption">
- </member>
- <member name="input_16/auto_advance" type="bool" setter="set_input_as_auto_advance" getter="is_input_set_as_auto_advance">
- </member>
- <member name="input_16/name" type="String" setter="set_input_caption" getter="get_input_caption">
- </member>
- <member name="input_17/auto_advance" type="bool" setter="set_input_as_auto_advance" getter="is_input_set_as_auto_advance">
- </member>
- <member name="input_17/name" type="String" setter="set_input_caption" getter="get_input_caption">
- </member>
- <member name="input_18/auto_advance" type="bool" setter="set_input_as_auto_advance" getter="is_input_set_as_auto_advance">
- </member>
- <member name="input_18/name" type="String" setter="set_input_caption" getter="get_input_caption">
- </member>
- <member name="input_19/auto_advance" type="bool" setter="set_input_as_auto_advance" getter="is_input_set_as_auto_advance">
- </member>
- <member name="input_19/name" type="String" setter="set_input_caption" getter="get_input_caption">
- </member>
- <member name="input_2/auto_advance" type="bool" setter="set_input_as_auto_advance" getter="is_input_set_as_auto_advance">
- </member>
- <member name="input_2/name" type="String" setter="set_input_caption" getter="get_input_caption">
- </member>
- <member name="input_20/auto_advance" type="bool" setter="set_input_as_auto_advance" getter="is_input_set_as_auto_advance">
- </member>
- <member name="input_20/name" type="String" setter="set_input_caption" getter="get_input_caption">
- </member>
- <member name="input_21/auto_advance" type="bool" setter="set_input_as_auto_advance" getter="is_input_set_as_auto_advance">
- </member>
- <member name="input_21/name" type="String" setter="set_input_caption" getter="get_input_caption">
- </member>
- <member name="input_22/auto_advance" type="bool" setter="set_input_as_auto_advance" getter="is_input_set_as_auto_advance">
- </member>
- <member name="input_22/name" type="String" setter="set_input_caption" getter="get_input_caption">
- </member>
- <member name="input_23/auto_advance" type="bool" setter="set_input_as_auto_advance" getter="is_input_set_as_auto_advance">
- </member>
- <member name="input_23/name" type="String" setter="set_input_caption" getter="get_input_caption">
- </member>
- <member name="input_24/auto_advance" type="bool" setter="set_input_as_auto_advance" getter="is_input_set_as_auto_advance">
- </member>
- <member name="input_24/name" type="String" setter="set_input_caption" getter="get_input_caption">
- </member>
- <member name="input_25/auto_advance" type="bool" setter="set_input_as_auto_advance" getter="is_input_set_as_auto_advance">
- </member>
- <member name="input_25/name" type="String" setter="set_input_caption" getter="get_input_caption">
- </member>
- <member name="input_26/auto_advance" type="bool" setter="set_input_as_auto_advance" getter="is_input_set_as_auto_advance">
- </member>
- <member name="input_26/name" type="String" setter="set_input_caption" getter="get_input_caption">
- </member>
- <member name="input_27/auto_advance" type="bool" setter="set_input_as_auto_advance" getter="is_input_set_as_auto_advance">
- </member>
- <member name="input_27/name" type="String" setter="set_input_caption" getter="get_input_caption">
- </member>
- <member name="input_28/auto_advance" type="bool" setter="set_input_as_auto_advance" getter="is_input_set_as_auto_advance">
- </member>
- <member name="input_28/name" type="String" setter="set_input_caption" getter="get_input_caption">
- </member>
- <member name="input_29/auto_advance" type="bool" setter="set_input_as_auto_advance" getter="is_input_set_as_auto_advance">
- </member>
- <member name="input_29/name" type="String" setter="set_input_caption" getter="get_input_caption">
- </member>
- <member name="input_3/auto_advance" type="bool" setter="set_input_as_auto_advance" getter="is_input_set_as_auto_advance">
- </member>
- <member name="input_3/name" type="String" setter="set_input_caption" getter="get_input_caption">
- </member>
- <member name="input_30/auto_advance" type="bool" setter="set_input_as_auto_advance" getter="is_input_set_as_auto_advance">
- </member>
- <member name="input_30/name" type="String" setter="set_input_caption" getter="get_input_caption">
- </member>
- <member name="input_31/auto_advance" type="bool" setter="set_input_as_auto_advance" getter="is_input_set_as_auto_advance">
- </member>
- <member name="input_31/name" type="String" setter="set_input_caption" getter="get_input_caption">
- </member>
- <member name="input_4/auto_advance" type="bool" setter="set_input_as_auto_advance" getter="is_input_set_as_auto_advance">
- </member>
- <member name="input_4/name" type="String" setter="set_input_caption" getter="get_input_caption">
- </member>
- <member name="input_5/auto_advance" type="bool" setter="set_input_as_auto_advance" getter="is_input_set_as_auto_advance">
- </member>
- <member name="input_5/name" type="String" setter="set_input_caption" getter="get_input_caption">
- </member>
- <member name="input_6/auto_advance" type="bool" setter="set_input_as_auto_advance" getter="is_input_set_as_auto_advance">
- </member>
- <member name="input_6/name" type="String" setter="set_input_caption" getter="get_input_caption">
- </member>
- <member name="input_7/auto_advance" type="bool" setter="set_input_as_auto_advance" getter="is_input_set_as_auto_advance">
- </member>
- <member name="input_7/name" type="String" setter="set_input_caption" getter="get_input_caption">
- </member>
- <member name="input_8/auto_advance" type="bool" setter="set_input_as_auto_advance" getter="is_input_set_as_auto_advance">
- </member>
- <member name="input_8/name" type="String" setter="set_input_caption" getter="get_input_caption">
- </member>
- <member name="input_9/auto_advance" type="bool" setter="set_input_as_auto_advance" getter="is_input_set_as_auto_advance">
- </member>
- <member name="input_9/name" type="String" setter="set_input_caption" getter="get_input_caption">
- </member>
<member name="input_count" type="int" setter="set_enabled_inputs" getter="get_enabled_inputs" default="0">
</member>
<member name="xfade_time" type="float" setter="set_cross_fade_time" getter="get_cross_fade_time" default="0.0">
diff --git a/doc/classes/AnimationPlayer.xml b/doc/classes/AnimationPlayer.xml
index a47b4a590e..bb1754b810 100644
--- a/doc/classes/AnimationPlayer.xml
+++ b/doc/classes/AnimationPlayer.xml
@@ -1,10 +1,11 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="AnimationPlayer" inherits="Node" category="Core" version="3.2">
+<class name="AnimationPlayer" inherits="Node" version="3.2">
<brief_description>
Container and player of [Animation] resources.
</brief_description>
<description>
An animation player is used for general-purpose playback of [Animation] resources. It contains a dictionary of animations (referenced by name) and custom blend times between their transitions. Additionally, animations can be played and blended in different channels.
+ [AnimationPlayer] is more suited than [Tween] for animations where you know the final values in advance. For example, fading a screen in and out is more easily done with an [AnimationPlayer] node thanks to the animation tools provided by the editor. That particular example can also be implemented with a [Tween] node, but it requires doing everything by code.
Updating the target properties of animations occurs at process time.
</description>
<tutorials>
diff --git a/doc/classes/AnimationRootNode.xml b/doc/classes/AnimationRootNode.xml
index 735f3215e9..3983041f33 100644
--- a/doc/classes/AnimationRootNode.xml
+++ b/doc/classes/AnimationRootNode.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="AnimationRootNode" inherits="AnimationNode" category="Core" version="3.2">
+<class name="AnimationRootNode" inherits="AnimationNode" version="3.2">
<brief_description>
</brief_description>
<description>
diff --git a/doc/classes/AnimationTrackEditPlugin.xml b/doc/classes/AnimationTrackEditPlugin.xml
index 2dcabb051f..3cdec49c4d 100644
--- a/doc/classes/AnimationTrackEditPlugin.xml
+++ b/doc/classes/AnimationTrackEditPlugin.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="AnimationTrackEditPlugin" inherits="Reference" category="Core" version="3.2">
+<class name="AnimationTrackEditPlugin" inherits="Reference" version="3.2">
<brief_description>
</brief_description>
<description>
diff --git a/doc/classes/AnimationTree.xml b/doc/classes/AnimationTree.xml
index d1c24e466d..21cc6782b5 100644
--- a/doc/classes/AnimationTree.xml
+++ b/doc/classes/AnimationTree.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="AnimationTree" inherits="Node" category="Core" version="3.2">
+<class name="AnimationTree" inherits="Node" version="3.2">
<brief_description>
</brief_description>
<description>
diff --git a/doc/classes/AnimationTreePlayer.xml b/doc/classes/AnimationTreePlayer.xml
index 0d7a34b179..a5d3b858c4 100644
--- a/doc/classes/AnimationTreePlayer.xml
+++ b/doc/classes/AnimationTreePlayer.xml
@@ -1,13 +1,14 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="AnimationTreePlayer" inherits="Node" category="Core" version="3.2">
+<class name="AnimationTreePlayer" inherits="Node" version="3.2">
<brief_description>
- Animation Player that uses a node graph for blending Animations.
+ Animation player that uses a node graph for blending animations.
</brief_description>
<description>
A node graph tool for blending multiple animations bound to an [AnimationPlayer]. Especially useful for animating characters or other skeleton-based rigs. It can combine several animations to form a desired pose.
It takes [Animation]s from an [AnimationPlayer] node and mixes them depending on the graph.
</description>
<tutorials>
+ <link>https://docs.godotengine.org/en/latest/tutorials/animation/animation_tree.html</link>
</tutorials>
<methods>
<method name="add_node">
@@ -27,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. Events between the current frame and [code]delta[/code] are handled.
+ Shifts position in the animation timeline. [code]delta[/code] 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">
@@ -54,6 +55,7 @@
<argument index="0" name="id" type="String">
</argument>
<description>
+ Returns the absolute playback timestamp of the animation node with name [code]id[/code].
</description>
</method>
<method name="animation_node_set_animation">
@@ -122,10 +124,8 @@
</argument>
<description>
Sets the blend amount of a Blend2 node given its name and value.
- A Blend2 Node blends two animations with the amount between 0 and 1.
- At 0, Output is input a.
- Towards 1, the influence of a gets lessened, the influence of b gets raised.
- At 1, Output is input b.
+ A Blend2 node blends two animations (A and B) with the amount between 0 and 1.
+ At 0, output is input A. Towards 1, the influence of A gets lessened, the influence of B gets raised. At 1, output is input B.
</description>
</method>
<method name="blend2_node_set_filter_path">
@@ -138,7 +138,7 @@
<argument index="2" name="enable" type="bool">
</argument>
<description>
- If [code]enable[/code] is [code]true[/code], the blend2 node with ID [code]id[/code] turns off the track modifying the property at [code]path[/code]. The modified node's children continue to animate.
+ If [code]enable[/code] is [code]true[/code], the Blend2 node with name [code]id[/code] turns off the track modifying the property at [code]path[/code]. The modified node's children continue to animate.
</description>
</method>
<method name="blend3_node_get_amount" qualifiers="const">
@@ -159,12 +159,8 @@
</argument>
<description>
Sets the blend amount of a Blend3 node given its name and value.
- A Blend3 Node blends three animations with the amount between -1 and 1.
- At -1, Output is input b-.
- From -1 to 0, the influence of b- gets lessened, the influence of a gets raised and the influence of b+ is 0.
- At 0, Output is input a.
- From 0 to 1, the influence of a gets lessened, the influence of b+ gets raised and the influence of b+ is 0.
- At 1, Output is input b+.
+ A Blend3 Node blends three animations (A, B-, B+) with the amount between -1 and 1.
+ At -1, output is input B-. From -1 to 0, the influence of B- gets lessened, the influence of A gets raised and the influence of B+ is 0. At 0, output is input A. From 0 to 1, the influence of A gets lessened, the influence of B+ gets raised and the influence of B+ is 0. At 1, output is input B+.
</description>
</method>
<method name="blend4_node_get_amount" qualifiers="const">
@@ -186,7 +182,7 @@
<description>
Sets the blend amount of a Blend4 node given its name and value.
A Blend4 Node blends two pairs of animations.
- The two pairs are blended like blend2 and then added together.
+ The two pairs are blended like Blend2 and then added together.
</description>
</method>
<method name="connect_nodes">
@@ -226,7 +222,7 @@
<argument index="0" name="id" type="String">
</argument>
<description>
- Returns mix amount of a Mix node given its name.
+ Returns the mix amount of a Mix node given its name.
</description>
</method>
<method name="mix_node_set_amount">
@@ -237,7 +233,7 @@
<argument index="1" name="ratio" type="float">
</argument>
<description>
- Sets mix amount of a Mix node given its name and value.
+ Sets the mix amount of a Mix node given its name and value.
A Mix node adds input b to input a by the amount given by ratio.
</description>
</method>
@@ -296,7 +292,7 @@
<argument index="1" name="new_name" type="String">
</argument>
<description>
- Rename a node in the graph.
+ Renames a node in the graph.
</description>
</method>
<method name="node_set_position">
@@ -307,7 +303,7 @@
<argument index="1" name="screen_position" type="Vector2">
</argument>
<description>
- Sets position of a node in the graph given its name and position.
+ Sets the position of a node in the graph given its name and position.
</description>
</method>
<method name="oneshot_node_get_autorestart_delay" qualifiers="const">
@@ -316,7 +312,7 @@
<argument index="0" name="id" type="String">
</argument>
<description>
- Returns autostart delay of a OneShot node given its name.
+ Returns the autostart delay of a OneShot node given its name.
</description>
</method>
<method name="oneshot_node_get_autorestart_random_delay" qualifiers="const">
@@ -325,7 +321,7 @@
<argument index="0" name="id" type="String">
</argument>
<description>
- Returns autostart random delay of a OneShot node given its name.
+ Returns the autostart random delay of a OneShot node given its name.
</description>
</method>
<method name="oneshot_node_get_fadein_time" qualifiers="const">
@@ -334,7 +330,7 @@
<argument index="0" name="id" type="String">
</argument>
<description>
- Returns fade in time of a OneShot node given its name.
+ Returns the fade in time of a OneShot node given its name.
</description>
</method>
<method name="oneshot_node_get_fadeout_time" qualifiers="const">
@@ -343,7 +339,7 @@
<argument index="0" name="id" type="String">
</argument>
<description>
- Returns fade out time of a OneShot node given its name.
+ Returns the fade out time of a OneShot node given its name.
</description>
</method>
<method name="oneshot_node_has_autorestart" qualifiers="const">
@@ -372,7 +368,7 @@
<argument index="1" name="enable" type="bool">
</argument>
<description>
- Sets autorestart property of a OneShot node given its name and value.
+ Sets the autorestart property of a OneShot node given its name and value.
</description>
</method>
<method name="oneshot_node_set_autorestart_delay">
@@ -383,7 +379,7 @@
<argument index="1" name="delay_sec" type="float">
</argument>
<description>
- Sets autorestart delay of a OneShot node given its name and value in seconds.
+ Sets the autorestart delay of a OneShot node given its name and value in seconds.
</description>
</method>
<method name="oneshot_node_set_autorestart_random_delay">
@@ -394,7 +390,7 @@
<argument index="1" name="rand_sec" type="float">
</argument>
<description>
- Sets autorestart random delay of a OneShot node given its name and value in seconds.
+ Sets the autorestart random delay of a OneShot node given its name and value in seconds.
</description>
</method>
<method name="oneshot_node_set_fadein_time">
@@ -405,7 +401,7 @@
<argument index="1" name="time_sec" type="float">
</argument>
<description>
- Sets fade in time of a OneShot node given its name and value in seconds.
+ Sets the fade in time of a OneShot node given its name and value in seconds.
</description>
</method>
<method name="oneshot_node_set_fadeout_time">
@@ -416,7 +412,7 @@
<argument index="1" name="time_sec" type="float">
</argument>
<description>
- Sets fade out time of a OneShot node given its name and value in seconds.
+ Sets the fade out time of a OneShot node given its name and value in seconds.
</description>
</method>
<method name="oneshot_node_set_filter_path">
@@ -429,7 +425,7 @@
<argument index="2" name="enable" type="bool">
</argument>
<description>
- If [code]enable[/code] is [code]true[/code], the oneshot node with ID [code]id[/code] turns off the track modifying the property at [code]path[/code]. The modified node's children continue to animate.
+ If [code]enable[/code] is [code]true[/code], the OneShot node with ID [code]id[/code] turns off the track modifying the property at [code]path[/code]. The modified node's children continue to animate.
</description>
</method>
<method name="oneshot_node_start">
@@ -479,7 +475,7 @@
<argument index="0" name="id" type="String">
</argument>
<description>
- Returns time scale value of the TimeScale node with name [code]id[/code].
+ Returns the time scale value of the TimeScale node with name [code]id[/code].
</description>
</method>
<method name="timescale_node_set_scale">
@@ -491,7 +487,7 @@
</argument>
<description>
Sets the time scale of the TimeScale node with name [code]id[/code] to [code]scale[/code].
- The timescale node is used to speed [Animation]s up if the scale is above 1 or slow them down if it is below 1.
+ The TimeScale node is used to speed [Animation]s up if the scale is above 1 or slow them down if it is below 1.
If applied after a blend or mix, affects all input animations to that blend or mix.
</description>
</method>
@@ -533,7 +529,7 @@
<argument index="0" name="id" type="String">
</argument>
<description>
- Returns the number of inputs for the transition node with name [code]id[/code]. You can add inputs by rightclicking on the transition node.
+ Returns the number of inputs for the transition node with name [code]id[/code]. You can add inputs by right-clicking on the transition node.
</description>
</method>
<method name="transition_node_get_xfade_time" qualifiers="const">
@@ -553,7 +549,7 @@
<argument index="1" name="input_idx" type="int">
</argument>
<description>
- Returns [code]true[/code] if the input at [code]input_idx[/code] on transition node with name [code]id[/code] is set to automatically advance to the next input upon completion.
+ Returns [code]true[/code] if the input at [code]input_idx[/code] on the transition node with name [code]id[/code] is set to automatically advance to the next input upon completion.
</description>
</method>
<method name="transition_node_set_current">
@@ -609,11 +605,11 @@
</member>
<member name="base_path" type="NodePath" setter="set_base_path" getter="get_base_path" default="NodePath(&quot;..&quot;)">
The node from which to relatively access other nodes.
- It accesses the Bones, so it should point to the same Node the AnimationPlayer would point its Root Node at.
+ 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" default="NodePath(&quot;&quot;)">
The path to the [AnimationPlayer] from which this [AnimationTreePlayer] binds animations to animation nodes.
- Once set, Animation nodes can be added to the AnimationTreePlayer.
+ 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" default="1">
The thread in which to update animations.
diff --git a/doc/classes/Area.xml b/doc/classes/Area.xml
index 4b0858935d..c7b1d8ca07 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.2">
+<class name="Area" inherits="CollisionObject" version="3.2">
<brief_description>
General-purpose area node for detection and 3D physics influence.
</brief_description>
diff --git a/doc/classes/Area2D.xml b/doc/classes/Area2D.xml
index be3acee9ef..7698b4585c 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.2">
+<class name="Area2D" inherits="CollisionObject2D" version="3.2">
<brief_description>
2D area for detection and 2D physics influence.
</brief_description>
diff --git a/doc/classes/Array.xml b/doc/classes/Array.xml
index c192cee1fe..5f100d918e 100644
--- a/doc/classes/Array.xml
+++ b/doc/classes/Array.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="Array" category="Built-In Types" version="3.2">
+<class name="Array" version="3.2">
<brief_description>
Generic array datatype.
</brief_description>
@@ -8,11 +8,11 @@
[b]Example:[/b]
[codeblock]
var array = ["One", 2, 3, "Four"]
- print(array[0]) # One
- print(array[2]) # 3
- print(array[-1]) # Four
+ print(array[0]) # One.
+ print(array[2]) # 3.
+ print(array[-1]) # Four.
array[2] = "Three"
- print(array[-2]) # Three
+ print(array[-2]) # Three.
[/codeblock]
Arrays are always passed by reference.
</description>
@@ -342,7 +342,7 @@
var my_items = [[5, "Potato"], [9, "Rice"], [4, "Tomato"]]
my_items.sort_custom(MyCustomSorter, "sort_ascending")
- print(my_items) # Prints [[4, Tomato], [5, Potato], [9, Rice]]
+ print(my_items) # Prints [[4, Tomato], [5, Potato], [9, Rice]].
[/codeblock]
</description>
</method>
diff --git a/doc/classes/ArrayMesh.xml b/doc/classes/ArrayMesh.xml
index e3e9c38419..20f8b2ab60 100644
--- a/doc/classes/ArrayMesh.xml
+++ b/doc/classes/ArrayMesh.xml
@@ -1,10 +1,11 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="ArrayMesh" inherits="Mesh" category="Core" version="3.2">
+<class name="ArrayMesh" inherits="Mesh" version="3.2">
<brief_description>
[Mesh] type that provides utility for constructing a surface from arrays.
</brief_description>
<description>
- 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
+ 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))
@@ -20,10 +21,10 @@
var m = MeshInstance.new()
m.mesh = arr_mesh
[/codeblock]
- The [code]MeshInstance[/code] is ready to be added to the SceneTree to be shown.
+ The [MeshInstance] is ready to be added to the [SceneTree] to be shown.
</description>
<tutorials>
- <link>http://docs.godotengine.org/en/latest/tutorials/content/procedural_geometry/arraymesh.html</link>
+ <link>https://docs.godotengine.org/en/latest/tutorials/content/procedural_geometry/arraymesh.html</link>
</tutorials>
<methods>
<method name="add_blend_shape">
@@ -234,10 +235,10 @@
Array format will include vertices (mandatory).
</constant>
<constant name="ARRAY_FORMAT_NORMAL" value="2" enum="ArrayFormat">
- Array format will include normals
+ Array format will include normals.
</constant>
<constant name="ARRAY_FORMAT_TANGENT" value="4" enum="ArrayFormat">
- Array format will include tangents
+ Array format will include tangents.
</constant>
<constant name="ARRAY_FORMAT_COLOR" value="8" enum="ArrayFormat">
Array format will include a color array.
diff --git a/doc/classes/AtlasTexture.xml b/doc/classes/AtlasTexture.xml
index db6ac1bc6d..d4e380ca82 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.2">
+<class name="AtlasTexture" inherits="Texture" 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>
diff --git a/doc/classes/AudioBusLayout.xml b/doc/classes/AudioBusLayout.xml
index fb36440a67..c329bed9f2 100644
--- a/doc/classes/AudioBusLayout.xml
+++ b/doc/classes/AudioBusLayout.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="AudioBusLayout" inherits="Resource" category="Core" version="3.2">
+<class name="AudioBusLayout" inherits="Resource" version="3.2">
<brief_description>
Stores information about the audio buses.
</brief_description>
diff --git a/doc/classes/AudioEffect.xml b/doc/classes/AudioEffect.xml
index 3e7863a44c..4e7dd317f4 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.2">
+<class name="AudioEffect" inherits="Resource" version="3.2">
<brief_description>
Audio effect for audio.
</brief_description>
diff --git a/doc/classes/AudioEffectAmplify.xml b/doc/classes/AudioEffectAmplify.xml
index 3003238eb9..39bd22b17d 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.2">
+<class name="AudioEffectAmplify" inherits="AudioEffect" version="3.2">
<brief_description>
Adds an amplifying audio effect to an audio bus.
Increases or decreases the volume of the selected audio bus.
diff --git a/doc/classes/AudioEffectBandLimitFilter.xml b/doc/classes/AudioEffectBandLimitFilter.xml
index f85c8cdd32..51997f0bd3 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.2">
+<class name="AudioEffectBandLimitFilter" inherits="AudioEffectFilter" version="3.2">
<brief_description>
Adds a band limit filter to the audio bus.
</brief_description>
diff --git a/doc/classes/AudioEffectBandPassFilter.xml b/doc/classes/AudioEffectBandPassFilter.xml
index 359eb9d669..3fa528f993 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.2">
+<class name="AudioEffectBandPassFilter" inherits="AudioEffectFilter" version="3.2">
<brief_description>
Adds a band pass filter to the audio bus.
</brief_description>
diff --git a/doc/classes/AudioEffectChorus.xml b/doc/classes/AudioEffectChorus.xml
index 4da125ba63..c9e6b2431b 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.2">
+<class name="AudioEffectChorus" inherits="AudioEffect" version="3.2">
<brief_description>
Adds a chorus audio effect.
</brief_description>
diff --git a/doc/classes/AudioEffectCompressor.xml b/doc/classes/AudioEffectCompressor.xml
index 6834804ea7..96a3922315 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.2">
+<class name="AudioEffectCompressor" inherits="AudioEffect" 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.
diff --git a/doc/classes/AudioEffectDelay.xml b/doc/classes/AudioEffectDelay.xml
index aea6ead983..4900674f64 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.2">
+<class name="AudioEffectDelay" inherits="AudioEffect" 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.
diff --git a/doc/classes/AudioEffectDistortion.xml b/doc/classes/AudioEffectDistortion.xml
index 0ee7d73f88..5ea4c5d2e3 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.2">
+<class name="AudioEffectDistortion" inherits="AudioEffect" version="3.2">
<brief_description>
Adds a distortion audio effect to an Audio bus.
Modify the sound to make it dirty.
diff --git a/doc/classes/AudioEffectEQ.xml b/doc/classes/AudioEffectEQ.xml
index d30b6fc71d..4d4ba05f04 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.2">
+<class name="AudioEffectEQ" inherits="AudioEffect" 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.
diff --git a/doc/classes/AudioEffectEQ10.xml b/doc/classes/AudioEffectEQ10.xml
index e94c4c71df..a5a1589126 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.2">
+<class name="AudioEffectEQ10" inherits="AudioEffectEQ" 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.
diff --git a/doc/classes/AudioEffectEQ21.xml b/doc/classes/AudioEffectEQ21.xml
index dd26e06ee8..986bac8086 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.2">
+<class name="AudioEffectEQ21" inherits="AudioEffectEQ" 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.
diff --git a/doc/classes/AudioEffectEQ6.xml b/doc/classes/AudioEffectEQ6.xml
index eb3dc738ef..91c135ec97 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.2">
+<class name="AudioEffectEQ6" inherits="AudioEffectEQ" 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.
diff --git a/doc/classes/AudioEffectFilter.xml b/doc/classes/AudioEffectFilter.xml
index 5daad6748f..04a555a223 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.2">
+<class name="AudioEffectFilter" inherits="AudioEffect" version="3.2">
<brief_description>
Adds a filter to the audio bus.
</brief_description>
diff --git a/doc/classes/AudioEffectHighPassFilter.xml b/doc/classes/AudioEffectHighPassFilter.xml
index 589195da02..e3372fc5f3 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.2">
+<class name="AudioEffectHighPassFilter" inherits="AudioEffectFilter" version="3.2">
<brief_description>
Adds a high-pass filter to the Audio Bus.
</brief_description>
diff --git a/doc/classes/AudioEffectHighShelfFilter.xml b/doc/classes/AudioEffectHighShelfFilter.xml
index cccd18afcc..4b631d68dc 100644
--- a/doc/classes/AudioEffectHighShelfFilter.xml
+++ b/doc/classes/AudioEffectHighShelfFilter.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="AudioEffectHighShelfFilter" inherits="AudioEffectFilter" category="Core" version="3.2">
+<class name="AudioEffectHighShelfFilter" inherits="AudioEffectFilter" version="3.2">
<brief_description>
</brief_description>
<description>
diff --git a/doc/classes/AudioEffectInstance.xml b/doc/classes/AudioEffectInstance.xml
index eb8bcfdf2a..331d023aba 100644
--- a/doc/classes/AudioEffectInstance.xml
+++ b/doc/classes/AudioEffectInstance.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="AudioEffectInstance" inherits="Reference" category="Core" version="3.2">
+<class name="AudioEffectInstance" inherits="Reference" version="3.2">
<brief_description>
</brief_description>
<description>
diff --git a/doc/classes/AudioEffectLimiter.xml b/doc/classes/AudioEffectLimiter.xml
index ee6252809a..2c5c4ab632 100644
--- a/doc/classes/AudioEffectLimiter.xml
+++ b/doc/classes/AudioEffectLimiter.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="AudioEffectLimiter" inherits="AudioEffect" category="Core" version="3.2">
+<class name="AudioEffectLimiter" inherits="AudioEffect" version="3.2">
<brief_description>
Adds a soft-clip limiter audio effect to an Audio bus.
</brief_description>
diff --git a/doc/classes/AudioEffectLowPassFilter.xml b/doc/classes/AudioEffectLowPassFilter.xml
index c0319a6713..ff13ca9666 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.2">
+<class name="AudioEffectLowPassFilter" inherits="AudioEffectFilter" version="3.2">
<brief_description>
Adds a low-pass filter to the Audio bus.
</brief_description>
diff --git a/doc/classes/AudioEffectLowShelfFilter.xml b/doc/classes/AudioEffectLowShelfFilter.xml
index 1e60e637fc..b1e919c445 100644
--- a/doc/classes/AudioEffectLowShelfFilter.xml
+++ b/doc/classes/AudioEffectLowShelfFilter.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="AudioEffectLowShelfFilter" inherits="AudioEffectFilter" category="Core" version="3.2">
+<class name="AudioEffectLowShelfFilter" inherits="AudioEffectFilter" version="3.2">
<brief_description>
</brief_description>
<description>
diff --git a/doc/classes/AudioEffectNotchFilter.xml b/doc/classes/AudioEffectNotchFilter.xml
index 4b5cfd7e51..d360d960bd 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.2">
+<class name="AudioEffectNotchFilter" inherits="AudioEffectFilter" version="3.2">
<brief_description>
Adds a notch filter to the Audio bus.
</brief_description>
diff --git a/doc/classes/AudioEffectPanner.xml b/doc/classes/AudioEffectPanner.xml
index e3a2dfcf21..194c6a6681 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.2">
+<class name="AudioEffectPanner" inherits="AudioEffect" version="3.2">
<brief_description>
Adds a panner audio effect to an Audio bus. Pans sound left or right.
</brief_description>
diff --git a/doc/classes/AudioEffectPhaser.xml b/doc/classes/AudioEffectPhaser.xml
index 445f78dd73..8a9b37e561 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.2">
+<class name="AudioEffectPhaser" inherits="AudioEffect" 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.
diff --git a/doc/classes/AudioEffectPitchShift.xml b/doc/classes/AudioEffectPitchShift.xml
index 1f891dfb32..4cf5a472e5 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.2">
+<class name="AudioEffectPitchShift" inherits="AudioEffect" version="3.2">
<brief_description>
Adds a pitch-shifting audio effect to an Audio bus.
Raises or lowers the pitch of original sound.
diff --git a/doc/classes/AudioEffectRecord.xml b/doc/classes/AudioEffectRecord.xml
index 4f97797b37..3ae1acd2cf 100644
--- a/doc/classes/AudioEffectRecord.xml
+++ b/doc/classes/AudioEffectRecord.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="AudioEffectRecord" inherits="AudioEffect" category="Core" version="3.2">
+<class name="AudioEffectRecord" inherits="AudioEffect" version="3.2">
<brief_description>
</brief_description>
<description>
diff --git a/doc/classes/AudioEffectReverb.xml b/doc/classes/AudioEffectReverb.xml
index a0664e727f..8ba77733fd 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.2">
+<class name="AudioEffectReverb" inherits="AudioEffect" version="3.2">
<brief_description>
Adds a reverberation audio effect to an Audio bus.
Simulates the sound of acoustic environments such as rooms, concert halls, caverns, or an open spaces.
diff --git a/doc/classes/AudioEffectSpectrumAnalyzer.xml b/doc/classes/AudioEffectSpectrumAnalyzer.xml
index a56e4f2692..f1f8844f04 100644
--- a/doc/classes/AudioEffectSpectrumAnalyzer.xml
+++ b/doc/classes/AudioEffectSpectrumAnalyzer.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="AudioEffectSpectrumAnalyzer" inherits="AudioEffect" category="Core" version="3.2">
+<class name="AudioEffectSpectrumAnalyzer" inherits="AudioEffect" version="3.2">
<brief_description>
</brief_description>
<description>
diff --git a/doc/classes/AudioEffectSpectrumAnalyzerInstance.xml b/doc/classes/AudioEffectSpectrumAnalyzerInstance.xml
index ca068d572d..3152d1ad38 100644
--- a/doc/classes/AudioEffectSpectrumAnalyzerInstance.xml
+++ b/doc/classes/AudioEffectSpectrumAnalyzerInstance.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="AudioEffectSpectrumAnalyzerInstance" inherits="AudioEffectInstance" category="Core" version="3.2">
+<class name="AudioEffectSpectrumAnalyzerInstance" inherits="AudioEffectInstance" version="3.2">
<brief_description>
</brief_description>
<description>
diff --git a/doc/classes/AudioEffectStereoEnhance.xml b/doc/classes/AudioEffectStereoEnhance.xml
index 6cb692b5d7..df20ee88b1 100644
--- a/doc/classes/AudioEffectStereoEnhance.xml
+++ b/doc/classes/AudioEffectStereoEnhance.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="AudioEffectStereoEnhance" inherits="AudioEffect" category="Core" version="3.2">
+<class name="AudioEffectStereoEnhance" inherits="AudioEffect" version="3.2">
<brief_description>
</brief_description>
<description>
diff --git a/doc/classes/AudioServer.xml b/doc/classes/AudioServer.xml
index 71e78500af..3957c45f10 100644
--- a/doc/classes/AudioServer.xml
+++ b/doc/classes/AudioServer.xml
@@ -1,10 +1,10 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="AudioServer" inherits="Object" category="Core" version="3.2">
+<class name="AudioServer" inherits="Object" version="3.2">
<brief_description>
Server interface for low-level audio access.
</brief_description>
<description>
- AudioServer is a low-level server interface for audio access. It is in charge of creating sample data (playable audio) as well as its playback via a voice interface.
+ [AudioServer] is a low-level server interface for audio access. It is in charge of creating sample data (playable audio) as well as its playback via a voice interface.
</description>
<tutorials>
<link>https://docs.godotengine.org/en/latest/tutorials/audio/audio_buses.html</link>
@@ -52,6 +52,7 @@
<argument index="0" name="name" type="String">
</argument>
<description>
+ Sets which audio input device is used for audio capture.
</description>
</method>
<method name="generate_bus_layout" qualifiers="const">
@@ -100,6 +101,7 @@
<argument index="2" name="channel" type="int" default="0">
</argument>
<description>
+ Returns the [AudioEffectInstance] assigned to the given bus and effect indices (and optionally channel).
</description>
</method>
<method name="get_bus_index" qualifiers="const">
@@ -192,12 +194,14 @@
<return type="float">
</return>
<description>
+ Returns the relative time since the last mix occurred.
</description>
</method>
<method name="get_time_to_next_mix" qualifiers="const">
<return type="float">
</return>
<description>
+ Returns the relative time until the next mix occurs.
</description>
</method>
<method name="is_bus_bypassing_effects" qualifiers="const">
@@ -242,7 +246,8 @@
<return type="void">
</return>
<description>
- Locks the audio driver's main loop. Remember to unlock it afterwards.
+ Locks the audio driver's main loop.
+ [b]Note:[/b] Remember to unlock it afterwards.
</description>
</method>
<method name="move_bus">
@@ -411,10 +416,10 @@
A 3.1 channel surround setup was detected.
</constant>
<constant name="SPEAKER_SURROUND_51" value="2" enum="SpeakerMode">
- A 5.1 channel surround setup was detected.
+ A 5.1 channel surround setup was detected.
</constant>
<constant name="SPEAKER_SURROUND_71" value="3" enum="SpeakerMode">
- A 7.1 channel surround setup was detected.
+ A 7.1 channel surround setup was detected.
</constant>
</constants>
</class>
diff --git a/doc/classes/AudioStream.xml b/doc/classes/AudioStream.xml
index 15662b7eff..ed59f0f4b6 100644
--- a/doc/classes/AudioStream.xml
+++ b/doc/classes/AudioStream.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="AudioStream" inherits="Resource" category="Core" version="3.2">
+<class name="AudioStream" inherits="Resource" version="3.2">
<brief_description>
Base class for audio streams.
</brief_description>
diff --git a/doc/classes/AudioStreamGenerator.xml b/doc/classes/AudioStreamGenerator.xml
index 9a1e4432f1..b9e9fb6201 100644
--- a/doc/classes/AudioStreamGenerator.xml
+++ b/doc/classes/AudioStreamGenerator.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="AudioStreamGenerator" inherits="AudioStream" category="Core" version="3.2">
+<class name="AudioStreamGenerator" inherits="AudioStream" version="3.2">
<brief_description>
</brief_description>
<description>
diff --git a/doc/classes/AudioStreamGeneratorPlayback.xml b/doc/classes/AudioStreamGeneratorPlayback.xml
index 448284e670..8910821637 100644
--- a/doc/classes/AudioStreamGeneratorPlayback.xml
+++ b/doc/classes/AudioStreamGeneratorPlayback.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="AudioStreamGeneratorPlayback" inherits="AudioStreamPlaybackResampled" category="Core" version="3.2">
+<class name="AudioStreamGeneratorPlayback" inherits="AudioStreamPlaybackResampled" version="3.2">
<brief_description>
</brief_description>
<description>
diff --git a/doc/classes/AudioStreamMicrophone.xml b/doc/classes/AudioStreamMicrophone.xml
index afa60655ea..228c399397 100644
--- a/doc/classes/AudioStreamMicrophone.xml
+++ b/doc/classes/AudioStreamMicrophone.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="AudioStreamMicrophone" inherits="AudioStream" category="Core" version="3.2">
+<class name="AudioStreamMicrophone" inherits="AudioStream" version="3.2">
<brief_description>
</brief_description>
<description>
diff --git a/doc/classes/AudioStreamPlayback.xml b/doc/classes/AudioStreamPlayback.xml
index 92e654a50f..c2c4db79e0 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.2">
+<class name="AudioStreamPlayback" inherits="Reference" version="3.2">
<brief_description>
Meta class for playing back audio.
</brief_description>
diff --git a/doc/classes/AudioStreamPlaybackResampled.xml b/doc/classes/AudioStreamPlaybackResampled.xml
index 07e7e70bf1..e83f99fb78 100644
--- a/doc/classes/AudioStreamPlaybackResampled.xml
+++ b/doc/classes/AudioStreamPlaybackResampled.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="AudioStreamPlaybackResampled" inherits="AudioStreamPlayback" category="Core" version="3.2">
+<class name="AudioStreamPlaybackResampled" inherits="AudioStreamPlayback" version="3.2">
<brief_description>
</brief_description>
<description>
diff --git a/doc/classes/AudioStreamPlayer.xml b/doc/classes/AudioStreamPlayer.xml
index 0eadf27c4d..f57dbf7a50 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.2">
+<class name="AudioStreamPlayer" inherits="Node" version="3.2">
<brief_description>
Plays back audio non-positionally.
</brief_description>
diff --git a/doc/classes/AudioStreamPlayer2D.xml b/doc/classes/AudioStreamPlayer2D.xml
index ec3b7872b7..0f30a3188d 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.2">
+<class name="AudioStreamPlayer2D" inherits="Node2D" version="3.2">
<brief_description>
Plays audio in 2D.
</brief_description>
diff --git a/doc/classes/AudioStreamPlayer3D.xml b/doc/classes/AudioStreamPlayer3D.xml
index 5e12e06650..72d6d0dfe4 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.2">
+<class name="AudioStreamPlayer3D" inherits="Spatial" version="3.2">
<brief_description>
Plays 3D sound in 3D space.
</brief_description>
diff --git a/doc/classes/AudioStreamRandomPitch.xml b/doc/classes/AudioStreamRandomPitch.xml
index a2ee314d92..a1fd389fd6 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.2">
+<class name="AudioStreamRandomPitch" inherits="AudioStream" version="3.2">
<brief_description>
Plays audio with random pitch shifting.
</brief_description>
diff --git a/doc/classes/AudioStreamSample.xml b/doc/classes/AudioStreamSample.xml
index bb418f3c36..873aae3498 100644
--- a/doc/classes/AudioStreamSample.xml
+++ b/doc/classes/AudioStreamSample.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="AudioStreamSample" inherits="AudioStream" category="Core" version="3.2">
+<class name="AudioStreamSample" inherits="AudioStream" version="3.2">
<brief_description>
Stores audio data loaded from WAV files.
</brief_description>
diff --git a/doc/classes/BackBufferCopy.xml b/doc/classes/BackBufferCopy.xml
index 945af0c701..c3194ed646 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.2">
+<class name="BackBufferCopy" inherits="Node2D" version="3.2">
<brief_description>
Copies a region of the screen (or the whole screen) to a buffer so it can be accessed in your shader scripts through the [code]texture(SCREEN_TEXTURE, ...)[/code] function.
</brief_description>
diff --git a/doc/classes/BakedLightmap.xml b/doc/classes/BakedLightmap.xml
index 4a1381295f..a50b9607d2 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.2">
+<class name="BakedLightmap" inherits="VisualInstance" version="3.2">
<brief_description>
Prerendered indirect light map for a scene.
</brief_description>
diff --git a/doc/classes/BakedLightmapData.xml b/doc/classes/BakedLightmapData.xml
index 68bbfb8f60..bc44646018 100644
--- a/doc/classes/BakedLightmapData.xml
+++ b/doc/classes/BakedLightmapData.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="BakedLightmapData" inherits="Resource" category="Core" version="3.2">
+<class name="BakedLightmapData" inherits="Resource" version="3.2">
<brief_description>
</brief_description>
<description>
diff --git a/doc/classes/BaseButton.xml b/doc/classes/BaseButton.xml
index 0128e7b220..946ff316ab 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.2">
+<class name="BaseButton" inherits="Control" version="3.2">
<brief_description>
Base class for different kinds of buttons.
</brief_description>
diff --git a/doc/classes/Basis.xml b/doc/classes/Basis.xml
index b8fe23c2c9..b0842e8f57 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.2">
+<class name="Basis" version="3.2">
<brief_description>
3×3 matrix datatype.
</brief_description>
diff --git a/doc/classes/BitMap.xml b/doc/classes/BitMap.xml
index 7f03c22b70..28064e08e7 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.2">
+<class name="BitMap" inherits="Resource" version="3.2">
<brief_description>
Boolean matrix.
</brief_description>
diff --git a/doc/classes/BitmapFont.xml b/doc/classes/BitmapFont.xml
index 5b7c3def63..7cd4bd215c 100644
--- a/doc/classes/BitmapFont.xml
+++ b/doc/classes/BitmapFont.xml
@@ -1,8 +1,8 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="BitmapFont" inherits="Font" category="Core" version="3.2">
+<class name="BitmapFont" inherits="Font" version="3.2">
<brief_description>
Renders text using fonts under the [url=https://www.angelcode.com/products/bmfont/]BMFont[/url] format.
- Handles files with the [code].fnt[/code] extension
+ Handles files with the [code].fnt[/code] extension.
</brief_description>
<description>
Renders text using [code]*.fnt[/code] fonts containing texture atlases. Supports distance fields. For using vector font files like TTF directly, see [DynamicFont].
diff --git a/doc/classes/Bone2D.xml b/doc/classes/Bone2D.xml
index 21e08f13f9..7696458c4b 100644
--- a/doc/classes/Bone2D.xml
+++ b/doc/classes/Bone2D.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="Bone2D" inherits="Node2D" category="Core" version="3.2">
+<class name="Bone2D" inherits="Node2D" version="3.2">
<brief_description>
Joint used with [Skeleton2D] to control and animate other nodes.
</brief_description>
diff --git a/doc/classes/BoneAttachment.xml b/doc/classes/BoneAttachment.xml
index a6145b6a78..ce618d044f 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.2">
+<class name="BoneAttachment" inherits="Spatial" version="3.2">
<brief_description>
A node that will attach to a bone.
</brief_description>
diff --git a/doc/classes/BoxContainer.xml b/doc/classes/BoxContainer.xml
index ae0a20b8f6..581465d420 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.2">
+<class name="BoxContainer" inherits="Container" version="3.2">
<brief_description>
Base class for box containers.
</brief_description>
diff --git a/doc/classes/BoxShape.xml b/doc/classes/BoxShape.xml
index 9e3977b342..d741ab51d4 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.2">
+<class name="BoxShape" inherits="Shape" version="3.2">
<brief_description>
Box shape resource.
</brief_description>
diff --git a/doc/classes/Button.xml b/doc/classes/Button.xml
index 3b73580294..ac2b77f40e 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.2">
+<class name="Button" inherits="BaseButton" version="3.2">
<brief_description>
Standard themed Button.
</brief_description>
@@ -43,26 +43,37 @@
</constants>
<theme_items>
<theme_item name="disabled" type="StyleBox">
+ [StyleBox] used when the [Button] is disabled.
</theme_item>
<theme_item name="focus" type="StyleBox">
+ [StyleBox] used when the [Button] is focused. It is displayed over the current [StyleBox], so using [StyleBoxEmpty] will just disable the focus visual effect.
</theme_item>
<theme_item name="font" type="Font">
+ [Font] of the [Button]'s text.
</theme_item>
<theme_item name="font_color" type="Color" default="Color( 0.88, 0.88, 0.88, 1 )">
+ Default text [Color] of the [Button].
</theme_item>
<theme_item name="font_color_disabled" type="Color" default="Color( 0.9, 0.9, 0.9, 0.2 )">
+ Text [Color] used when the [Button] is disabled.
</theme_item>
<theme_item name="font_color_hover" type="Color" default="Color( 0.94, 0.94, 0.94, 1 )">
+ Text [Color] used when the [Button] is being hovered.
</theme_item>
<theme_item name="font_color_pressed" type="Color" default="Color( 1, 1, 1, 1 )">
+ Text [Color] used when the [Button] is being pressed.
</theme_item>
<theme_item name="hover" type="StyleBox">
+ [StyleBox] used when the [Button] is being hovered.
</theme_item>
<theme_item name="hseparation" type="int" default="2">
+ The horizontal space between [Button]'s icon and text.
</theme_item>
<theme_item name="normal" type="StyleBox">
+ Default [StyleBox] for the [Button].
</theme_item>
<theme_item name="pressed" type="StyleBox">
+ [StyleBox] used when the [Button] is being pressed.
</theme_item>
</theme_items>
</class>
diff --git a/doc/classes/ButtonGroup.xml b/doc/classes/ButtonGroup.xml
index 2c1f3163e0..ace6c3415f 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.2">
+<class name="ButtonGroup" inherits="Resource" version="3.2">
<brief_description>
Group of Buttons.
</brief_description>
diff --git a/doc/classes/CPUParticles.xml b/doc/classes/CPUParticles.xml
index cef0ee7587..6c80faeee4 100644
--- a/doc/classes/CPUParticles.xml
+++ b/doc/classes/CPUParticles.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="CPUParticles" inherits="GeometryInstance" category="Core" version="3.2">
+<class name="CPUParticles" inherits="GeometryInstance" version="3.2">
<brief_description>
CPU-based 3D particle emitter.
</brief_description>
@@ -25,6 +25,7 @@
<argument index="0" name="param" type="int" enum="CPUParticles.Parameter">
</argument>
<description>
+ Returns the base value of the parameter specified by [enum Parameter].
</description>
</method>
<method name="get_param_curve" qualifiers="const">
@@ -33,6 +34,7 @@
<argument index="0" name="param" type="int" enum="CPUParticles.Parameter">
</argument>
<description>
+ Returns the [Curve] of the parameter specified by [enum Parameter].
</description>
</method>
<method name="get_param_randomness" qualifiers="const">
@@ -41,6 +43,7 @@
<argument index="0" name="param" type="int" enum="CPUParticles.Parameter">
</argument>
<description>
+ Returns the randomness factor of the parameter specified by [enum Parameter].
</description>
</method>
<method name="get_particle_flag" qualifiers="const">
@@ -49,6 +52,7 @@
<argument index="0" name="flag" type="int" enum="CPUParticles.Flags">
</argument>
<description>
+ Returns the enabled state of the given flag (see [enum Flags] for options).
</description>
</method>
<method name="restart">
@@ -66,6 +70,7 @@
<argument index="1" name="value" type="float">
</argument>
<description>
+ Sets the base value of the parameter specified by [enum Parameter].
</description>
</method>
<method name="set_param_curve">
@@ -76,6 +81,7 @@
<argument index="1" name="curve" type="Curve">
</argument>
<description>
+ Sets the [Curve] of the parameter specified by [enum Parameter].
</description>
</method>
<method name="set_param_randomness">
@@ -86,6 +92,7 @@
<argument index="1" name="randomness" type="float">
</argument>
<description>
+ Sets the randomness factor of the parameter specified by [enum Parameter].
</description>
</method>
<method name="set_particle_flag">
@@ -96,6 +103,7 @@
<argument index="1" name="enable" type="bool">
</argument>
<description>
+ Enables or disables the given flag (see [enum Flags] for options).
</description>
</method>
</methods>
@@ -164,10 +172,13 @@
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" default="PoolColorArray( )">
+ Sets the [Color]s to modulate particles by when using [constant EMISSION_SHAPE_POINTS] or [constant EMISSION_SHAPE_DIRECTED_POINTS].
</member>
<member name="emission_normals" type="PoolVector3Array" setter="set_emission_normals" getter="get_emission_normals">
+ Sets the direction the particles will be emitted in when using [constant EMISSION_SHAPE_DIRECTED_POINTS].
</member>
<member name="emission_points" type="PoolVector3Array" setter="set_emission_points" getter="get_emission_points" default="PoolVector3Array( )">
+ Sets the initial positions to spawn particles when using [constant EMISSION_SHAPE_POINTS] or [constant EMISSION_SHAPE_DIRECTED_POINTS].
</member>
<member name="emission_shape" type="int" setter="set_emission_shape" getter="get_emission_shape" enum="CPUParticles.EmissionShape" default="0">
Particles will be emitted inside this region. See [enum EmissionShape] for possible values.
diff --git a/doc/classes/CPUParticles2D.xml b/doc/classes/CPUParticles2D.xml
index 0a376278f8..63222182a4 100644
--- a/doc/classes/CPUParticles2D.xml
+++ b/doc/classes/CPUParticles2D.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="CPUParticles2D" inherits="Node2D" category="Core" version="3.2">
+<class name="CPUParticles2D" inherits="Node2D" version="3.2">
<brief_description>
CPU-based 2D particle emitter.
</brief_description>
@@ -26,6 +26,7 @@
<argument index="0" name="param" type="int" enum="CPUParticles2D.Parameter">
</argument>
<description>
+ Returns the base value of the parameter specified by [enum Parameter].
</description>
</method>
<method name="get_param_curve" qualifiers="const">
@@ -34,6 +35,7 @@
<argument index="0" name="param" type="int" enum="CPUParticles2D.Parameter">
</argument>
<description>
+ Returns the [Curve] of the parameter specified by [enum Parameter].
</description>
</method>
<method name="get_param_randomness" qualifiers="const">
@@ -42,6 +44,7 @@
<argument index="0" name="param" type="int" enum="CPUParticles2D.Parameter">
</argument>
<description>
+ Returns the randomness factor of the parameter specified by [enum Parameter].
</description>
</method>
<method name="get_particle_flag" qualifiers="const">
@@ -50,6 +53,7 @@
<argument index="0" name="flag" type="int" enum="CPUParticles2D.Flags">
</argument>
<description>
+ Returns the enabled state of the given flag (see [enum Flags] for options).
</description>
</method>
<method name="restart">
@@ -67,6 +71,7 @@
<argument index="1" name="value" type="float">
</argument>
<description>
+ Sets the base value of the parameter specified by [enum Parameter].
</description>
</method>
<method name="set_param_curve">
@@ -77,6 +82,7 @@
<argument index="1" name="curve" type="Curve">
</argument>
<description>
+ Sets the [Curve] of the parameter specified by [enum Parameter].
</description>
</method>
<method name="set_param_randomness">
@@ -87,6 +93,7 @@
<argument index="1" name="randomness" type="float">
</argument>
<description>
+ Sets the randomness factor of the parameter specified by [enum Parameter].
</description>
</method>
<method name="set_particle_flag">
@@ -97,6 +104,7 @@
<argument index="1" name="enable" type="bool">
</argument>
<description>
+ Enables or disables the given flag (see [enum Flags] for options).
</description>
</method>
</methods>
@@ -162,10 +170,13 @@
Particle draw order. Uses [enum DrawOrder] values.
</member>
<member name="emission_colors" type="PoolColorArray" setter="set_emission_colors" getter="get_emission_colors">
+ Sets the [Color]s to modulate particles by when using [constant EMISSION_SHAPE_POINTS] or [constant EMISSION_SHAPE_DIRECTED_POINTS].
</member>
<member name="emission_normals" type="PoolVector2Array" setter="set_emission_normals" getter="get_emission_normals">
+ Sets the direction the particles will be emitted in when using [constant EMISSION_SHAPE_DIRECTED_POINTS].
</member>
<member name="emission_points" type="PoolVector2Array" setter="set_emission_points" getter="get_emission_points">
+ Sets the initial positions to spawn particles when using [constant EMISSION_SHAPE_POINTS] or [constant EMISSION_SHAPE_DIRECTED_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].
@@ -188,8 +199,6 @@
<member name="flag_align_y" type="bool" setter="set_particle_flag" getter="get_particle_flag" default="false">
Align Y axis of particle with the direction of its velocity.
</member>
- <member name="flatness" type="float" setter="set_flatness" getter="get_flatness" default="0.0">
- </member>
<member name="fract_delta" type="bool" setter="set_fractional_delta" getter="get_fractional_delta" default="true">
If [code]true[/code], results in fractional delta calculation which has a smoother particles display effect.
</member>
diff --git a/doc/classes/Camera.xml b/doc/classes/Camera.xml
index aca53d4ed0..af03506cf7 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.2">
+<class name="Camera" inherits="Spatial" version="3.2">
<brief_description>
Camera node, displays from a point of view.
</brief_description>
diff --git a/doc/classes/Camera2D.xml b/doc/classes/Camera2D.xml
index b575fa72e0..0c97ca5fd4 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.2">
+<class name="Camera2D" inherits="Node2D" version="3.2">
<brief_description>
Camera node for 2D scenes.
</brief_description>
diff --git a/doc/classes/CameraFeed.xml b/doc/classes/CameraFeed.xml
index f490faf369..45bbbeab30 100644
--- a/doc/classes/CameraFeed.xml
+++ b/doc/classes/CameraFeed.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="CameraFeed" inherits="Reference" category="Core" version="3.2">
+<class name="CameraFeed" inherits="Reference" version="3.2">
<brief_description>
A camera feed gives you access to a single physical camera attached to your device.
</brief_description>
diff --git a/doc/classes/CameraServer.xml b/doc/classes/CameraServer.xml
index 850794c1da..e62f96a452 100644
--- a/doc/classes/CameraServer.xml
+++ b/doc/classes/CameraServer.xml
@@ -1,9 +1,11 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="CameraServer" inherits="Object" category="Core" version="3.2">
+<class name="CameraServer" inherits="Object" version="3.2">
<brief_description>
- The CameraServer keeps track of different cameras accessible in Godot. These are external cameras such as webcams or the cameras on your phone.
+ Server keeping track of different cameras accessible in Godot.
</brief_description>
<description>
+ The [CameraServer] keeps track of different cameras accessible in Godot. These are external cameras such as webcams or the cameras on your phone.
+ It is notably used to provide AR modules with a video feed from the camera.
</description>
<tutorials>
</tutorials>
@@ -55,14 +57,14 @@
<argument index="0" name="id" type="int">
</argument>
<description>
- Emitted when a [CameraFeed] is added (webcam is plugged in).
+ Emitted when a [CameraFeed] is added (e.g. 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).
+ Emitted when a [CameraFeed] is removed (e.g. webcam is unplugged).
</description>
</signal>
</signals>
diff --git a/doc/classes/CameraTexture.xml b/doc/classes/CameraTexture.xml
index e2bff76998..c29bfffe51 100644
--- a/doc/classes/CameraTexture.xml
+++ b/doc/classes/CameraTexture.xml
@@ -1,10 +1,11 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="CameraTexture" inherits="Texture" category="Core" version="3.2">
+<class name="CameraTexture" inherits="Texture" version="3.2">
<brief_description>
- This texture gives access to the camera texture provided by a [CameraFeed].
- [b]Note:[/b] Many cameras supply YCbCr images which need to be converted in a shader.
+ Texture provided by a [CameraFeed].
</brief_description>
<description>
+ This texture gives access to the camera texture provided by a [CameraFeed].
+ [b]Note:[/b] Many cameras supply YCbCr images which need to be converted in a shader.
</description>
<tutorials>
</tutorials>
diff --git a/doc/classes/CanvasItem.xml b/doc/classes/CanvasItem.xml
index 54d917c931..37002772f1 100644
--- a/doc/classes/CanvasItem.xml
+++ b/doc/classes/CanvasItem.xml
@@ -1,13 +1,13 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="CanvasItem" inherits="Node" category="Core" version="3.2">
+<class name="CanvasItem" inherits="Node" 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; 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.
+ 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>
@@ -19,7 +19,7 @@
<return type="void">
</return>
<description>
- Called (if exists) to draw the canvas item.
+ Overridable function called by the engine (if defined) to draw the canvas item.
</description>
</method>
<method name="draw_arc">
@@ -125,6 +125,7 @@
<argument index="4" name="modulate" type="Color" default="Color( 1, 1, 1, 1 )">
</argument>
<description>
+ Draws a [Mesh] in 2D, using the provided texture. See [MeshInstance2D] for related documentation.
</description>
</method>
<method name="draw_multiline">
@@ -167,6 +168,7 @@
<argument index="2" name="normal_map" type="Texture" default="null">
</argument>
<description>
+ Draws a [MultiMesh] in 2D with the provided texture. See [MultiMeshInstance2D] for related documentation.
</description>
</method>
<method name="draw_polygon">
@@ -385,70 +387,70 @@
<return type="Transform2D">
</return>
<description>
- Gets the transform matrix of this item's canvas.
+ Returns the transform matrix of this item's canvas.
</description>
</method>
<method name="get_global_mouse_position" qualifiers="const">
<return type="Vector2">
</return>
<description>
- Gets the global position of the mouse.
+ Returns the global position of the mouse.
</description>
</method>
<method name="get_global_transform" qualifiers="const">
<return type="Transform2D">
</return>
<description>
- Gets the global transform matrix of this item.
+ Returns the global transform matrix of this item.
</description>
</method>
<method name="get_global_transform_with_canvas" qualifiers="const">
<return type="Transform2D">
</return>
<description>
- Gets the global transform matrix of this item in relation to the canvas.
+ Returns the global transform matrix of this item in relation to the canvas.
</description>
</method>
<method name="get_local_mouse_position" qualifiers="const">
<return type="Vector2">
</return>
<description>
- Gets the mouse position relative to this item's position.
+ Returns the mouse position relative to this item's position.
</description>
</method>
<method name="get_transform" qualifiers="const">
<return type="Transform2D">
</return>
<description>
- Gets the transform matrix of this item.
+ Returns the transform matrix of this item.
</description>
</method>
<method name="get_viewport_rect" qualifiers="const">
<return type="Rect2">
</return>
<description>
- Gets the viewport's boundaries as a [Rect2].
+ Returns the viewport's boundaries as a [Rect2].
</description>
</method>
<method name="get_viewport_transform" qualifiers="const">
<return type="Transform2D">
</return>
<description>
- Gets this item's transform in relation to the viewport.
+ Returns this item's transform in relation to the viewport.
</description>
</method>
<method name="get_world_2d" qualifiers="const">
<return type="World2D">
</return>
<description>
- Gets the [World2D] where this item is in.
+ Returns the [World2D] where this item is in.
</description>
</method>
<method name="hide">
<return type="void">
</return>
<description>
- Hide the CanvasItem if it's currently visible.
+ Hide the [CanvasItem] if it's currently visible.
</description>
</method>
<method name="is_local_transform_notification_enabled" qualifiers="const">
@@ -528,14 +530,14 @@
<return type="void">
</return>
<description>
- 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.
+ 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. [constant NOTIFICATION_DRAW] 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>
@@ -568,7 +570,7 @@
<signals>
<signal name="draw">
<description>
- Emitted when the CanvasItem must redraw. This can only be connected realtime, as deferred will not allow drawing.
+ Emitted when the [CanvasItem] must redraw. This can only be connected realtime, as deferred will not allow drawing.
</description>
</signal>
<signal name="hide">
@@ -607,19 +609,19 @@
Disables 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="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].
+ 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">
- The CanvasItem is requested to draw.
+ The [CanvasItem] is requested to draw.
</constant>
<constant name="NOTIFICATION_VISIBILITY_CHANGED" value="31">
- The CanvasItem's visibility has changed.
+ The [CanvasItem]'s visibility has changed.
</constant>
<constant name="NOTIFICATION_ENTER_CANVAS" value="32">
- The CanvasItem has entered the canvas.
+ The [CanvasItem] has entered the canvas.
</constant>
<constant name="NOTIFICATION_EXIT_CANVAS" value="33">
- The CanvasItem 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 5963e00d9e..e4b719f9c0 100644
--- a/doc/classes/CanvasItemMaterial.xml
+++ b/doc/classes/CanvasItemMaterial.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="CanvasItemMaterial" inherits="Material" category="Core" version="3.2">
+<class name="CanvasItemMaterial" inherits="Material" version="3.2">
<brief_description>
A material for [CanvasItem]s.
</brief_description>
@@ -18,12 +18,20 @@
The manner in which material reacts to lighting.
</member>
<member name="particles_anim_h_frames" type="int" setter="set_particles_anim_h_frames" getter="get_particles_anim_h_frames">
+ The number of columns in the spritesheet assigned as [Texture] for a [Particles2D] or [CPUParticles2D].
+ [b]Note:[/b] This property is only used and visible in the editor if [member particles_animation] is [code]true[/code].
</member>
<member name="particles_anim_loop" type="bool" setter="set_particles_anim_loop" getter="get_particles_anim_loop">
+ If [code]true[/code], the particles animation will loop.
+ [b]Note:[/b] This property is only used and visible in the editor if [member particles_animation] is [code]true[/code].
</member>
<member name="particles_anim_v_frames" type="int" setter="set_particles_anim_v_frames" getter="get_particles_anim_v_frames">
+ The number of rows in the spritesheet assigned as [Texture] for a [Particles2D] or [CPUParticles2D].
+ [b]Note:[/b] This property is only used and visible in the editor if [member particles_animation] is [code]true[/code].
</member>
<member name="particles_animation" type="bool" setter="set_particles_animation" getter="get_particles_animation" default="false">
+ If [code]true[/code], enable spritesheet-based animation features when assigned to [Particles2D] and [CPUParticles2D] nodes. The [member ParticlesMaterial.anim_speed] or [member CPUParticles2D.anim_speed] should also be set to a positive value for the animation to play.
+ This property (and other [code]particles_anim_*[/code] properties that depend on it) has no effect on other types of nodes.
</member>
</members>
<constants>
diff --git a/doc/classes/CanvasLayer.xml b/doc/classes/CanvasLayer.xml
index 2e56009f50..375da6eae0 100644
--- a/doc/classes/CanvasLayer.xml
+++ b/doc/classes/CanvasLayer.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="CanvasLayer" inherits="Node" category="Core" version="3.2">
+<class name="CanvasLayer" inherits="Node" version="3.2">
<brief_description>
Canvas drawing layer.
</brief_description>
@@ -24,8 +24,10 @@
The custom [Viewport] node assigned to the [CanvasLayer]. If [code]null[/code], uses the default viewport instead.
</member>
<member name="follow_viewport_enable" type="bool" setter="set_follow_viewport" getter="is_following_viewport" default="false">
+ Sets the layer to follow the viewport in order to simulate a pseudo 3D effect.
</member>
<member name="follow_viewport_scale" type="float" setter="set_follow_viewport_scale" getter="get_follow_viewport_scale" default="1.0">
+ Scales the layer when using [member follow_viewport_enable]. Layers moving into the foreground should have increasing scales, while layers moving into the background should have decreasing scales.
</member>
<member name="layer" type="int" setter="set_layer" getter="get_layer" default="1">
Layer index for draw order. Lower values are drawn first.
diff --git a/doc/classes/CanvasModulate.xml b/doc/classes/CanvasModulate.xml
index 95214b8c6a..3ad8500663 100644
--- a/doc/classes/CanvasModulate.xml
+++ b/doc/classes/CanvasModulate.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="CanvasModulate" inherits="Node2D" category="Core" version="3.2">
+<class name="CanvasModulate" inherits="Node2D" version="3.2">
<brief_description>
Tint the entire canvas.
</brief_description>
diff --git a/doc/classes/CapsuleMesh.xml b/doc/classes/CapsuleMesh.xml
index 3cdb9b3e22..538d616757 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.2">
+<class name="CapsuleMesh" inherits="PrimitiveMesh" version="3.2">
<brief_description>
Class representing a capsule-shaped [PrimitiveMesh].
</brief_description>
diff --git a/doc/classes/CapsuleShape.xml b/doc/classes/CapsuleShape.xml
index 0b55ca3472..ecd6f35eca 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.2">
+<class name="CapsuleShape" inherits="Shape" version="3.2">
<brief_description>
Capsule shape for collisions.
</brief_description>
diff --git a/doc/classes/CapsuleShape2D.xml b/doc/classes/CapsuleShape2D.xml
index a13abadf36..eca73efa44 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.2">
+<class name="CapsuleShape2D" inherits="Shape2D" version="3.2">
<brief_description>
Capsule shape for 2D collisions.
</brief_description>
diff --git a/doc/classes/CenterContainer.xml b/doc/classes/CenterContainer.xml
index d792b1b180..277ac0619d 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.2">
+<class name="CenterContainer" inherits="Container" version="3.2">
<brief_description>
Keeps children controls centered.
</brief_description>
diff --git a/doc/classes/CharFXTransform.xml b/doc/classes/CharFXTransform.xml
index ef9a366c86..0bc86716b0 100644
--- a/doc/classes/CharFXTransform.xml
+++ b/doc/classes/CharFXTransform.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="CharFXTransform" inherits="Reference" category="Core" version="3.2">
+<class name="CharFXTransform" inherits="Reference" version="3.2">
<brief_description>
Controls how an individual character will be displayed in a [RichTextEffect].
</brief_description>
@@ -7,7 +7,7 @@
By setting various properties on this object, you can control how individual characters will be displayed in a [RichTextEffect].
</description>
<tutorials>
- <link>http://docs.godotengine.org/en/latest/tutorials/gui/bbcode_in_richtextlabel.html</link>
+ <link>https://docs.godotengine.org/en/latest/tutorials/gui/bbcode_in_richtextlabel.html</link>
<link>https://github.com/Eoin-ONeill-Yokai/Godot-Rich-Text-Effect-Test-Project</link>
</tutorials>
<methods>
diff --git a/doc/classes/CheckBox.xml b/doc/classes/CheckBox.xml
index 97ef4dbe95..b5c7332bc1 100644
--- a/doc/classes/CheckBox.xml
+++ b/doc/classes/CheckBox.xml
@@ -1,10 +1,10 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="CheckBox" inherits="Button" category="Core" version="3.2">
+<class name="CheckBox" inherits="Button" version="3.2">
<brief_description>
- Binary choice user interface widget.
+ Binary choice user interface widget. See also [CheckButton].
</brief_description>
<description>
- A checkbox allows the user to make a binary choice (choosing only one of two possible options).
+ A checkbox allows the user to make a binary choice (choosing only one of two possible options). It's similar to [CheckButton] in functionality, but it has a different apperance. To follow established UX patterns, it's recommended to use CheckBox when toggling it has [b]no[/b] immediate effect on something. For instance, it should be used when toggling it will only do something once a confirmation button is pressed.
</description>
<tutorials>
</tutorials>
@@ -18,41 +18,58 @@
</constants>
<theme_items>
<theme_item name="check_vadjust" type="int" default="0">
- The vertical offset used when rendering the check icons.
+ The vertical offset used when rendering the check icons (in pixels).
</theme_item>
<theme_item name="checked" type="Texture">
+ The check icon to display when the [CheckBox] is checked.
</theme_item>
<theme_item name="disabled" type="StyleBox">
+ The [StyleBox] to display as a background when the [CheckBox] is disabled.
</theme_item>
<theme_item name="focus" type="StyleBox">
+ The [StyleBox] to display as a background when the [CheckBox] is focused.
</theme_item>
<theme_item name="font" type="Font">
+ The [Font] to use for the [CheckBox] text.
</theme_item>
<theme_item name="font_color" type="Color" default="Color( 0.88, 0.88, 0.88, 1 )">
+ The [CheckBox] text's font color.
</theme_item>
<theme_item name="font_color_disabled" type="Color" default="Color( 0.9, 0.9, 0.9, 0.2 )">
+ The [CheckBox] text's font color when it's disabled.
</theme_item>
<theme_item name="font_color_hover" type="Color" default="Color( 0.94, 0.94, 0.94, 1 )">
+ The [CheckBox] text's font color when it's hovered.
</theme_item>
<theme_item name="font_color_hover_pressed" type="Color" default="Color( 1, 1, 1, 1 )">
+ The [CheckBox] text's font color when it's hovered and pressed.
</theme_item>
<theme_item name="font_color_pressed" type="Color" default="Color( 1, 1, 1, 1 )">
+ The [CheckBox] text's font color when it's pressed.
</theme_item>
<theme_item name="hover" type="StyleBox">
+ The [StyleBox] to display as a background when the [CheckBox] is hovered.
</theme_item>
<theme_item name="hover_pressed" type="StyleBox">
+ The [StyleBox] to display as a background when the [CheckBox] is hovered and pressed.
</theme_item>
<theme_item name="hseparation" type="int" default="4">
+ The separation between the check icon and the text (in pixels).
</theme_item>
<theme_item name="normal" type="StyleBox">
+ The [StyleBox] to display as a background.
</theme_item>
<theme_item name="pressed" type="StyleBox">
+ The [StyleBox] to display as a background when the [CheckBox] is pressed.
</theme_item>
<theme_item name="radio_checked" type="Texture">
+ If the [CheckBox] is configured as a radio button, the icon to display when the [CheckBox] is checked.
</theme_item>
<theme_item name="radio_unchecked" type="Texture">
+ If the [CheckBox] is configured as a radio button, the icon to display when the [CheckBox] is unchecked.
</theme_item>
<theme_item name="unchecked" type="Texture">
+ The check icon to display when the [CheckBox] is unchecked.
</theme_item>
</theme_items>
</class>
diff --git a/doc/classes/CheckButton.xml b/doc/classes/CheckButton.xml
index 5b867b6a3a..769acb5d16 100644
--- a/doc/classes/CheckButton.xml
+++ b/doc/classes/CheckButton.xml
@@ -1,10 +1,10 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="CheckButton" inherits="Button" category="Core" version="3.2">
+<class name="CheckButton" inherits="Button" version="3.2">
<brief_description>
- Checkable button.
+ Checkable button. See also [CheckBox].
</brief_description>
<description>
- CheckButton is a toggle button displayed as a check field.
+ CheckButton is a toggle button displayed as a check field. It's similar to [CheckBox] in functionality, but it has a different apperance. To follow established UX patterns, it's recommended to use CheckButton when toggling it has an [b]immediate[/b] effect on something. For instance, it should be used if toggling it enables/disables a setting without requiring the user to press a confirmation button.
</description>
<tutorials>
</tutorials>
@@ -18,41 +18,58 @@
</constants>
<theme_items>
<theme_item name="check_vadjust" type="int" default="0">
- The vertical offset used when rendering the icons.
+ The vertical offset used when rendering the toggle icons (in pixels).
</theme_item>
<theme_item name="disabled" type="StyleBox">
+ The [StyleBox] to display as a background when the [CheckButton] is disabled.
</theme_item>
<theme_item name="focus" type="StyleBox">
+ The [StyleBox] to display as a background when the [CheckButton] is focused.
</theme_item>
<theme_item name="font" type="Font">
+ The [Font] to use for the [CheckButton] text.
</theme_item>
<theme_item name="font_color" type="Color" default="Color( 0.88, 0.88, 0.88, 1 )">
+ The [CheckButton] text's font color.
</theme_item>
<theme_item name="font_color_disabled" type="Color" default="Color( 0.9, 0.9, 0.9, 0.2 )">
+ The [CheckButton] text's font color when it's disabled.
</theme_item>
<theme_item name="font_color_hover" type="Color" default="Color( 0.94, 0.94, 0.94, 1 )">
+ The [CheckButton] text's font color when it's hovered.
</theme_item>
<theme_item name="font_color_hover_pressed" type="Color" default="Color( 1, 1, 1, 1 )">
+ The [CheckButton] text's font color when it's hovered and pressed.
</theme_item>
<theme_item name="font_color_pressed" type="Color" default="Color( 1, 1, 1, 1 )">
+ The [CheckButton] text's font color when it's pressed.
</theme_item>
<theme_item name="hover" type="StyleBox">
+ The [StyleBox] to display as a background when the [CheckButton] is hovered.
</theme_item>
<theme_item name="hover_pressed" type="StyleBox">
+ The [StyleBox] to display as a background when the [CheckButton] is hovered and pressed.
</theme_item>
<theme_item name="hseparation" type="int" default="4">
+ The separation between the toggle icon and the text (in pixels).
</theme_item>
<theme_item name="normal" type="StyleBox">
+ The [StyleBox] to display as a background.
</theme_item>
<theme_item name="off" type="Texture">
+ The icon to display when the [CheckButton] is unchecked.
</theme_item>
<theme_item name="off_disabled" type="Texture">
+ The icon to display when the [CheckButton] is unchecked and disabled.
</theme_item>
<theme_item name="on" type="Texture">
+ The icon to display when the [CheckButton] is checked.
</theme_item>
<theme_item name="on_disabled" type="Texture">
+ The icon to display when the [CheckButton] is checked and disabled.
</theme_item>
<theme_item name="pressed" type="StyleBox">
+ The [StyleBox] to display as a background when the [CheckButton] is pressed.
</theme_item>
</theme_items>
</class>
diff --git a/doc/classes/CircleShape2D.xml b/doc/classes/CircleShape2D.xml
index 4cff7b5cd4..a9ec03d163 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.2">
+<class name="CircleShape2D" inherits="Shape2D" version="3.2">
<brief_description>
Circular shape for 2D collisions.
</brief_description>
diff --git a/doc/classes/ClassDB.xml b/doc/classes/ClassDB.xml
index fd08643dd5..e7ba1e875a 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.2">
+<class name="ClassDB" inherits="Object" version="3.2">
<brief_description>
Class information repository.
</brief_description>
diff --git a/doc/classes/ClippedCamera.xml b/doc/classes/ClippedCamera.xml
index 9eda79bbae..7d2454b48a 100644
--- a/doc/classes/ClippedCamera.xml
+++ b/doc/classes/ClippedCamera.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="ClippedCamera" inherits="Camera" category="Core" version="3.2">
+<class name="ClippedCamera" inherits="Camera" version="3.2">
<brief_description>
A [Camera] that includes collision.
</brief_description>
diff --git a/doc/classes/CollisionObject.xml b/doc/classes/CollisionObject.xml
index c30aeafcf3..21a0da0532 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.2">
+<class name="CollisionObject" inherits="Spatial" version="3.2">
<brief_description>
Base node for collision objects.
</brief_description>
diff --git a/doc/classes/CollisionObject2D.xml b/doc/classes/CollisionObject2D.xml
index bbc2e44dc0..4fae55ed4c 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.2">
+<class name="CollisionObject2D" inherits="Node2D" version="3.2">
<brief_description>
Base node for 2D collision objects.
</brief_description>
diff --git a/doc/classes/CollisionPolygon.xml b/doc/classes/CollisionPolygon.xml
index 994f589190..4970e2fd16 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.2">
+<class name="CollisionPolygon" inherits="Spatial" version="3.2">
<brief_description>
Editor-only class for defining a collision polygon in 3D space.
</brief_description>
diff --git a/doc/classes/CollisionPolygon2D.xml b/doc/classes/CollisionPolygon2D.xml
index 1d935a3e99..1074bab69d 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.2">
+<class name="CollisionPolygon2D" inherits="Node2D" version="3.2">
<brief_description>
Defines a 2D collision polygon.
</brief_description>
diff --git a/doc/classes/CollisionShape.xml b/doc/classes/CollisionShape.xml
index c34c0be839..d0e5c8c758 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.2">
+<class name="CollisionShape" inherits="Spatial" version="3.2">
<brief_description>
Node that represents collision shape data in 3D space.
</brief_description>
diff --git a/doc/classes/CollisionShape2D.xml b/doc/classes/CollisionShape2D.xml
index 4166ee31d3..9ceefb00ab 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.2">
+<class name="CollisionShape2D" inherits="Node2D" version="3.2">
<brief_description>
Node that represents collision shape data in 2D space.
</brief_description>
diff --git a/doc/classes/Color.xml b/doc/classes/Color.xml
index 1d4225542a..e3608ad93e 100644
--- a/doc/classes/Color.xml
+++ b/doc/classes/Color.xml
@@ -1,11 +1,11 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="Color" category="Built-In Types" version="3.2">
+<class name="Color" version="3.2">
<brief_description>
Color in RGBA format with some support for ARGB format.
</brief_description>
<description>
A color is represented by red, green, and blue [code](r, g, b)[/code] components. Additionally, [code]a[/code] represents the alpha component, often used for transparency. Values are in floating-point and usually range from 0 to 1. Some properties (such as [member CanvasItem.modulate]) may accept values greater than 1.
- You can also create a color from standardized color names by using [method @GDScript.ColorN].
+ You can also create a color from standardized color names by using [method @GDScript.ColorN] or directly using the color constants defined here. The standardized color set is based on the [url=https://en.wikipedia.org/wiki/X11_color_names]X11 color names[/url].
</description>
<tutorials>
</tutorials>
@@ -18,11 +18,11 @@
<description>
Constructs a color from an HTML hexadecimal color string in ARGB or RGB format. See also [method @GDScript.ColorN].
[codeblock]
- # Each of the following creates the same color RGBA(178, 217, 10, 255)
- var c1 = Color("#ffb2d90a") # ARGB format with "#"
- var c2 = Color("ffb2d90a") # ARGB format
- var c3 = Color("#b2d90a") # RGB format with "#"
- var c4 = Color("b2d90a") # RGB format
+ # Each of the following creates the same color RGBA(178, 217, 10, 255).
+ var c1 = Color("#ffb2d90a") # ARGB format with "#".
+ var c2 = Color("ffb2d90a") # ARGB format.
+ var c3 = Color("#b2d90a") # RGB format with "#".
+ var c4 = Color("b2d90a") # RGB format.
[/codeblock]
</description>
</method>
@@ -308,296 +308,442 @@
</members>
<constants>
<constant name="gray" value="Color( 0.75, 0.75, 0.75, 1 )">
+ Gray color.
</constant>
<constant name="aliceblue" value="Color( 0.94, 0.97, 1, 1 )">
+ Alice blue color.
</constant>
<constant name="antiquewhite" value="Color( 0.98, 0.92, 0.84, 1 )">
+ Antique white color.
</constant>
<constant name="aqua" value="Color( 0, 1, 1, 1 )">
+ Aqua color.
</constant>
<constant name="aquamarine" value="Color( 0.5, 1, 0.83, 1 )">
+ Aquamarine color.
</constant>
<constant name="azure" value="Color( 0.94, 1, 1, 1 )">
+ Azure color.
</constant>
<constant name="beige" value="Color( 0.96, 0.96, 0.86, 1 )">
+ Beige color.
</constant>
<constant name="bisque" value="Color( 1, 0.89, 0.77, 1 )">
+ Bisque color.
</constant>
<constant name="black" value="Color( 0, 0, 0, 1 )">
+ Black color.
</constant>
<constant name="blanchedalmond" value="Color( 1, 0.92, 0.8, 1 )">
+ Blanche almond color.
</constant>
<constant name="blue" value="Color( 0, 0, 1, 1 )">
+ Blue color.
</constant>
<constant name="blueviolet" value="Color( 0.54, 0.17, 0.89, 1 )">
+ Blue violet color.
</constant>
<constant name="brown" value="Color( 0.65, 0.16, 0.16, 1 )">
+ Brown color.
</constant>
<constant name="burlywood" value="Color( 0.87, 0.72, 0.53, 1 )">
+ Burly wood color.
</constant>
<constant name="cadetblue" value="Color( 0.37, 0.62, 0.63, 1 )">
+ Cadet blue color.
</constant>
<constant name="chartreuse" value="Color( 0.5, 1, 0, 1 )">
+ Chartreuse color.
</constant>
<constant name="chocolate" value="Color( 0.82, 0.41, 0.12, 1 )">
+ Chocolate color.
</constant>
<constant name="coral" value="Color( 1, 0.5, 0.31, 1 )">
+ Coral color.
</constant>
<constant name="cornflower" value="Color( 0.39, 0.58, 0.93, 1 )">
+ Cornflower color.
</constant>
<constant name="cornsilk" value="Color( 1, 0.97, 0.86, 1 )">
+ Corn silk color.
</constant>
<constant name="crimson" value="Color( 0.86, 0.08, 0.24, 1 )">
+ Crimson color.
</constant>
<constant name="cyan" value="Color( 0, 1, 1, 1 )">
+ Cyan color.
</constant>
<constant name="darkblue" value="Color( 0, 0, 0.55, 1 )">
+ Dark blue color.
</constant>
<constant name="darkcyan" value="Color( 0, 0.55, 0.55, 1 )">
+ Dark cyan color.
</constant>
<constant name="darkgoldenrod" value="Color( 0.72, 0.53, 0.04, 1 )">
+ Dark goldenrod color.
</constant>
<constant name="darkgray" value="Color( 0.66, 0.66, 0.66, 1 )">
+ Dark gray color.
</constant>
<constant name="darkgreen" value="Color( 0, 0.39, 0, 1 )">
+ Dark green color.
</constant>
<constant name="darkkhaki" value="Color( 0.74, 0.72, 0.42, 1 )">
+ Dark khaki color.
</constant>
<constant name="darkmagenta" value="Color( 0.55, 0, 0.55, 1 )">
+ Dark magenta color.
</constant>
<constant name="darkolivegreen" value="Color( 0.33, 0.42, 0.18, 1 )">
+ Dark olive green color.
</constant>
<constant name="darkorange" value="Color( 1, 0.55, 0, 1 )">
+ Dark orange color.
</constant>
<constant name="darkorchid" value="Color( 0.6, 0.2, 0.8, 1 )">
+ Dark orchid color.
</constant>
<constant name="darkred" value="Color( 0.55, 0, 0, 1 )">
+ Dark red color.
</constant>
<constant name="darksalmon" value="Color( 0.91, 0.59, 0.48, 1 )">
+ Dark salmon color.
</constant>
<constant name="darkseagreen" value="Color( 0.56, 0.74, 0.56, 1 )">
+ Dark sea green color.
</constant>
<constant name="darkslateblue" value="Color( 0.28, 0.24, 0.55, 1 )">
+ Dark slate blue color.
</constant>
<constant name="darkslategray" value="Color( 0.18, 0.31, 0.31, 1 )">
+ Dark slate gray color.
</constant>
<constant name="darkturquoise" value="Color( 0, 0.81, 0.82, 1 )">
+ Dark turquoise color.
</constant>
<constant name="darkviolet" value="Color( 0.58, 0, 0.83, 1 )">
+ Dark violet color.
</constant>
<constant name="deeppink" value="Color( 1, 0.08, 0.58, 1 )">
+ Deep pink color.
</constant>
<constant name="deepskyblue" value="Color( 0, 0.75, 1, 1 )">
+ Deep sky blue color.
</constant>
<constant name="dimgray" value="Color( 0.41, 0.41, 0.41, 1 )">
+ Dim gray color.
</constant>
<constant name="dodgerblue" value="Color( 0.12, 0.56, 1, 1 )">
+ Dodger blue color.
</constant>
<constant name="firebrick" value="Color( 0.7, 0.13, 0.13, 1 )">
+ Firebrick color.
</constant>
<constant name="floralwhite" value="Color( 1, 0.98, 0.94, 1 )">
+ Floral white color.
</constant>
<constant name="forestgreen" value="Color( 0.13, 0.55, 0.13, 1 )">
+ Forest green color.
</constant>
<constant name="fuchsia" value="Color( 1, 0, 1, 1 )">
+ Fuchsia color.
</constant>
<constant name="gainsboro" value="Color( 0.86, 0.86, 0.86, 1 )">
+ Gainsboro color.
</constant>
<constant name="ghostwhite" value="Color( 0.97, 0.97, 1, 1 )">
+ Ghost white color.
</constant>
<constant name="gold" value="Color( 1, 0.84, 0, 1 )">
+ Gold color.
</constant>
<constant name="goldenrod" value="Color( 0.85, 0.65, 0.13, 1 )">
+ Goldenrod color.
</constant>
<constant name="green" value="Color( 0, 1, 0, 1 )">
+ Green color.
</constant>
<constant name="greenyellow" value="Color( 0.68, 1, 0.18, 1 )">
+ Green yellow color.
</constant>
<constant name="honeydew" value="Color( 0.94, 1, 0.94, 1 )">
+ Honeydew color.
</constant>
<constant name="hotpink" value="Color( 1, 0.41, 0.71, 1 )">
+ Hot pink color.
</constant>
<constant name="indianred" value="Color( 0.8, 0.36, 0.36, 1 )">
+ Indian red color.
</constant>
<constant name="indigo" value="Color( 0.29, 0, 0.51, 1 )">
+ Indigo color.
</constant>
<constant name="ivory" value="Color( 1, 1, 0.94, 1 )">
+ Ivory color.
</constant>
<constant name="khaki" value="Color( 0.94, 0.9, 0.55, 1 )">
+ Khaki color.
</constant>
<constant name="lavender" value="Color( 0.9, 0.9, 0.98, 1 )">
+ Lavender color.
</constant>
<constant name="lavenderblush" value="Color( 1, 0.94, 0.96, 1 )">
+ Lavender blush color.
</constant>
<constant name="lawngreen" value="Color( 0.49, 0.99, 0, 1 )">
+ Lawn green color.
</constant>
<constant name="lemonchiffon" value="Color( 1, 0.98, 0.8, 1 )">
+ Lemon chiffon color.
</constant>
<constant name="lightblue" value="Color( 0.68, 0.85, 0.9, 1 )">
+ Light blue color.
</constant>
<constant name="lightcoral" value="Color( 0.94, 0.5, 0.5, 1 )">
+ Light coral color.
</constant>
<constant name="lightcyan" value="Color( 0.88, 1, 1, 1 )">
+ Light cyan color.
</constant>
<constant name="lightgoldenrod" value="Color( 0.98, 0.98, 0.82, 1 )">
+ Light goldenrod color.
</constant>
<constant name="lightgray" value="Color( 0.83, 0.83, 0.83, 1 )">
+ Light gray color.
</constant>
<constant name="lightgreen" value="Color( 0.56, 0.93, 0.56, 1 )">
+ Light green color.
</constant>
<constant name="lightpink" value="Color( 1, 0.71, 0.76, 1 )">
+ Light pink color.
</constant>
<constant name="lightsalmon" value="Color( 1, 0.63, 0.48, 1 )">
+ Light salmon color.
</constant>
<constant name="lightseagreen" value="Color( 0.13, 0.7, 0.67, 1 )">
+ Light sea green color.
</constant>
<constant name="lightskyblue" value="Color( 0.53, 0.81, 0.98, 1 )">
+ Light sky blue color.
</constant>
<constant name="lightslategray" value="Color( 0.47, 0.53, 0.6, 1 )">
+ Light slate gray color.
</constant>
<constant name="lightsteelblue" value="Color( 0.69, 0.77, 0.87, 1 )">
+ Light steel blue color.
</constant>
<constant name="lightyellow" value="Color( 1, 1, 0.88, 1 )">
+ Light yellow color.
</constant>
<constant name="lime" value="Color( 0, 1, 0, 1 )">
+ Lime color.
</constant>
<constant name="limegreen" value="Color( 0.2, 0.8, 0.2, 1 )">
+ Lime green color.
</constant>
<constant name="linen" value="Color( 0.98, 0.94, 0.9, 1 )">
+ Linen color.
</constant>
<constant name="magenta" value="Color( 1, 0, 1, 1 )">
+ Magenta color.
</constant>
<constant name="maroon" value="Color( 0.69, 0.19, 0.38, 1 )">
+ Maroon color.
</constant>
<constant name="mediumaquamarine" value="Color( 0.4, 0.8, 0.67, 1 )">
+ Medium aquamarine color.
</constant>
<constant name="mediumblue" value="Color( 0, 0, 0.8, 1 )">
+ Medium blue color.
</constant>
<constant name="mediumorchid" value="Color( 0.73, 0.33, 0.83, 1 )">
+ Medium orchid color.
</constant>
<constant name="mediumpurple" value="Color( 0.58, 0.44, 0.86, 1 )">
+ Medium purple color.
</constant>
<constant name="mediumseagreen" value="Color( 0.24, 0.7, 0.44, 1 )">
+ Medium sea green color.
</constant>
<constant name="mediumslateblue" value="Color( 0.48, 0.41, 0.93, 1 )">
+ Medium slate blue color.
</constant>
<constant name="mediumspringgreen" value="Color( 0, 0.98, 0.6, 1 )">
+ Medium spring green color.
</constant>
<constant name="mediumturquoise" value="Color( 0.28, 0.82, 0.8, 1 )">
+ Medium turquoise color.
</constant>
<constant name="mediumvioletred" value="Color( 0.78, 0.08, 0.52, 1 )">
+ Medium violet red color.
</constant>
<constant name="midnightblue" value="Color( 0.1, 0.1, 0.44, 1 )">
+ Midnight blue color.
</constant>
<constant name="mintcream" value="Color( 0.96, 1, 0.98, 1 )">
+ Mint cream color.
</constant>
<constant name="mistyrose" value="Color( 1, 0.89, 0.88, 1 )">
+ Misty rose color.
</constant>
<constant name="moccasin" value="Color( 1, 0.89, 0.71, 1 )">
+ Moccasin color.
</constant>
<constant name="navajowhite" value="Color( 1, 0.87, 0.68, 1 )">
+ Navajo white color.
</constant>
<constant name="navyblue" value="Color( 0, 0, 0.5, 1 )">
+ Navy blue color.
</constant>
<constant name="oldlace" value="Color( 0.99, 0.96, 0.9, 1 )">
+ Old lace color.
</constant>
<constant name="olive" value="Color( 0.5, 0.5, 0, 1 )">
+ Olive color.
</constant>
<constant name="olivedrab" value="Color( 0.42, 0.56, 0.14, 1 )">
+ Olive drab color.
</constant>
<constant name="orange" value="Color( 1, 0.65, 0, 1 )">
+ Orange color.
</constant>
<constant name="orangered" value="Color( 1, 0.27, 0, 1 )">
+ Orange red color.
</constant>
<constant name="orchid" value="Color( 0.85, 0.44, 0.84, 1 )">
+ Orchid color.
</constant>
<constant name="palegoldenrod" value="Color( 0.93, 0.91, 0.67, 1 )">
+ Pale goldenrod color.
</constant>
<constant name="palegreen" value="Color( 0.6, 0.98, 0.6, 1 )">
+ Pale green color.
</constant>
<constant name="paleturquoise" value="Color( 0.69, 0.93, 0.93, 1 )">
+ Pale turquoise color.
</constant>
<constant name="palevioletred" value="Color( 0.86, 0.44, 0.58, 1 )">
+ Pale violet red color.
</constant>
<constant name="papayawhip" value="Color( 1, 0.94, 0.84, 1 )">
+ Papaya whip color.
</constant>
<constant name="peachpuff" value="Color( 1, 0.85, 0.73, 1 )">
+ Peach puff color.
</constant>
<constant name="peru" value="Color( 0.8, 0.52, 0.25, 1 )">
+ Peru color.
</constant>
<constant name="pink" value="Color( 1, 0.75, 0.8, 1 )">
+ Pink color.
</constant>
<constant name="plum" value="Color( 0.87, 0.63, 0.87, 1 )">
+ Plum color.
</constant>
<constant name="powderblue" value="Color( 0.69, 0.88, 0.9, 1 )">
+ Powder blue color.
</constant>
<constant name="purple" value="Color( 0.63, 0.13, 0.94, 1 )">
+ Purple color.
</constant>
<constant name="rebeccapurple" value="Color( 0.4, 0.2, 0.6, 1 )">
+ Rebecca purple color.
</constant>
<constant name="red" value="Color( 1, 0, 0, 1 )">
+ Red color.
</constant>
<constant name="rosybrown" value="Color( 0.74, 0.56, 0.56, 1 )">
+ Rosy brown color.
</constant>
<constant name="royalblue" value="Color( 0.25, 0.41, 0.88, 1 )">
+ Royal blue color.
</constant>
<constant name="saddlebrown" value="Color( 0.55, 0.27, 0.07, 1 )">
+ Saddle brown color.
</constant>
<constant name="salmon" value="Color( 0.98, 0.5, 0.45, 1 )">
+ Salmon color.
</constant>
<constant name="sandybrown" value="Color( 0.96, 0.64, 0.38, 1 )">
+ Sandy brown color.
</constant>
<constant name="seagreen" value="Color( 0.18, 0.55, 0.34, 1 )">
+ Sea green color.
</constant>
<constant name="seashell" value="Color( 1, 0.96, 0.93, 1 )">
+ Seashell color.
</constant>
<constant name="sienna" value="Color( 0.63, 0.32, 0.18, 1 )">
+ Sienna color.
</constant>
<constant name="silver" value="Color( 0.75, 0.75, 0.75, 1 )">
+ Silver color.
</constant>
<constant name="skyblue" value="Color( 0.53, 0.81, 0.92, 1 )">
+ Sky blue color.
</constant>
<constant name="slateblue" value="Color( 0.42, 0.35, 0.8, 1 )">
+ Slate blue color.
</constant>
<constant name="slategray" value="Color( 0.44, 0.5, 0.56, 1 )">
+ Slate gray color.
</constant>
<constant name="snow" value="Color( 1, 0.98, 0.98, 1 )">
+ Snow color.
</constant>
<constant name="springgreen" value="Color( 0, 1, 0.5, 1 )">
+ Spring green color.
</constant>
<constant name="steelblue" value="Color( 0.27, 0.51, 0.71, 1 )">
+ Steel blue color.
</constant>
<constant name="tan" value="Color( 0.82, 0.71, 0.55, 1 )">
+ Tan color.
</constant>
<constant name="teal" value="Color( 0, 0.5, 0.5, 1 )">
+ Teal color.
</constant>
<constant name="thistle" value="Color( 0.85, 0.75, 0.85, 1 )">
+ Thistle color.
</constant>
<constant name="tomato" value="Color( 1, 0.39, 0.28, 1 )">
+ Tomato color.
</constant>
<constant name="transparent" value="Color( 1, 1, 1, 0 )">
+ Transparent color (white with no alpha).
</constant>
<constant name="turquoise" value="Color( 0.25, 0.88, 0.82, 1 )">
+ Turquoise color.
</constant>
<constant name="violet" value="Color( 0.93, 0.51, 0.93, 1 )">
+ Violet color.
</constant>
<constant name="webgray" value="Color( 0.5, 0.5, 0.5, 1 )">
+ Web gray color.
</constant>
<constant name="webgreen" value="Color( 0, 0.5, 0, 1 )">
+ Web green color.
</constant>
<constant name="webmaroon" value="Color( 0.5, 0, 0, 1 )">
+ Web maroon color.
</constant>
<constant name="webpurple" value="Color( 0.5, 0, 0.5, 1 )">
+ Web purple color.
</constant>
<constant name="wheat" value="Color( 0.96, 0.87, 0.7, 1 )">
+ Wheat color.
</constant>
<constant name="white" value="Color( 1, 1, 1, 1 )">
+ White color.
</constant>
<constant name="whitesmoke" value="Color( 0.96, 0.96, 0.96, 1 )">
+ White smoke color.
</constant>
<constant name="yellow" value="Color( 1, 1, 0, 1 )">
+ Yellow color.
</constant>
<constant name="yellowgreen" value="Color( 0.6, 0.8, 0.2, 1 )">
+ Yellow green color.
</constant>
</constants>
</class>
diff --git a/doc/classes/ColorPicker.xml b/doc/classes/ColorPicker.xml
index 07ce76fdb2..ee222274e7 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.2">
+<class name="ColorPicker" inherits="BoxContainer" version="3.2">
<brief_description>
Color picker control.
</brief_description>
diff --git a/doc/classes/ColorPickerButton.xml b/doc/classes/ColorPickerButton.xml
index 37116b096a..24a3d2b053 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.2">
+<class name="ColorPickerButton" inherits="Button" version="3.2">
<brief_description>
Button that pops out a [ColorPicker].
</brief_description>
diff --git a/doc/classes/ColorRect.xml b/doc/classes/ColorRect.xml
index 2ff0a7eee3..316c6fb3d0 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.2">
+<class name="ColorRect" inherits="Control" version="3.2">
<brief_description>
Colored rectangle.
</brief_description>
diff --git a/doc/classes/ConcavePolygonShape.xml b/doc/classes/ConcavePolygonShape.xml
index a09b5005b9..6c9872f266 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.2">
+<class name="ConcavePolygonShape" inherits="Shape" version="3.2">
<brief_description>
Concave polygon shape.
</brief_description>
diff --git a/doc/classes/ConcavePolygonShape2D.xml b/doc/classes/ConcavePolygonShape2D.xml
index a6fe2486ea..d5175dbc18 100644
--- a/doc/classes/ConcavePolygonShape2D.xml
+++ b/doc/classes/ConcavePolygonShape2D.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="ConcavePolygonShape2D" inherits="Shape2D" category="Core" version="3.2">
+<class name="ConcavePolygonShape2D" inherits="Shape2D" version="3.2">
<brief_description>
Concave polygon 2D shape resource for physics.
</brief_description>
diff --git a/doc/classes/ConeTwistJoint.xml b/doc/classes/ConeTwistJoint.xml
index 4c95a4bef9..f7fc529ebf 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.2">
+<class name="ConeTwistJoint" inherits="Joint" version="3.2">
<brief_description>
A twist joint between two 3D bodies.
</brief_description>
diff --git a/doc/classes/ConfigFile.xml b/doc/classes/ConfigFile.xml
index 68966b6f59..e3f96e0987 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.2">
+<class name="ConfigFile" inherits="Reference" version="3.2">
<brief_description>
Helper class to handle INI-style files.
</brief_description>
diff --git a/doc/classes/ConfirmationDialog.xml b/doc/classes/ConfirmationDialog.xml
index 01a2eebce5..31b44f5748 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.2">
+<class name="ConfirmationDialog" inherits="AcceptDialog" version="3.2">
<brief_description>
Dialog for confirmation of actions.
</brief_description>
diff --git a/doc/classes/Container.xml b/doc/classes/Container.xml
index 8a3aac88b5..4b09dcdbad 100644
--- a/doc/classes/Container.xml
+++ b/doc/classes/Container.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="Container" inherits="Control" category="Core" version="3.2">
+<class name="Container" inherits="Control" version="3.2">
<brief_description>
Base node for containers.
</brief_description>
diff --git a/doc/classes/Control.xml b/doc/classes/Control.xml
index d309015453..df9ab17602 100644
--- a/doc/classes/Control.xml
+++ b/doc/classes/Control.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="Control" inherits="CanvasItem" category="Core" version="3.2">
+<class name="Control" inherits="CanvasItem" 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>
diff --git a/doc/classes/ConvexPolygonShape.xml b/doc/classes/ConvexPolygonShape.xml
index d15a0a7336..9cb97086ad 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.2">
+<class name="ConvexPolygonShape" inherits="Shape" version="3.2">
<brief_description>
Convex polygon shape for 3D physics.
</brief_description>
diff --git a/doc/classes/ConvexPolygonShape2D.xml b/doc/classes/ConvexPolygonShape2D.xml
index 050ca23e05..cde220c6fb 100644
--- a/doc/classes/ConvexPolygonShape2D.xml
+++ b/doc/classes/ConvexPolygonShape2D.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="ConvexPolygonShape2D" inherits="Shape2D" category="Core" version="3.2">
+<class name="ConvexPolygonShape2D" inherits="Shape2D" version="3.2">
<brief_description>
Convex polygon shape for 2D physics.
</brief_description>
diff --git a/doc/classes/Crypto.xml b/doc/classes/Crypto.xml
index bb2c443618..7e2bbcd941 100644
--- a/doc/classes/Crypto.xml
+++ b/doc/classes/Crypto.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="Crypto" inherits="Reference" category="Core" version="3.2">
+<class name="Crypto" inherits="Reference" version="3.2">
<brief_description>
Access to advanced cryptographic functionalities.
</brief_description>
diff --git a/doc/classes/CryptoKey.xml b/doc/classes/CryptoKey.xml
index 8feb7d4809..01916af79a 100644
--- a/doc/classes/CryptoKey.xml
+++ b/doc/classes/CryptoKey.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="CryptoKey" inherits="Resource" category="Core" version="3.2">
+<class name="CryptoKey" inherits="Resource" version="3.2">
<brief_description>
A cryptographic key (RSA).
</brief_description>
diff --git a/doc/classes/CubeMap.xml b/doc/classes/CubeMap.xml
index 6db1cf2d64..83453ea1ee 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.2">
+<class name="CubeMap" inherits="Resource" version="3.2">
<brief_description>
A CubeMap is a 6-sided 3D texture.
</brief_description>
diff --git a/doc/classes/CubeMesh.xml b/doc/classes/CubeMesh.xml
index 67e559ab07..83cb9d12b6 100644
--- a/doc/classes/CubeMesh.xml
+++ b/doc/classes/CubeMesh.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="CubeMesh" inherits="PrimitiveMesh" category="Core" version="3.2">
+<class name="CubeMesh" inherits="PrimitiveMesh" version="3.2">
<brief_description>
Generate an axis-aligned cuboid [PrimitiveMesh].
</brief_description>
diff --git a/doc/classes/Curve.xml b/doc/classes/Curve.xml
index 0fb559296e..8601e2b635 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.2">
+<class name="Curve" inherits="Resource" version="3.2">
<brief_description>
A mathematic curve.
</brief_description>
diff --git a/doc/classes/Curve2D.xml b/doc/classes/Curve2D.xml
index 4e449a2032..41f9d31ac5 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.2">
+<class name="Curve2D" inherits="Resource" version="3.2">
<brief_description>
Describes a Bézier curve in 2D space.
</brief_description>
diff --git a/doc/classes/Curve3D.xml b/doc/classes/Curve3D.xml
index 4a0873a986..24dd7361f8 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.2">
+<class name="Curve3D" inherits="Resource" version="3.2">
<brief_description>
Describes a Bézier curve in 3D space.
</brief_description>
diff --git a/doc/classes/CurveTexture.xml b/doc/classes/CurveTexture.xml
index e8df560a4c..4de15f865d 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.2">
+<class name="CurveTexture" inherits="Texture" version="3.2">
<brief_description>
A texture that shows a curve.
</brief_description>
diff --git a/doc/classes/CylinderMesh.xml b/doc/classes/CylinderMesh.xml
index 8e9397791a..93901c07e7 100644
--- a/doc/classes/CylinderMesh.xml
+++ b/doc/classes/CylinderMesh.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="CylinderMesh" inherits="PrimitiveMesh" category="Core" version="3.2">
+<class name="CylinderMesh" inherits="PrimitiveMesh" version="3.2">
<brief_description>
Class representing a cylindrical [PrimitiveMesh].
</brief_description>
diff --git a/doc/classes/CylinderShape.xml b/doc/classes/CylinderShape.xml
index 5dff156775..4383d09641 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.2">
+<class name="CylinderShape" inherits="Shape" version="3.2">
<brief_description>
Cylinder shape for collisions.
</brief_description>
diff --git a/doc/classes/DampedSpringJoint2D.xml b/doc/classes/DampedSpringJoint2D.xml
index 270d948f5e..b1b7a2a5e3 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.2">
+<class name="DampedSpringJoint2D" inherits="Joint2D" version="3.2">
<brief_description>
Damped spring constraint for 2D physics.
</brief_description>
diff --git a/doc/classes/Dictionary.xml b/doc/classes/Dictionary.xml
index d37c4cc76f..010f87d23b 100644
--- a/doc/classes/Dictionary.xml
+++ b/doc/classes/Dictionary.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="Dictionary" category="Built-In Types" version="3.2">
+<class name="Dictionary" version="3.2">
<brief_description>
Dictionary type.
</brief_description>
@@ -20,7 +20,7 @@
[codeblock]
export(String, "White", "Yellow", "Orange") var my_color
var points_dir = {"White": 50, "Yellow": 75, "Orange": 100}
-
+
func _ready():
var points = points_dir[my_color]
[/codeblock]
@@ -32,7 +32,7 @@
To add a key to an existing dictionary, access it like an existing key and assign to it:
[codeblock]
var points_dir = {"White": 50, "Yellow": 75, "Orange": 100}
- var points_dir["Blue"] = 150 # Add "Blue" as a key and assign 150 as its value.
+ var points_dir["Blue"] = 150 # Add "Blue" as a key and assign 150 as its value.
[/codeblock]
Finally, dictionaries can contain different types of keys and values in the same dictionary:
[codeblock]
@@ -42,13 +42,13 @@
[codeblock]
array1 = [1, 2, 3]
array2 = [1, 2, 3]
-
+
func compare_arrays():
- print(array1 == array2) # Will print true.
-
+ print(array1 == array2) # Will print true.
+
dir1 = {"a": 1, "b": 2, "c": 3}
dir2 = {"a": 1, "b": 2, "c": 3}
-
+
func compare_dictionaries():
print(dir1 == dir2) # Will NOT print true.
[/codeblock]
@@ -56,7 +56,7 @@
[codeblock]
dir1 = {"a": 1, "b": 2, "c": 3}
dir2 = {"a": 1, "b": 2, "c": 3}
-
+
func compare_dictionaries():
print(dir1.hash() == dir2.hash()) # Will print true.
[/codeblock]
diff --git a/doc/classes/DirectionalLight.xml b/doc/classes/DirectionalLight.xml
index 502256ae63..e45163894f 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.2">
+<class name="DirectionalLight" inherits="Light" version="3.2">
<brief_description>
Directional light from a distance, as from the Sun.
</brief_description>
diff --git a/doc/classes/Directory.xml b/doc/classes/Directory.xml
index 91256359fb..2186f2adca 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.2">
+<class name="Directory" inherits="Reference" version="3.2">
<brief_description>
Type used to handle the filesystem.
</brief_description>
@@ -13,7 +13,7 @@
if dir.open(path) == OK:
dir.list_dir_begin()
var file_name = dir.get_next()
- while (file_name != ""):
+ while file_name != "":
if dir.current_is_dir():
print("Found directory: " + file_name)
else:
diff --git a/doc/classes/DynamicFont.xml b/doc/classes/DynamicFont.xml
index ac8595d783..a8d6232d5d 100644
--- a/doc/classes/DynamicFont.xml
+++ b/doc/classes/DynamicFont.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="DynamicFont" inherits="Font" category="Core" version="3.2">
+<class name="DynamicFont" inherits="Font" version="3.2">
<brief_description>
DynamicFont renders vector font files at runtime.
</brief_description>
diff --git a/doc/classes/DynamicFontData.xml b/doc/classes/DynamicFontData.xml
index 399e103930..a742ae5315 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.2">
+<class name="DynamicFontData" inherits="Resource" version="3.2">
<brief_description>
Used with [DynamicFont] to describe the location of a font file.
</brief_description>
diff --git a/doc/classes/EditorExportPlugin.xml b/doc/classes/EditorExportPlugin.xml
index 4e4e29dc4e..a616d52a02 100644
--- a/doc/classes/EditorExportPlugin.xml
+++ b/doc/classes/EditorExportPlugin.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="EditorExportPlugin" inherits="Reference" category="Core" version="3.2">
+<class name="EditorExportPlugin" inherits="Reference" version="3.2">
<brief_description>
</brief_description>
<description>
diff --git a/doc/classes/EditorFeatureProfile.xml b/doc/classes/EditorFeatureProfile.xml
index 92622cc25d..6a28d8d235 100644
--- a/doc/classes/EditorFeatureProfile.xml
+++ b/doc/classes/EditorFeatureProfile.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="EditorFeatureProfile" inherits="Reference" category="Core" version="3.2">
+<class name="EditorFeatureProfile" inherits="Reference" version="3.2">
<brief_description>
</brief_description>
<description>
diff --git a/doc/classes/EditorFileDialog.xml b/doc/classes/EditorFileDialog.xml
index 6b1215949a..262dda85b5 100644
--- a/doc/classes/EditorFileDialog.xml
+++ b/doc/classes/EditorFileDialog.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="EditorFileDialog" inherits="ConfirmationDialog" category="Core" version="3.2">
+<class name="EditorFileDialog" inherits="ConfirmationDialog" version="3.2">
<brief_description>
</brief_description>
<description>
diff --git a/doc/classes/EditorFileSystem.xml b/doc/classes/EditorFileSystem.xml
index 798658c8d0..bb5e2ed4cb 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.2">
+<class name="EditorFileSystem" inherits="Node" version="3.2">
<brief_description>
Resource filesystem, as the editor sees it.
</brief_description>
diff --git a/doc/classes/EditorFileSystemDirectory.xml b/doc/classes/EditorFileSystemDirectory.xml
index cb2ed28b38..fa803110b6 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.2">
+<class name="EditorFileSystemDirectory" inherits="Object" version="3.2">
<brief_description>
A directory for the resource filesystem.
</brief_description>
diff --git a/doc/classes/EditorImportPlugin.xml b/doc/classes/EditorImportPlugin.xml
index 0da87a9371..dd1b0610bb 100644
--- a/doc/classes/EditorImportPlugin.xml
+++ b/doc/classes/EditorImportPlugin.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="EditorImportPlugin" inherits="ResourceImporter" category="Core" version="3.2">
+<class name="EditorImportPlugin" inherits="ResourceImporter" 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>
diff --git a/doc/classes/EditorInspector.xml b/doc/classes/EditorInspector.xml
index 450d2bf64c..c91cbabb9e 100644
--- a/doc/classes/EditorInspector.xml
+++ b/doc/classes/EditorInspector.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="EditorInspector" inherits="ScrollContainer" category="Core" version="3.2">
+<class name="EditorInspector" inherits="ScrollContainer" version="3.2">
<brief_description>
</brief_description>
<description>
diff --git a/doc/classes/EditorInspectorPlugin.xml b/doc/classes/EditorInspectorPlugin.xml
index a713e06585..99e6055ebe 100644
--- a/doc/classes/EditorInspectorPlugin.xml
+++ b/doc/classes/EditorInspectorPlugin.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="EditorInspectorPlugin" inherits="Reference" category="Core" version="3.2">
+<class name="EditorInspectorPlugin" inherits="Reference" version="3.2">
<brief_description>
Plugin for adding custom property editors on inspector.
</brief_description>
@@ -100,7 +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]
+ Called to allow adding property specific editors to the inspector. Usually these inherit [EditorProperty]. Returning [code]true[/code] removes the built-in editor for this property, otherwise allows to insert a custom editor before the built-in one.
</description>
</method>
</methods>
diff --git a/doc/classes/EditorInterface.xml b/doc/classes/EditorInterface.xml
index 20ae0f3391..d556e14d27 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.2">
+<class name="EditorInterface" inherits="Node" version="3.2">
<brief_description>
Godot editor's interface.
</brief_description>
diff --git a/doc/classes/EditorNavigationMeshGenerator.xml b/doc/classes/EditorNavigationMeshGenerator.xml
index 3956e12509..787f34953d 100644
--- a/doc/classes/EditorNavigationMeshGenerator.xml
+++ b/doc/classes/EditorNavigationMeshGenerator.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="EditorNavigationMeshGenerator" inherits="Object" category="Core" version="3.2">
+<class name="EditorNavigationMeshGenerator" inherits="Object" version="3.2">
<brief_description>
</brief_description>
<description>
diff --git a/doc/classes/EditorPlugin.xml b/doc/classes/EditorPlugin.xml
index 89e2f0580b..22ec0179aa 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.2">
+<class name="EditorPlugin" inherits="Node" version="3.2">
<brief_description>
Used by the editor to extend its functionality.
</brief_description>
diff --git a/doc/classes/EditorProperty.xml b/doc/classes/EditorProperty.xml
index 5c24f0bebc..09a040a71c 100644
--- a/doc/classes/EditorProperty.xml
+++ b/doc/classes/EditorProperty.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="EditorProperty" inherits="Container" category="Core" version="3.2">
+<class name="EditorProperty" inherits="Container" version="3.2">
<brief_description>
Custom control to edit properties for adding into the inspector.
</brief_description>
@@ -113,7 +113,7 @@
<signal name="property_changed">
<argument index="0" name="property" type="String">
</argument>
- <argument index="1" name="value" type="Nil">
+ <argument index="1" name="value" type="Variant">
</argument>
<description>
Do not emit this manually, use the [method emit_changed] method instead.
@@ -138,7 +138,7 @@
<signal name="property_keyed_with_value">
<argument index="0" name="property" type="String">
</argument>
- <argument index="1" name="value" type="Nil">
+ <argument index="1" name="value" type="Variant">
</argument>
<description>
Emit it if you want to key a property with a single value.
diff --git a/doc/classes/EditorResourceConversionPlugin.xml b/doc/classes/EditorResourceConversionPlugin.xml
index 2638836c68..e8b407b91e 100644
--- a/doc/classes/EditorResourceConversionPlugin.xml
+++ b/doc/classes/EditorResourceConversionPlugin.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="EditorResourceConversionPlugin" inherits="Reference" category="Core" version="3.2">
+<class name="EditorResourceConversionPlugin" inherits="Reference" version="3.2">
<brief_description>
</brief_description>
<description>
diff --git a/doc/classes/EditorResourcePreview.xml b/doc/classes/EditorResourcePreview.xml
index 9d3f4b0b12..c3a52fbc78 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.2">
+<class name="EditorResourcePreview" inherits="Node" version="3.2">
<brief_description>
Helper to generate previews of resources or files.
</brief_description>
diff --git a/doc/classes/EditorResourcePreviewGenerator.xml b/doc/classes/EditorResourcePreviewGenerator.xml
index 4e61943c8f..8515862dfa 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.2">
+<class name="EditorResourcePreviewGenerator" inherits="Reference" version="3.2">
<brief_description>
Custom generator of previews.
</brief_description>
diff --git a/doc/classes/EditorSceneImporter.xml b/doc/classes/EditorSceneImporter.xml
index 96d8ce698d..3d563cee47 100644
--- a/doc/classes/EditorSceneImporter.xml
+++ b/doc/classes/EditorSceneImporter.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="EditorSceneImporter" inherits="Reference" category="Core" version="3.2">
+<class name="EditorSceneImporter" inherits="Reference" version="3.2">
<brief_description>
Imports scenes from third-parties' 3D files.
</brief_description>
diff --git a/doc/classes/EditorSceneImporterAssimp.xml b/doc/classes/EditorSceneImporterAssimp.xml
index e2d73be870..8fb7347ae8 100644
--- a/doc/classes/EditorSceneImporterAssimp.xml
+++ b/doc/classes/EditorSceneImporterAssimp.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="EditorSceneImporterAssimp" inherits="EditorSceneImporter" category="Core" version="3.2">
+<class name="EditorSceneImporterAssimp" inherits="EditorSceneImporter" version="3.2">
<brief_description>
Multi-format 3D asset importer based on [url=http://assimp.org/]Assimp[/url].
</brief_description>
diff --git a/doc/classes/EditorScenePostImport.xml b/doc/classes/EditorScenePostImport.xml
index df6cdd4b35..125127670a 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.2">
+<class name="EditorScenePostImport" inherits="Reference" version="3.2">
<brief_description>
Post-processes scenes after import.
</brief_description>
diff --git a/doc/classes/EditorScript.xml b/doc/classes/EditorScript.xml
index 981e0a6180..8025e12b2c 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.2">
+<class name="EditorScript" inherits="Reference" version="3.2">
<brief_description>
Base script that can be used to add extension functions to the editor.
</brief_description>
diff --git a/doc/classes/EditorSelection.xml b/doc/classes/EditorSelection.xml
index 57df71ab01..c097bfe18c 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.2">
+<class name="EditorSelection" inherits="Object" version="3.2">
<brief_description>
Manages the SceneTree selection in the editor.
</brief_description>
diff --git a/doc/classes/EditorSettings.xml b/doc/classes/EditorSettings.xml
index 18e8ee2d7e..1d6e86b968 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.2">
+<class name="EditorSettings" inherits="Resource" version="3.2">
<brief_description>
Object that holds the project-independent editor settings.
</brief_description>
diff --git a/doc/classes/EditorSpatialGizmo.xml b/doc/classes/EditorSpatialGizmo.xml
index 419a0c5248..d98b61329d 100644
--- a/doc/classes/EditorSpatialGizmo.xml
+++ b/doc/classes/EditorSpatialGizmo.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="EditorSpatialGizmo" inherits="SpatialGizmo" category="Core" version="3.2">
+<class name="EditorSpatialGizmo" inherits="SpatialGizmo" version="3.2">
<brief_description>
Custom gizmo for editing Spatial objects.
</brief_description>
diff --git a/doc/classes/EditorSpatialGizmoPlugin.xml b/doc/classes/EditorSpatialGizmoPlugin.xml
index 777d558a8e..9ed1600e1d 100644
--- a/doc/classes/EditorSpatialGizmoPlugin.xml
+++ b/doc/classes/EditorSpatialGizmoPlugin.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="EditorSpatialGizmoPlugin" inherits="Resource" category="Core" version="3.2">
+<class name="EditorSpatialGizmoPlugin" inherits="Resource" version="3.2">
<brief_description>
Used by the editor to define Spatial gizmo types.
</brief_description>
@@ -49,7 +49,7 @@
<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])
+ 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">
diff --git a/doc/classes/EditorSpinSlider.xml b/doc/classes/EditorSpinSlider.xml
index bf01ebfe82..2ac4c92f3b 100644
--- a/doc/classes/EditorSpinSlider.xml
+++ b/doc/classes/EditorSpinSlider.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="EditorSpinSlider" inherits="Range" category="Core" version="3.2">
+<class name="EditorSpinSlider" inherits="Range" version="3.2">
<brief_description>
</brief_description>
<description>
diff --git a/doc/classes/EditorVCSInterface.xml b/doc/classes/EditorVCSInterface.xml
index 23d608dea8..cdcacffae1 100644
--- a/doc/classes/EditorVCSInterface.xml
+++ b/doc/classes/EditorVCSInterface.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="EditorVCSInterface" inherits="Object" category="Core" version="3.2">
+<class name="EditorVCSInterface" inherits="Object" version="3.2">
<brief_description>
Version Control System (VCS) interface which reads and writes to the local VCS in use.
</brief_description>
@@ -51,14 +51,14 @@
<return type="String">
</return>
<description>
- Return the project name of the VCS working directory
+ Returns the project name of the VCS working directory.
</description>
</method>
<method name="get_vcs_name">
<return type="String">
</return>
<description>
- Return the name of the VCS if the VCS has been initialized, else return an empty string.
+ Returns the name of the VCS if the VCS has been initialized, else return an empty string.
</description>
</method>
<method name="initialize">
@@ -67,7 +67,7 @@
<argument index="0" name="project_root_path" type="String">
</argument>
<description>
- Initialize the VCS addon if not already. Uses the argument value as the path to the working directory of the project. Creates the initial commit if required. Returns [code]true[/code] if no failure occurs, else returns [code]false[/code].
+ Initializes the VCS addon if not already. Uses the argument value as the path to the working directory of the project. Creates the initial commit if required. Returns [code]true[/code] if no failure occurs, else returns [code]false[/code].
</description>
</method>
<method name="is_addon_ready">
@@ -97,7 +97,7 @@
<argument index="0" name="file_path" type="String">
</argument>
<description>
- Stage the file which should be committed when [method EditorVCSInterface.commit] is called. Argument should contain the absolute path.
+ Stages the file which should be committed when [method EditorVCSInterface.commit] is called. Argument should contain the absolute path.
</description>
</method>
<method name="unstage_file">
@@ -106,7 +106,7 @@
<argument index="0" name="file_path" type="String">
</argument>
<description>
- Unstage the file which was staged previously to be committed, so that it is no longer committed when [method EditorVCSInterface.commit] is called. Argument should contain the absolute path.
+ Unstages the file which was staged previously to be committed, so that it is no longer committed when [method EditorVCSInterface.commit] is called. Argument should contain the absolute path.
</description>
</method>
</methods>
diff --git a/doc/classes/EncodedObjectAsID.xml b/doc/classes/EncodedObjectAsID.xml
index 7221aa845b..50caa3f973 100644
--- a/doc/classes/EncodedObjectAsID.xml
+++ b/doc/classes/EncodedObjectAsID.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="EncodedObjectAsID" inherits="Reference" category="Core" version="3.2">
+<class name="EncodedObjectAsID" inherits="Reference" version="3.2">
<brief_description>
Holds a reference to an [Object]'s instance ID.
</brief_description>
diff --git a/doc/classes/Engine.xml b/doc/classes/Engine.xml
index 53ddde0e4a..45c6591575 100644
--- a/doc/classes/Engine.xml
+++ b/doc/classes/Engine.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="Engine" inherits="Object" category="Core" version="3.2">
+<class name="Engine" inherits="Object" version="3.2">
<brief_description>
Access to basic engine properties.
</brief_description>
diff --git a/doc/classes/Environment.xml b/doc/classes/Environment.xml
index 702ea0a999..71096e3742 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.2">
+<class name="Environment" inherits="Resource" version="3.2">
<brief_description>
Resource for environment nodes (like [WorldEnvironment]) that define multiple rendering options.
</brief_description>
diff --git a/doc/classes/Expression.xml b/doc/classes/Expression.xml
index f85413b8b4..976420b6f1 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.2">
+<class name="Expression" inherits="Reference" version="3.2">
<brief_description>
A class that stores an expression you can execute.
</brief_description>
diff --git a/doc/classes/File.xml b/doc/classes/File.xml
index 9eff0a4d27..f70e7038c0 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.2">
+<class name="File" inherits="Reference" version="3.2">
<brief_description>
Type to handle file reading and writing operations.
</brief_description>
diff --git a/doc/classes/FileDialog.xml b/doc/classes/FileDialog.xml
index d8f4ca21c8..61e908d26b 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.2">
+<class name="FileDialog" inherits="ConfirmationDialog" version="3.2">
<brief_description>
Dialog for selecting files or directories in the filesystem.
</brief_description>
diff --git a/doc/classes/Font.xml b/doc/classes/Font.xml
index e751a07082..fa4ee7d1c1 100644
--- a/doc/classes/Font.xml
+++ b/doc/classes/Font.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="Font" inherits="Resource" category="Core" version="3.2">
+<class name="Font" inherits="Resource" version="3.2">
<brief_description>
Internationalized font and text drawing support.
</brief_description>
diff --git a/doc/classes/FuncRef.xml b/doc/classes/FuncRef.xml
index 9803ae0838..707de8d2f8 100644
--- a/doc/classes/FuncRef.xml
+++ b/doc/classes/FuncRef.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="FuncRef" inherits="Reference" category="Core" version="3.2">
+<class name="FuncRef" inherits="Reference" version="3.2">
<brief_description>
Reference to a function in an object.
</brief_description>
diff --git a/doc/classes/GIProbe.xml b/doc/classes/GIProbe.xml
index a9192d1942..f3fb199a50 100644
--- a/doc/classes/GIProbe.xml
+++ b/doc/classes/GIProbe.xml
@@ -1,8 +1,11 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="GIProbe" inherits="VisualInstance" category="Core" version="3.2">
+<class name="GIProbe" inherits="VisualInstance" version="3.2">
<brief_description>
+ Real-time global illumination (GI) probe.
</brief_description>
<description>
+ [GIProbe]s are used to provide high-quality real-time indirect light to scenes. They precompute the effect of objects that emit light and the effect of static geometry to simulate the behavior of complex light in real-time. [GIProbe]s need to be baked before using, however, once baked, dynamic objects will receive light from them. Further, lights can be fully dynamic or baked.
+ Having [GIProbe]s in a scene can be expensive, the quality of the probe can be turned down in exchange for better performance in the [ProjectSettings] using [member ProjectSettings.rendering/quality/voxel_cone_tracing/high_quality].
</description>
<tutorials>
<link>https://docs.godotengine.org/en/latest/tutorials/3d/gi_probes.html</link>
@@ -16,45 +19,62 @@
<argument index="1" name="create_visual_debug" type="bool" default="false">
</argument>
<description>
+ Bakes the effect from all [GeometryInstance]s marked with [member GeometryInstance.use_in_baked_light] and [Light]s marked with either [constant Light.BAKE_INDIRECT] or [constant Light.BAKE_ALL]. If [code]create_visual_debug[/code] is [code]true[/code], after baking the light, this will generate a [MultiMesh] that has a cube representing each solid cell with each cube colored to the cell's albedo color. This can be used to visualize the [GIProbe]'s data and debug any issues that may be occurring.
</description>
</method>
<method name="debug_bake">
<return type="void">
</return>
<description>
+ Calls [method bake] with [code]create_visual_debug[/code] enabled.
</description>
</method>
</methods>
<members>
<member name="bias" type="float" setter="set_bias" getter="get_bias" default="1.5">
+ Offsets the lookup of the light contribution from the [GIProbe]. This can be used to avoid self-shadowing, but may introduce light leaking at higher values. This and [member normal_bias] should be played around with to minimize self-shadowing and light leaking.
+ [b]Note:[/b] [code]bias[/code] should usually be above 1.0 as that is the size of the voxels.
</member>
<member name="compress" type="bool" setter="set_compress" getter="is_compressed" default="false">
+ If [code]true[/code], the data for this [GIProbe] will be compressed. Compression saves space, but results in far worse visual quality.
</member>
<member name="data" type="GIProbeData" setter="set_probe_data" getter="get_probe_data">
+ The [GIProbeData] resource that holds the data for this [GIProbe].
</member>
<member name="dynamic_range" type="int" setter="set_dynamic_range" getter="get_dynamic_range" default="4">
+ The maximum brightness that the [GIProbe] will recognize. Brightness will be scaled within this range.
</member>
<member name="energy" type="float" setter="set_energy" getter="get_energy" default="1.0">
+ Energy multiplier. Makes the lighting contribution from the [GIProbe] brighter.
</member>
<member name="extents" type="Vector3" setter="set_extents" getter="get_extents" default="Vector3( 10, 10, 10 )">
+ The size of the area covered by the [GIProbe]. If you make the extents larger without increasing the subdivisions with [member subdiv], the size of each cell will increase and result in lower detailed lighting.
</member>
<member name="interior" type="bool" setter="set_interior" getter="is_interior" default="false">
+ If [code]true[/code], ignores the sky contribution when calculating lighting.
</member>
<member name="normal_bias" type="float" setter="set_normal_bias" getter="get_normal_bias" default="0.0">
+ Offsets the lookup into the [GIProbe] based on the object's normal direction. Can be used to reduce some self-shadowing artifacts.
</member>
<member name="propagation" type="float" setter="set_propagation" getter="get_propagation" default="0.7">
+ How much light propagates through the probe internally. A higher value allows light to spread further.
</member>
<member name="subdiv" type="int" setter="set_subdiv" getter="get_subdiv" enum="GIProbe.Subdiv" default="1">
+ Number of times to subdivide the grid that the [GIProbe] operates on. A higher number results in finer detail and thus higher visual quality, while lower numbers result in better performance.
</member>
</members>
<constants>
<constant name="SUBDIV_64" value="0" enum="Subdiv">
+ Use 64 subdivisions. This is the lowest quality setting, but the fastest. Use it if you can, but especially use it on lower-end hardware.
</constant>
<constant name="SUBDIV_128" value="1" enum="Subdiv">
+ Use 128 subdivisions. This is the default quality setting.
</constant>
<constant name="SUBDIV_256" value="2" enum="Subdiv">
+ Use 256 subdivisions.
</constant>
<constant name="SUBDIV_512" value="3" enum="Subdiv">
+ Use 512 subdivisions. This is the highest quality setting, but the slowest. On lower-end hardware this could cause the GPU to stall.
</constant>
<constant name="SUBDIV_MAX" value="4" enum="Subdiv">
Represents the size of the [enum Subdiv] enum.
diff --git a/doc/classes/GIProbeData.xml b/doc/classes/GIProbeData.xml
index 84bd695f43..6210d9ce70 100644
--- a/doc/classes/GIProbeData.xml
+++ b/doc/classes/GIProbeData.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="GIProbeData" inherits="Resource" category="Core" version="3.2">
+<class name="GIProbeData" inherits="Resource" version="3.2">
<brief_description>
</brief_description>
<description>
diff --git a/doc/classes/Generic6DOFJoint.xml b/doc/classes/Generic6DOFJoint.xml
index bc34f3ac0d..a17992a4d8 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.2">
+<class name="Generic6DOFJoint" inherits="Joint" 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>
diff --git a/doc/classes/Geometry.xml b/doc/classes/Geometry.xml
index dbc06f7c4f..48a831e946 100644
--- a/doc/classes/Geometry.xml
+++ b/doc/classes/Geometry.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="Geometry" inherits="Object" category="Core" version="3.2">
+<class name="Geometry" inherits="Object" version="3.2">
<brief_description>
Helper node to calculate generic geometry operations.
</brief_description>
@@ -115,7 +115,7 @@
<argument index="2" name="s2" type="Vector3">
</argument>
<description>
- Returns the 3d point on the 3d segment ([code]s1[/code], [code]s2[/code]) that is closest to [code]point[/code]. The returned point will always be inside the specified segment.
+ Returns the 3D point on the 3D segment ([code]s1[/code], [code]s2[/code]) that is closest to [code]point[/code]. The returned point will always be inside the specified segment.
</description>
</method>
<method name="get_closest_point_to_segment_2d">
@@ -128,7 +128,7 @@
<argument index="2" name="s2" type="Vector2">
</argument>
<description>
- Returns the 2d point on the 2d segment ([code]s1[/code], [code]s2[/code]) that is closest to [code]point[/code]. The returned point will always be inside the specified segment.
+ Returns the 2D point on the 2D segment ([code]s1[/code], [code]s2[/code]) that is closest to [code]point[/code]. The returned point will always be inside the specified segment.
</description>
</method>
<method name="get_closest_point_to_segment_uncapped">
@@ -141,7 +141,7 @@
<argument index="2" name="s2" type="Vector3">
</argument>
<description>
- Returns the 3d point on the 3d line defined by ([code]s1[/code], [code]s2[/code]) that is closest to [code]point[/code]. The returned point can be inside the segment ([code]s1[/code], [code]s2[/code]) or outside of it, i.e. somewhere on the line extending from the segment.
+ Returns the 3D point on the 3D line defined by ([code]s1[/code], [code]s2[/code]) that is closest to [code]point[/code]. The returned point can be inside the segment ([code]s1[/code], [code]s2[/code]) or outside of it, i.e. somewhere on the line extending from the segment.
</description>
</method>
<method name="get_closest_point_to_segment_uncapped_2d">
@@ -154,7 +154,7 @@
<argument index="2" name="s2" type="Vector2">
</argument>
<description>
- Returns the 2d point on the 2d line defined by ([code]s1[/code], [code]s2[/code]) that is closest to [code]point[/code]. The returned point can be inside the segment ([code]s1[/code], [code]s2[/code]) or outside of it, i.e. somewhere on the line extending from the segment.
+ Returns the 2D point on the 2D line defined by ([code]s1[/code], [code]s2[/code]) that is closest to [code]point[/code]. The returned point can be inside the segment ([code]s1[/code], [code]s2[/code]) or outside of it, i.e. somewhere on the line extending from the segment.
</description>
</method>
<method name="get_closest_points_between_segments">
@@ -169,7 +169,7 @@
<argument index="3" name="q2" type="Vector3">
</argument>
<description>
- Given the two 3d segments ([code]p1[/code], [code]p2[/code]) and ([code]q1[/code], [code]q2[/code]), finds those two points on the two segments that are closest to each other. Returns a [PoolVector3Array] that contains this point on ([code]p1[/code], [code]p2[/code]) as well the accompanying point on ([code]q1[/code], [code]q2[/code]).
+ Given the two 3D segments ([code]p1[/code], [code]p2[/code]) and ([code]q1[/code], [code]q2[/code]), finds those two points on the two segments that are closest to each other. Returns a [PoolVector3Array] that contains this point on ([code]p1[/code], [code]p2[/code]) as well the accompanying point on ([code]q1[/code], [code]q2[/code]).
</description>
</method>
<method name="get_closest_points_between_segments_2d">
@@ -184,7 +184,7 @@
<argument index="3" name="q2" type="Vector2">
</argument>
<description>
- Given the two 2d segments ([code]p1[/code], [code]p2[/code]) and ([code]q1[/code], [code]q2[/code]), finds those two points on the two segments that are closest to each other. Returns a [PoolVector2Array] that contains this point on ([code]p1[/code], [code]p2[/code]) as well the accompanying point on ([code]q1[/code], [code]q2[/code]).
+ Given the two 2D segments ([code]p1[/code], [code]p2[/code]) and ([code]q1[/code], [code]q2[/code]), finds those two points on the two segments that are closest to each other. Returns a [PoolVector2Array] that contains this point on ([code]p1[/code], [code]p2[/code]) as well the accompanying point on ([code]q1[/code], [code]q2[/code]).
</description>
</method>
<method name="get_uv84_normal_bit">
@@ -193,6 +193,7 @@
<argument index="0" name="normal" type="Vector3">
</argument>
<description>
+ Used internally by the engine.
</description>
</method>
<method name="intersect_polygons_2d">
@@ -350,7 +351,7 @@
<argument index="4" name="c" type="Vector3">
</argument>
<description>
- Tests if the 3d ray starting at [code]from[/code] with the direction of [code]dir[/code] intersects the triangle specified by [code]a[/code], [code]b[/code] and [code]c[/code]. If yes, returns the point of intersection as [Vector3]. If no intersection takes place, an empty [Variant] is returned.
+ Tests if the 3D ray starting at [code]from[/code] with the direction of [code]dir[/code] intersects the triangle specified by [code]a[/code], [code]b[/code] and [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="segment_intersects_circle">
@@ -365,7 +366,7 @@
<argument index="3" name="circle_radius" type="float">
</argument>
<description>
- Given the 2d segment ([code]segment_from[/code], [code]segment_to[/code]), returns the position on the segment (as a number between 0 and 1) at which the segment hits the circle that is located at position [code]circle_position[/code] and has radius [code]circle_radius[/code]. If the segment does not intersect the circle, -1 is returned (this is also the case if the line extending the segment would intersect the circle, but the segment does not).
+ Given the 2D segment ([code]segment_from[/code], [code]segment_to[/code]), returns the position on the segment (as a number between 0 and 1) at which the segment hits the circle that is located at position [code]circle_position[/code] and has radius [code]circle_radius[/code]. If the segment does not intersect the circle, -1 is returned (this is also the case if the line extending the segment would intersect the circle, but the segment does not).
</description>
</method>
<method name="segment_intersects_convex">
diff --git a/doc/classes/GeometryInstance.xml b/doc/classes/GeometryInstance.xml
index 980815e5fd..4545d88121 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.2">
+<class name="GeometryInstance" inherits="VisualInstance" version="3.2">
<brief_description>
Base node for geometry-based visual instances.
</brief_description>
diff --git a/doc/classes/Gradient.xml b/doc/classes/Gradient.xml
index 247a7afe85..f252175ea0 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.2">
+<class name="Gradient" inherits="Resource" version="3.2">
<brief_description>
A color interpolator resource which can be used to generate colors between user-defined color points.
</brief_description>
diff --git a/doc/classes/GradientTexture.xml b/doc/classes/GradientTexture.xml
index 3492b2e261..ef3e2be4c2 100644
--- a/doc/classes/GradientTexture.xml
+++ b/doc/classes/GradientTexture.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="GradientTexture" inherits="Texture" category="Core" version="3.2">
+<class name="GradientTexture" inherits="Texture" version="3.2">
<brief_description>
Gradient-filled texture.
</brief_description>
diff --git a/doc/classes/GraphEdit.xml b/doc/classes/GraphEdit.xml
index 802134d3b6..889d38b4ea 100644
--- a/doc/classes/GraphEdit.xml
+++ b/doc/classes/GraphEdit.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="GraphEdit" inherits="Control" category="Core" version="3.2">
+<class name="GraphEdit" inherits="Control" version="3.2">
<brief_description>
GraphEdit is an area capable of showing various GraphNodes. It manages connection events between them.
</brief_description>
diff --git a/doc/classes/GraphNode.xml b/doc/classes/GraphNode.xml
index 1729d20e54..fe2d5d4d86 100644
--- a/doc/classes/GraphNode.xml
+++ b/doc/classes/GraphNode.xml
@@ -1,11 +1,11 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="GraphNode" inherits="Container" category="Core" version="3.2">
+<class name="GraphNode" inherits="Container" version="3.2">
<brief_description>
A GraphNode is a container with potentially several input and output slots allowing connections between GraphNodes. Slots can have different, incompatible types.
</brief_description>
<description>
- A GraphNode is a container. Each GraphNode can have several input and output slots, sometimes refered to as ports, allowing connections between GraphNodes. To add a slot to GraphNode, add any [Control]-derived child node to it.
- After adding at least one child to GraphNode new sections will be automatically created in the Inspector called 'Slot'. When 'Slot' is expanded you will see list with index number for each slot. You can click on each of them to expand further.
+ A GraphNode is a container. Each GraphNode can have several input and output slots, sometimes referred to as ports, allowing connections between GraphNodes. To add a slot to GraphNode, add any [Control]-derived child node to it.
+ After adding at least one child to GraphNode new sections will be automatically created in the Inspector called 'Slot'. When 'Slot' is expanded you will see list with index number for each slot. You can click on each of them to expand further.
In the Inspector you can enable (show) or disable (hide) slots. By default all slots are disabled so you may not see any slots on your GraphNode initially. You can assign a type to each slot. Only slots of the same type will be able to connect to each other. You can also assign colors to slots. A tuple of input and output slots is defined for each GUI element included in the GraphNode. Input connections are on the left and output connections are on the right side of GraphNode. Only enabled slots are counted as connections.
</description>
<tutorials>
diff --git a/doc/classes/GridContainer.xml b/doc/classes/GridContainer.xml
index e8c764f412..64f0785a99 100644
--- a/doc/classes/GridContainer.xml
+++ b/doc/classes/GridContainer.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="GridContainer" inherits="Container" category="Core" version="3.2">
+<class name="GridContainer" inherits="Container" version="3.2">
<brief_description>
Grid container used to arrange elements in a grid like layout.
</brief_description>
diff --git a/doc/classes/GrooveJoint2D.xml b/doc/classes/GrooveJoint2D.xml
index 6b87fa5cfe..e708e59c07 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.2">
+<class name="GrooveJoint2D" inherits="Joint2D" version="3.2">
<brief_description>
Groove constraint for 2D physics.
</brief_description>
diff --git a/doc/classes/HBoxContainer.xml b/doc/classes/HBoxContainer.xml
index e2abbe16cc..d3456c99a9 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.2">
+<class name="HBoxContainer" inherits="BoxContainer" version="3.2">
<brief_description>
Horizontal box container.
</brief_description>
@@ -14,6 +14,7 @@
</constants>
<theme_items>
<theme_item name="separation" type="int" default="4">
+ The horizontal space between the [HBoxContainer]'s elements.
</theme_item>
</theme_items>
</class>
diff --git a/doc/classes/HScrollBar.xml b/doc/classes/HScrollBar.xml
index 90f14dd344..713cace433 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.2">
+<class name="HScrollBar" inherits="ScrollBar" version="3.2">
<brief_description>
Horizontal scroll bar.
</brief_description>
diff --git a/doc/classes/HSeparator.xml b/doc/classes/HSeparator.xml
index c34364c573..03881dc5a6 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.2">
+<class name="HSeparator" inherits="Separator" version="3.2">
<brief_description>
Horizontal separator.
</brief_description>
diff --git a/doc/classes/HSlider.xml b/doc/classes/HSlider.xml
index 4e7d9bc9f3..aa437f755d 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.2">
+<class name="HSlider" inherits="Slider" version="3.2">
<brief_description>
Horizontal slider.
</brief_description>
diff --git a/doc/classes/HSplitContainer.xml b/doc/classes/HSplitContainer.xml
index 3a425705c6..16b47d6b0d 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.2">
+<class name="HSplitContainer" inherits="SplitContainer" version="3.2">
<brief_description>
Horizontal split container.
</brief_description>
diff --git a/doc/classes/HTTPClient.xml b/doc/classes/HTTPClient.xml
index 3a63b2dc07..90202dd0d7 100644
--- a/doc/classes/HTTPClient.xml
+++ b/doc/classes/HTTPClient.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="HTTPClient" inherits="Reference" category="Core" version="3.2">
+<class name="HTTPClient" inherits="Reference" version="3.2">
<brief_description>
Hyper-text transfer protocol client.
</brief_description>
@@ -100,7 +100,7 @@
<return type="int" enum="Error">
</return>
<description>
- This needs to be called in order to have any request processed. Check results with [method get_status]
+ This needs to be called in order to have any request processed. Check results with [method get_status].
</description>
</method>
<method name="query_string_from_dict">
diff --git a/doc/classes/HTTPRequest.xml b/doc/classes/HTTPRequest.xml
index 748ed504c3..c08c2dad21 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.2">
+<class name="HTTPRequest" inherits="Node" version="3.2">
<brief_description>
A node with the ability to send HTTP(S) requests.
</brief_description>
@@ -170,7 +170,7 @@
Request exceeded its maximum size limit, see [member body_size_limit].
</constant>
<constant name="RESULT_REQUEST_FAILED" value="8" enum="Result">
- Request failed. (Unused)
+ Request failed (currently unused).
</constant>
<constant name="RESULT_DOWNLOAD_FILE_CANT_OPEN" value="9" enum="Result">
HTTPRequest couldn't open the download file.
diff --git a/doc/classes/HashingContext.xml b/doc/classes/HashingContext.xml
index 8a20eb99b8..ec532736fb 100644
--- a/doc/classes/HashingContext.xml
+++ b/doc/classes/HashingContext.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="HashingContext" inherits="Reference" category="Core" version="3.2">
+<class name="HashingContext" inherits="Reference" version="3.2">
<brief_description>
Context to compute cryptographic hashes over multiple iterations.
</brief_description>
diff --git a/doc/classes/HeightMapShape.xml b/doc/classes/HeightMapShape.xml
index cb7da8af26..f3ba45de7b 100644
--- a/doc/classes/HeightMapShape.xml
+++ b/doc/classes/HeightMapShape.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="HeightMapShape" inherits="Shape" category="Core" version="3.2">
+<class name="HeightMapShape" inherits="Shape" version="3.2">
<brief_description>
Height map shape for 3D physics (Bullet only).
</brief_description>
diff --git a/doc/classes/HingeJoint.xml b/doc/classes/HingeJoint.xml
index 4582e36da6..19de68a799 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.2">
+<class name="HingeJoint" inherits="Joint" version="3.2">
<brief_description>
A hinge between two 3D bodies.
</brief_description>
diff --git a/doc/classes/IP.xml b/doc/classes/IP.xml
index bfc645b8e7..0696dca5c9 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.2">
+<class name="IP" inherits="Object" version="3.2">
<brief_description>
Internet protocol (IP) support functions such as DNS resolution.
</brief_description>
diff --git a/doc/classes/IP_Unix.xml b/doc/classes/IP_Unix.xml
index 2a97c40ef8..800d4a5cae 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.2">
+<class name="IP_Unix" inherits="IP" version="3.2">
<brief_description>
UNIX IP support. See [IP].
</brief_description>
diff --git a/doc/classes/Image.xml b/doc/classes/Image.xml
index 8e16d4cb7d..a4578b1520 100644
--- a/doc/classes/Image.xml
+++ b/doc/classes/Image.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="Image" inherits="Resource" category="Core" version="3.2">
+<class name="Image" inherits="Resource" version="3.2">
<brief_description>
Image datatype.
</brief_description>
diff --git a/doc/classes/ImageTexture.xml b/doc/classes/ImageTexture.xml
index 03bf739760..028639da1c 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.2">
+<class name="ImageTexture" inherits="Texture" version="3.2">
<brief_description>
A [Texture] based on an [Image].
</brief_description>
diff --git a/doc/classes/ImmediateGeometry.xml b/doc/classes/ImmediateGeometry.xml
index 416128c9b1..e937271bb4 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.2">
+<class name="ImmediateGeometry" inherits="GeometryInstance" version="3.2">
<brief_description>
Draws simple geometry from code.
</brief_description>
diff --git a/doc/classes/Input.xml b/doc/classes/Input.xml
index 3f94ad2d2c..dc0ea3d133 100644
--- a/doc/classes/Input.xml
+++ b/doc/classes/Input.xml
@@ -1,10 +1,10 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="Input" inherits="Object" category="Core" version="3.2">
+<class name="Input" inherits="Object" version="3.2">
<brief_description>
- A Singleton that deals with inputs.
+ A singleton that deals with inputs.
</brief_description>
<description>
- A Singleton that deals with inputs. This includes key presses, mouse buttons and movement, joypads, and input actions. Actions and their events can be set in the [b]Input Map[/b] tab in the [b]Project &gt; Project Settings[/b], or with the [InputMap] class.
+ A singleton that deals with inputs. This includes key presses, mouse buttons and movement, joypads, and input actions. Actions and their events can be set in the [b]Input Map[/b] tab in the [b]Project &gt; Project Settings[/b], or with the [InputMap] class.
</description>
<tutorials>
<link>https://docs.godotengine.org/en/latest/tutorials/inputs/index.html</link>
@@ -277,6 +277,8 @@
<argument index="3" name="guid" type="String">
</argument>
<description>
+ Notifies the [Input] singleton that a connection has changed, to update the state for the [code]device[/code] index.
+ This is used internally and should not have to be called from user scripts. See [signal joy_connection_changed] for the signal emitted when this is triggered internally.
</description>
</method>
<method name="parse_input_event">
diff --git a/doc/classes/InputDefault.xml b/doc/classes/InputDefault.xml
index e96b885d10..95b470bab9 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.2">
+<class name="InputDefault" inherits="Input" version="3.2">
<brief_description>
Default implementation of the [Input] class.
</brief_description>
diff --git a/doc/classes/InputEvent.xml b/doc/classes/InputEvent.xml
index ccb5c5400a..db7dd29253 100644
--- a/doc/classes/InputEvent.xml
+++ b/doc/classes/InputEvent.xml
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="InputEvent" inherits="Resource" category="Core" version="3.2">
+<class name="InputEvent" inherits="Resource" version="3.2">
<brief_description>
- Generic input event
+ Generic input event.
</brief_description>
<description>
Base class of all sort of input event. See [method Node._input].
diff --git a/doc/classes/InputEventAction.xml b/doc/classes/InputEventAction.xml
index 46c47e357f..c6b3ce423d 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.2">
+<class name="InputEventAction" inherits="InputEvent" version="3.2">
<brief_description>
Input event type for actions.
</brief_description>
diff --git a/doc/classes/InputEventGesture.xml b/doc/classes/InputEventGesture.xml
index 59750a0902..49e3168fa6 100644
--- a/doc/classes/InputEventGesture.xml
+++ b/doc/classes/InputEventGesture.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="InputEventGesture" inherits="InputEventWithModifiers" category="Core" version="3.2">
+<class name="InputEventGesture" inherits="InputEventWithModifiers" version="3.2">
<brief_description>
</brief_description>
<description>
diff --git a/doc/classes/InputEventJoypadButton.xml b/doc/classes/InputEventJoypadButton.xml
index dcdda83681..09cd1cd9b5 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.2">
+<class name="InputEventJoypadButton" inherits="InputEvent" version="3.2">
<brief_description>
Input event for gamepad buttons.
</brief_description>
diff --git a/doc/classes/InputEventJoypadMotion.xml b/doc/classes/InputEventJoypadMotion.xml
index eb05cd2f99..c05fac6aa6 100644
--- a/doc/classes/InputEventJoypadMotion.xml
+++ b/doc/classes/InputEventJoypadMotion.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="InputEventJoypadMotion" inherits="InputEvent" category="Core" version="3.2">
+<class name="InputEventJoypadMotion" inherits="InputEvent" version="3.2">
<brief_description>
Input event type for gamepad joysticks and other motions. For buttons, see [code]InputEventJoypadButton[/code].
</brief_description>
diff --git a/doc/classes/InputEventKey.xml b/doc/classes/InputEventKey.xml
index cf9faaa26d..70411e13ce 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.2">
+<class name="InputEventKey" inherits="InputEventWithModifiers" version="3.2">
<brief_description>
Input event type for keyboard events.
</brief_description>
@@ -15,6 +15,7 @@
</return>
<description>
Returns the scancode combined with modifier keys such as [code]Shift[/code] or [code]Alt[/code]. See also [InputEventWithModifiers].
+ To get a human-readable representation of the [InputEventKey] with modifiers, use [code]OS.get_scancode_string(event.get_scancode_with_modifiers())[/code] where [code]event[/code] is the [InputEventKey].
</description>
</method>
</methods>
@@ -26,10 +27,11 @@
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" default="0">
- Key scancode, one of the [enum KeyList] constants.
+ The key scancode, which corresponds to one of the [enum KeyList] constants.
+ To get a human-readable representation of the [InputEventKey], use [code]OS.get_scancode_string(event.scancode)[/code] where [code]event[/code] is the [InputEventKey].
</member>
<member name="unicode" type="int" setter="set_unicode" getter="get_unicode" default="0">
- 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.
+ The 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
index fe77e46c6c..f1c3a66fb8 100644
--- a/doc/classes/InputEventMIDI.xml
+++ b/doc/classes/InputEventMIDI.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="InputEventMIDI" inherits="InputEvent" category="Core" version="3.2">
+<class name="InputEventMIDI" inherits="InputEvent" version="3.2">
<brief_description>
</brief_description>
<description>
diff --git a/doc/classes/InputEventMagnifyGesture.xml b/doc/classes/InputEventMagnifyGesture.xml
index f5add435f5..904821b729 100644
--- a/doc/classes/InputEventMagnifyGesture.xml
+++ b/doc/classes/InputEventMagnifyGesture.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="InputEventMagnifyGesture" inherits="InputEventGesture" category="Core" version="3.2">
+<class name="InputEventMagnifyGesture" inherits="InputEventGesture" version="3.2">
<brief_description>
</brief_description>
<description>
diff --git a/doc/classes/InputEventMouse.xml b/doc/classes/InputEventMouse.xml
index 56ba33702b..4207a2cddf 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.2">
+<class name="InputEventMouse" inherits="InputEventWithModifiers" version="3.2">
<brief_description>
Base input event type for mouse events.
</brief_description>
diff --git a/doc/classes/InputEventMouseButton.xml b/doc/classes/InputEventMouseButton.xml
index 4cf7174ab1..ff5cca192f 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.2">
+<class name="InputEventMouseButton" inherits="InputEventMouse" version="3.2">
<brief_description>
Input event type for mouse button events.
</brief_description>
diff --git a/doc/classes/InputEventMouseMotion.xml b/doc/classes/InputEventMouseMotion.xml
index 5cd6a0c285..663ba64cb4 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.2">
+<class name="InputEventMouseMotion" inherits="InputEventMouse" version="3.2">
<brief_description>
Input event type for mouse motion events.
</brief_description>
diff --git a/doc/classes/InputEventPanGesture.xml b/doc/classes/InputEventPanGesture.xml
index dab2c74543..bbc23c8e14 100644
--- a/doc/classes/InputEventPanGesture.xml
+++ b/doc/classes/InputEventPanGesture.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="InputEventPanGesture" inherits="InputEventGesture" category="Core" version="3.2">
+<class name="InputEventPanGesture" inherits="InputEventGesture" version="3.2">
<brief_description>
</brief_description>
<description>
diff --git a/doc/classes/InputEventScreenDrag.xml b/doc/classes/InputEventScreenDrag.xml
index be2eafbe7c..9e70c1e2b2 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.2">
+<class name="InputEventScreenDrag" inherits="InputEvent" version="3.2">
<brief_description>
Input event type for screen drag events. Only available on mobile devices.
</brief_description>
diff --git a/doc/classes/InputEventScreenTouch.xml b/doc/classes/InputEventScreenTouch.xml
index 6239fbc949..20a1459622 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.2">
+<class name="InputEventScreenTouch" inherits="InputEvent" version="3.2">
<brief_description>
Input event type for screen touch events.
(only available on mobile devices)
diff --git a/doc/classes/InputEventWithModifiers.xml b/doc/classes/InputEventWithModifiers.xml
index 9b31dd4639..d39de3ca46 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.2">
+<class name="InputEventWithModifiers" inherits="InputEvent" version="3.2">
<brief_description>
Base class for keys events with modifiers.
</brief_description>
diff --git a/doc/classes/InputMap.xml b/doc/classes/InputMap.xml
index 5b83f943cf..6fa1651a58 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.2">
+<class name="InputMap" inherits="Object" version="3.2">
<brief_description>
Singleton that manages [InputEventAction].
</brief_description>
diff --git a/doc/classes/InstancePlaceholder.xml b/doc/classes/InstancePlaceholder.xml
index 4b98166ef2..e99527bafd 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.2">
+<class name="InstancePlaceholder" inherits="Node" version="3.2">
<brief_description>
Placeholder for the root [Node] of a [PackedScene].
</brief_description>
diff --git a/doc/classes/InterpolatedCamera.xml b/doc/classes/InterpolatedCamera.xml
index ca3a5d0733..3ac7adbd7f 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.2">
+<class name="InterpolatedCamera" inherits="Camera" version="3.2">
<brief_description>
Camera which moves toward another node.
</brief_description>
diff --git a/doc/classes/ItemList.xml b/doc/classes/ItemList.xml
index 51d13627ad..13aa181dce 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.2">
+<class name="ItemList" inherits="Control" 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>
diff --git a/doc/classes/JSON.xml b/doc/classes/JSON.xml
index e834f5cb39..005bbf99cc 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.2">
+<class name="JSON" inherits="Object" version="3.2">
<brief_description>
Helper class for parsing JSON data.
</brief_description>
diff --git a/doc/classes/JSONParseResult.xml b/doc/classes/JSONParseResult.xml
index 01cffe6262..70b99d0ded 100644
--- a/doc/classes/JSONParseResult.xml
+++ b/doc/classes/JSONParseResult.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="JSONParseResult" inherits="Reference" category="Core" version="3.2">
+<class name="JSONParseResult" inherits="Reference" version="3.2">
<brief_description>
Data class wrapper for decoded JSON.
</brief_description>
diff --git a/doc/classes/JSONRPC.xml b/doc/classes/JSONRPC.xml
index 10d9e5943e..905b4d17f4 100644
--- a/doc/classes/JSONRPC.xml
+++ b/doc/classes/JSONRPC.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="JSONRPC" inherits="Object" category="Core" version="3.2">
+<class name="JSONRPC" inherits="Object" version="3.2">
<brief_description>
</brief_description>
<description>
diff --git a/doc/classes/JavaClass.xml b/doc/classes/JavaClass.xml
index c56f3cd481..afeb9e8212 100644
--- a/doc/classes/JavaClass.xml
+++ b/doc/classes/JavaClass.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="JavaClass" inherits="Reference" category="Core" version="3.2">
+<class name="JavaClass" inherits="Reference" version="3.2">
<brief_description>
</brief_description>
<description>
diff --git a/doc/classes/JavaClassWrapper.xml b/doc/classes/JavaClassWrapper.xml
index f027ddb975..0527678836 100644
--- a/doc/classes/JavaClassWrapper.xml
+++ b/doc/classes/JavaClassWrapper.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="JavaClassWrapper" inherits="Object" category="Core" version="3.2">
+<class name="JavaClassWrapper" inherits="Object" version="3.2">
<brief_description>
</brief_description>
<description>
diff --git a/doc/classes/JavaScript.xml b/doc/classes/JavaScript.xml
index 7737001a6c..452dcd0789 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.2">
+<class name="JavaScript" inherits="Object" version="3.2">
<brief_description>
Singleton that connects the engine with the browser's JavaScript context in HTML5 export.
</brief_description>
diff --git a/doc/classes/Joint.xml b/doc/classes/Joint.xml
index fe50cdac10..f314f36a5f 100644
--- a/doc/classes/Joint.xml
+++ b/doc/classes/Joint.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="Joint" inherits="Spatial" category="Core" version="3.2">
+<class name="Joint" inherits="Spatial" version="3.2">
<brief_description>
Base class for all 3D joints.
</brief_description>
diff --git a/doc/classes/Joint2D.xml b/doc/classes/Joint2D.xml
index 63d083d470..0849580495 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.2">
+<class name="Joint2D" inherits="Node2D" version="3.2">
<brief_description>
Base node for all joint constraints in 2D physics.
</brief_description>
diff --git a/doc/classes/KinematicBody.xml b/doc/classes/KinematicBody.xml
index c32264221d..efb69c825d 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.2">
+<class name="KinematicBody" inherits="PhysicsBody" version="3.2">
<brief_description>
Kinematic body 3D node.
</brief_description>
diff --git a/doc/classes/KinematicBody2D.xml b/doc/classes/KinematicBody2D.xml
index 6a3b3dabb1..101820a07f 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.2">
+<class name="KinematicBody2D" inherits="PhysicsBody2D" version="3.2">
<brief_description>
Kinematic body 2D node.
</brief_description>
diff --git a/doc/classes/KinematicCollision.xml b/doc/classes/KinematicCollision.xml
index b193847e92..aa7a72f318 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.2">
+<class name="KinematicCollision" inherits="Reference" version="3.2">
<brief_description>
Collision data for [KinematicBody] collisions.
</brief_description>
diff --git a/doc/classes/KinematicCollision2D.xml b/doc/classes/KinematicCollision2D.xml
index 8860c05d40..8b7332ca96 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.2">
+<class name="KinematicCollision2D" inherits="Reference" version="3.2">
<brief_description>
Collision data for [KinematicBody2D] collisions.
</brief_description>
diff --git a/doc/classes/Label.xml b/doc/classes/Label.xml
index 9222611090..125f7b5a2e 100644
--- a/doc/classes/Label.xml
+++ b/doc/classes/Label.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="Label" inherits="Control" category="Core" version="3.2">
+<class name="Label" inherits="Control" version="3.2">
<brief_description>
Displays plain text in a line or wrapped inside a rectangle. For formatted text, use [RichTextLabel].
</brief_description>
@@ -101,22 +101,31 @@
</constants>
<theme_items>
<theme_item name="font" type="Font">
+ [Font] used for the [Label]'s text.
</theme_item>
<theme_item name="font_color" type="Color" default="Color( 1, 1, 1, 1 )">
+ Default text [Color] of the [Label].
</theme_item>
<theme_item name="font_color_shadow" type="Color" default="Color( 0, 0, 0, 0 )">
+ [Color] of the text's shadow effect.
</theme_item>
<theme_item name="font_outline_modulate" type="Color" default="Color( 1, 1, 1, 1 )">
+ The tint of [Font]'s outline. See [member DynamicFont.outline_color].
</theme_item>
<theme_item name="line_spacing" type="int" default="3">
+ Vertical space between lines in multiline [Label].
</theme_item>
<theme_item name="normal" type="StyleBox">
+ Background [StyleBox] for the [Label].
</theme_item>
<theme_item name="shadow_as_outline" type="int" default="0">
+ Boolean value. If set to 1 ([code]true[/code]), the shadow will be displayed around the whole text as an outline.
</theme_item>
<theme_item name="shadow_offset_x" type="int" default="1">
+ The horizontal offset of the text's shadow.
</theme_item>
<theme_item name="shadow_offset_y" type="int" default="1">
+ The vertical offset of the text's shadow.
</theme_item>
</theme_items>
</class>
diff --git a/doc/classes/LargeTexture.xml b/doc/classes/LargeTexture.xml
index 4dbda34a46..51bf04e828 100644
--- a/doc/classes/LargeTexture.xml
+++ b/doc/classes/LargeTexture.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="LargeTexture" inherits="Texture" category="Core" version="3.2">
+<class name="LargeTexture" inherits="Texture" version="3.2">
<brief_description>
A [Texture] capable of storing many smaller textures with offsets.
</brief_description>
diff --git a/doc/classes/Light.xml b/doc/classes/Light.xml
index ae5bba4f06..12fdde022c 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.2">
+<class name="Light" inherits="VisualInstance" version="3.2">
<brief_description>
Provides a base class for different kinds of light nodes.
</brief_description>
diff --git a/doc/classes/Light2D.xml b/doc/classes/Light2D.xml
index cdc0270269..b3282650e7 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.2">
+<class name="Light2D" inherits="Node2D" version="3.2">
<brief_description>
Casts light in a 2D environment.
</brief_description>
@@ -8,7 +8,7 @@
[b]Note:[/b] Light2D can also be used as a mask.
</description>
<tutorials>
- <link>http://docs.godotengine.org/en/latest/tutorials/2d/2d_lights_and_shadows.html</link>
+ <link>https://docs.godotengine.org/en/latest/tutorials/2d/2d_lights_and_shadows.html</link>
</tutorials>
<methods>
</methods>
diff --git a/doc/classes/LightOccluder2D.xml b/doc/classes/LightOccluder2D.xml
index c7d52e6ef4..29fed7e7f9 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.2">
+<class name="LightOccluder2D" inherits="Node2D" version="3.2">
<brief_description>
Occludes light cast by a Light2D, casting shadows.
</brief_description>
@@ -7,7 +7,7 @@
Occludes light cast by a Light2D, casting shadows. The LightOccluder2D must be provided with an [OccluderPolygon2D] in order for the shadow to be computed.
</description>
<tutorials>
- <link>http://docs.godotengine.org/en/latest/tutorials/2d/2d_lights_and_shadows.html</link>
+ <link>https://docs.godotengine.org/en/latest/tutorials/2d/2d_lights_and_shadows.html</link>
</tutorials>
<methods>
</methods>
diff --git a/doc/classes/Line2D.xml b/doc/classes/Line2D.xml
index 9eaf70711e..342683cc29 100644
--- a/doc/classes/Line2D.xml
+++ b/doc/classes/Line2D.xml
@@ -1,10 +1,11 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="Line2D" inherits="Node2D" category="Core" version="3.2">
+<class name="Line2D" inherits="Node2D" version="3.2">
<brief_description>
A 2D line.
</brief_description>
<description>
A line through several points in 2D space.
+ [b]Note:[/b] By default, Godot can only draw up to 4,096 polygon points at a time. To increase this limit, open the Project Settings and increase [member ProjectSettings.rendering/limits/buffers/canvas_polygon_buffer_size_kb] and [member ProjectSettings.rendering/limits/buffers/canvas_polygon_index_buffer_size_kb].
</description>
<tutorials>
</tutorials>
diff --git a/doc/classes/LineEdit.xml b/doc/classes/LineEdit.xml
index 7282d635b1..59bad00f25 100644
--- a/doc/classes/LineEdit.xml
+++ b/doc/classes/LineEdit.xml
@@ -1,10 +1,11 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="LineEdit" inherits="Control" category="Core" version="3.2">
+<class name="LineEdit" inherits="Control" version="3.2">
<brief_description>
Control that provides single-line string editing.
</brief_description>
<description>
- LineEdit provides a single-line string editor, used for text fields. It features many built-in shortcuts which will always be available: (the Ctrl here maps to Command on macOS)
+ LineEdit provides a single-line string editor, used for text fields.
+ It features many built-in shortcuts which will always be available ([code]Ctrl[/code] here maps to [code]Command[/code] on macOS):
- Ctrl + C: Copy
- Ctrl + X: Cut
- Ctrl + V or Ctrl + Y: Paste/"yank"
@@ -77,9 +78,9 @@
Selects characters inside [LineEdit] between [code]from[/code] and [code]to[/code]. By default, [code]from[/code] is at the beginning and [code]to[/code] at the end.
[codeblock]
text = "Welcome"
- select() # Will select "Welcome"
- select(4) # Will select "ome"
- select(2, 5) # Will select "lco"
+ select() # Will select "Welcome".
+ select(4) # Will select "ome".
+ select(2, 5) # Will select "lco".
[/codeblock]
</description>
</method>
diff --git a/doc/classes/LineShape2D.xml b/doc/classes/LineShape2D.xml
index fbab1dbe3c..b4dea75429 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.2">
+<class name="LineShape2D" inherits="Shape2D" version="3.2">
<brief_description>
Line shape for 2D collisions.
</brief_description>
diff --git a/doc/classes/LinkButton.xml b/doc/classes/LinkButton.xml
index af4c255b92..243c4618b6 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.2">
+<class name="LinkButton" inherits="BaseButton" version="3.2">
<brief_description>
Simple button used to represent a link to some resource.
</brief_description>
diff --git a/doc/classes/Listener.xml b/doc/classes/Listener.xml
index ae8c38198f..c063efd589 100644
--- a/doc/classes/Listener.xml
+++ b/doc/classes/Listener.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="Listener" inherits="Spatial" category="Core" version="3.2">
+<class name="Listener" inherits="Spatial" version="3.2">
<brief_description>
Overrides the location sounds are heard from.
</brief_description>
diff --git a/doc/classes/MainLoop.xml b/doc/classes/MainLoop.xml
index 606c898a35..2df6013ee2 100644
--- a/doc/classes/MainLoop.xml
+++ b/doc/classes/MainLoop.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="MainLoop" inherits="Object" category="Core" version="3.2">
+<class name="MainLoop" inherits="Object" version="3.2">
<brief_description>
Abstract base class for the game's main loop.
</brief_description>
diff --git a/doc/classes/MarginContainer.xml b/doc/classes/MarginContainer.xml
index 08e8098a75..051d19014c 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.2">
+<class name="MarginContainer" inherits="Container" version="3.2">
<brief_description>
Simple margin container.
</brief_description>
diff --git a/doc/classes/Marshalls.xml b/doc/classes/Marshalls.xml
index 083a3163ce..a5770afacc 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.2">
+<class name="Marshalls" inherits="Reference" version="3.2">
<brief_description>
Data transformation (marshalling) and encoding helpers.
</brief_description>
diff --git a/doc/classes/Material.xml b/doc/classes/Material.xml
index 7a620ead3b..ac7b94fb50 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.2">
+<class name="Material" inherits="Resource" version="3.2">
<brief_description>
Abstract base [Resource] for coloring and shading geometry.
</brief_description>
diff --git a/doc/classes/MenuButton.xml b/doc/classes/MenuButton.xml
index 642b94a047..f3ea286260 100644
--- a/doc/classes/MenuButton.xml
+++ b/doc/classes/MenuButton.xml
@@ -1,11 +1,11 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="MenuButton" inherits="Button" category="Core" version="3.2">
+<class name="MenuButton" inherits="Button" version="3.2">
<brief_description>
Special button that brings up a [PopupMenu] when clicked.
</brief_description>
<description>
- Special button that brings up a [PopupMenu] when clicked.
- New items can be created inside this [PopupMenu] using [code]get_popup().add_item("My Item Name")[/code]. You can also create them directly from the editor. To do so, select the MenuButton node, then in the toolbar at the top of the 2D editor, click [b]Items[/b] then click [b]Add[/b] in the popup. You will be able to give each items new properties.
+ Special button that brings up a [PopupMenu] when clicked.
+ New items can be created inside this [PopupMenu] using [code]get_popup().add_item("My Item Name")[/code]. You can also create them directly from the editor. To do so, select the [MenuButton] node, then in the toolbar at the top of the 2D editor, click [b]Items[/b] then click [b]Add[/b] in the popup. You will be able to give each items new properties.
</description>
<tutorials>
</tutorials>
@@ -23,6 +23,7 @@
<argument index="0" name="disabled" type="bool">
</argument>
<description>
+ If [code]true[/code], shortcuts are disabled and cannot be used to trigger the button.
</description>
</method>
</methods>
@@ -32,7 +33,7 @@
<member name="flat" type="bool" setter="set_flat" getter="is_flat" override="true" default="true" />
<member name="focus_mode" type="int" setter="set_focus_mode" getter="get_focus_mode" override="true" enum="Control.FocusMode" default="0" />
<member name="switch_on_hover" type="bool" setter="set_switch_on_hover" getter="is_switch_on_hover" default="false">
- 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.
+ 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>
<member name="toggle_mode" type="bool" setter="set_toggle_mode" getter="is_toggle_mode" override="true" default="true" />
</members>
diff --git a/doc/classes/Mesh.xml b/doc/classes/Mesh.xml
index 2dd3ce5529..b1407875d0 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.2">
+<class name="Mesh" inherits="Resource" version="3.2">
<brief_description>
A [Resource] that contains vertex array-based geometry.
</brief_description>
diff --git a/doc/classes/MeshDataTool.xml b/doc/classes/MeshDataTool.xml
index 22c31306bf..1468d900b5 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.2">
+<class name="MeshDataTool" inherits="Reference" version="3.2">
<brief_description>
Helper tool to access and edit [Mesh] data.
</brief_description>
diff --git a/doc/classes/MeshInstance.xml b/doc/classes/MeshInstance.xml
index c7cddf5977..40258e0684 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.2">
+<class name="MeshInstance" inherits="GeometryInstance" version="3.2">
<brief_description>
Node that instances meshes into a scenario.
</brief_description>
diff --git a/doc/classes/MeshInstance2D.xml b/doc/classes/MeshInstance2D.xml
index 7f1466ccf6..74d8516cbc 100644
--- a/doc/classes/MeshInstance2D.xml
+++ b/doc/classes/MeshInstance2D.xml
@@ -1,13 +1,13 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="MeshInstance2D" inherits="Node2D" category="Core" version="3.2">
+<class name="MeshInstance2D" inherits="Node2D" 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".
+ Node used for displaying a [Mesh] in 2D. Can be constructed from an existing [Sprite] via a tool in the editor toolbar. Select "Sprite" then "Convert to Mesh2D", select settings in popup and press "Create Mesh2D".
</description>
<tutorials>
- <link>http://docs.godotengine.org/en/latest/tutorials/2d/2d_meshes.html</link>
+ <link>https://docs.godotengine.org/en/latest/tutorials/2d/2d_meshes.html</link>
</tutorials>
<methods>
</methods>
diff --git a/doc/classes/MeshLibrary.xml b/doc/classes/MeshLibrary.xml
index 49278be44e..75d2dd22f3 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.2">
+<class name="MeshLibrary" inherits="Resource" version="3.2">
<brief_description>
Library of meshes.
</brief_description>
diff --git a/doc/classes/MeshTexture.xml b/doc/classes/MeshTexture.xml
index 2c94014879..e506500a1a 100644
--- a/doc/classes/MeshTexture.xml
+++ b/doc/classes/MeshTexture.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="MeshTexture" inherits="Texture" category="Core" version="3.2">
+<class name="MeshTexture" inherits="Texture" version="3.2">
<brief_description>
Simple texture that uses a mesh to draw itself.
</brief_description>
diff --git a/doc/classes/MultiMesh.xml b/doc/classes/MultiMesh.xml
index ec65f407cd..74e94d4983 100644
--- a/doc/classes/MultiMesh.xml
+++ b/doc/classes/MultiMesh.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="MultiMesh" inherits="Resource" category="Core" version="3.2">
+<class name="MultiMesh" inherits="Resource" version="3.2">
<brief_description>
Provides high-performance mesh instancing.
</brief_description>
@@ -10,8 +10,8 @@
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>
- <link>http://docs.godotengine.org/en/latest/tutorials/optimization/using_multimesh.html</link>
+ <link>https://docs.godotengine.org/en/latest/tutorials/3d/vertex_animation/animating_thousands_of_fish.html</link>
+ <link>https://docs.godotengine.org/en/latest/tutorials/optimization/using_multimesh.html</link>
</tutorials>
<methods>
<method name="get_aabb" qualifiers="const">
diff --git a/doc/classes/MultiMeshInstance.xml b/doc/classes/MultiMeshInstance.xml
index 7dcfd2808d..feeb5c4a8c 100644
--- a/doc/classes/MultiMeshInstance.xml
+++ b/doc/classes/MultiMeshInstance.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="MultiMeshInstance" inherits="GeometryInstance" category="Core" version="3.2">
+<class name="MultiMeshInstance" inherits="GeometryInstance" version="3.2">
<brief_description>
Node that instances a [MultiMesh].
</brief_description>
@@ -8,9 +8,9 @@
This is useful to optimize the rendering of a high amount of instances of a given mesh (for example trees in a forest or grass strands).
</description>
<tutorials>
- <link>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>
- <link>http://docs.godotengine.org/en/latest/tutorials/optimization/using_multimesh.html</link>
+ <link>https://docs.godotengine.org/en/latest/tutorials/3d/vertex_animation/animating_thousands_of_fish.html</link>
+ <link>https://docs.godotengine.org/en/latest/tutorials/3d/using_multi_mesh_instance.html</link>
+ <link>https://docs.godotengine.org/en/latest/tutorials/optimization/using_multimesh.html</link>
</tutorials>
<methods>
</methods>
diff --git a/doc/classes/MultiMeshInstance2D.xml b/doc/classes/MultiMeshInstance2D.xml
index 0c6f1a4a62..71e0a5d979 100644
--- a/doc/classes/MultiMeshInstance2D.xml
+++ b/doc/classes/MultiMeshInstance2D.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="MultiMeshInstance2D" inherits="Node2D" category="Core" version="3.2">
+<class name="MultiMeshInstance2D" inherits="Node2D" version="3.2">
<brief_description>
Node that instances a [MultiMesh] in 2D.
</brief_description>
diff --git a/doc/classes/MultiplayerAPI.xml b/doc/classes/MultiplayerAPI.xml
index 9cd3fe7bb4..c74ed93144 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.2">
+<class name="MultiplayerAPI" inherits="Reference" version="3.2">
<brief_description>
High-level multiplayer API.
</brief_description>
diff --git a/doc/classes/Mutex.xml b/doc/classes/Mutex.xml
index 8a294425e6..476183fc27 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.2">
+<class name="Mutex" inherits="Reference" version="3.2">
<brief_description>
A synchronization mutex (mutual exclusion).
</brief_description>
diff --git a/doc/classes/Navigation.xml b/doc/classes/Navigation.xml
index 58b7d1255e..1c734d41b1 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.2">
+<class name="Navigation" inherits="Spatial" version="3.2">
<brief_description>
Mesh-based navigation and pathfinding node.
</brief_description>
diff --git a/doc/classes/Navigation2D.xml b/doc/classes/Navigation2D.xml
index ea1b992d79..f7e1d8a0a9 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.2">
+<class name="Navigation2D" inherits="Node2D" version="3.2">
<brief_description>
2D navigation and pathfinding node.
</brief_description>
diff --git a/doc/classes/NavigationMesh.xml b/doc/classes/NavigationMesh.xml
index 6528704bb5..05e0715868 100644
--- a/doc/classes/NavigationMesh.xml
+++ b/doc/classes/NavigationMesh.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="NavigationMesh" inherits="Resource" category="Core" version="3.2">
+<class name="NavigationMesh" inherits="Resource" version="3.2">
<brief_description>
</brief_description>
<description>
diff --git a/doc/classes/NavigationMeshInstance.xml b/doc/classes/NavigationMeshInstance.xml
index 2f9cc58aea..af7b1b784e 100644
--- a/doc/classes/NavigationMeshInstance.xml
+++ b/doc/classes/NavigationMeshInstance.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="NavigationMeshInstance" inherits="Spatial" category="Core" version="3.2">
+<class name="NavigationMeshInstance" inherits="Spatial" version="3.2">
<brief_description>
</brief_description>
<description>
diff --git a/doc/classes/NavigationPolygon.xml b/doc/classes/NavigationPolygon.xml
index 555f308660..d8a4dd7ae2 100644
--- a/doc/classes/NavigationPolygon.xml
+++ b/doc/classes/NavigationPolygon.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="NavigationPolygon" inherits="Resource" category="Core" version="3.2">
+<class name="NavigationPolygon" inherits="Resource" version="3.2">
<brief_description>
A node that has methods to draw outlines or use indices of vertices to create navigation polygons.
</brief_description>
diff --git a/doc/classes/NavigationPolygonInstance.xml b/doc/classes/NavigationPolygonInstance.xml
index 83f3386af6..e9a7ebef47 100644
--- a/doc/classes/NavigationPolygonInstance.xml
+++ b/doc/classes/NavigationPolygonInstance.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="NavigationPolygonInstance" inherits="Node2D" category="Core" version="3.2">
+<class name="NavigationPolygonInstance" inherits="Node2D" version="3.2">
<brief_description>
</brief_description>
<description>
diff --git a/doc/classes/NetworkedMultiplayerPeer.xml b/doc/classes/NetworkedMultiplayerPeer.xml
index 4f212cf392..75a02af02a 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.2">
+<class name="NetworkedMultiplayerPeer" inherits="PacketPeer" version="3.2">
<brief_description>
A high-level network interface to simplify multiplayer interactions.
</brief_description>
diff --git a/doc/classes/Nil.xml b/doc/classes/Nil.xml
deleted file mode 100644
index a5c1ade6ed..0000000000
--- a/doc/classes/Nil.xml
+++ /dev/null
@@ -1,169 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" ?>
-<class name="Nil" category="Built-In Types" version="3.2">
- <brief_description>
- </brief_description>
- <description>
- </description>
- <tutorials>
- </tutorials>
- <methods>
- <method name="Nil">
- <argument index="0" name="from" type="PoolColorArray">
- </argument>
- <description>
- </description>
- </method>
- <method name="Nil">
- <argument index="0" name="from" type="PoolVector3Array">
- </argument>
- <description>
- </description>
- </method>
- <method name="Nil">
- <argument index="0" name="from" type="PoolVector2Array">
- </argument>
- <description>
- </description>
- </method>
- <method name="Nil">
- <argument index="0" name="from" type="PoolStringArray">
- </argument>
- <description>
- </description>
- </method>
- <method name="Nil">
- <argument index="0" name="from" type="PoolRealArray">
- </argument>
- <description>
- </description>
- </method>
- <method name="Nil">
- <argument index="0" name="from" type="PoolIntArray">
- </argument>
- <description>
- </description>
- </method>
- <method name="Nil">
- <argument index="0" name="from" type="PoolByteArray">
- </argument>
- <description>
- </description>
- </method>
- <method name="Nil">
- <argument index="0" name="from" type="Array">
- </argument>
- <description>
- </description>
- </method>
- <method name="Nil">
- <argument index="0" name="from" type="Dictionary">
- </argument>
- <description>
- </description>
- </method>
- <method name="Nil">
- <argument index="0" name="from" type="Object">
- </argument>
- <description>
- </description>
- </method>
- <method name="Nil">
- <argument index="0" name="from" type="RID">
- </argument>
- <description>
- </description>
- </method>
- <method name="Nil">
- <argument index="0" name="from" type="NodePath">
- </argument>
- <description>
- </description>
- </method>
- <method name="Nil">
- <argument index="0" name="from" type="Color">
- </argument>
- <description>
- </description>
- </method>
- <method name="Nil">
- <argument index="0" name="from" type="Transform">
- </argument>
- <description>
- </description>
- </method>
- <method name="Nil">
- <argument index="0" name="from" type="Basis">
- </argument>
- <description>
- </description>
- </method>
- <method name="Nil">
- <argument index="0" name="from" type="AABB">
- </argument>
- <description>
- </description>
- </method>
- <method name="Nil">
- <argument index="0" name="from" type="Quat">
- </argument>
- <description>
- </description>
- </method>
- <method name="Nil">
- <argument index="0" name="from" type="Plane">
- </argument>
- <description>
- </description>
- </method>
- <method name="Nil">
- <argument index="0" name="from" type="Transform2D">
- </argument>
- <description>
- </description>
- </method>
- <method name="Nil">
- <argument index="0" name="from" type="Vector3">
- </argument>
- <description>
- </description>
- </method>
- <method name="Nil">
- <argument index="0" name="from" type="Rect2">
- </argument>
- <description>
- </description>
- </method>
- <method name="Nil">
- <argument index="0" name="from" type="Vector2">
- </argument>
- <description>
- </description>
- </method>
- <method name="Nil">
- <argument index="0" name="from" type="String">
- </argument>
- <description>
- </description>
- </method>
- <method name="Nil">
- <argument index="0" name="from" type="float">
- </argument>
- <description>
- </description>
- </method>
- <method name="Nil">
- <argument index="0" name="from" type="int">
- </argument>
- <description>
- </description>
- </method>
- <method name="Nil">
- <argument index="0" name="from" type="bool">
- </argument>
- <description>
- </description>
- </method>
- </methods>
- <constants>
- </constants>
-</class>
diff --git a/doc/classes/NinePatchRect.xml b/doc/classes/NinePatchRect.xml
index 7a7973684d..8b0e4eaaf7 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.2">
+<class name="NinePatchRect" inherits="Control" 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>
diff --git a/doc/classes/Node.xml b/doc/classes/Node.xml
index e3f1165c55..04d3fc4235 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.2">
+<class name="Node" inherits="Object" version="3.2">
<brief_description>
Base class for all [i]scene[/i] objects.
</brief_description>
@@ -33,7 +33,7 @@
</return>
<description>
Called when the node is about to leave the [SceneTree] (e.g. upon freeing, scene changing, or after calling [method remove_child] in a script). If the node has children, its [method _exit_tree] callback will be called last, after all its children have left the tree.
- Corresponds to the [constant NOTIFICATION_EXIT_TREE] notification in [method Object._notification] and signal [signal tree_exiting]. To get notified when the node has already left the active tree, connect to the [signal tree_exited]
+ Corresponds to the [constant NOTIFICATION_EXIT_TREE] notification in [method Object._notification] and signal [signal tree_exiting]. To get notified when the node has already left the active tree, connect to the [signal tree_exited].
</description>
</method>
<method name="_get_configuration_warning" qualifiers="virtual">
diff --git a/doc/classes/Node2D.xml b/doc/classes/Node2D.xml
index 67e9597781..d9f0044156 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.2">
+<class name="Node2D" inherits="CanvasItem" version="3.2">
<brief_description>
A 2D game object, inherited by all 2D-related nodes. Has a position, rotation, scale, and Z index.
</brief_description>
diff --git a/doc/classes/NodePath.xml b/doc/classes/NodePath.xml
index 0310068a90..494f6aeabe 100644
--- a/doc/classes/NodePath.xml
+++ b/doc/classes/NodePath.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="NodePath" category="Built-In Types" version="3.2">
+<class name="NodePath" version="3.2">
<brief_description>
Pre-parsed scene tree path.
</brief_description>
diff --git a/doc/classes/OS.xml b/doc/classes/OS.xml
index 2c44a3dfb0..ebd0529be9 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.2">
+<class name="OS" inherits="Object" version="3.2">
<brief_description>
Operating System functions.
</brief_description>
@@ -95,7 +95,7 @@
</argument>
<argument index="1" name="arguments" type="PoolStringArray">
</argument>
- <argument index="2" name="blocking" type="bool">
+ <argument index="2" name="blocking" type="bool" default="true">
</argument>
<argument index="3" name="output" type="Array" default="[ ]">
</argument>
@@ -333,6 +333,7 @@
</argument>
<description>
Returns the given scancode as a string (e.g. Return values: [code]"Escape"[/code], [code]"Shift+Escape"[/code]).
+ See also [member InputEventKey.scancode] and [method InputEventKey.get_scancode_with_modifiers].
</description>
</method>
<method name="get_screen_count" qualifiers="const">
diff --git a/doc/classes/Object.xml b/doc/classes/Object.xml
index d063bd81e7..c8a4b68596 100644
--- a/doc/classes/Object.xml
+++ b/doc/classes/Object.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="Object" category="Core" version="3.2">
+<class name="Object" version="3.2">
<brief_description>
Base class for all non built-in types.
</brief_description>
@@ -12,8 +12,8 @@
Property membership can be tested directly in GDScript using [code]in[/code]:
[codeblock]
var n = Node2D.new()
- print("position" in n) # Prints "True".
- print("other_property" in n) # Prints "False".
+ print("position" in n) # Prints "True".
+ print("other_property" in n) # Prints "False".
[/codeblock]
Objects also receive notifications. Notifications are a simple way to notify the object about different events, so they can all be handled together. See [method _notification].
</description>
diff --git a/doc/classes/OccluderPolygon2D.xml b/doc/classes/OccluderPolygon2D.xml
index f4fa6ac688..ef7d297449 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.2">
+<class name="OccluderPolygon2D" inherits="Resource" version="3.2">
<brief_description>
Defines a 2D polygon for LightOccluder2D.
</brief_description>
diff --git a/doc/classes/OmniLight.xml b/doc/classes/OmniLight.xml
index 646c2d3166..e3e0a8eb20 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.2">
+<class name="OmniLight" inherits="Light" version="3.2">
<brief_description>
Omnidirectional light, such as a light bulb or a candle.
</brief_description>
diff --git a/doc/classes/OptionButton.xml b/doc/classes/OptionButton.xml
index 0debb988ce..54f7749ec4 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.2">
+<class name="OptionButton" inherits="Button" version="3.2">
<brief_description>
Button control that provides selectable options when pressed.
</brief_description>
diff --git a/doc/classes/PCKPacker.xml b/doc/classes/PCKPacker.xml
index e9ff2c0916..bbf522beac 100644
--- a/doc/classes/PCKPacker.xml
+++ b/doc/classes/PCKPacker.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="PCKPacker" inherits="Reference" category="Core" version="3.2">
+<class name="PCKPacker" inherits="Reference" version="3.2">
<brief_description>
Creates packages that can be loaded into a running project.
</brief_description>
diff --git a/doc/classes/PHashTranslation.xml b/doc/classes/PHashTranslation.xml
index 7c771b6b04..069536de0e 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.2">
+<class name="PHashTranslation" inherits="Translation" version="3.2">
<brief_description>
Optimized translation.
</brief_description>
diff --git a/doc/classes/PackedDataContainer.xml b/doc/classes/PackedDataContainer.xml
index fa6a00d65d..14e0b430c4 100644
--- a/doc/classes/PackedDataContainer.xml
+++ b/doc/classes/PackedDataContainer.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="PackedDataContainer" inherits="Resource" category="Core" version="3.2">
+<class name="PackedDataContainer" inherits="Resource" version="3.2">
<brief_description>
</brief_description>
<description>
diff --git a/doc/classes/PackedDataContainerRef.xml b/doc/classes/PackedDataContainerRef.xml
index 8623ff7843..ba4cef31b9 100644
--- a/doc/classes/PackedDataContainerRef.xml
+++ b/doc/classes/PackedDataContainerRef.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="PackedDataContainerRef" inherits="Reference" category="Core" version="3.2">
+<class name="PackedDataContainerRef" inherits="Reference" version="3.2">
<brief_description>
</brief_description>
<description>
diff --git a/doc/classes/PackedScene.xml b/doc/classes/PackedScene.xml
index 0400f2704b..3dca4f7d30 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.2">
+<class name="PackedScene" inherits="Resource" version="3.2">
<brief_description>
An abstraction of a serialized scene.
</brief_description>
diff --git a/doc/classes/PacketPeer.xml b/doc/classes/PacketPeer.xml
index e8c1980dd9..d5a739e5ca 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.2">
+<class name="PacketPeer" inherits="Reference" version="3.2">
<brief_description>
Abstraction and base class for packet-based protocols.
</brief_description>
diff --git a/doc/classes/PacketPeerStream.xml b/doc/classes/PacketPeerStream.xml
index 0376fea592..361870f1e6 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.2">
+<class name="PacketPeerStream" inherits="PacketPeer" version="3.2">
<brief_description>
Wrapper to use a PacketPeer over a StreamPeer.
</brief_description>
diff --git a/doc/classes/PacketPeerUDP.xml b/doc/classes/PacketPeerUDP.xml
index 3dc83ce8b4..eb7e3cf018 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.2">
+<class name="PacketPeerUDP" inherits="PacketPeer" version="3.2">
<brief_description>
UDP packet peer.
</brief_description>
diff --git a/doc/classes/Panel.xml b/doc/classes/Panel.xml
index c9c3f80e7b..0f12486aaf 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.2">
+<class name="Panel" inherits="Control" version="3.2">
<brief_description>
Provides an opaque background for [Control] children.
</brief_description>
diff --git a/doc/classes/PanelContainer.xml b/doc/classes/PanelContainer.xml
index 64fae6d95c..1a01a7378b 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.2">
+<class name="PanelContainer" inherits="Container" version="3.2">
<brief_description>
Panel container type.
</brief_description>
diff --git a/doc/classes/PanoramaSky.xml b/doc/classes/PanoramaSky.xml
index 96aefc0623..d87f7838a9 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.2">
+<class name="PanoramaSky" inherits="Sky" version="3.2">
<brief_description>
A type of [Sky] used to draw a background texture.
</brief_description>
diff --git a/doc/classes/ParallaxBackground.xml b/doc/classes/ParallaxBackground.xml
index d4f3462016..a94ffd7abf 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.2">
+<class name="ParallaxBackground" inherits="CanvasLayer" version="3.2">
<brief_description>
A node used to create a parallax scrolling background.
</brief_description>
diff --git a/doc/classes/ParallaxLayer.xml b/doc/classes/ParallaxLayer.xml
index 75c69cc4b1..8fc9a792f6 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.2">
+<class name="ParallaxLayer" inherits="Node2D" version="3.2">
<brief_description>
A parallax scrolling layer to be used with [ParallaxBackground].
</brief_description>
diff --git a/doc/classes/Particles.xml b/doc/classes/Particles.xml
index 2219be5a26..e51edd1135 100644
--- a/doc/classes/Particles.xml
+++ b/doc/classes/Particles.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="Particles" inherits="GeometryInstance" category="Core" version="3.2">
+<class name="Particles" inherits="GeometryInstance" version="3.2">
<brief_description>
3D particle emitter.
</brief_description>
@@ -8,7 +8,7 @@
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>
+ <link>https://docs.godotengine.org/en/latest/tutorials/3d/vertex_animation/controlling_thousands_of_fish.html</link>
</tutorials>
<methods>
<method name="capture_aabb" qualifiers="const">
diff --git a/doc/classes/Particles2D.xml b/doc/classes/Particles2D.xml
index 100585768d..1855078d98 100644
--- a/doc/classes/Particles2D.xml
+++ b/doc/classes/Particles2D.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="Particles2D" inherits="Node2D" category="Core" version="3.2">
+<class name="Particles2D" inherits="Node2D" version="3.2">
<brief_description>
2D particle emitter.
</brief_description>
diff --git a/doc/classes/ParticlesMaterial.xml b/doc/classes/ParticlesMaterial.xml
index 1f23649b75..fd3a448182 100644
--- a/doc/classes/ParticlesMaterial.xml
+++ b/doc/classes/ParticlesMaterial.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="ParticlesMaterial" inherits="Material" category="Core" version="3.2">
+<class name="ParticlesMaterial" inherits="Material" version="3.2">
<brief_description>
Particle properties for [Particles] and [Particles2D] nodes.
</brief_description>
@@ -17,6 +17,7 @@
<argument index="0" name="flag" type="int" enum="ParticlesMaterial.Flags">
</argument>
<description>
+ Returns [code]true[/code] if the specified flag is enabled.
</description>
</method>
<method name="get_param" qualifiers="const">
@@ -25,6 +26,7 @@
<argument index="0" name="param" type="int" enum="ParticlesMaterial.Parameter">
</argument>
<description>
+ Returns the value of the specified parameter.
</description>
</method>
<method name="get_param_randomness" qualifiers="const">
@@ -33,6 +35,7 @@
<argument index="0" name="param" type="int" enum="ParticlesMaterial.Parameter">
</argument>
<description>
+ Returns the randomness ratio associated with the specified parameter.
</description>
</method>
<method name="get_param_texture" qualifiers="const">
@@ -41,6 +44,7 @@
<argument index="0" name="param" type="int" enum="ParticlesMaterial.Parameter">
</argument>
<description>
+ Returns the [Texture] used by the specified parameter.
</description>
</method>
<method name="set_flag">
@@ -51,6 +55,7 @@
<argument index="1" name="enable" type="bool">
</argument>
<description>
+ If [code]true[/code], enables the specified flag. See [enum Flags] for options.
</description>
</method>
<method name="set_param">
@@ -61,6 +66,7 @@
<argument index="1" name="value" type="float">
</argument>
<description>
+ Sets the specified [enum Parameter].
</description>
</method>
<method name="set_param_randomness">
@@ -71,6 +77,7 @@
<argument index="1" name="randomness" type="float">
</argument>
<description>
+ Sets the randomness ratio for the specified [enum Parameter].
</description>
</method>
<method name="set_param_texture">
@@ -81,6 +88,7 @@
<argument index="1" name="texture" type="Texture">
</argument>
<description>
+ Sets the [Texture] for the specified [enum Parameter].
</description>
</method>
</methods>
diff --git a/doc/classes/Path.xml b/doc/classes/Path.xml
index 12ae8fd3d5..8d3ab46d13 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.2">
+<class name="Path" inherits="Spatial" version="3.2">
<brief_description>
Contains a [Curve3D] path for [PathFollow] nodes to follow.
</brief_description>
diff --git a/doc/classes/Path2D.xml b/doc/classes/Path2D.xml
index 7b37f8e40d..555fa409aa 100644
--- a/doc/classes/Path2D.xml
+++ b/doc/classes/Path2D.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="Path2D" inherits="Node2D" category="Core" version="3.2">
+<class name="Path2D" inherits="Node2D" version="3.2">
<brief_description>
Contains a [Curve2D] path for [PathFollow2D] nodes to follow.
</brief_description>
diff --git a/doc/classes/PathFollow.xml b/doc/classes/PathFollow.xml
index 0b4a781a7e..5cbbf5c957 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.2">
+<class name="PathFollow" inherits="Spatial" version="3.2">
<brief_description>
Point sampler for a [Path].
</brief_description>
diff --git a/doc/classes/PathFollow2D.xml b/doc/classes/PathFollow2D.xml
index 9c4624dfee..2611086cc1 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.2">
+<class name="PathFollow2D" inherits="Node2D" version="3.2">
<brief_description>
Point sampler for a [Path2D].
</brief_description>
diff --git a/doc/classes/Performance.xml b/doc/classes/Performance.xml
index a2b5856624..fbbbb5a99b 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.2">
+<class name="Performance" inherits="Object" version="3.2">
<brief_description>
Exposes performance-related data.
</brief_description>
diff --git a/doc/classes/PhysicalBone.xml b/doc/classes/PhysicalBone.xml
index 81446063f2..dcde355a2c 100644
--- a/doc/classes/PhysicalBone.xml
+++ b/doc/classes/PhysicalBone.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="PhysicalBone" inherits="PhysicsBody" category="Core" version="3.2">
+<class name="PhysicalBone" inherits="PhysicsBody" version="3.2">
<brief_description>
</brief_description>
<description>
diff --git a/doc/classes/Physics2DDirectBodyState.xml b/doc/classes/Physics2DDirectBodyState.xml
index af3bba9b86..be68990180 100644
--- a/doc/classes/Physics2DDirectBodyState.xml
+++ b/doc/classes/Physics2DDirectBodyState.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="Physics2DDirectBodyState" inherits="Object" category="Core" version="3.2">
+<class name="Physics2DDirectBodyState" inherits="Object" version="3.2">
<brief_description>
Direct access object to a physics body in the [Physics2DServer].
</brief_description>
diff --git a/doc/classes/Physics2DDirectBodyStateSW.xml b/doc/classes/Physics2DDirectBodyStateSW.xml
index 8aeea560c3..be79e38a62 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.2">
+<class name="Physics2DDirectBodyStateSW" inherits="Physics2DDirectBodyState" version="3.2">
<brief_description>
Software implementation of [Physics2DDirectBodyState].
</brief_description>
diff --git a/doc/classes/Physics2DDirectSpaceState.xml b/doc/classes/Physics2DDirectSpaceState.xml
index e11e8918cd..aada99cb4f 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.2">
+<class name="Physics2DDirectSpaceState" inherits="Object" version="3.2">
<brief_description>
Direct access object to a space in the [Physics2DServer].
</brief_description>
diff --git a/doc/classes/Physics2DServer.xml b/doc/classes/Physics2DServer.xml
index 02e3ef5efb..e72895c838 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.2">
+<class name="Physics2DServer" inherits="Object" version="3.2">
<brief_description>
Server interface for low-level 2D physics access.
</brief_description>
diff --git a/doc/classes/Physics2DServerSW.xml b/doc/classes/Physics2DServerSW.xml
index e478a33e2c..cc285a64d0 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.2">
+<class name="Physics2DServerSW" inherits="Physics2DServer" version="3.2">
<brief_description>
Software implementation of [Physics2DServer].
</brief_description>
diff --git a/doc/classes/Physics2DShapeQueryParameters.xml b/doc/classes/Physics2DShapeQueryParameters.xml
index 7ea00cbddc..20b931227a 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.2">
+<class name="Physics2DShapeQueryParameters" inherits="Reference" version="3.2">
<brief_description>
Parameters to be sent to a 2D shape physics query.
</brief_description>
diff --git a/doc/classes/Physics2DShapeQueryResult.xml b/doc/classes/Physics2DShapeQueryResult.xml
index 06f943cb6d..006014e5e8 100644
--- a/doc/classes/Physics2DShapeQueryResult.xml
+++ b/doc/classes/Physics2DShapeQueryResult.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="Physics2DShapeQueryResult" inherits="Reference" category="Core" version="3.2">
+<class name="Physics2DShapeQueryResult" inherits="Reference" version="3.2">
<brief_description>
Result of a 2D shape query in [Physics2DServer].
</brief_description>
diff --git a/doc/classes/Physics2DTestMotionResult.xml b/doc/classes/Physics2DTestMotionResult.xml
index 752b50922d..b5d80d6026 100644
--- a/doc/classes/Physics2DTestMotionResult.xml
+++ b/doc/classes/Physics2DTestMotionResult.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="Physics2DTestMotionResult" inherits="Reference" category="Core" version="3.2">
+<class name="Physics2DTestMotionResult" inherits="Reference" version="3.2">
<brief_description>
</brief_description>
<description>
diff --git a/doc/classes/PhysicsBody.xml b/doc/classes/PhysicsBody.xml
index ee50f5a6c3..8af69452e3 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.2">
+<class name="PhysicsBody" inherits="CollisionObject" version="3.2">
<brief_description>
Base class for all objects affected by physics in 3D space.
</brief_description>
diff --git a/doc/classes/PhysicsBody2D.xml b/doc/classes/PhysicsBody2D.xml
index 4fe7c329bd..dd9460e844 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.2">
+<class name="PhysicsBody2D" inherits="CollisionObject2D" version="3.2">
<brief_description>
Base class for all objects affected by physics in 2D space.
</brief_description>
diff --git a/doc/classes/PhysicsDirectBodyState.xml b/doc/classes/PhysicsDirectBodyState.xml
index e68d280cd1..0d0926f4f2 100644
--- a/doc/classes/PhysicsDirectBodyState.xml
+++ b/doc/classes/PhysicsDirectBodyState.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="PhysicsDirectBodyState" inherits="Object" category="Core" version="3.2">
+<class name="PhysicsDirectBodyState" inherits="Object" version="3.2">
<brief_description>
Direct access object to a physics body in the [PhysicsServer].
</brief_description>
diff --git a/doc/classes/PhysicsDirectSpaceState.xml b/doc/classes/PhysicsDirectSpaceState.xml
index 1a3324bf0e..29d710d712 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.2">
+<class name="PhysicsDirectSpaceState" inherits="Object" version="3.2">
<brief_description>
Direct access object to a space in the [PhysicsServer].
</brief_description>
diff --git a/doc/classes/PhysicsMaterial.xml b/doc/classes/PhysicsMaterial.xml
index 73f1416172..64b0b67a7d 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.2">
+<class name="PhysicsMaterial" inherits="Resource" version="3.2">
<brief_description>
A material for physics properties.
</brief_description>
diff --git a/doc/classes/PhysicsServer.xml b/doc/classes/PhysicsServer.xml
index d7eb4c8c4f..b640d21049 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.2">
+<class name="PhysicsServer" inherits="Object" version="3.2">
<brief_description>
Server interface for low-level physics access.
</brief_description>
@@ -1315,7 +1315,7 @@
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.
diff --git a/doc/classes/PhysicsShapeQueryParameters.xml b/doc/classes/PhysicsShapeQueryParameters.xml
index d56247fcaf..b3ba195212 100644
--- a/doc/classes/PhysicsShapeQueryParameters.xml
+++ b/doc/classes/PhysicsShapeQueryParameters.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="PhysicsShapeQueryParameters" inherits="Reference" category="Core" version="3.2">
+<class name="PhysicsShapeQueryParameters" inherits="Reference" version="3.2">
<brief_description>
Parameters to be sent to a 3D shape physics query.
</brief_description>
diff --git a/doc/classes/PhysicsShapeQueryResult.xml b/doc/classes/PhysicsShapeQueryResult.xml
index 1f151ebb1a..67a83cfa31 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.2">
+<class name="PhysicsShapeQueryResult" inherits="Reference" version="3.2">
<brief_description>
Result of a 3D shape query in [PhysicsServer].
</brief_description>
diff --git a/doc/classes/PinJoint.xml b/doc/classes/PinJoint.xml
index 647a59feef..e77f5a4818 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.2">
+<class name="PinJoint" inherits="Joint" version="3.2">
<brief_description>
Pin joint for 3D shapes.
</brief_description>
diff --git a/doc/classes/PinJoint2D.xml b/doc/classes/PinJoint2D.xml
index f65cb86b1c..e2531f8b8a 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.2">
+<class name="PinJoint2D" inherits="Joint2D" version="3.2">
<brief_description>
Pin Joint for 2D shapes.
</brief_description>
diff --git a/doc/classes/Plane.xml b/doc/classes/Plane.xml
index 0164943ccc..908d2960a3 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.2">
+<class name="Plane" version="3.2">
<brief_description>
Plane in hessian form.
</brief_description>
@@ -170,10 +170,13 @@
</members>
<constants>
<constant name="PLANE_YZ" value="Plane( 1, 0, 0, 0 )">
+ A plane that extends in the Y and Z axes.
</constant>
<constant name="PLANE_XZ" value="Plane( 0, 1, 0, 0 )">
+ A plane that extends in the X and Z axes.
</constant>
<constant name="PLANE_XY" value="Plane( 0, 0, 1, 0 )">
+ A plane that extends in the X and Y axes.
</constant>
</constants>
</class>
diff --git a/doc/classes/PlaneMesh.xml b/doc/classes/PlaneMesh.xml
index 01aee93dad..05c5382e9d 100644
--- a/doc/classes/PlaneMesh.xml
+++ b/doc/classes/PlaneMesh.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="PlaneMesh" inherits="PrimitiveMesh" category="Core" version="3.2">
+<class name="PlaneMesh" inherits="PrimitiveMesh" version="3.2">
<brief_description>
Class representing a planar [PrimitiveMesh].
</brief_description>
diff --git a/doc/classes/PlaneShape.xml b/doc/classes/PlaneShape.xml
index ee841a3cff..dcc7105091 100644
--- a/doc/classes/PlaneShape.xml
+++ b/doc/classes/PlaneShape.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="PlaneShape" inherits="Shape" category="Core" version="3.2">
+<class name="PlaneShape" inherits="Shape" version="3.2">
<brief_description>
Infinite plane shape for 3D collisions.
</brief_description>
diff --git a/doc/classes/PointMesh.xml b/doc/classes/PointMesh.xml
index dc7dd065cf..6a10bc24f1 100644
--- a/doc/classes/PointMesh.xml
+++ b/doc/classes/PointMesh.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="PointMesh" inherits="PrimitiveMesh" category="Core" version="3.2">
+<class name="PointMesh" inherits="PrimitiveMesh" version="3.2">
<brief_description>
Mesh with a single Point primitive.
</brief_description>
diff --git a/doc/classes/Polygon2D.xml b/doc/classes/Polygon2D.xml
index 7c2aa468ab..889c55780a 100644
--- a/doc/classes/Polygon2D.xml
+++ b/doc/classes/Polygon2D.xml
@@ -1,10 +1,11 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="Polygon2D" inherits="Node2D" category="Core" version="3.2">
+<class name="Polygon2D" inherits="Node2D" version="3.2">
<brief_description>
A 2D polygon.
</brief_description>
<description>
A Polygon2D is defined by a set of points. Each point is connected to the next, with the final point being connected to the first, resulting in a closed polygon. Polygon2Ds can be filled with color (solid or gradient) or filled with a given texture.
+ [b]Note:[/b] By default, Godot can only draw up to 4,096 polygon points at a time. To increase this limit, open the Project Settings and increase [member ProjectSettings.rendering/limits/buffers/canvas_polygon_buffer_size_kb] and [member ProjectSettings.rendering/limits/buffers/canvas_polygon_index_buffer_size_kb].
</description>
<tutorials>
</tutorials>
diff --git a/doc/classes/PolygonPathFinder.xml b/doc/classes/PolygonPathFinder.xml
index 7286857b51..4ea3c25b22 100644
--- a/doc/classes/PolygonPathFinder.xml
+++ b/doc/classes/PolygonPathFinder.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="PolygonPathFinder" inherits="Resource" category="Core" version="3.2">
+<class name="PolygonPathFinder" inherits="Resource" version="3.2">
<brief_description>
</brief_description>
<description>
diff --git a/doc/classes/PoolByteArray.xml b/doc/classes/PoolByteArray.xml
index 83c348f6be..b45538ac30 100644
--- a/doc/classes/PoolByteArray.xml
+++ b/doc/classes/PoolByteArray.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="PoolByteArray" category="Built-In Types" version="3.2">
+<class name="PoolByteArray" version="3.2">
<brief_description>
A pooled [Array] of bytes.
</brief_description>
diff --git a/doc/classes/PoolColorArray.xml b/doc/classes/PoolColorArray.xml
index 34cfa0ab53..2d188c16c8 100644
--- a/doc/classes/PoolColorArray.xml
+++ b/doc/classes/PoolColorArray.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="PoolColorArray" category="Built-In Types" version="3.2">
+<class name="PoolColorArray" version="3.2">
<brief_description>
A pooled [Array] of [Color].
</brief_description>
diff --git a/doc/classes/PoolIntArray.xml b/doc/classes/PoolIntArray.xml
index 25e1e718f7..8fe849737b 100644
--- a/doc/classes/PoolIntArray.xml
+++ b/doc/classes/PoolIntArray.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="PoolIntArray" category="Built-In Types" version="3.2">
+<class name="PoolIntArray" version="3.2">
<brief_description>
A pooled [Array] of integers ([int]).
</brief_description>
diff --git a/doc/classes/PoolRealArray.xml b/doc/classes/PoolRealArray.xml
index e8afe46640..b70ddc05e6 100644
--- a/doc/classes/PoolRealArray.xml
+++ b/doc/classes/PoolRealArray.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="PoolRealArray" category="Built-In Types" version="3.2">
+<class name="PoolRealArray" version="3.2">
<brief_description>
A pooled [Array] of reals ([float]).
</brief_description>
diff --git a/doc/classes/PoolStringArray.xml b/doc/classes/PoolStringArray.xml
index f41a3c7a68..f6f7ddfbb9 100644
--- a/doc/classes/PoolStringArray.xml
+++ b/doc/classes/PoolStringArray.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="PoolStringArray" category="Built-In Types" version="3.2">
+<class name="PoolStringArray" version="3.2">
<brief_description>
A pooled [Array] of [String].
</brief_description>
diff --git a/doc/classes/PoolVector2Array.xml b/doc/classes/PoolVector2Array.xml
index 321846d08b..5797788b49 100644
--- a/doc/classes/PoolVector2Array.xml
+++ b/doc/classes/PoolVector2Array.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="PoolVector2Array" category="Built-In Types" version="3.2">
+<class name="PoolVector2Array" version="3.2">
<brief_description>
A pooled [Array] of [Vector2].
</brief_description>
diff --git a/doc/classes/PoolVector3Array.xml b/doc/classes/PoolVector3Array.xml
index c82bd62a11..291ee892b3 100644
--- a/doc/classes/PoolVector3Array.xml
+++ b/doc/classes/PoolVector3Array.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="PoolVector3Array" category="Built-In Types" version="3.2">
+<class name="PoolVector3Array" version="3.2">
<brief_description>
A pooled [Array] of [Vector3].
</brief_description>
diff --git a/doc/classes/Popup.xml b/doc/classes/Popup.xml
index 6b15b5a1ea..6681bbf566 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.2">
+<class name="Popup" inherits="Control" version="3.2">
<brief_description>
Base container control for popups and dialogs.
</brief_description>
diff --git a/doc/classes/PopupDialog.xml b/doc/classes/PopupDialog.xml
index 939453b977..12898e150e 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.2">
+<class name="PopupDialog" inherits="Popup" version="3.2">
<brief_description>
Base class for popup dialogs.
</brief_description>
diff --git a/doc/classes/PopupMenu.xml b/doc/classes/PopupMenu.xml
index 89039eebda..25b38d07ed 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.2">
+<class name="PopupMenu" inherits="Popup" version="3.2">
<brief_description>
PopupMenu displays a list of options.
</brief_description>
@@ -645,55 +645,58 @@
</constants>
<theme_items>
<theme_item name="checked" type="Texture">
- Sets a custom [Texture] icon for [code]checked[/code] state of checkbox items.
+ [Texture] icon for the checked checkbox items.
</theme_item>
<theme_item name="font" type="Font">
- Sets a custom [Font].
+ [Font] used for the menu items.
</theme_item>
<theme_item name="font_color" type="Color" default="Color( 0.88, 0.88, 0.88, 1 )">
- Sets a custom [Color] for the [Font].
+ The default text [Color] for menu items' names.
</theme_item>
<theme_item name="font_color_accel" type="Color" default="Color( 0.7, 0.7, 0.7, 0.8 )">
+ The text [Color] used for shortcuts and accelerators that show next to the menu item name when defined. See [method get_item_accelerator] for more info on accelerators.
</theme_item>
<theme_item name="font_color_disabled" type="Color" default="Color( 0.4, 0.4, 0.4, 0.8 )">
- Sets a custom [Color] for disabled text.
+ [Color] used for disabled menu items' text.
</theme_item>
<theme_item name="font_color_hover" type="Color" default="Color( 0.88, 0.88, 0.88, 1 )">
- Sets a custom [Color] for the hovered text.
+ [Color] used for the hovered text.
</theme_item>
<theme_item name="hover" type="StyleBox">
- Sets a custom [StyleBox] when the [PopupMenu] is hovered.
+ [StyleBox] displayed when the [PopupMenu] item is hovered.
</theme_item>
<theme_item name="hseparation" type="int" default="4">
- Sets the horizontal space separation between each item.
+ The horizontal space between the item's name and the shortcut text/submenu arrow.
</theme_item>
<theme_item name="labeled_separator_left" type="StyleBox">
+ [StyleBox] for the left side of labeled separator. See [method add_separator].
</theme_item>
<theme_item name="labeled_separator_right" type="StyleBox">
+ [StyleBox] for the right side of labeled separator. See [method add_separator].
</theme_item>
<theme_item name="panel" type="StyleBox">
- Sets a custom [StyleBox] for the panel of the [PopupMenu].
+ Default [StyleBox] of the [PopupMenu] items.
</theme_item>
<theme_item name="panel_disabled" type="StyleBox">
- Sets a custom [StyleBox] for the panel of the [PopupMenu], when the panel is disabled.
+ [StyleBox] used when the [PopupMenu] item is disabled.
</theme_item>
<theme_item name="radio_checked" type="Texture">
- Sets a custom [Texture] icon for [code]checked[/code] of radio button items.
+ [Texture] icon for the checked radio button items.
</theme_item>
<theme_item name="radio_unchecked" type="Texture">
- Sets a custom [Texture] icon for [code]unchecked[/code] of radio button items.
+ [Texture] icon for the unchecked radio button items.
</theme_item>
<theme_item name="separator" type="StyleBox">
- Sets a custom [StyleBox] for separator's.
+ [StyleBox] used for the separators. See [method add_separator].
</theme_item>
<theme_item name="submenu" type="Texture">
- Sets a custom [Texture] for submenu's.
+ [Texture] icon for the submenu arrow.
</theme_item>
<theme_item name="unchecked" type="Texture">
- Sets a custom [Texture] icon for [code]unchecked[/code] of checkbox items.
+ [Texture] icon for the unchecked checkbox items.
</theme_item>
<theme_item name="vseparation" type="int" default="4">
- Sets the vertical space separation between each item.
+ The vertical space between each menu item.
</theme_item>
</theme_items>
</class>
diff --git a/doc/classes/PopupPanel.xml b/doc/classes/PopupPanel.xml
index bed4d97112..082aa1975e 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.2">
+<class name="PopupPanel" inherits="Popup" version="3.2">
<brief_description>
Class for displaying popups with a panel background.
</brief_description>
diff --git a/doc/classes/Position2D.xml b/doc/classes/Position2D.xml
index ccadee6018..c646b508b9 100644
--- a/doc/classes/Position2D.xml
+++ b/doc/classes/Position2D.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="Position2D" inherits="Node2D" category="Core" version="3.2">
+<class name="Position2D" inherits="Node2D" version="3.2">
<brief_description>
Generic 2D position hint for editing.
</brief_description>
diff --git a/doc/classes/Position3D.xml b/doc/classes/Position3D.xml
index 4d43a6729d..e90133201b 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.2">
+<class name="Position3D" inherits="Spatial" version="3.2">
<brief_description>
Generic 3D position hint for editing.
</brief_description>
diff --git a/doc/classes/PrimitiveMesh.xml b/doc/classes/PrimitiveMesh.xml
index 3f07affdfd..e2c6b921e6 100644
--- a/doc/classes/PrimitiveMesh.xml
+++ b/doc/classes/PrimitiveMesh.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="PrimitiveMesh" inherits="Mesh" category="Core" version="3.2">
+<class name="PrimitiveMesh" inherits="Mesh" version="3.2">
<brief_description>
Base class for all primitive meshes. Handles applying a [Material] to a primitive mesh.
</brief_description>
diff --git a/doc/classes/PrismMesh.xml b/doc/classes/PrismMesh.xml
index 1d4e5ddab7..340acff7a6 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.2">
+<class name="PrismMesh" inherits="PrimitiveMesh" version="3.2">
<brief_description>
Class representing a prism-shaped [PrimitiveMesh].
</brief_description>
diff --git a/doc/classes/ProceduralSky.xml b/doc/classes/ProceduralSky.xml
index 9ffca20081..b5b547d503 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.2">
+<class name="ProceduralSky" inherits="Sky" version="3.2">
<brief_description>
Type of [Sky] that is generated procedurally based on user input parameters.
</brief_description>
@@ -63,14 +63,19 @@
</members>
<constants>
<constant name="TEXTURE_SIZE_256" value="0" enum="TextureSize">
+ Sky texture will be 256x128.
</constant>
<constant name="TEXTURE_SIZE_512" value="1" enum="TextureSize">
+ Sky texture will be 512x256.
</constant>
<constant name="TEXTURE_SIZE_1024" value="2" enum="TextureSize">
+ Sky texture will be 1024x512. This is the default size.
</constant>
<constant name="TEXTURE_SIZE_2048" value="3" enum="TextureSize">
+ Sky texture will be 2048x1024.
</constant>
<constant name="TEXTURE_SIZE_4096" value="4" enum="TextureSize">
+ Sky texture will be 4096x2048.
</constant>
<constant name="TEXTURE_SIZE_MAX" value="5" enum="TextureSize">
Represents the size of the [enum TextureSize] enum.
diff --git a/doc/classes/ProgressBar.xml b/doc/classes/ProgressBar.xml
index d489fd8bca..83d581075e 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.2">
+<class name="ProgressBar" inherits="Range" version="3.2">
<brief_description>
General-purpose progress bar.
</brief_description>
diff --git a/doc/classes/ProjectSettings.xml b/doc/classes/ProjectSettings.xml
index c5a67d5d95..9d5de1bb10 100644
--- a/doc/classes/ProjectSettings.xml
+++ b/doc/classes/ProjectSettings.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="ProjectSettings" inherits="Object" category="Core" version="3.2">
+<class name="ProjectSettings" inherits="Object" version="3.2">
<brief_description>
Contains global variables accessible from everywhere.
</brief_description>
@@ -205,6 +205,7 @@
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="" default="&quot;&quot;">
+ Icon set in [code].icns[/code] format used on macOS to set the game's icon. This is done automatically on start by calling [method OS.set_native_icon].
</member>
<member name="application/config/name" type="String" setter="" getter="" default="&quot;&quot;">
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.
@@ -217,6 +218,7 @@
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="" default="&quot;&quot;">
+ Icon set in [code].ico[/code] format used on Windows to set the game's icon. This is done automatically on start by calling [method OS.set_native_icon].
</member>
<member name="application/run/disable_stderr" type="bool" setter="" getter="" default="false">
If [code]true[/code], disables printing to standard error in an exported build.
@@ -243,6 +245,7 @@
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="" default="&quot;res://default_bus_layout.tres&quot;">
+ Default [AudioBusLayout] resource file to use in the project, unless overridden by the scene.
</member>
<member name="audio/driver" type="String" setter="" getter="" default="&quot;PulseAudio&quot;">
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.
@@ -272,6 +275,7 @@
Enables long-distance matching in Zstandard.
</member>
<member name="compression/formats/zstd/window_log_size" type="int" setter="" getter="" default="27">
+ Largest size limit (in power of 2) allowed when compressing using long-distance matching with Zstandard.
</member>
<member name="debug/gdscript/completion/autocomplete_setters_and_getters" type="bool" setter="" getter="" default="false">
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.
@@ -370,6 +374,9 @@
Message to be displayed before the backtrace when the engine crashes.
</member>
<member name="debug/settings/fps/force_fps" type="int" setter="" getter="" default="0">
+ Maximum number of frames per second allowed. The actual number of frames per second may still be below this value if the game is lagging.
+ If [member display/window/vsync/use_vsync] is enabled, it takes precedence and the forced FPS number cannot exceed the monitor's refresh rate.
+ This setting is therefore mostly relevant for lowering the maximum FPS below VSync, e.g. to perform non real-time rendering of static frames, or test the project under lag conditions.
</member>
<member name="debug/settings/gdscript/max_call_stack" type="int" setter="" getter="" default="1024">
Maximum call stack allowed for debugging GDScript.
@@ -386,6 +393,21 @@
<member name="debug/settings/visual_script/max_call_stack" type="int" setter="" getter="" default="1024">
Maximum call stack in visual scripting, to avoid infinite recursion.
</member>
+ <member name="debug/shapes/collision/contact_color" type="Color" setter="" getter="" default="Color( 1, 0.2, 0.1, 0.8 )">
+ Color of the contact points between collision shapes, visible when "Visible Collision Shapes" is enabled in the Debug menu.
+ </member>
+ <member name="debug/shapes/collision/max_contacts_displayed" type="int" setter="" getter="" default="10000">
+ Maximum number of contact points between collision shapes to display when "Visible Collision Shapes" is enabled in the Debug menu.
+ </member>
+ <member name="debug/shapes/collision/shape_color" type="Color" setter="" getter="" default="Color( 0, 0.6, 0.7, 0.5 )">
+ Color of the collision shapes, visible when "Visible Collision Shapes" is enabled in the Debug menu.
+ </member>
+ <member name="debug/shapes/navigation/disabled_geometry_color" type="Color" setter="" getter="" default="Color( 1, 0.7, 0.1, 0.4 )">
+ Color of the disabled navigation geometry, visible when "Visible Navigation" is enabled in the Debug menu.
+ </member>
+ <member name="debug/shapes/navigation/geometry_color" type="Color" setter="" getter="" default="Color( 0.1, 1, 0.7, 0.4 )">
+ Color of the navigation geometry, visible when "Visible Navigation" is enabled in the Debug menu.
+ </member>
<member name="display/mouse_cursor/custom_image" type="String" setter="" getter="" default="&quot;&quot;">
Custom image for the mouse cursor (limited to 256×256).
</member>
@@ -445,54 +467,86 @@
[b]Note:[/b] This option is experimental and meant to alleviate stutter experienced by some users. However, some users have experienced a Vsync framerate halving (e.g. from 60 FPS to 30 FPS) when using it.
</member>
<member name="editor/script_templates_search_path" type="String" setter="" getter="" default="&quot;res://script_templates&quot;">
+ Search path for project-specific script templates. Script templates will be search both in the editor-specific path and in this project-specific path.
</member>
<member name="editor/search_in_file_extensions" type="PoolStringArray" setter="" getter="" default="PoolStringArray( &quot;gd&quot;, &quot;shader&quot; )">
+ Text-based file extensions to include in the script editor's "Find in Files" feature. You can add e.g. [code]tscn[/code] if you wish to also parse your scene files, especially if you use built-in scripts which are serialized in the scene files.
</member>
<member name="gui/common/default_scroll_deadzone" type="int" setter="" getter="" default="0">
+ Default value for [member ScrollContainer.scroll_deadzone], which will be used for all [ScrollContainer]s unless overridden.
</member>
<member name="gui/common/swap_ok_cancel" type="bool" setter="" getter="" default="false">
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="" default="&quot;&quot;">
- Use a custom theme resource, set a path to it here.
+ Path to a custom [Theme] resource file to use for the project ([code]theme[/code] or generic [code]tres[/code]/[code]res[/code] extension).
</member>
<member name="gui/theme/custom_font" type="String" setter="" getter="" default="&quot;&quot;">
- Use a custom default font resource, set a path to it here.
+ Path to a custom [Font] resource to use as default for all GUI elements of the project.
</member>
<member name="gui/theme/use_hidpi" type="bool" setter="" getter="" default="false">
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="" default="2000">
- Timer setting for incremental search in Tree, IntemList, etc. controls (in milliseconds).
+ Timer setting for incremental search in [Tree], [ItemList], etc. controls (in milliseconds).
</member>
<member name="gui/timers/text_edit_idle_detect_sec" type="float" setter="" getter="" default="3">
- Timer for detecting idle in the editor (in seconds).
+ Timer for detecting idle in [TextEdit] (in seconds).
+ </member>
+ <member name="gui/timers/tooltip_delay_sec" type="float" setter="" getter="" default="0.5">
+ Default delay for tooltips (in seconds).
</member>
<member name="input/ui_accept" type="Dictionary" setter="" getter="">
+ Default [InputEventAction] to confirm a focused button, menu or list item, or validate input.
+ [b]Note:[/b] Default [code]ui_*[/code] actions cannot be removed as they are necessary for the internal logic of several [Control]s. The events assigned to the action can however be modified.
</member>
<member name="input/ui_cancel" type="Dictionary" setter="" getter="">
+ Default [InputEventAction] to discard a modal or pending input.
+ [b]Note:[/b] Default [code]ui_*[/code] actions cannot be removed as they are necessary for the internal logic of several [Control]s. The events assigned to the action can however be modified.
</member>
<member name="input/ui_down" type="Dictionary" setter="" getter="">
+ Default [InputEventAction] to move down in the UI.
+ [b]Note:[/b] Default [code]ui_*[/code] actions cannot be removed as they are necessary for the internal logic of several [Control]s. The events assigned to the action can however be modified.
</member>
<member name="input/ui_end" type="Dictionary" setter="" getter="">
+ Default [InputEventAction] to go to the end position of a [Control] (e.g. last item in an [ItemList] or a [Tree]), matching the behavior of [constant KEY_END] on typical desktop UI systems.
+ [b]Note:[/b] Default [code]ui_*[/code] actions cannot be removed as they are necessary for the internal logic of several [Control]s. The events assigned to the action can however be modified.
</member>
<member name="input/ui_focus_next" type="Dictionary" setter="" getter="">
+ Default [InputEventAction] to focus the next [Control] in the scene. The focus behavior can be configured via [member Control.focus_next].
+ [b]Note:[/b] Default [code]ui_*[/code] actions cannot be removed as they are necessary for the internal logic of several [Control]s. The events assigned to the action can however be modified.
</member>
<member name="input/ui_focus_prev" type="Dictionary" setter="" getter="">
+ Default [InputEventAction] to focus the previous [Control] in the scene. The focus behavior can be configured via [member Control.focus_previous].
+ [b]Note:[/b] Default [code]ui_*[/code] actions cannot be removed as they are necessary for the internal logic of several [Control]s. The events assigned to the action can however be modified.
</member>
<member name="input/ui_home" type="Dictionary" setter="" getter="">
+ Default [InputEventAction] to go to the start position of a [Control] (e.g. first item in an [ItemList] or a [Tree]), matching the behavior of [constant KEY_HOME] on typical desktop UI systems.
+ [b]Note:[/b] Default [code]ui_*[/code] actions cannot be removed as they are necessary for the internal logic of several [Control]s. The events assigned to the action can however be modified.
</member>
<member name="input/ui_left" type="Dictionary" setter="" getter="">
+ Default [InputEventAction] to move left in the UI.
+ [b]Note:[/b] Default [code]ui_*[/code] actions cannot be removed as they are necessary for the internal logic of several [Control]s. The events assigned to the action can however be modified.
</member>
<member name="input/ui_page_down" type="Dictionary" setter="" getter="">
+ Default [InputEventAction] to go down a page in a [Control] (e.g. in an [ItemList] or a [Tree]), matching the behavior of [constant KEY_PAGEDOWN] on typical desktop UI systems.
+ [b]Note:[/b] Default [code]ui_*[/code] actions cannot be removed as they are necessary for the internal logic of several [Control]s. The events assigned to the action can however be modified.
</member>
<member name="input/ui_page_up" type="Dictionary" setter="" getter="">
+ Default [InputEventAction] to go up a page in a [Control] (e.g. in an [ItemList] or a [Tree]), matching the behavior of [constant KEY_PAGEUP] on typical desktop UI systems.
+ [b]Note:[/b] Default [code]ui_*[/code] actions cannot be removed as they are necessary for the internal logic of several [Control]s. The events assigned to the action can however be modified.
</member>
<member name="input/ui_right" type="Dictionary" setter="" getter="">
+ Default [InputEventAction] to move right in the UI.
+ [b]Note:[/b] Default [code]ui_*[/code] actions cannot be removed as they are necessary for the internal logic of several [Control]s. The events assigned to the action can however be modified.
</member>
<member name="input/ui_select" type="Dictionary" setter="" getter="">
+ Default [InputEventAction] to select an item in a [Control] (e.g. in an [ItemList] or a [Tree]).
+ [b]Note:[/b] Default [code]ui_*[/code] actions cannot be removed as they are necessary for the internal logic of several [Control]s. The events assigned to the action can however be modified.
</member>
<member name="input/ui_up" type="Dictionary" setter="" getter="">
+ Default [InputEventAction] to move up in the UI.
+ [b]Note:[/b] Default [code]ui_*[/code] actions cannot be removed as they are necessary for the internal logic of several [Control]s. The events assigned to the action can however be modified.
</member>
<member name="input_devices/pointing/emulate_mouse_from_touch" type="bool" setter="" getter="" default="true">
If [code]true[/code], sends mouse input events when tapping or swiping on the touchscreen.
@@ -501,164 +555,244 @@
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="" default="&quot;&quot;">
+ Optional name for the 2D physics layer 1.
</member>
<member name="layer_names/2d_physics/layer_10" type="String" setter="" getter="" default="&quot;&quot;">
+ Optional name for the 2D physics layer 10.
</member>
<member name="layer_names/2d_physics/layer_11" type="String" setter="" getter="" default="&quot;&quot;">
+ Optional name for the 2D physics layer 11.
</member>
<member name="layer_names/2d_physics/layer_12" type="String" setter="" getter="" default="&quot;&quot;">
+ Optional name for the 2D physics layer 12.
</member>
<member name="layer_names/2d_physics/layer_13" type="String" setter="" getter="" default="&quot;&quot;">
+ Optional name for the 2D physics layer 13.
</member>
<member name="layer_names/2d_physics/layer_14" type="String" setter="" getter="" default="&quot;&quot;">
+ Optional name for the 2D physics layer 14.
</member>
<member name="layer_names/2d_physics/layer_15" type="String" setter="" getter="" default="&quot;&quot;">
+ Optional name for the 2D physics layer 15.
</member>
<member name="layer_names/2d_physics/layer_16" type="String" setter="" getter="" default="&quot;&quot;">
+ Optional name for the 2D physics layer 16.
</member>
<member name="layer_names/2d_physics/layer_17" type="String" setter="" getter="" default="&quot;&quot;">
+ Optional name for the 2D physics layer 17.
</member>
<member name="layer_names/2d_physics/layer_18" type="String" setter="" getter="" default="&quot;&quot;">
+ Optional name for the 2D physics layer 18.
</member>
<member name="layer_names/2d_physics/layer_19" type="String" setter="" getter="" default="&quot;&quot;">
+ Optional name for the 2D physics layer 19.
</member>
<member name="layer_names/2d_physics/layer_2" type="String" setter="" getter="" default="&quot;&quot;">
+ Optional name for the 2D physics layer 2.
</member>
<member name="layer_names/2d_physics/layer_20" type="String" setter="" getter="" default="&quot;&quot;">
+ Optional name for the 2D physics layer 20.
</member>
<member name="layer_names/2d_physics/layer_3" type="String" setter="" getter="" default="&quot;&quot;">
+ Optional name for the 2D physics layer 3.
</member>
<member name="layer_names/2d_physics/layer_4" type="String" setter="" getter="" default="&quot;&quot;">
+ Optional name for the 2D physics layer 4.
</member>
<member name="layer_names/2d_physics/layer_5" type="String" setter="" getter="" default="&quot;&quot;">
+ Optional name for the 2D physics layer 5.
</member>
<member name="layer_names/2d_physics/layer_6" type="String" setter="" getter="" default="&quot;&quot;">
+ Optional name for the 2D physics layer 6.
</member>
<member name="layer_names/2d_physics/layer_7" type="String" setter="" getter="" default="&quot;&quot;">
+ Optional name for the 2D physics layer 7.
</member>
<member name="layer_names/2d_physics/layer_8" type="String" setter="" getter="" default="&quot;&quot;">
+ Optional name for the 2D physics layer 8.
</member>
<member name="layer_names/2d_physics/layer_9" type="String" setter="" getter="" default="&quot;&quot;">
+ Optional name for the 2D physics layer 9.
</member>
<member name="layer_names/2d_render/layer_1" type="String" setter="" getter="" default="&quot;&quot;">
+ Optional name for the 2D render layer 1.
</member>
<member name="layer_names/2d_render/layer_10" type="String" setter="" getter="" default="&quot;&quot;">
+ Optional name for the 2D render layer 10.
</member>
<member name="layer_names/2d_render/layer_11" type="String" setter="" getter="" default="&quot;&quot;">
+ Optional name for the 2D render layer 11.
</member>
<member name="layer_names/2d_render/layer_12" type="String" setter="" getter="" default="&quot;&quot;">
+ Optional name for the 2D render layer 12.
</member>
<member name="layer_names/2d_render/layer_13" type="String" setter="" getter="" default="&quot;&quot;">
+ Optional name for the 2D render layer 13.
</member>
<member name="layer_names/2d_render/layer_14" type="String" setter="" getter="" default="&quot;&quot;">
+ Optional name for the 2D render layer 14.
</member>
<member name="layer_names/2d_render/layer_15" type="String" setter="" getter="" default="&quot;&quot;">
+ Optional name for the 2D render layer 15.
</member>
<member name="layer_names/2d_render/layer_16" type="String" setter="" getter="" default="&quot;&quot;">
+ Optional name for the 2D render layer 16.
</member>
<member name="layer_names/2d_render/layer_17" type="String" setter="" getter="" default="&quot;&quot;">
+ Optional name for the 2D render layer 17.
</member>
<member name="layer_names/2d_render/layer_18" type="String" setter="" getter="" default="&quot;&quot;">
+ Optional name for the 2D render layer 18.
</member>
<member name="layer_names/2d_render/layer_19" type="String" setter="" getter="" default="&quot;&quot;">
+ Optional name for the 2D render layer 19.
</member>
<member name="layer_names/2d_render/layer_2" type="String" setter="" getter="" default="&quot;&quot;">
+ Optional name for the 2D render layer 2.
</member>
<member name="layer_names/2d_render/layer_20" type="String" setter="" getter="" default="&quot;&quot;">
+ Optional name for the 2D render layer 20.
</member>
<member name="layer_names/2d_render/layer_3" type="String" setter="" getter="" default="&quot;&quot;">
+ Optional name for the 2D render layer 3.
</member>
<member name="layer_names/2d_render/layer_4" type="String" setter="" getter="" default="&quot;&quot;">
+ Optional name for the 2D render layer 4.
</member>
<member name="layer_names/2d_render/layer_5" type="String" setter="" getter="" default="&quot;&quot;">
+ Optional name for the 2D render layer 5.
</member>
<member name="layer_names/2d_render/layer_6" type="String" setter="" getter="" default="&quot;&quot;">
+ Optional name for the 2D render layer 6.
</member>
<member name="layer_names/2d_render/layer_7" type="String" setter="" getter="" default="&quot;&quot;">
+ Optional name for the 2D render layer 7.
</member>
<member name="layer_names/2d_render/layer_8" type="String" setter="" getter="" default="&quot;&quot;">
+ Optional name for the 2D render layer 8.
</member>
<member name="layer_names/2d_render/layer_9" type="String" setter="" getter="" default="&quot;&quot;">
+ Optional name for the 2D render layer 9.
</member>
<member name="layer_names/3d_physics/layer_1" type="String" setter="" getter="" default="&quot;&quot;">
+ Optional name for the 3D physics layer 1.
</member>
<member name="layer_names/3d_physics/layer_10" type="String" setter="" getter="" default="&quot;&quot;">
+ Optional name for the 3D physics layer 10.
</member>
<member name="layer_names/3d_physics/layer_11" type="String" setter="" getter="" default="&quot;&quot;">
+ Optional name for the 3D physics layer 11.
</member>
<member name="layer_names/3d_physics/layer_12" type="String" setter="" getter="" default="&quot;&quot;">
+ Optional name for the 3D physics layer 12.
</member>
<member name="layer_names/3d_physics/layer_13" type="String" setter="" getter="" default="&quot;&quot;">
+ Optional name for the 3D physics layer 13.
</member>
<member name="layer_names/3d_physics/layer_14" type="String" setter="" getter="" default="&quot;&quot;">
+ Optional name for the 3D physics layer 14.
</member>
<member name="layer_names/3d_physics/layer_15" type="String" setter="" getter="" default="&quot;&quot;">
+ Optional name for the 3D physics layer 15.
</member>
<member name="layer_names/3d_physics/layer_16" type="String" setter="" getter="" default="&quot;&quot;">
+ Optional name for the 3D physics layer 16.
</member>
<member name="layer_names/3d_physics/layer_17" type="String" setter="" getter="" default="&quot;&quot;">
+ Optional name for the 3D physics layer 17.
</member>
<member name="layer_names/3d_physics/layer_18" type="String" setter="" getter="" default="&quot;&quot;">
+ Optional name for the 3D physics layer 18.
</member>
<member name="layer_names/3d_physics/layer_19" type="String" setter="" getter="" default="&quot;&quot;">
+ Optional name for the 3D physics layer 19.
</member>
<member name="layer_names/3d_physics/layer_2" type="String" setter="" getter="" default="&quot;&quot;">
+ Optional name for the 3D physics layer 2.
</member>
<member name="layer_names/3d_physics/layer_20" type="String" setter="" getter="" default="&quot;&quot;">
+ Optional name for the 3D physics layer 20.
</member>
<member name="layer_names/3d_physics/layer_3" type="String" setter="" getter="" default="&quot;&quot;">
+ Optional name for the 3D physics layer 3.
</member>
<member name="layer_names/3d_physics/layer_4" type="String" setter="" getter="" default="&quot;&quot;">
+ Optional name for the 3D physics layer 4.
</member>
<member name="layer_names/3d_physics/layer_5" type="String" setter="" getter="" default="&quot;&quot;">
+ Optional name for the 3D physics layer 5.
</member>
<member name="layer_names/3d_physics/layer_6" type="String" setter="" getter="" default="&quot;&quot;">
+ Optional name for the 3D physics layer 6.
</member>
<member name="layer_names/3d_physics/layer_7" type="String" setter="" getter="" default="&quot;&quot;">
+ Optional name for the 3D physics layer 7.
</member>
<member name="layer_names/3d_physics/layer_8" type="String" setter="" getter="" default="&quot;&quot;">
+ Optional name for the 3D physics layer 8.
</member>
<member name="layer_names/3d_physics/layer_9" type="String" setter="" getter="" default="&quot;&quot;">
+ Optional name for the 3D physics layer 9.
</member>
<member name="layer_names/3d_render/layer_1" type="String" setter="" getter="" default="&quot;&quot;">
+ Optional name for the 3D render layer 1.
</member>
<member name="layer_names/3d_render/layer_10" type="String" setter="" getter="" default="&quot;&quot;">
+ Optional name for the 3D render layer 10.
</member>
<member name="layer_names/3d_render/layer_11" type="String" setter="" getter="" default="&quot;&quot;">
+ Optional name for the 3D render layer 11.
</member>
<member name="layer_names/3d_render/layer_12" type="String" setter="" getter="" default="&quot;&quot;">
+ Optional name for the 3D render layer 12.
</member>
<member name="layer_names/3d_render/layer_13" type="String" setter="" getter="" default="&quot;&quot;">
+ Optional name for the 3D render layer 13.
</member>
<member name="layer_names/3d_render/layer_14" type="String" setter="" getter="" default="&quot;&quot;">
+ Optional name for the 3D render layer 14
</member>
<member name="layer_names/3d_render/layer_15" type="String" setter="" getter="" default="&quot;&quot;">
+ Optional name for the 3D render layer 15.
</member>
<member name="layer_names/3d_render/layer_16" type="String" setter="" getter="" default="&quot;&quot;">
+ Optional name for the 3D render layer 16.
</member>
<member name="layer_names/3d_render/layer_17" type="String" setter="" getter="" default="&quot;&quot;">
+ Optional name for the 3D render layer 17.
</member>
<member name="layer_names/3d_render/layer_18" type="String" setter="" getter="" default="&quot;&quot;">
+ Optional name for the 3D render layer 18.
</member>
<member name="layer_names/3d_render/layer_19" type="String" setter="" getter="" default="&quot;&quot;">
+ Optional name for the 3D render layer 19.
</member>
<member name="layer_names/3d_render/layer_2" type="String" setter="" getter="" default="&quot;&quot;">
+ Optional name for the 3D render layer 2.
</member>
<member name="layer_names/3d_render/layer_20" type="String" setter="" getter="" default="&quot;&quot;">
+ Optional name for the 3D render layer 20.
</member>
<member name="layer_names/3d_render/layer_3" type="String" setter="" getter="" default="&quot;&quot;">
+ Optional name for the 3D render layer 3.
</member>
<member name="layer_names/3d_render/layer_4" type="String" setter="" getter="" default="&quot;&quot;">
+ Optional name for the 3D render layer 4.
</member>
<member name="layer_names/3d_render/layer_5" type="String" setter="" getter="" default="&quot;&quot;">
+ Optional name for the 3D render layer 5.
</member>
<member name="layer_names/3d_render/layer_6" type="String" setter="" getter="" default="&quot;&quot;">
+ Optional name for the 3D render layer 6.
</member>
<member name="layer_names/3d_render/layer_7" type="String" setter="" getter="" default="&quot;&quot;">
+ Optional name for the 3D render layer 7.
</member>
<member name="layer_names/3d_render/layer_8" type="String" setter="" getter="" default="&quot;&quot;">
+ Optional name for the 3D render layer 8.
</member>
<member name="layer_names/3d_render/layer_9" type="String" setter="" getter="" default="&quot;&quot;">
+ Optional name for the 3D render layer 9.
</member>
<member name="locale/fallback" type="String" setter="" getter="" default="&quot;en&quot;">
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.
@@ -697,24 +831,34 @@
Default size of packet peer stream for deserializing Godot data. Over this size, data is dropped.
</member>
<member name="network/limits/tcp/connect_timeout_seconds" type="int" setter="" getter="" default="30">
+ Timeout (in seconds) for connection attempts using TCP.
</member>
<member name="network/limits/webrtc/max_channel_in_buffer_kb" type="int" setter="" getter="" default="64">
+ Maximum size (in kiB) for the [WebRTCDataChannel] input buffer.
</member>
<member name="network/limits/websocket_client/max_in_buffer_kb" type="int" setter="" getter="" default="64">
+ Maximum size (in kiB) for the [WebSocketClient] input buffer.
</member>
<member name="network/limits/websocket_client/max_in_packets" type="int" setter="" getter="" default="1024">
+ Maximum number of concurrent input packets for [WebSocketClient].
</member>
<member name="network/limits/websocket_client/max_out_buffer_kb" type="int" setter="" getter="" default="64">
+ Maximum size (in kiB) for the [WebSocketClient] output buffer.
</member>
<member name="network/limits/websocket_client/max_out_packets" type="int" setter="" getter="" default="1024">
+ Maximum number of concurrent output packets for [WebSocketClient].
</member>
<member name="network/limits/websocket_server/max_in_buffer_kb" type="int" setter="" getter="" default="64">
+ Maximum size (in kiB) for the [WebSocketServer] input buffer.
</member>
<member name="network/limits/websocket_server/max_in_packets" type="int" setter="" getter="" default="1024">
+ Maximum number of concurrent input packets for [WebSocketServer].
</member>
<member name="network/limits/websocket_server/max_out_buffer_kb" type="int" setter="" getter="" default="64">
+ Maximum size (in kiB) for the [WebSocketServer] output buffer.
</member>
<member name="network/limits/websocket_server/max_out_packets" type="int" setter="" getter="" default="1024">
+ Maximum number of concurrent output packets for [WebSocketServer].
</member>
<member name="network/remote_fs/page_read_ahead" type="int" setter="" getter="" default="4">
Amount of read ahead used by remote filesystem. Higher values decrease the effects of latency at the cost of higher bandwidth usage.
@@ -723,6 +867,7 @@
Page size used by remote filesystem (in bytes).
</member>
<member name="network/ssl/certificates" type="String" setter="" getter="" default="&quot;&quot;">
+ CA certificates bundle to use for SSL connections. If not defined, Godot's internal CA certificates are used.
</member>
<member name="node/name_casing" type="int" setter="" getter="" default="0">
When creating node names automatically, set the type of casing in this project. This is mostly an editor setting.
@@ -730,19 +875,85 @@
<member name="node/name_num_separator" type="int" setter="" getter="" default="0">
What to use to separate node name from number. This is mostly an editor setting.
</member>
+ <member name="physics/2d/bp_hash_table_size" type="int" setter="" getter="" default="4096">
+ Size of the hash table used for the broad-phase 2D hash grid algorithm.
+ </member>
+ <member name="physics/2d/cell_size" type="int" setter="" getter="" default="128">
+ Cell size used for the broad-phase 2D hash grid algorithm.
+ </member>
+ <member name="physics/2d/default_angular_damp" type="float" setter="" getter="" default="1.0">
+ The default angular damp in 2D.
+ </member>
<member name="physics/2d/default_gravity" type="int" setter="" getter="" default="98">
+ The default gravity strength in 2D.
+ [b]Note:[/b] This property is only read when the project starts. To change the default gravity at runtime, use the following code sample:
+ [codeblock]
+ # Set the default gravity strength to 98.
+ Physics2DServer.area_set_param(get_viewport().find_world_2d().get_space(), Physics2DServer.AREA_PARAM_GRAVITY, 98)
+ [/codeblock]
+ </member>
+ <member name="physics/2d/default_gravity_vector" type="Vector2" setter="" getter="" default="Vector2( 0, 1 )">
+ The default gravity direction in 2D.
+ [b]Note:[/b] This property is only read when the project starts. To change the default gravity vector at runtime, use the following code sample:
+ [codeblock]
+ # Set the default gravity direction to `Vector2(0, 1)`.
+ Physics2DServer.area_set_param(get_viewport().find_world_2d().get_space(), Physics2DServer.AREA_PARAM_GRAVITY_VECTOR, Vector2(0, 1))
+ [/codeblock]
+ </member>
+ <member name="physics/2d/default_linear_damp" type="float" setter="" getter="" default="0.1">
+ The default linear damp in 2D.
+ </member>
+ <member name="physics/2d/large_object_surface_threshold_in_cells" type="int" setter="" getter="" default="512">
+ Threshold defining the surface size that constitutes a large object with regard to cells in the broad-phase 2D hash grid algorithm.
</member>
<member name="physics/2d/physics_engine" type="String" setter="" getter="" default="&quot;DEFAULT&quot;">
+ Sets which physics engine to use for 2D physics.
+ "DEFAULT" and "GodotPhysics" are the same, as there is currently no alternative 2D physics server implemented.
+ </member>
+ <member name="physics/2d/sleep_threshold_angular" type="float" setter="" getter="" default="0.139626">
+ Threshold angular velocity under which a 2D physics body will be considered inactive. See [constant Physics2DServer.SPACE_PARAM_BODY_ANGULAR_VELOCITY_SLEEP_THRESHOLD].
+ </member>
+ <member name="physics/2d/sleep_threshold_linear" type="float" setter="" getter="" default="2.0">
+ Threshold linear velocity under which a 2D physics body will be considered inactive. See [constant Physics2DServer.SPACE_PARAM_BODY_LINEAR_VELOCITY_SLEEP_THRESHOLD].
</member>
<member name="physics/2d/thread_model" type="int" setter="" getter="" default="1">
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.
+ [b]Warning:[/b] As of Godot 3.2, there are mixed reports about the use of a Multi-Threaded thread model for physics. Be sure to assess whether it does give you extra performance and no regressions when using it.
+ </member>
+ <member name="physics/2d/time_before_sleep" type="float" setter="" getter="" default="0.5">
+ Time (in seconds) of inactivity before which a 2D physics body will put to sleep. See [constant Physics2DServer.SPACE_PARAM_BODY_TIME_TO_SLEEP].
</member>
<member name="physics/3d/active_soft_world" type="bool" setter="" getter="" default="true">
+ Sets whether the 3D physics world will be created with support for [SoftBody] physics. Only applies to the Bullet physics engine.
+ </member>
+ <member name="physics/3d/default_angular_damp" type="float" setter="" getter="" default="0.1">
+ The default angular damp in 3D.
</member>
<member name="physics/3d/default_gravity" type="float" setter="" getter="" default="9.8">
+ The default gravity strength in 3D.
+ [b]Note:[/b] This property is only read when the project starts. To change the default gravity at runtime, use the following code sample:
+ [codeblock]
+ # Set the default gravity strength to 9.8.
+ PhysicsServer.area_set_param(get_viewport().find_world().get_space(), PhysicsServer.AREA_PARAM_GRAVITY, 9.8)
+ [/codeblock]
+ </member>
+ <member name="physics/3d/default_gravity_vector" type="Vector3" setter="" getter="" default="Vector3( 0, -1, 0 )">
+ The default gravity direction in 3D.
+ [b]Note:[/b] This property is only read when the project starts. To change the default gravity vector at runtime, use the following code sample:
+ [codeblock]
+ # Set the default gravity direction to `Vector3(0, -1, 0)`.
+ PhysicsServer.area_set_param(get_viewport().find_world().get_space(), PhysicsServer.AREA_PARAM_GRAVITY_VECTOR, Vector3(0, -1, 0))
+ [/codeblock]
+ </member>
+ <member name="physics/3d/default_linear_damp" type="float" setter="" getter="" default="0.1">
+ The default linear damp in 3D.
</member>
<member name="physics/3d/physics_engine" type="String" setter="" getter="" default="&quot;DEFAULT&quot;">
- Sets which physics engine to use.
+ Sets which physics engine to use for 3D physics.
+ "DEFAULT" is currently the [url=https://bulletphysics.org]Bullet[/url] physics engine. The "GodotPhysics" engine is still supported as an alternative.
+ </member>
+ <member name="physics/common/enable_object_picking" type="bool" setter="" getter="" default="true">
+ Enables [member Viewport.physics_object_picking] on the root viewport.
</member>
<member name="physics/common/physics_fps" type="int" setter="" getter="" default="60">
Frames per second used in the physics. Physics always needs a fixed amount of frames per second.
@@ -753,6 +964,9 @@
<member name="rendering/environment/default_clear_color" type="Color" setter="" getter="" default="Color( 0.3, 0.3, 0.3, 1 )">
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].
</member>
+ <member name="rendering/environment/default_environment" type="String" setter="" getter="" default="&quot;&quot;">
+ [Environment] that will be used as a fallback environment in case a scene does not specify its own environment. The default environment is loaded in at scene load time regardless of whether you have set an environment or not. If you do not rely on the fallback environment, it is best to delete [code]default_env.tres[/code], or to specify a different default environment here.
+ </member>
<member name="rendering/limits/buffers/blend_shape_max_buffer_size_kb" type="int" setter="" getter="" default="4096">
Max buffer size for blend shapes. Any blend shape bigger than this will not work.
</member>
@@ -784,6 +998,13 @@
<member name="rendering/quality/2d/use_pixel_snap" type="bool" setter="" getter="" default="false">
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/hdr" type="bool" setter="" getter="" default="true">
+ If [code]true[/code], allocates the main framebuffer with high dynamic range. High dynamic range allows the use of [Color] values greater than 1.
+ [b]Note:[/b] Only available on the GLES3 backend.
+ </member>
+ <member name="rendering/quality/depth/hdr.mobile" type="bool" setter="" getter="" default="false">
+ Lower-end override for [member rendering/quality/depth/hdr] on mobile devices, due to performance concerns or driver support.
+ </member>
<member name="rendering/quality/depth_prepass/disable_for_vendors" type="String" setter="" getter="" default="&quot;PowerVR,Mali,Adreno,Apple&quot;">
Disables depth pre-pass for some GPU vendors (usually mobile), as their architecture already does this.
</member>
@@ -794,6 +1015,7 @@
The directional shadow's size in pixels. Higher values will result in sharper shadows, at the cost of performance. The value will be rounded up to the nearest power of 2.
</member>
<member name="rendering/quality/directional_shadow/size.mobile" type="int" setter="" getter="" default="2048">
+ Lower-end override for [member rendering/quality/directional_shadow/size] on mobile devices, due to performance concerns or driver support.
</member>
<member name="rendering/quality/driver/driver_name" type="String" setter="" getter="" default="&quot;GLES3&quot;">
The video driver to use ("GLES2" or "GLES3").
@@ -806,38 +1028,58 @@
<member name="rendering/quality/filters/anisotropic_filter_level" type="int" setter="" getter="" default="4">
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/msaa" type="int" setter="" getter="" default="0">
+ Sets the number of MSAA samples to use. MSAA is used to reduce aliasing around the edges of polygons. A higher MSAA value results in smoother edges but can be significantly slower on some hardware.
+ [b]Note:[/b] MSAA is not available on HTML5 export using the GLES2 backend.
+ </member>
<member name="rendering/quality/filters/use_nearest_mipmap_filter" type="bool" setter="" getter="" default="false">
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="" default="2">
- Strategy used for framebuffer allocation. The simpler it is, the less resources it uses (but the less features it supports).
+ Strategy used for framebuffer allocation. The simpler it is, the less resources it uses (but the less features it supports). If set to "2D Without Sampling" or "3D Without Effects", sample buffers will not be allocated. This means [code]SCREEN_TEXTURE[/code] and [code]DEPTH_TEXTURE[/code] will not be available in shaders and post-processing effects will not be available in the [Environment].
</member>
<member name="rendering/quality/intended_usage/framebuffer_allocation.mobile" type="int" setter="" getter="" default="3">
+ Lower-end override for [member rendering/quality/intended_usage/framebuffer_allocation] on mobile devices, due to performance concerns or driver support.
+ </member>
+ <member name="rendering/quality/reflections/atlas_size" type="int" setter="" getter="" default="2048">
+ Size of the atlas used by reflection probes. A larger size can result in higher visual quality, while a smaller size will be faster and take up less memory.
+ </member>
+ <member name="rendering/quality/reflections/atlas_subdiv" type="int" setter="" getter="" default="8">
+ Number of subdivisions to use for the reflection atlas. A higher number lowers the quality of each atlas, but allows you to use more.
</member>
<member name="rendering/quality/reflections/high_quality_ggx" type="bool" setter="" getter="" default="true">
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="" default="false">
+ Lower-end override for [member rendering/quality/reflections/high_quality_ggx] on mobile devices, due to performance concerns or driver support.
+ </member>
+ <member name="rendering/quality/reflections/irradiance_max_size" type="int" setter="" getter="" default="128">
+ Limits the size of the irradiance map which is normally determined by [member Sky.radiance_size]. A higher size results in a higher quality irradiance map similarly to [member rendering/quality/reflections/high_quality_ggx]. Use a higher value when using high-frequency HDRI maps, otherwise keep this as low as possible.
+ [b]Note:[/b] Low and mid range hardware do not support complex irradiance maps well and may crash if this is set too high.
</member>
<member name="rendering/quality/reflections/texture_array_reflections" type="bool" setter="" getter="" default="true">
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="" default="false">
+ Lower-end override for [member rendering/quality/reflections/texture_array_reflections] on mobile devices, due to performance concerns or driver support.
</member>
<member name="rendering/quality/shading/force_blinn_over_ggx" type="bool" setter="" getter="" default="false">
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="" default="true">
+ Lower-end override for [member rendering/quality/shading/force_blinn_over_ggx] on mobile devices, due to performance concerns or driver support.
</member>
<member name="rendering/quality/shading/force_lambert_over_burley" type="bool" setter="" getter="" default="false">
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="" default="true">
+ Lower-end override for [member rendering/quality/shading/force_lambert_over_burley] on mobile devices, due to performance concerns or driver support.
</member>
<member name="rendering/quality/shading/force_vertex_shading" type="bool" setter="" getter="" default="false">
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="" default="true">
+ Lower-end override for [member rendering/quality/shading/force_vertex_shading] on mobile devices, due to performance concerns or driver support.
</member>
<member name="rendering/quality/shadow_atlas/quadrant_0_subdiv" type="int" setter="" getter="" default="1">
Subdivision quadrant size for shadow mapping. See shadow mapping documentation.
@@ -855,19 +1097,22 @@
Size for shadow atlas (used for OmniLights and SpotLights). See documentation.
</member>
<member name="rendering/quality/shadow_atlas/size.mobile" type="int" setter="" getter="" default="2048">
+ Lower-end override for [member rendering/quality/shadow_atlas/size] on mobile devices, due to performance concerns or driver support.
</member>
<member name="rendering/quality/shadows/filter_mode" type="int" setter="" getter="" default="1">
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="" default="0">
+ Lower-end override for [member rendering/quality/shadows/filter_mode] on mobile devices, due to performance concerns or driver support.
</member>
<member name="rendering/quality/subsurface_scattering/follow_surface" type="bool" setter="" getter="" default="false">
Improves quality of subsurface scattering, but cost significantly increases.
</member>
<member name="rendering/quality/subsurface_scattering/quality" type="int" setter="" getter="" default="1">
- Quality setting for subsurface scaterring (samples taken).
+ Quality setting for subsurface scattering (samples taken).
</member>
<member name="rendering/quality/subsurface_scattering/scale" type="int" setter="" getter="" default="1.0">
+ Max radius used for subsurface scattering samples.
</member>
<member name="rendering/quality/subsurface_scattering/weight_samples" type="bool" setter="" getter="" default="true">
Weight subsurface scattering samples. Helps to avoid reading samples from unrelated parts of the screen.
diff --git a/doc/classes/ProximityGroup.xml b/doc/classes/ProximityGroup.xml
index 3c081bf91f..1d147e2450 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.2">
+<class name="ProximityGroup" inherits="Spatial" version="3.2">
<brief_description>
General-purpose proximity detection node.
</brief_description>
diff --git a/doc/classes/ProxyTexture.xml b/doc/classes/ProxyTexture.xml
index 36c65f1096..83d5e44463 100644
--- a/doc/classes/ProxyTexture.xml
+++ b/doc/classes/ProxyTexture.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="ProxyTexture" inherits="Texture" category="Core" version="3.2">
+<class name="ProxyTexture" inherits="Texture" version="3.2">
<brief_description>
</brief_description>
<description>
diff --git a/doc/classes/QuadMesh.xml b/doc/classes/QuadMesh.xml
index 209e91eef2..97b8ea24e8 100644
--- a/doc/classes/QuadMesh.xml
+++ b/doc/classes/QuadMesh.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="QuadMesh" inherits="PrimitiveMesh" category="Core" version="3.2">
+<class name="QuadMesh" inherits="PrimitiveMesh" version="3.2">
<brief_description>
Class representing a square mesh.
</brief_description>
diff --git a/doc/classes/Quat.xml b/doc/classes/Quat.xml
index eeb633f480..a4540becab 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.2">
+<class name="Quat" version="3.2">
<brief_description>
Quaternion.
</brief_description>
@@ -195,6 +195,7 @@
</members>
<constants>
<constant name="IDENTITY" value="Quat( 0, 0, 0, 1 )">
+ The identity rotation. Equivalent to an identity matrix. If a vector is transformed by an identity quaternion, it will not change.
</constant>
</constants>
</class>
diff --git a/doc/classes/RID.xml b/doc/classes/RID.xml
index 5edef100c5..c27fc638dc 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.2">
+<class name="RID" version="3.2">
<brief_description>
Handle for a [Resource]'s unique ID.
</brief_description>
diff --git a/doc/classes/RandomNumberGenerator.xml b/doc/classes/RandomNumberGenerator.xml
index 9054e2fa88..94604703ea 100644
--- a/doc/classes/RandomNumberGenerator.xml
+++ b/doc/classes/RandomNumberGenerator.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="RandomNumberGenerator" inherits="Reference" category="Core" version="3.2">
+<class name="RandomNumberGenerator" inherits="Reference" version="3.2">
<brief_description>
A class for generating pseudo-random numbers.
</brief_description>
diff --git a/doc/classes/Range.xml b/doc/classes/Range.xml
index 82fffd0cb8..e7189aedaf 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.2">
+<class name="Range" inherits="Control" version="3.2">
<brief_description>
Abstract base class for range-based controls.
</brief_description>
diff --git a/doc/classes/RayCast.xml b/doc/classes/RayCast.xml
index 5e17d6e7d7..b33afa0305 100644
--- a/doc/classes/RayCast.xml
+++ b/doc/classes/RayCast.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="RayCast" inherits="Spatial" category="Core" version="3.2">
+<class name="RayCast" inherits="Spatial" version="3.2">
<brief_description>
Query the closest object intersecting a ray.
</brief_description>
diff --git a/doc/classes/RayCast2D.xml b/doc/classes/RayCast2D.xml
index c5ba5da24e..2c67931e6d 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.2">
+<class name="RayCast2D" inherits="Node2D" version="3.2">
<brief_description>
Query the closest object intersecting a ray.
</brief_description>
diff --git a/doc/classes/RayShape.xml b/doc/classes/RayShape.xml
index 3f5859714e..60963d9e2d 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.2">
+<class name="RayShape" inherits="Shape" version="3.2">
<brief_description>
Ray shape for 3D collisions.
</brief_description>
diff --git a/doc/classes/RayShape2D.xml b/doc/classes/RayShape2D.xml
index 377a19e8da..ad13420bba 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.2">
+<class name="RayShape2D" inherits="Shape2D" version="3.2">
<brief_description>
Ray shape for 2D collisions.
</brief_description>
diff --git a/doc/classes/Rect2.xml b/doc/classes/Rect2.xml
index 90dd996691..bbe422fd42 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.2">
+<class name="Rect2" version="3.2">
<brief_description>
2D axis-aligned bounding box.
</brief_description>
diff --git a/doc/classes/RectangleShape2D.xml b/doc/classes/RectangleShape2D.xml
index d55324c98f..44ebb75c6f 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.2">
+<class name="RectangleShape2D" inherits="Shape2D" version="3.2">
<brief_description>
Rectangle shape for 2D collisions.
</brief_description>
diff --git a/doc/classes/Reference.xml b/doc/classes/Reference.xml
index 70d41b665a..23623fb46f 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.2">
+<class name="Reference" inherits="Object" version="3.2">
<brief_description>
Base class for reference-counted objects.
</brief_description>
diff --git a/doc/classes/ReferenceRect.xml b/doc/classes/ReferenceRect.xml
index 393a72cf60..d17b2a3a47 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.2">
+<class name="ReferenceRect" inherits="Control" version="3.2">
<brief_description>
Reference frame for GUI.
</brief_description>
diff --git a/doc/classes/ReflectionProbe.xml b/doc/classes/ReflectionProbe.xml
index 0a1cf962c8..ac42a1870d 100644
--- a/doc/classes/ReflectionProbe.xml
+++ b/doc/classes/ReflectionProbe.xml
@@ -1,10 +1,11 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="ReflectionProbe" inherits="VisualInstance" category="Core" version="3.2">
+<class name="ReflectionProbe" inherits="VisualInstance" version="3.2">
<brief_description>
Captures its surroundings to create reflections.
</brief_description>
<description>
Capture its surroundings as a dual parabolid image, and stores versions of it with increasing levels of blur to simulate different material roughnesses.
+ The [ReflectionProbe] is used to create high-quality reflections at the cost of performance. It can be combined with [GIProbe]s and Screen Space Reflections to achieve high quality reflections. [ReflectionProbe]s render all objects within their [member cull_mask], so updating them can be quite expensive. It is best to update them once with the important static objects and then leave them.
</description>
<tutorials>
<link>https://docs.godotengine.org/en/latest/tutorials/3d/reflection_probes.html</link>
@@ -16,34 +17,45 @@
If [code]true[/code], enables box projection. This makes reflections look more correct in rectangle-shaped rooms by offsetting the reflection center depending on the camera's location.
</member>
<member name="cull_mask" type="int" setter="set_cull_mask" getter="get_cull_mask" default="1048575">
+ Sets the cull mask which determines what objects are drawn by this probe. Every [VisualInstance] with a layer included in this cull mask will be rendered by the probe. It is best to only include large objects which are likely to take up a lot of space in the reflection in order to save on rendering cost.
</member>
<member name="enable_shadows" type="bool" setter="set_enable_shadows" getter="are_shadows_enabled" default="false">
If [code]true[/code], computes shadows in the reflection probe. This makes the reflection probe slower to render; you may want to disable this if using the [constant UPDATE_ALWAYS] [member update_mode].
</member>
<member name="extents" type="Vector3" setter="set_extents" getter="get_extents" default="Vector3( 1, 1, 1 )">
+ The size of the reflection probe. The larger the extents the more space covered by the probe which will lower the perceived resolution. It is best to keep the extents only as large as you need them.
</member>
<member name="intensity" type="float" setter="set_intensity" getter="get_intensity" default="1.0">
- Defines the reflection intensity.
+ Defines the reflection intensity. Intensity modulates the strength of the reflection.
</member>
<member name="interior_ambient_color" type="Color" setter="set_interior_ambient" getter="get_interior_ambient" default="Color( 0, 0, 0, 1 )">
+ Sets the ambient light color to be used when this probe is set to [member interior_enable].
</member>
<member name="interior_ambient_contrib" type="float" setter="set_interior_ambient_probe_contribution" getter="get_interior_ambient_probe_contribution" default="0.0">
+ Sets the contribution value for how much the reflection affects the ambient light for this reflection probe when set to [member interior_enable]. Useful so that ambient light matches the color of the room.
</member>
<member name="interior_ambient_energy" type="float" setter="set_interior_ambient_energy" getter="get_interior_ambient_energy" default="1.0">
+ Sets the energy multiplier for this reflection probe's ambient light contribution when set to [member interior_enable].
</member>
<member name="interior_enable" type="bool" setter="set_as_interior" getter="is_set_as_interior" default="false">
+ If [code]true[/code], reflections will ignore sky contribution. Ambient lighting is then controlled by the [code]interior_ambient_*[/code] properties.
</member>
<member name="max_distance" type="float" setter="set_max_distance" getter="get_max_distance" default="0.0">
+ Sets the max distance away from the probe an object can be before it is culled.
</member>
<member name="origin_offset" type="Vector3" setter="set_origin_offset" getter="get_origin_offset" default="Vector3( 0, 0, 0 )">
+ Sets the origin offset to be used when this reflection probe is in box project mode.
</member>
<member name="update_mode" type="int" setter="set_update_mode" getter="get_update_mode" enum="ReflectionProbe.UpdateMode" default="0">
+ Sets how frequently the probe is updated. Can be [constant UPDATE_ONCE] or [constant UPDATE_ALWAYS].
</member>
</members>
<constants>
<constant name="UPDATE_ONCE" value="0" enum="UpdateMode">
+ Update the probe once on the next frame.
</constant>
<constant name="UPDATE_ALWAYS" value="1" enum="UpdateMode">
+ Update the probe every frame. This is needed when you want to capture dynamic objects. However, it results in an increased render time. Use [constant UPDATE_ONCE] whenever possible.
</constant>
</constants>
</class>
diff --git a/doc/classes/RemoteTransform.xml b/doc/classes/RemoteTransform.xml
index 377f9cc34b..ea569a4712 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.2">
+<class name="RemoteTransform" inherits="Spatial" version="3.2">
<brief_description>
RemoteTransform pushes its own [Transform] to another [Spatial] derived Node in the scene.
</brief_description>
diff --git a/doc/classes/RemoteTransform2D.xml b/doc/classes/RemoteTransform2D.xml
index f5d509782f..7e21198efa 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.2">
+<class name="RemoteTransform2D" inherits="Node2D" version="3.2">
<brief_description>
RemoteTransform2D pushes its own [Transform2D] to another [CanvasItem] derived Node in the scene.
</brief_description>
diff --git a/doc/classes/Resource.xml b/doc/classes/Resource.xml
index a50f5c97d1..5be17f4865 100644
--- a/doc/classes/Resource.xml
+++ b/doc/classes/Resource.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="Resource" inherits="Reference" category="Core" version="3.2">
+<class name="Resource" inherits="Reference" version="3.2">
<brief_description>
Base class for all resources.
</brief_description>
diff --git a/doc/classes/ResourceFormatLoader.xml b/doc/classes/ResourceFormatLoader.xml
index ce37691e0a..1c09df1b54 100644
--- a/doc/classes/ResourceFormatLoader.xml
+++ b/doc/classes/ResourceFormatLoader.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="ResourceFormatLoader" inherits="Reference" category="Core" version="3.2">
+<class name="ResourceFormatLoader" inherits="Reference" version="3.2">
<brief_description>
Loads a specific resource type from a file.
</brief_description>
diff --git a/doc/classes/ResourceFormatLoaderCrypto.xml b/doc/classes/ResourceFormatLoaderCrypto.xml
index 8bc7d50c75..615584451d 100644
--- a/doc/classes/ResourceFormatLoaderCrypto.xml
+++ b/doc/classes/ResourceFormatLoaderCrypto.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="ResourceFormatLoaderCrypto" inherits="ResourceFormatLoader" category="Core" version="3.2">
+<class name="ResourceFormatLoaderCrypto" inherits="ResourceFormatLoader" version="3.2">
<brief_description>
</brief_description>
<description>
diff --git a/doc/classes/ResourceFormatSaver.xml b/doc/classes/ResourceFormatSaver.xml
index 5ad5ab49b1..66abee1279 100644
--- a/doc/classes/ResourceFormatSaver.xml
+++ b/doc/classes/ResourceFormatSaver.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="ResourceFormatSaver" inherits="Reference" category="Core" version="3.2">
+<class name="ResourceFormatSaver" inherits="Reference" version="3.2">
<brief_description>
Saves a specific resource type to a file.
</brief_description>
diff --git a/doc/classes/ResourceFormatSaverCrypto.xml b/doc/classes/ResourceFormatSaverCrypto.xml
index 2f7d224dab..fb96ef7d3e 100644
--- a/doc/classes/ResourceFormatSaverCrypto.xml
+++ b/doc/classes/ResourceFormatSaverCrypto.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="ResourceFormatSaverCrypto" inherits="ResourceFormatSaver" category="Core" version="3.2">
+<class name="ResourceFormatSaverCrypto" inherits="ResourceFormatSaver" version="3.2">
<brief_description>
</brief_description>
<description>
diff --git a/doc/classes/ResourceImporter.xml b/doc/classes/ResourceImporter.xml
index e0c0aa9a47..6802014dd3 100644
--- a/doc/classes/ResourceImporter.xml
+++ b/doc/classes/ResourceImporter.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="ResourceImporter" inherits="Reference" category="Core" version="3.2">
+<class name="ResourceImporter" inherits="Reference" version="3.2">
<brief_description>
</brief_description>
<description>
diff --git a/doc/classes/ResourceInteractiveLoader.xml b/doc/classes/ResourceInteractiveLoader.xml
index df552d3656..0b6db10c32 100644
--- a/doc/classes/ResourceInteractiveLoader.xml
+++ b/doc/classes/ResourceInteractiveLoader.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="ResourceInteractiveLoader" inherits="Reference" category="Core" version="3.2">
+<class name="ResourceInteractiveLoader" inherits="Reference" version="3.2">
<brief_description>
Interactive [Resource] loader.
</brief_description>
diff --git a/doc/classes/ResourceLoader.xml b/doc/classes/ResourceLoader.xml
index 31bba18171..1511a0d9ba 100644
--- a/doc/classes/ResourceLoader.xml
+++ b/doc/classes/ResourceLoader.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="ResourceLoader" inherits="Object" category="Core" version="3.2">
+<class name="ResourceLoader" inherits="Object" version="3.2">
<brief_description>
Singleton used to load resource files.
</brief_description>
diff --git a/doc/classes/ResourcePreloader.xml b/doc/classes/ResourcePreloader.xml
index 2b00c038e1..cb015851b4 100644
--- a/doc/classes/ResourcePreloader.xml
+++ b/doc/classes/ResourcePreloader.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="ResourcePreloader" inherits="Node" category="Core" version="3.2">
+<class name="ResourcePreloader" inherits="Node" version="3.2">
<brief_description>
Resource Preloader Node.
</brief_description>
diff --git a/doc/classes/ResourceSaver.xml b/doc/classes/ResourceSaver.xml
index f12d26d4b9..783dc88049 100644
--- a/doc/classes/ResourceSaver.xml
+++ b/doc/classes/ResourceSaver.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="ResourceSaver" inherits="Object" category="Core" version="3.2">
+<class name="ResourceSaver" inherits="Object" version="3.2">
<brief_description>
Singleton for saving Godot-specific resource types.
</brief_description>
diff --git a/doc/classes/RichTextEffect.xml b/doc/classes/RichTextEffect.xml
index 0e043b1d50..f16fff16b8 100644
--- a/doc/classes/RichTextEffect.xml
+++ b/doc/classes/RichTextEffect.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="RichTextEffect" inherits="Resource" category="Core" version="3.2">
+<class name="RichTextEffect" inherits="Resource" version="3.2">
<brief_description>
A custom effect for use with [RichTextLabel].
</brief_description>
@@ -13,7 +13,7 @@
[b]Note:[/b] As soon as a [RichTextLabel] contains at least one [RichTextEffect], it will continuously process the effect unless the project is paused. This may impact battery life negatively.
</description>
<tutorials>
- <link>http://docs.godotengine.org/en/latest/tutorials/gui/bbcode_in_richtextlabel.html</link>
+ <link>https://docs.godotengine.org/en/latest/tutorials/gui/bbcode_in_richtextlabel.html</link>
<link>https://github.com/Eoin-ONeill-Yokai/Godot-Rich-Text-Effect-Test-Project</link>
</tutorials>
<methods>
diff --git a/doc/classes/RichTextLabel.xml b/doc/classes/RichTextLabel.xml
index c3fb226b6a..195856f687 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.2">
+<class name="RichTextLabel" inherits="Control" version="3.2">
<brief_description>
Label that displays rich text.
</brief_description>
@@ -325,21 +325,21 @@
</members>
<signals>
<signal name="meta_clicked">
- <argument index="0" name="meta" type="Nil">
+ <argument index="0" name="meta" type="Variant">
</argument>
<description>
Triggered when the user clicks on content between meta 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">
- <argument index="0" name="meta" type="Nil">
+ <argument index="0" name="meta" type="Variant">
</argument>
<description>
Triggers when the mouse exits a meta tag.
</description>
</signal>
<signal name="meta_hover_started">
- <argument index="0" name="meta" type="Nil">
+ <argument index="0" name="meta" type="Variant">
</argument>
<description>
Triggers when the mouse enters a meta tag.
diff --git a/doc/classes/RigidBody.xml b/doc/classes/RigidBody.xml
index 624b576f4d..72d1dcaa75 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.2">
+<class name="RigidBody" inherits="PhysicsBody" version="3.2">
<brief_description>
Physics Body whose position is determined through physics simulation in 3D space.
</brief_description>
diff --git a/doc/classes/RigidBody2D.xml b/doc/classes/RigidBody2D.xml
index c960ef5aee..6751b840af 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.2">
+<class name="RigidBody2D" inherits="PhysicsBody2D" version="3.2">
<brief_description>
A body that is controlled by the 2D physics engine.
</brief_description>
diff --git a/doc/classes/RootMotionView.xml b/doc/classes/RootMotionView.xml
index bb939e82f3..11701c0a99 100644
--- a/doc/classes/RootMotionView.xml
+++ b/doc/classes/RootMotionView.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="RootMotionView" inherits="VisualInstance" category="Core" version="3.2">
+<class name="RootMotionView" inherits="VisualInstance" version="3.2">
<brief_description>
</brief_description>
<description>
diff --git a/doc/classes/SceneState.xml b/doc/classes/SceneState.xml
index 3bd958bfd4..70833a36e7 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.2">
+<class name="SceneState" inherits="Reference" version="3.2">
<brief_description>
A script interface to a scene file's data.
</brief_description>
diff --git a/doc/classes/SceneTree.xml b/doc/classes/SceneTree.xml
index 6a4105ca2f..7e57e9740c 100644
--- a/doc/classes/SceneTree.xml
+++ b/doc/classes/SceneTree.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="SceneTree" inherits="MainLoop" category="Core" version="3.2">
+<class name="SceneTree" inherits="MainLoop" version="3.2">
<brief_description>
Manages the game loop via a hierarchy of nodes.
</brief_description>
@@ -329,9 +329,9 @@
</description>
</signal>
<signal name="global_menu_action">
- <argument index="0" name="id" type="Nil">
+ <argument index="0" name="id" type="Variant">
</argument>
- <argument index="1" name="meta" type="Nil">
+ <argument index="1" name="meta" type="Variant">
</argument>
<description>
Emitted whenever global menu item is clicked.
diff --git a/doc/classes/SceneTreeTimer.xml b/doc/classes/SceneTreeTimer.xml
index 5678833752..e2b75ab0fc 100644
--- a/doc/classes/SceneTreeTimer.xml
+++ b/doc/classes/SceneTreeTimer.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="SceneTreeTimer" inherits="Reference" category="Core" version="3.2">
+<class name="SceneTreeTimer" inherits="Reference" version="3.2">
<brief_description>
One-shot timer.
</brief_description>
diff --git a/doc/classes/Script.xml b/doc/classes/Script.xml
index 91014580d3..24eb5b61d0 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.2">
+<class name="Script" inherits="Resource" version="3.2">
<brief_description>
A class stored as a resource.
</brief_description>
diff --git a/doc/classes/ScriptCreateDialog.xml b/doc/classes/ScriptCreateDialog.xml
index 2991d76bec..50a7195606 100644
--- a/doc/classes/ScriptCreateDialog.xml
+++ b/doc/classes/ScriptCreateDialog.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="ScriptCreateDialog" inherits="ConfirmationDialog" category="Core" version="3.2">
+<class name="ScriptCreateDialog" inherits="ConfirmationDialog" version="3.2">
<brief_description>
The Editor's popup dialog for creating new [Script] files.
</brief_description>
diff --git a/doc/classes/ScriptEditor.xml b/doc/classes/ScriptEditor.xml
index 28e1f75ac1..2ee681583e 100644
--- a/doc/classes/ScriptEditor.xml
+++ b/doc/classes/ScriptEditor.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="ScriptEditor" inherits="PanelContainer" category="Core" version="3.2">
+<class name="ScriptEditor" inherits="PanelContainer" version="3.2">
<brief_description>
</brief_description>
<description>
diff --git a/doc/classes/ScrollBar.xml b/doc/classes/ScrollBar.xml
index e4ace8e8ae..262d82774d 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.2">
+<class name="ScrollBar" inherits="Range" version="3.2">
<brief_description>
Base class for scroll bars.
</brief_description>
diff --git a/doc/classes/ScrollContainer.xml b/doc/classes/ScrollContainer.xml
index 94920d57e5..1ba097fb51 100644
--- a/doc/classes/ScrollContainer.xml
+++ b/doc/classes/ScrollContainer.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="ScrollContainer" inherits="Container" category="Core" version="3.2">
+<class name="ScrollContainer" inherits="Container" version="3.2">
<brief_description>
A helper node for displaying scrollable elements such as lists.
</brief_description>
@@ -13,12 +13,14 @@
<return type="HScrollBar">
</return>
<description>
+ Returns the horizontal scrollbar [HScrollBar] of this [ScrollContainer].
</description>
</method>
<method name="get_v_scrollbar">
<return type="VScrollBar">
</return>
<description>
+ Returns the vertical scrollbar [VScrollBar] of this [ScrollContainer].
</description>
</method>
</methods>
@@ -58,6 +60,7 @@
</constants>
<theme_items>
<theme_item name="bg" type="StyleBox">
+ The background [StyleBox] of the [ScrollContainer].
</theme_item>
</theme_items>
</class>
diff --git a/doc/classes/SegmentShape2D.xml b/doc/classes/SegmentShape2D.xml
index e9e9d01a42..bebc238522 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.2">
+<class name="SegmentShape2D" inherits="Shape2D" version="3.2">
<brief_description>
Segment shape for 2D collisions.
</brief_description>
diff --git a/doc/classes/Semaphore.xml b/doc/classes/Semaphore.xml
index 74970be8b4..84bcaf5796 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.2">
+<class name="Semaphore" inherits="Reference" version="3.2">
<brief_description>
A synchronization semaphore.
</brief_description>
diff --git a/doc/classes/Separator.xml b/doc/classes/Separator.xml
index 11f6f1b22f..88ade0d34e 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.2">
+<class name="Separator" inherits="Control" version="3.2">
<brief_description>
Base class for separators.
</brief_description>
diff --git a/doc/classes/Shader.xml b/doc/classes/Shader.xml
index 673248a3b1..91dc963812 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.2">
+<class name="Shader" inherits="Resource" version="3.2">
<brief_description>
A custom shader program.
</brief_description>
@@ -25,7 +25,7 @@
<return type="int" enum="Shader.Mode">
</return>
<description>
- Returns the shader mode for the shader, either [constant MODE_CANVAS_ITEM], [constant MODE_SPATIAL] or [constant MODE_PARTICLES]
+ Returns the shader mode for the shader, either [constant MODE_CANVAS_ITEM], [constant MODE_SPATIAL] or [constant MODE_PARTICLES].
</description>
</method>
<method name="has_param" qualifiers="const">
diff --git a/doc/classes/ShaderMaterial.xml b/doc/classes/ShaderMaterial.xml
index f2742a5453..1b135b0329 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.2">
+<class name="ShaderMaterial" inherits="Material" version="3.2">
<brief_description>
A material that uses a custom [Shader] program.
</brief_description>
@@ -7,7 +7,7 @@
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>
+ <link>https://docs.godotengine.org/en/latest/tutorials/shading/index.html</link>
</tutorials>
<methods>
<method name="get_shader_param" qualifiers="const">
diff --git a/doc/classes/Shape.xml b/doc/classes/Shape.xml
index 123353b59a..5925d614bb 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.2">
+<class name="Shape" inherits="Resource" version="3.2">
<brief_description>
Base class for all 3D shape resources.
</brief_description>
diff --git a/doc/classes/Shape2D.xml b/doc/classes/Shape2D.xml
index 70d55344ca..ddc780ae21 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.2">
+<class name="Shape2D" inherits="Resource" version="3.2">
<brief_description>
Base class for all 2D shapes.
</brief_description>
diff --git a/doc/classes/ShortCut.xml b/doc/classes/ShortCut.xml
index 4c5dc0e77b..11a2a15824 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.2">
+<class name="ShortCut" inherits="Resource" version="3.2">
<brief_description>
A shortcut for binding input.
</brief_description>
diff --git a/doc/classes/Skeleton.xml b/doc/classes/Skeleton.xml
index 7cd95390e6..fb563484ec 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.2">
+<class name="Skeleton" inherits="Spatial" version="3.2">
<brief_description>
Skeleton for characters and animated objects.
</brief_description>
diff --git a/doc/classes/Skeleton2D.xml b/doc/classes/Skeleton2D.xml
index 886e8244a2..a76b3b5d12 100644
--- a/doc/classes/Skeleton2D.xml
+++ b/doc/classes/Skeleton2D.xml
@@ -1,12 +1,12 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="Skeleton2D" inherits="Node2D" category="Core" version="3.2">
+<class name="Skeleton2D" inherits="Node2D" version="3.2">
<brief_description>
Skeleton for 2D characters and animated objects.
</brief_description>
<description>
</description>
<tutorials>
- <link>http://docs.godotengine.org/en/latest/tutorials/animation/2d_skeletons.html</link>
+ <link>https://docs.godotengine.org/en/latest/tutorials/animation/2d_skeletons.html</link>
</tutorials>
<methods>
<method name="get_bone">
diff --git a/doc/classes/SkeletonIK.xml b/doc/classes/SkeletonIK.xml
index 2f35826cc7..6eeb410062 100644
--- a/doc/classes/SkeletonIK.xml
+++ b/doc/classes/SkeletonIK.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="SkeletonIK" inherits="Node" category="Core" version="3.2">
+<class name="SkeletonIK" inherits="Node" version="3.2">
<brief_description>
</brief_description>
<description>
diff --git a/doc/classes/Skin.xml b/doc/classes/Skin.xml
index 174febc883..0d5ec00c74 100644
--- a/doc/classes/Skin.xml
+++ b/doc/classes/Skin.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="Skin" inherits="Resource" category="Core" version="3.2">
+<class name="Skin" inherits="Resource" version="3.2">
<brief_description>
</brief_description>
<description>
diff --git a/doc/classes/SkinReference.xml b/doc/classes/SkinReference.xml
index c12957654f..6481afa567 100644
--- a/doc/classes/SkinReference.xml
+++ b/doc/classes/SkinReference.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="SkinReference" inherits="Reference" category="Core" version="3.2">
+<class name="SkinReference" inherits="Reference" version="3.2">
<brief_description>
</brief_description>
<description>
diff --git a/doc/classes/Sky.xml b/doc/classes/Sky.xml
index 398a988d9e..90df5d723e 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.2">
+<class name="Sky" inherits="Resource" version="3.2">
<brief_description>
The base class for [PanoramaSky] and [ProceduralSky].
</brief_description>
@@ -14,6 +14,7 @@
<member name="radiance_size" type="int" setter="set_radiance_size" getter="get_radiance_size" enum="Sky.RadianceSize" default="2">
The [Sky]'s radiance map size. The higher the radiance map size, the more detailed the lighting from the [Sky] will be.
See [enum RadianceSize] constants for values.
+ [b]Note:[/b] Some hardware will have trouble with higher radiance sizes, especially [constant RADIANCE_SIZE_512] and above. Only use such high values on high-end hardware.
</member>
</members>
<constants>
diff --git a/doc/classes/Slider.xml b/doc/classes/Slider.xml
index 14176da44f..4f89470893 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.2">
+<class name="Slider" inherits="Range" version="3.2">
<brief_description>
Base class for GUI sliders.
</brief_description>
diff --git a/doc/classes/SliderJoint.xml b/doc/classes/SliderJoint.xml
index 3f22b5a37c..b9a4ab3a73 100644
--- a/doc/classes/SliderJoint.xml
+++ b/doc/classes/SliderJoint.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="SliderJoint" inherits="Joint" category="Core" version="3.2">
+<class name="SliderJoint" inherits="Joint" version="3.2">
<brief_description>
Piston kind of slider between two bodies in 3D.
</brief_description>
diff --git a/doc/classes/SoftBody.xml b/doc/classes/SoftBody.xml
index a51907b1bf..c9626abbc9 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.2">
+<class name="SoftBody" inherits="MeshInstance" version="3.2">
<brief_description>
A soft mesh physics body.
</brief_description>
diff --git a/doc/classes/Spatial.xml b/doc/classes/Spatial.xml
index 0309e73eec..0f713c429e 100644
--- a/doc/classes/Spatial.xml
+++ b/doc/classes/Spatial.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="Spatial" inherits="Node" category="Core" version="3.2">
+<class name="Spatial" inherits="Node" version="3.2">
<brief_description>
Most basic 3D game object, parent of all 3D-related nodes.
</brief_description>
@@ -277,7 +277,7 @@
<argument index="0" name="offset" type="Vector3">
</argument>
<description>
- Changes the node's position by given offset [Vector3].
+ Changes the node's position by the given offset [Vector3].
Note that the translation [code]offset[/code] is affected by the node's scale, so if scaled by e.g. [code](10, 1, 1)[/code], a translation by an offset of [code](2, 0, 0)[/code] would actually add 20 ([code]2 * 10[/code]) to the X coordinate.
</description>
</method>
@@ -287,6 +287,7 @@
<argument index="0" name="offset" type="Vector3">
</argument>
<description>
+ Changes the node's position by the given offset [Vector3] in local space.
</description>
</method>
<method name="update_gizmo">
diff --git a/doc/classes/SpatialGizmo.xml b/doc/classes/SpatialGizmo.xml
index 5cca1883b3..7cc94b342d 100644
--- a/doc/classes/SpatialGizmo.xml
+++ b/doc/classes/SpatialGizmo.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="SpatialGizmo" inherits="Reference" category="Core" version="3.2">
+<class name="SpatialGizmo" inherits="Reference" version="3.2">
<brief_description>
</brief_description>
<description>
diff --git a/doc/classes/SpatialMaterial.xml b/doc/classes/SpatialMaterial.xml
index 912161a5ae..6eeb10b660 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.2">
+<class name="SpatialMaterial" inherits="Material" version="3.2">
<brief_description>
Default 3D rendering material.
</brief_description>
@@ -16,7 +16,7 @@
<argument index="0" name="feature" type="int" enum="SpatialMaterial.Feature">
</argument>
<description>
- Returns [code]true[/code], if the specifed [enum Feature] is enabled.
+ Returns [code]true[/code], if the specified [enum Feature] is enabled.
</description>
</method>
<method name="get_flag" qualifiers="const">
@@ -106,7 +106,7 @@
Sets the strength of the clearcoat effect. Setting to [code]0[/code] looks the same as disabling the clearcoat effect.
</member>
<member name="clearcoat_enabled" type="bool" setter="set_feature" getter="get_feature" default="false">
- If [code]true[/code], clearcoat rendering is enabled. Adds a secondary transparent pass to the lighting calculation resulting in an added specular blob. This makes materials appear as if they have a clear layer on them that can either by glossy or rough.
+ If [code]true[/code], clearcoat rendering is enabled. Adds a secondary transparent pass to the lighting calculation resulting in an added specular blob. This makes materials appear as if they have a clear layer on them that can be either glossy or rough.
</member>
<member name="clearcoat_gloss" type="float" setter="set_clearcoat_gloss" getter="get_clearcoat_gloss">
Sets the roughness of the clearcoat pass. A higher value results in a smoother clearcoat while a lower value results in a rougher clearcoat.
@@ -609,7 +609,8 @@
The object's X axis will always face the camera.
</constant>
<constant name="BILLBOARD_PARTICLES" value="3" enum="BillboardMode">
- Used for particle systems. Enables particle animation options.
+ Used for particle systems when assigned to [Particles] and [CPUParticles] nodes. Enables [code]particles_anim_*[/code] properties.
+ The [member ParticlesMaterial.anim_speed] or [member CPUParticles.anim_speed] should also be set to a positive value for the animation to play.
</constant>
<constant name="TEXTURE_CHANNEL_RED" value="0" enum="TextureChannel">
Used to read from the red channel of a texture.
diff --git a/doc/classes/SpatialVelocityTracker.xml b/doc/classes/SpatialVelocityTracker.xml
index 0dcd174a67..f3d3e119aa 100644
--- a/doc/classes/SpatialVelocityTracker.xml
+++ b/doc/classes/SpatialVelocityTracker.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="SpatialVelocityTracker" inherits="Reference" category="Core" version="3.2">
+<class name="SpatialVelocityTracker" inherits="Reference" version="3.2">
<brief_description>
</brief_description>
<description>
diff --git a/doc/classes/SphereMesh.xml b/doc/classes/SphereMesh.xml
index 43f19f9f4e..e6a05bc8cc 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.2">
+<class name="SphereMesh" inherits="PrimitiveMesh" version="3.2">
<brief_description>
Class representing a spherical [PrimitiveMesh].
</brief_description>
diff --git a/doc/classes/SphereShape.xml b/doc/classes/SphereShape.xml
index 616c3b3894..e9090c6382 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.2">
+<class name="SphereShape" inherits="Shape" version="3.2">
<brief_description>
Sphere shape for 3D collisions.
</brief_description>
diff --git a/doc/classes/SpinBox.xml b/doc/classes/SpinBox.xml
index dfa14fc512..8411cd6ba9 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.2">
+<class name="SpinBox" inherits="Range" version="3.2">
<brief_description>
Numerical input text field.
</brief_description>
diff --git a/doc/classes/SplitContainer.xml b/doc/classes/SplitContainer.xml
index 25d4546c3a..eadad5936d 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.2">
+<class name="SplitContainer" inherits="Container" version="3.2">
<brief_description>
Container for splitting and adjusting.
</brief_description>
diff --git a/doc/classes/SpotLight.xml b/doc/classes/SpotLight.xml
index 93aee55b99..2e4fceb970 100644
--- a/doc/classes/SpotLight.xml
+++ b/doc/classes/SpotLight.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="SpotLight" inherits="Light" category="Core" version="3.2">
+<class name="SpotLight" inherits="Light" version="3.2">
<brief_description>
A spotlight, such as a reflector spotlight or a lantern.
</brief_description>
diff --git a/doc/classes/SpringArm.xml b/doc/classes/SpringArm.xml
index 133ff68859..bcab90279c 100644
--- a/doc/classes/SpringArm.xml
+++ b/doc/classes/SpringArm.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="SpringArm" inherits="Spatial" category="Core" version="3.2">
+<class name="SpringArm" inherits="Spatial" version="3.2">
<brief_description>
A helper node, mostly used in 3rd person cameras.
</brief_description>
diff --git a/doc/classes/Sprite.xml b/doc/classes/Sprite.xml
index b77db1ce9a..db17196cf5 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.2">
+<class name="Sprite" inherits="Node2D" version="3.2">
<brief_description>
General-purpose sprite node.
</brief_description>
diff --git a/doc/classes/Sprite3D.xml b/doc/classes/Sprite3D.xml
index e458d4301e..af968f9248 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.2">
+<class name="Sprite3D" inherits="SpriteBase3D" version="3.2">
<brief_description>
2D sprite node in a 3D world.
</brief_description>
diff --git a/doc/classes/SpriteBase3D.xml b/doc/classes/SpriteBase3D.xml
index 15d5d7beb4..9619ebb70d 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.2">
+<class name="SpriteBase3D" inherits="GeometryInstance" version="3.2">
<brief_description>
2D sprite node in 3D environment.
</brief_description>
diff --git a/doc/classes/SpriteFrames.xml b/doc/classes/SpriteFrames.xml
index 2f2075074c..2166c9c545 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.2">
+<class name="SpriteFrames" inherits="Resource" version="3.2">
<brief_description>
Sprite frame library for AnimatedSprite.
</brief_description>
diff --git a/doc/classes/StaticBody.xml b/doc/classes/StaticBody.xml
index f8840ddc14..246bd2a256 100644
--- a/doc/classes/StaticBody.xml
+++ b/doc/classes/StaticBody.xml
@@ -1,12 +1,11 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="StaticBody" inherits="PhysicsBody" category="Core" version="3.2">
+<class name="StaticBody" inherits="PhysicsBody" version="3.2">
<brief_description>
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. In contrast to [RigidBody], they don't consume any CPU resources as long as they don't move.
- 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).
+ Additionally, 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>
diff --git a/doc/classes/StaticBody2D.xml b/doc/classes/StaticBody2D.xml
index 34276ec535..be7fb4f686 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.2">
+<class name="StaticBody2D" inherits="PhysicsBody2D" version="3.2">
<brief_description>
Static body for 2D physics.
</brief_description>
diff --git a/doc/classes/StreamPeer.xml b/doc/classes/StreamPeer.xml
index 2a1919071a..8bc805fc8f 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.2">
+<class name="StreamPeer" inherits="Reference" version="3.2">
<brief_description>
Abstraction and base class for stream-based protocols.
</brief_description>
diff --git a/doc/classes/StreamPeerBuffer.xml b/doc/classes/StreamPeerBuffer.xml
index 30a220863d..6fea7c06cf 100644
--- a/doc/classes/StreamPeerBuffer.xml
+++ b/doc/classes/StreamPeerBuffer.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="StreamPeerBuffer" inherits="StreamPeer" category="Core" version="3.2">
+<class name="StreamPeerBuffer" inherits="StreamPeer" version="3.2">
<brief_description>
</brief_description>
<description>
diff --git a/doc/classes/StreamPeerSSL.xml b/doc/classes/StreamPeerSSL.xml
index eea44ef93d..11af6a4d30 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.2">
+<class name="StreamPeerSSL" inherits="StreamPeer" version="3.2">
<brief_description>
SSL stream peer.
</brief_description>
diff --git a/doc/classes/StreamPeerTCP.xml b/doc/classes/StreamPeerTCP.xml
index bee026c851..93ae96c0fa 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.2">
+<class name="StreamPeerTCP" inherits="StreamPeer" version="3.2">
<brief_description>
TCP stream peer.
</brief_description>
diff --git a/doc/classes/StreamTexture.xml b/doc/classes/StreamTexture.xml
index 9cc3511b68..5952e17911 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.2">
+<class name="StreamTexture" inherits="Texture" version="3.2">
<brief_description>
A [code].stex[/code] texture.
</brief_description>
diff --git a/doc/classes/String.xml b/doc/classes/String.xml
index f5597d89e5..e0bb213912 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.2">
+<class name="String" version="3.2">
<brief_description>
Built-in string class.
</brief_description>
diff --git a/doc/classes/StyleBox.xml b/doc/classes/StyleBox.xml
index 1a11904792..29fb3ae7f9 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.2">
+<class name="StyleBox" inherits="Resource" version="3.2">
<brief_description>
Base class for drawing stylized boxes for the UI.
</brief_description>
diff --git a/doc/classes/StyleBoxEmpty.xml b/doc/classes/StyleBoxEmpty.xml
index 9dc8569b75..65e3856e71 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.2">
+<class name="StyleBoxEmpty" inherits="StyleBox" version="3.2">
<brief_description>
Empty stylebox (does not display anything).
</brief_description>
diff --git a/doc/classes/StyleBoxFlat.xml b/doc/classes/StyleBoxFlat.xml
index 46b11ac010..b8c94b5963 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.2">
+<class name="StyleBoxFlat" inherits="StyleBox" version="3.2">
<brief_description>
Customizable [StyleBox] with a given set of parameters (no texture required).
</brief_description>
@@ -179,7 +179,8 @@
</member>
<member name="corner_detail" type="int" setter="set_corner_detail" getter="get_corner_detail" default="8">
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 radii smaller than 10, 4-5 should be enough. For corner radii smaller than 30, 8-12 should be enough.
+ For corner radii smaller than 10, [code]4[/code] or [code]5[/code] should be enough. For corner radii smaller than 30, values between [code]8[/code] and [code]12[/code] should be enough.
+ A corner detail of [code]1[/code] will result in chamfered corners instead of rounded corners, which is useful for some artistic effects.
</member>
<member name="corner_radius_bottom_left" type="int" setter="set_corner_radius" getter="get_corner_radius" default="0">
The bottom-left corner's radius. If [code]0[/code], the corner is not rounded.
diff --git a/doc/classes/StyleBoxLine.xml b/doc/classes/StyleBoxLine.xml
index b5da81de79..78d5eb6b4f 100644
--- a/doc/classes/StyleBoxLine.xml
+++ b/doc/classes/StyleBoxLine.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="StyleBoxLine" inherits="StyleBox" category="Core" version="3.2">
+<class name="StyleBoxLine" inherits="StyleBox" version="3.2">
<brief_description>
[StyleBox] that displays a single line.
</brief_description>
diff --git a/doc/classes/StyleBoxTexture.xml b/doc/classes/StyleBoxTexture.xml
index af4186dcb6..9ca218a167 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.2">
+<class name="StyleBoxTexture" inherits="StyleBox" version="3.2">
<brief_description>
Texture-based nine-patch [StyleBox].
</brief_description>
diff --git a/doc/classes/SurfaceTool.xml b/doc/classes/SurfaceTool.xml
index 0c9ac9fbff..0126be25c3 100644
--- a/doc/classes/SurfaceTool.xml
+++ b/doc/classes/SurfaceTool.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="SurfaceTool" inherits="Reference" category="Core" version="3.2">
+<class name="SurfaceTool" inherits="Reference" version="3.2">
<brief_description>
Helper tool to create geometry.
</brief_description>
@@ -174,6 +174,7 @@
<return type="Array">
</return>
<description>
+ Commits the data to the same format used by [method ArrayMesh.add_surface_from_arrays]. This way you can further process the mesh data using the [ArrayMesh] API.
</description>
</method>
<method name="create_from">
@@ -197,6 +198,7 @@
<argument index="2" name="blend_shape" type="String">
</argument>
<description>
+ Creates a vertex array from the specified blend shape of an existing [Mesh]. This can be used to extract a specific pose from a blend shape.
</description>
</method>
<method name="deindex">
diff --git a/doc/classes/TCP_Server.xml b/doc/classes/TCP_Server.xml
index cac3a0b082..7789067d22 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.2">
+<class name="TCP_Server" inherits="Reference" version="3.2">
<brief_description>
A TCP server.
</brief_description>
diff --git a/doc/classes/TabContainer.xml b/doc/classes/TabContainer.xml
index e5f126c344..0cb9c8b957 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.2">
+<class name="TabContainer" inherits="Container" version="3.2">
<brief_description>
Tabbed container.
</brief_description>
diff --git a/doc/classes/Tabs.xml b/doc/classes/Tabs.xml
index 04119b7cdb..cd87e46185 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.2">
+<class name="Tabs" inherits="Control" version="3.2">
<brief_description>
Tabs control.
</brief_description>
diff --git a/doc/classes/TextEdit.xml b/doc/classes/TextEdit.xml
index 3deed63ae7..5114cfca73 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.2">
+<class name="TextEdit" inherits="Control" version="3.2">
<brief_description>
Multiline text editing control.
</brief_description>
@@ -315,7 +315,7 @@
[codeblock]
var result = search(key, flags, line, column)
if result.size() &gt; 0:
- # result found
+ # Result found.
var res_line = result[TextEdit.SEARCH_RESULT_LINE]
var res_column = result[TextEdit.SEARCH_RESULT_COLUMN]
[/codeblock]
diff --git a/doc/classes/TextFile.xml b/doc/classes/TextFile.xml
index 163900a482..96cbaa5256 100644
--- a/doc/classes/TextFile.xml
+++ b/doc/classes/TextFile.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="TextFile" inherits="Resource" category="Core" version="3.2">
+<class name="TextFile" inherits="Resource" version="3.2">
<brief_description>
</brief_description>
<description>
diff --git a/doc/classes/Texture.xml b/doc/classes/Texture.xml
index 238d6929ba..b0d379f6d0 100644
--- a/doc/classes/Texture.xml
+++ b/doc/classes/Texture.xml
@@ -1,11 +1,12 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="Texture" inherits="Resource" category="Core" version="3.2">
+<class name="Texture" inherits="Resource" version="3.2">
<brief_description>
Texture for 2D and 3D.
</brief_description>
<description>
A texture works by registering an image in the video hardware, which then can be used in 3D models or 2D [Sprite] or GUI [Control].
Textures are often created by loading them from a file. See [method @GDScript.load].
+ [Texture] is a base for other resources. It cannot be used directly.
</description>
<tutorials>
</tutorials>
@@ -24,6 +25,7 @@
<argument index="4" name="normal_map" type="Texture" default="null">
</argument>
<description>
+ Draws the texture using a [CanvasItem] with the [VisualServer] API at the specified [code]position[/code]. Equivalent to [method VisualServer.canvas_item_add_texture_rect] with a rect at [code]position[/code] and the size of this [Texture].
</description>
</method>
<method name="draw_rect" qualifiers="const">
@@ -42,6 +44,7 @@
<argument index="5" name="normal_map" type="Texture" default="null">
</argument>
<description>
+ Draws the texture using a [CanvasItem] with the [VisualServer] API. Equivalent to [method VisualServer.canvas_item_add_texture_rect].
</description>
</method>
<method name="draw_rect_region" qualifiers="const">
@@ -62,12 +65,14 @@
<argument index="6" name="clip_uv" type="bool" default="true">
</argument>
<description>
+ Draws a part of the texture using a [CanvasItem] with the [VisualServer] API. Equivalent to [method VisualServer.canvas_item_add_texture_rect_region].
</description>
</method>
<method name="get_data" qualifiers="const">
<return type="Image">
</return>
<description>
+ Returns an [Image] with the data from this [Texture]. [Image]s can be accessed and manipulated directly.
</description>
</method>
<method name="get_height" qualifiers="const">
@@ -95,12 +100,13 @@
<return type="bool">
</return>
<description>
+ Returns [code]true[/code] if this [Texture] has an alpha channel.
</description>
</method>
</methods>
<members>
<member name="flags" type="int" setter="set_flags" getter="get_flags" default="4">
- The texture's flags.
+ The texture's [enum Flags]. [enum Flags] are used to set various properties of the [Texture].
</member>
</members>
<constants>
diff --git a/doc/classes/Texture3D.xml b/doc/classes/Texture3D.xml
index aac55710fe..7166de5f6f 100644
--- a/doc/classes/Texture3D.xml
+++ b/doc/classes/Texture3D.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="Texture3D" inherits="TextureLayered" category="Core" version="3.2">
+<class name="Texture3D" inherits="TextureLayered" version="3.2">
<brief_description>
Texture with 3 dimensions.
</brief_description>
diff --git a/doc/classes/TextureArray.xml b/doc/classes/TextureArray.xml
index 0a9ac1fb2e..021e92049a 100644
--- a/doc/classes/TextureArray.xml
+++ b/doc/classes/TextureArray.xml
@@ -1,8 +1,10 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="TextureArray" inherits="TextureLayered" category="Core" version="3.2">
+<class name="TextureArray" inherits="TextureLayered" version="3.2">
<brief_description>
+ Array of textures stored in a single primitive.
</brief_description>
<description>
+ [TextureArray]s store an array of images in a single [Texture] primitive. Each layer of the texture array has its own mipmap chain. This makes it is a good alternative to texture atlases.
</description>
<tutorials>
</tutorials>
diff --git a/doc/classes/TextureButton.xml b/doc/classes/TextureButton.xml
index 201f8ddb8e..cd63fd8c87 100644
--- a/doc/classes/TextureButton.xml
+++ b/doc/classes/TextureButton.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="TextureButton" inherits="BaseButton" category="Core" version="3.2">
+<class name="TextureButton" inherits="BaseButton" version="3.2">
<brief_description>
Texture-based button. Supports Pressed, Hover, Disabled and Focused states.
</brief_description>
diff --git a/doc/classes/TextureLayered.xml b/doc/classes/TextureLayered.xml
index 232df8f59b..4e6449222e 100644
--- a/doc/classes/TextureLayered.xml
+++ b/doc/classes/TextureLayered.xml
@@ -1,8 +1,10 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="TextureLayered" inherits="Resource" category="Core" version="3.2">
+<class name="TextureLayered" inherits="Resource" version="3.2">
<brief_description>
+ Base class for 3D texture types.
</brief_description>
<description>
+ Base class for [Texture3D] and [TextureArray]. Cannot be used directly.
</description>
<tutorials>
</tutorials>
diff --git a/doc/classes/TextureProgress.xml b/doc/classes/TextureProgress.xml
index c16d6f58bc..39fbc65aec 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.2">
+<class name="TextureProgress" inherits="Range" version="3.2">
<brief_description>
Texture-based progress bar. Useful for loading screens and life or stamina bars.
</brief_description>
diff --git a/doc/classes/TextureRect.xml b/doc/classes/TextureRect.xml
index 997a686e82..aa911fc453 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.2">
+<class name="TextureRect" inherits="Control" version="3.2">
<brief_description>
Control for drawing textures.
</brief_description>
diff --git a/doc/classes/Theme.xml b/doc/classes/Theme.xml
index b9aa74ebb7..cc01f89812 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.2">
+<class name="Theme" inherits="Resource" version="3.2">
<brief_description>
Theme for controls.
</brief_description>
diff --git a/doc/classes/Thread.xml b/doc/classes/Thread.xml
index e56ea2325e..f57cc53d54 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.2">
+<class name="Thread" inherits="Reference" version="3.2">
<brief_description>
A unit of execution in a process.
</brief_description>
diff --git a/doc/classes/TileMap.xml b/doc/classes/TileMap.xml
index 7376f624cb..72072824f1 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.2">
+<class name="TileMap" inherits="Node2D" version="3.2">
<brief_description>
Node for 2D tile-based maps.
</brief_description>
diff --git a/doc/classes/TileSet.xml b/doc/classes/TileSet.xml
index 8ad62f0fcb..0c7a68339b 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.2">
+<class name="TileSet" inherits="Resource" version="3.2">
<brief_description>
Tile library for tilemaps.
</brief_description>
@@ -749,6 +749,8 @@
</constant>
<constant name="BIND_LEFT" value="8" enum="AutotileBindings">
</constant>
+ <constant name="BIND_CENTER" value="16" enum="AutotileBindings">
+ </constant>
<constant name="BIND_RIGHT" value="32" enum="AutotileBindings">
</constant>
<constant name="BIND_BOTTOMLEFT" value="64" enum="AutotileBindings">
diff --git a/doc/classes/Timer.xml b/doc/classes/Timer.xml
index 9e8eb3314d..ef87b8291d 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.2">
+<class name="Timer" inherits="Node" version="3.2">
<brief_description>
A countdown timer.
</brief_description>
diff --git a/doc/classes/ToolButton.xml b/doc/classes/ToolButton.xml
index d5edbe3972..6a5ab52608 100644
--- a/doc/classes/ToolButton.xml
+++ b/doc/classes/ToolButton.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="ToolButton" inherits="Button" category="Core" version="3.2">
+<class name="ToolButton" inherits="Button" version="3.2">
<brief_description>
Flat button helper class.
</brief_description>
@@ -21,26 +21,37 @@
</constants>
<theme_items>
<theme_item name="disabled" type="StyleBox">
+ [StyleBox] used when the [ToolButton] is disabled.
</theme_item>
<theme_item name="focus" type="StyleBox">
+ [StyleBox] used when the [ToolButton] is focused. It is displayed over the current [StyleBox], so using [StyleboxEmpty] will just disable the focus visual effect.
</theme_item>
<theme_item name="font" type="Font">
+ [Font] of the [ToolButton]'s text.
</theme_item>
<theme_item name="font_color" type="Color" default="Color( 0.88, 0.88, 0.88, 1 )">
+ Default text [Color] of the [ToolButton].
</theme_item>
<theme_item name="font_color_disabled" type="Color" default="Color( 0.9, 0.95, 1, 0.3 )">
+ Text [Color] used when the [ToolButton] is disabled.
</theme_item>
<theme_item name="font_color_hover" type="Color" default="Color( 0.94, 0.94, 0.94, 1 )">
+ Text [Color] used when the [ToolButton] is being hovered.
</theme_item>
<theme_item name="font_color_pressed" type="Color" default="Color( 1, 1, 1, 1 )">
+ Text [Color] used when the [ToolButton] is being pressed.
</theme_item>
<theme_item name="hover" type="StyleBox">
+ [StyleBox] used when the [ToolButton] is being hovered.
</theme_item>
<theme_item name="hseparation" type="int" default="3">
+ The horizontal space between [ToolButton]'s icon and text.
</theme_item>
<theme_item name="normal" type="StyleBox">
+ Default [StyleBox] for the [ToolButton].
</theme_item>
<theme_item name="pressed" type="StyleBox">
+ [StyleBox] used when the [ToolButton] is being pressed.
</theme_item>
</theme_items>
</class>
diff --git a/doc/classes/TouchScreenButton.xml b/doc/classes/TouchScreenButton.xml
index 3d18534a68..91591cce35 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.2">
+<class name="TouchScreenButton" inherits="Node2D" version="3.2">
<brief_description>
Button for touch screen devices.
</brief_description>
diff --git a/doc/classes/Transform.xml b/doc/classes/Transform.xml
index 2e447ca1ba..13e34667ac 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.2">
+<class name="Transform" version="3.2">
<brief_description>
3D transformation (3×4 matrix).
</brief_description>
diff --git a/doc/classes/Transform2D.xml b/doc/classes/Transform2D.xml
index afc8b04dc7..4a7ba61160 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.2">
+<class name="Transform2D" version="3.2">
<brief_description>
2D transformation (3×2 matrix).
</brief_description>
diff --git a/doc/classes/Translation.xml b/doc/classes/Translation.xml
index e2599b9695..fe4068d8ca 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.2">
+<class name="Translation" inherits="Resource" version="3.2">
<brief_description>
Language Translation.
</brief_description>
diff --git a/doc/classes/TranslationServer.xml b/doc/classes/TranslationServer.xml
index f43d3bb24e..7fcc4b7773 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.2">
+<class name="TranslationServer" inherits="Object" version="3.2">
<brief_description>
Server that manages all translations.
</brief_description>
diff --git a/doc/classes/Tree.xml b/doc/classes/Tree.xml
index aa1f8638d2..f920ae5a06 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.2">
+<class name="Tree" inherits="Control" version="3.2">
<brief_description>
Control to show a tree of items.
</brief_description>
diff --git a/doc/classes/TreeItem.xml b/doc/classes/TreeItem.xml
index f32c5527fd..7be2fafdba 100644
--- a/doc/classes/TreeItem.xml
+++ b/doc/classes/TreeItem.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="TreeItem" inherits="Object" category="Core" version="3.2">
+<class name="TreeItem" inherits="Object" version="3.2">
<brief_description>
Control for a single item inside a [Tree].
</brief_description>
diff --git a/doc/classes/TriangleMesh.xml b/doc/classes/TriangleMesh.xml
index 2125aa5e17..d380d3be02 100644
--- a/doc/classes/TriangleMesh.xml
+++ b/doc/classes/TriangleMesh.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="TriangleMesh" inherits="Reference" category="Core" version="3.2">
+<class name="TriangleMesh" inherits="Reference" version="3.2">
<brief_description>
Internal mesh type.
</brief_description>
diff --git a/doc/classes/Tween.xml b/doc/classes/Tween.xml
index cf75e71358..97d436c707 100644
--- a/doc/classes/Tween.xml
+++ b/doc/classes/Tween.xml
@@ -1,10 +1,11 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="Tween" inherits="Node" category="Core" version="3.2">
+<class name="Tween" inherits="Node" version="3.2">
<brief_description>
Smoothly animates a node's properties over time.
</brief_description>
<description>
Tweens are useful for animations requiring a numerical property to be interpolated over a range of values. The name [i]tween[/i] comes from [i]in-betweening[/i], an animation technique where you specify [i]keyframes[/i] and the computer interpolates the frames that appear between them.
+ [Tween] is more suited than [AnimationPlayer] for animations where you don't know the final values in advance. For example, interpolating a dynamically-chosen camera zoom value is best done with a [Tween] node; it would be difficult to do the same thing with an [AnimationPlayer] node.
Here is a brief usage example that causes a 2D node to move smoothly between two positions:
[codeblock]
var tween = get_node("Tween")
diff --git a/doc/classes/UndoRedo.xml b/doc/classes/UndoRedo.xml
index 52ff7ef38b..cebaf100ce 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.2">
+<class name="UndoRedo" inherits="Object" version="3.2">
<brief_description>
Helper to manage undo/redo operations in the editor or custom tools.
</brief_description>
diff --git a/doc/classes/VBoxContainer.xml b/doc/classes/VBoxContainer.xml
index 4709772615..2b7dc90149 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.2">
+<class name="VBoxContainer" inherits="BoxContainer" version="3.2">
<brief_description>
Vertical box container.
</brief_description>
@@ -14,6 +14,7 @@
</constants>
<theme_items>
<theme_item name="separation" type="int" default="4">
+ The vertical space between the [VBoxContainer]'s elements.
</theme_item>
</theme_items>
</class>
diff --git a/doc/classes/VScrollBar.xml b/doc/classes/VScrollBar.xml
index add695ef2c..1d160aa4a4 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.2">
+<class name="VScrollBar" inherits="ScrollBar" version="3.2">
<brief_description>
Vertical scroll bar.
</brief_description>
diff --git a/doc/classes/VSeparator.xml b/doc/classes/VSeparator.xml
index e618c2b84b..d895664001 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.2">
+<class name="VSeparator" inherits="Separator" version="3.2">
<brief_description>
Vertical version of [Separator].
</brief_description>
diff --git a/doc/classes/VSlider.xml b/doc/classes/VSlider.xml
index 8590c7bc3b..4639598997 100644
--- a/doc/classes/VSlider.xml
+++ b/doc/classes/VSlider.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="VSlider" inherits="Slider" category="Core" version="3.2">
+<class name="VSlider" inherits="Slider" version="3.2">
<brief_description>
Vertical slider.
</brief_description>
diff --git a/doc/classes/VSplitContainer.xml b/doc/classes/VSplitContainer.xml
index da2a54dca0..c90acf5f4c 100644
--- a/doc/classes/VSplitContainer.xml
+++ b/doc/classes/VSplitContainer.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="VSplitContainer" inherits="SplitContainer" category="Core" version="3.2">
+<class name="VSplitContainer" inherits="SplitContainer" version="3.2">
<brief_description>
Vertical split container.
</brief_description>
diff --git a/doc/classes/Variant.xml b/doc/classes/Variant.xml
index 1976e812ba..e56b51a607 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.2">
+<class name="Variant" version="3.2">
<brief_description>
The most important data type in Godot.
</brief_description>
diff --git a/doc/classes/Vector2.xml b/doc/classes/Vector2.xml
index b23c69de60..0ee727acaa 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.2">
+<class name="Vector2" version="3.2">
<brief_description>
Vector used for 2D math.
</brief_description>
diff --git a/doc/classes/Vector3.xml b/doc/classes/Vector3.xml
index d838e6d2f7..214a332edc 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.2">
+<class name="Vector3" version="3.2">
<brief_description>
Vector used for 3D math.
</brief_description>
diff --git a/doc/classes/VehicleBody.xml b/doc/classes/VehicleBody.xml
index 1803d4e197..3b99bf9ed1 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.2">
+<class name="VehicleBody" inherits="RigidBody" version="3.2">
<brief_description>
Physics body that simulates the behavior of a car.
</brief_description>
diff --git a/doc/classes/VehicleWheel.xml b/doc/classes/VehicleWheel.xml
index ba33f66e77..b611d00da0 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.2">
+<class name="VehicleWheel" inherits="Spatial" version="3.2">
<brief_description>
Physics object that simulates the behavior of a wheel.
</brief_description>
diff --git a/doc/classes/VideoPlayer.xml b/doc/classes/VideoPlayer.xml
index 3ed53aa447..88843a1a0c 100644
--- a/doc/classes/VideoPlayer.xml
+++ b/doc/classes/VideoPlayer.xml
@@ -1,10 +1,11 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="VideoPlayer" inherits="Control" category="Core" version="3.2">
+<class name="VideoPlayer" inherits="Control" version="3.2">
<brief_description>
Control for playing video streams.
</brief_description>
<description>
- Control node for playing video streams. Supported formats are [url=https://www.webmproject.org/]WebM[/url] and [url=https://www.theora.org/]Ogg Theora[/url].
+ Control node for playing video streams using [VideoStream] resources.
+ Supported video formats are [url=https://www.webmproject.org/]WebM[/url] ([VideoStreamWebm]), [url=https://www.theora.org/]Ogg Theora[/url] ([VideoStreamTheora]), and any format exposed via a GDNative plugin using [VideoStreamGDNative].
</description>
<tutorials>
</tutorials>
@@ -61,7 +62,7 @@
Audio bus to use for sound playback.
</member>
<member name="expand" type="bool" setter="set_expand" getter="has_expand" default="true">
- If [code]true[/code], the video scales to the control size.
+ If [code]true[/code], the video scales to the control size. Otherwise, the control minimum size will be automatically adjusted to match the video stream's dimensions.
</member>
<member name="paused" type="bool" setter="set_paused" getter="is_paused" default="false">
If [code]true[/code], the video is paused.
diff --git a/doc/classes/VideoStream.xml b/doc/classes/VideoStream.xml
index 7772c61e85..a5b3aac558 100644
--- a/doc/classes/VideoStream.xml
+++ b/doc/classes/VideoStream.xml
@@ -1,9 +1,10 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="VideoStream" inherits="Resource" category="Core" version="3.2">
+<class name="VideoStream" inherits="Resource" version="3.2">
<brief_description>
Base resource for video streams.
</brief_description>
<description>
+ Base resource type for all video streams. Classes that derive from [VideoStream] can all be used as resource types to play back videos in [VideoPlayer].
</description>
<tutorials>
</tutorials>
diff --git a/doc/classes/Viewport.xml b/doc/classes/Viewport.xml
index 58dd36daa5..c9afc9b1bf 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.2">
+<class name="Viewport" inherits="Node" version="3.2">
<brief_description>
Creates a sub-view into the screen.
</brief_description>
@@ -73,6 +73,7 @@
<argument index="0" name="quadrant" type="int">
</argument>
<description>
+ Returns the [enum ShadowAtlasQuadrantSubdiv] of the specified quadrant.
</description>
</method>
<method name="get_size_override" qualifiers="const">
@@ -156,12 +157,14 @@
<argument index="0" name="rect" type="Rect2">
</argument>
<description>
+ Attaches this [Viewport] to the root [Viewport] with the specified rectangle. This bypasses the need for another node to display this [Viewport] but makes you responsible for updating the position of this [Viewport] manually.
</description>
</method>
<method name="set_input_as_handled">
<return type="void">
</return>
<description>
+ Stops the input from propagating further down the [SceneTree].
</description>
</method>
<method name="set_shadow_atlas_quadrant_subdiv">
@@ -172,6 +175,7 @@
<argument index="1" name="subdiv" type="int" enum="Viewport.ShadowAtlasQuadrantSubdiv">
</argument>
<description>
+ Sets the number of subdivisions to use in the specified quadrant. A higher number of subdivisions allows you to have more shadows in the scene at once, but reduces the quality of the shadows. A good practice is to have quadrants with a varying number of subdivisions and to have as few subdivisions as possible.
</description>
</method>
<method name="set_size_override">
@@ -243,13 +247,13 @@
<member name="handle_input_locally" type="bool" setter="set_handle_input_locally" getter="is_handling_input_locally" default="true">
</member>
<member name="hdr" type="bool" setter="set_hdr" getter="get_hdr" default="true">
- If [code]true[/code], the viewport rendering will receive benefits from High Dynamic Range algorithm.
+ If [code]true[/code], the viewport rendering will receive benefits from High Dynamic Range algorithm. High Dynamic Range allows the viewport to receive values that are outside the 0-1 range. In Godot HDR uses 16 bits, meaning it does not store the full range of a floating point number.
</member>
<member name="keep_3d_linear" type="bool" setter="set_keep_3d_linear" getter="get_keep_3d_linear" default="false">
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" default="0">
- The multisample anti-aliasing mode.
+ The multisample anti-aliasing mode. A higher number results in smoother edges at the cost of significantly worse performance. A value of 4 is best unless targeting very high-end systems.
</member>
<member name="own_world" type="bool" setter="set_use_own_world" getter="is_using_own_world" default="false">
If [code]true[/code], the viewport will use [World] defined in [code]world[/code] property.
@@ -270,16 +274,16 @@
If [code]true[/code], the result of rendering will be flipped vertically.
</member>
<member name="shadow_atlas_quad_0" type="int" setter="set_shadow_atlas_quadrant_subdiv" getter="get_shadow_atlas_quadrant_subdiv" enum="Viewport.ShadowAtlasQuadrantSubdiv" default="2">
- The subdivision amount of first quadrant on shadow atlas.
+ The subdivision amount of the first quadrant on the shadow atlas.
</member>
<member name="shadow_atlas_quad_1" type="int" setter="set_shadow_atlas_quadrant_subdiv" getter="get_shadow_atlas_quadrant_subdiv" enum="Viewport.ShadowAtlasQuadrantSubdiv" default="2">
- The subdivision amount of second quadrant on shadow atlas.
+ The subdivision amount of the second quadrant on the shadow atlas.
</member>
<member name="shadow_atlas_quad_2" type="int" setter="set_shadow_atlas_quadrant_subdiv" getter="get_shadow_atlas_quadrant_subdiv" enum="Viewport.ShadowAtlasQuadrantSubdiv" default="3">
- The subdivision amount of third quadrant on shadow atlas.
+ The subdivision amount of the third quadrant on the shadow atlas.
</member>
<member name="shadow_atlas_quad_3" type="int" setter="set_shadow_atlas_quadrant_subdiv" getter="get_shadow_atlas_quadrant_subdiv" enum="Viewport.ShadowAtlasQuadrantSubdiv" default="4">
- The subdivision amount of fourth quadrant on shadow atlas.
+ The subdivision amount of the fourth quadrant on the shadow atlas.
</member>
<member name="shadow_atlas_size" type="int" setter="set_shadow_atlas_size" getter="get_shadow_atlas_size" default="0">
The shadow atlas' resolution (used for omni and spot lights). The value will be rounded up to the nearest power of 2.
@@ -332,18 +336,25 @@
Always update the render target.
</constant>
<constant name="SHADOW_ATLAS_QUADRANT_SUBDIV_DISABLED" value="0" enum="ShadowAtlasQuadrantSubdiv">
+ This quadrant will not be used.
</constant>
<constant name="SHADOW_ATLAS_QUADRANT_SUBDIV_1" value="1" enum="ShadowAtlasQuadrantSubdiv">
+ This quadrant will only be used by one shadow map.
</constant>
<constant name="SHADOW_ATLAS_QUADRANT_SUBDIV_4" value="2" enum="ShadowAtlasQuadrantSubdiv">
+ This quadrant will be split in 4 and used by up to 4 shadow maps.
</constant>
<constant name="SHADOW_ATLAS_QUADRANT_SUBDIV_16" value="3" enum="ShadowAtlasQuadrantSubdiv">
+ This quadrant will be split 16 ways and used by up to 16 shadow maps.
</constant>
<constant name="SHADOW_ATLAS_QUADRANT_SUBDIV_64" value="4" enum="ShadowAtlasQuadrantSubdiv">
+ This quadrant will be split 64 ways and used by up to 64 shadow maps.
</constant>
<constant name="SHADOW_ATLAS_QUADRANT_SUBDIV_256" value="5" enum="ShadowAtlasQuadrantSubdiv">
+ This quadrant will be split 256 ways and used by up to 256 shadow maps. Unless the [member shadow_atlas_size] is very high, the shadows in this quadrant will be very low resolution.
</constant>
<constant name="SHADOW_ATLAS_QUADRANT_SUBDIV_1024" value="6" enum="ShadowAtlasQuadrantSubdiv">
+ This quadrant will be split 1024 ways and used by up to 1024 shadow maps. Unless the [member shadow_atlas_size] is very high, the shadows in this quadrant will be very low resolution.
</constant>
<constant name="SHADOW_ATLAS_QUADRANT_SUBDIV_MAX" value="7" enum="ShadowAtlasQuadrantSubdiv">
Represents the size of the [enum ShadowAtlasQuadrantSubdiv] enum.
@@ -385,20 +396,28 @@
Multisample anti-aliasing mode disabled. This is the default value.
</constant>
<constant name="MSAA_2X" value="1" enum="MSAA">
+ Use 2x Multisample Antialiasing.
</constant>
<constant name="MSAA_4X" value="2" enum="MSAA">
+ Use 4x Multisample Antialiasing.
</constant>
<constant name="MSAA_8X" value="3" enum="MSAA">
+ Use 8x Multisample Antialiasing. Likely unsupported on low-end and older hardware.
</constant>
<constant name="MSAA_16X" value="4" enum="MSAA">
+ Use 16x Multisample Antialiasing. Likely unsupported on medium and low-end hardware.
</constant>
<constant name="USAGE_2D" value="0" enum="Usage">
+ Allocates all buffers needed for drawing 2D scenes. This takes less VRAM than the 3D usage modes.
</constant>
<constant name="USAGE_2D_NO_SAMPLING" value="1" enum="Usage">
+ Allocates buffers needed for 2D scenes without allocating a buffer for screen copy. Accordingly, you cannot read from the screen. Of the [enum Usage] types, this requires the least VRAM.
</constant>
<constant name="USAGE_3D" value="2" enum="Usage">
+ Allocates full buffers for drawing 3D scenes and all 3D effects including buffers needed for 2D scenes and effects.
</constant>
<constant name="USAGE_3D_NO_EFFECTS" value="3" enum="Usage">
+ Allocates buffers needed for drawing 3D scenes. But does not allocate buffers needed for reading from the screen and post-processing effects. Saves some VRAM.
</constant>
<constant name="CLEAR_MODE_ALWAYS" value="0" enum="ClearMode">
Always clear the render target before drawing.
diff --git a/doc/classes/ViewportContainer.xml b/doc/classes/ViewportContainer.xml
index 2f1bc5d799..35fc18346e 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.2">
+<class name="ViewportContainer" inherits="Container" version="3.2">
<brief_description>
Control for holding [Viewport]s.
</brief_description>
diff --git a/doc/classes/ViewportTexture.xml b/doc/classes/ViewportTexture.xml
index f4994699a3..9ee9edd4bd 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.2">
+<class name="ViewportTexture" inherits="Texture" version="3.2">
<brief_description>
Texture which displays the content of a [Viewport].
</brief_description>
diff --git a/doc/classes/VisibilityEnabler.xml b/doc/classes/VisibilityEnabler.xml
index 8636d9c8d2..74484f6d39 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.2">
+<class name="VisibilityEnabler" inherits="VisibilityNotifier" version="3.2">
<brief_description>
Enables certain nodes only when visible.
</brief_description>
diff --git a/doc/classes/VisibilityEnabler2D.xml b/doc/classes/VisibilityEnabler2D.xml
index 095a377ccb..a0b520fb38 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.2">
+<class name="VisibilityEnabler2D" inherits="VisibilityNotifier2D" version="3.2">
<brief_description>
Enables certain nodes only when visible.
</brief_description>
diff --git a/doc/classes/VisibilityNotifier.xml b/doc/classes/VisibilityNotifier.xml
index 4cbfa7ba76..9a2a6a986c 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.2">
+<class name="VisibilityNotifier" inherits="Spatial" version="3.2">
<brief_description>
Detects when the node is visible on screen.
</brief_description>
diff --git a/doc/classes/VisibilityNotifier2D.xml b/doc/classes/VisibilityNotifier2D.xml
index 7e1d933c44..bbff3bb460 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.2">
+<class name="VisibilityNotifier2D" inherits="Node2D" version="3.2">
<brief_description>
Detects when the node is visible on screen.
</brief_description>
diff --git a/doc/classes/VisualInstance.xml b/doc/classes/VisualInstance.xml
index 692e051674..ce78f79ca8 100644
--- a/doc/classes/VisualInstance.xml
+++ b/doc/classes/VisualInstance.xml
@@ -1,10 +1,10 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="VisualInstance" inherits="Spatial" category="Core" version="3.2">
+<class name="VisualInstance" inherits="Spatial" version="3.2">
<brief_description>
Parent of all visual 3D nodes.
</brief_description>
<description>
- The VisualInstance is used to connect a resource to a visual representation. All visual 3D nodes inherit from the VisualInstance. In general, you should not access the VisualInstance properties directly as they are accessed and managed by the nodes that inherit from VisualInstance. VisualInstance is the node representation of the [VisualServer] instance.
+ The [VisualInstance] is used to connect a resource to a visual representation. All visual 3D nodes inherit from the [VisualInstance]. In general, you should not access the [VisualInstance] properties directly as they are accessed and managed by the nodes that inherit from [VisualInstance]. [VisualInstance] is the node representation of the [VisualServer] instance.
</description>
<tutorials>
</tutorials>
@@ -13,21 +13,21 @@
<return type="AABB">
</return>
<description>
- Returns the [AABB] (also known as the bounding box) for this VisualInstance.
+ 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>
- Returns the RID of the resource associated with this VisualInstance. For example, if the Node is a [MeshInstance], this will return the RID of the associated [Mesh].
+ Returns the RID of the resource associated with this [VisualInstance]. For example, if the Node is a [MeshInstance], this will return the RID of the associated [Mesh].
</description>
</method>
<method name="get_instance" qualifiers="const">
<return type="RID">
</return>
<description>
- Returns the RID of this instance. This RID is the same as the RID returned by [method VisualServer.instance_create]. This RID is needed if you want to call [VisualServer] functions directly on this VisualInstance.
+ Returns the RID of this instance. This RID is the same as the RID returned by [method VisualServer.instance_create]. This RID is needed if you want to call [VisualServer] functions directly on this [VisualInstance].
</description>
</method>
<method name="get_layer_mask_bit" qualifiers="const">
@@ -43,8 +43,8 @@
<return type="AABB">
</return>
<description>
- Returns the transformed [AABB] (also known as the bounding box) for this VisualInstance.
- Transformed in this case means the [AABB] plus the position, rotation, and scale of the [Spatial]s [Transform]
+ Returns the transformed [AABB] (also known as the bounding box) for this [VisualInstance].
+ Transformed in this case means the [AABB] plus the position, rotation, and scale of the [Spatial]'s [Transform].
</description>
</method>
<method name="set_base">
@@ -53,7 +53,7 @@
<argument index="0" name="base" type="RID">
</argument>
<description>
- Sets the resource that is instantiated by this VisualInstance, which changes how the engine handles the VisualInstance under the hood. Equivalent to [method VisualServer.instance_set_base].
+ Sets the resource that is instantiated by this [VisualInstance], which changes how the engine handles the [VisualInstance] under the hood. Equivalent to [method VisualServer.instance_set_base].
</description>
</method>
<method name="set_layer_mask_bit">
@@ -70,8 +70,8 @@
</methods>
<members>
<member name="layers" type="int" setter="set_layer_mask" getter="get_layer_mask" default="1">
- The render layer(s) this VisualInstance is drawn on.
- This object will only be visible for [Camera]s whose cull mask includes the render object this VisualInstance is set to.
+ The render layer(s) this [VisualInstance] is drawn on.
+ This object will only be visible for [Camera]s whose cull mask includes the render object this [VisualInstance] is set to.
</member>
</members>
<constants>
diff --git a/doc/classes/VisualServer.xml b/doc/classes/VisualServer.xml
index c00710ade9..3258e8cec4 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.2">
+<class name="VisualServer" inherits="Object" version="3.2">
<brief_description>
Server for anything visible.
</brief_description>
@@ -15,7 +15,7 @@
In 2D, all visible objects are some form of canvas item. In order to be visible, a canvas item needs to be the child of a canvas attached to a viewport, or it needs to be the child of another canvas item that is eventually attached to the canvas.
</description>
<tutorials>
- <link>http://docs.godotengine.org/en/latest/tutorials/optimization/using_servers.html</link>
+ <link>https://docs.godotengine.org/en/latest/tutorials/optimization/using_servers.html</link>
</tutorials>
<methods>
<method name="black_bars_set_images">
@@ -64,7 +64,7 @@
<argument index="1" name="layers" type="int">
</argument>
<description>
- Sets the cull mask associated with this camera. The cull mask describes which 3d layers are rendered by this camera. Equivalent to [member Camera.cull_mask].
+ Sets the cull mask associated with this camera. The cull mask describes which 3D layers are rendered by this camera. Equivalent to [member Camera.cull_mask].
</description>
</method>
<method name="camera_set_environment">
@@ -1679,7 +1679,7 @@
<argument index="0" name="feature" type="String">
</argument>
<description>
- Returns [code]true[/code] if the OS supports a certain feature. Features might be s3tc, etc, etc2 and pvrtc,
+ Returns [code]true[/code] if the OS supports a certain feature. Features might be [code]s3tc[/code], [code]etc[/code], [code]etc2[/code] and [code]pvrtc[/code].
</description>
</method>
<method name="immediate_begin">
@@ -3018,7 +3018,7 @@
<argument index="0" name="particles" type="RID">
</argument>
<description>
- Reset the particles on the next update. Equivalent to [method Particles.restart]
+ Reset the particles on the next update. Equivalent to [method Particles.restart].
</description>
</method>
<method name="particles_set_amount">
@@ -3897,7 +3897,7 @@
<argument index="2" name="screen" type="int" default="0">
</argument>
<description>
- 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.
+ Copies viewport to a region of the screen specified by [code]rect[/code]. If [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():
diff --git a/doc/classes/VisualShader.xml b/doc/classes/VisualShader.xml
index 15216948e4..4bacee4426 100644
--- a/doc/classes/VisualShader.xml
+++ b/doc/classes/VisualShader.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="VisualShader" inherits="Shader" category="Core" version="3.2">
+<class name="VisualShader" inherits="Shader" version="3.2">
<brief_description>
A custom shader program with a visual editor.
</brief_description>
diff --git a/doc/classes/VisualShaderNode.xml b/doc/classes/VisualShaderNode.xml
index 9b0c6b2604..14176e009b 100644
--- a/doc/classes/VisualShaderNode.xml
+++ b/doc/classes/VisualShaderNode.xml
@@ -1,18 +1,36 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="VisualShaderNode" inherits="Resource" category="Core" version="3.2">
+<class name="VisualShaderNode" inherits="Resource" version="3.2">
<brief_description>
</brief_description>
<description>
</description>
<tutorials>
+ <link>https://docs.godotengine.org/en/latest/tutorials/shading/visual_shaders.html</link>
</tutorials>
<methods>
+ <method name="get_default_input_values" qualifiers="const">
+ <return type="Array">
+ </return>
+ <description>
+ Returns an [Array] containing default values for all of the input ports of the node in the form [code][index0, value0, index1, value1, ...][/code].
+ </description>
+ </method>
<method name="get_input_port_default_value" qualifiers="const">
<return type="Variant">
</return>
<argument index="0" name="port" type="int">
</argument>
<description>
+ Returns the default value of the input [code]port[/code].
+ </description>
+ </method>
+ <method name="set_default_input_values">
+ <return type="void">
+ </return>
+ <argument index="0" name="values" type="Array">
+ </argument>
+ <description>
+ Sets the default input ports values using an [Array] of the form [code][index0, value0, index1, value1, ...][/code]. For example: [code][0, Vector3(0, 0, 0), 1, Vector3(0, 0, 0)][/code].
</description>
</method>
<method name="set_input_port_default_value">
@@ -23,18 +41,19 @@
<argument index="1" name="value" type="Variant">
</argument>
<description>
+ Sets the default value for the selected input [code]port[/code].
</description>
</method>
</methods>
<members>
- <member name="default_input_values" type="Array" setter="_set_default_input_values" getter="_get_default_input_values" default="[ 0, Vector3( 0, 0, 0 ) ]">
- </member>
<member name="output_port_for_preview" type="int" setter="set_output_port_for_preview" getter="get_output_port_for_preview" default="-1">
+ Sets the output port index which will be showed for preview. If set to [code]-1[/code] no port will be open for preview.
</member>
</members>
<signals>
<signal name="editor_refresh_request">
<description>
+ Emitted when the node requests an editor refresh. Currently called only in setter of [member VisualShaderNodeTexture.source], [VisualShaderNodeTexture], and [VisualShaderNodeCubeMap] (and their derivatives).
</description>
</signal>
</signals>
diff --git a/doc/classes/VisualShaderNodeBooleanConstant.xml b/doc/classes/VisualShaderNodeBooleanConstant.xml
index 2490dbbcc0..6c191fd9e3 100644
--- a/doc/classes/VisualShaderNodeBooleanConstant.xml
+++ b/doc/classes/VisualShaderNodeBooleanConstant.xml
@@ -1,8 +1,11 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="VisualShaderNodeBooleanConstant" inherits="VisualShaderNode" category="Core" version="3.2">
+<class name="VisualShaderNodeBooleanConstant" inherits="VisualShaderNode" version="3.2">
<brief_description>
+ A boolean constant to be used within the visual shader graph.
</brief_description>
<description>
+ Has only one output port and no inputs.
+ Translated to [code]bool[/code] in the shader language.
</description>
<tutorials>
</tutorials>
@@ -10,8 +13,8 @@
</methods>
<members>
<member name="constant" type="bool" setter="set_constant" getter="get_constant" default="false">
+ A boolean constant which represents a state of this node.
</member>
- <member name="default_input_values" type="Array" setter="_set_default_input_values" getter="_get_default_input_values" override="true" default="[ ]" />
</members>
<constants>
</constants>
diff --git a/doc/classes/VisualShaderNodeBooleanUniform.xml b/doc/classes/VisualShaderNodeBooleanUniform.xml
index 518c7ba3b8..0d44f04b69 100644
--- a/doc/classes/VisualShaderNodeBooleanUniform.xml
+++ b/doc/classes/VisualShaderNodeBooleanUniform.xml
@@ -1,8 +1,10 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="VisualShaderNodeBooleanUniform" inherits="VisualShaderNodeUniform" category="Core" version="3.2">
+<class name="VisualShaderNodeBooleanUniform" inherits="VisualShaderNodeUniform" version="3.2">
<brief_description>
+ A boolean uniform to be used within the visual shader graph.
</brief_description>
<description>
+ Translated to [code]uniform bool[/code] in the shader language.
</description>
<tutorials>
</tutorials>
diff --git a/doc/classes/VisualShaderNodeColorConstant.xml b/doc/classes/VisualShaderNodeColorConstant.xml
index f58d1d8e76..d7f846993b 100644
--- a/doc/classes/VisualShaderNodeColorConstant.xml
+++ b/doc/classes/VisualShaderNodeColorConstant.xml
@@ -1,8 +1,11 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="VisualShaderNodeColorConstant" inherits="VisualShaderNode" category="Core" version="3.2">
+<class name="VisualShaderNodeColorConstant" inherits="VisualShaderNode" version="3.2">
<brief_description>
+ A [Color] constant to be used within the visual shader graph.
</brief_description>
<description>
+ Has two output ports representing RGB and alpha channels of [Color].
+ Translated to [code]vec3 rgb[/code] and [code]float alpha[/code] in the shader language.
</description>
<tutorials>
</tutorials>
@@ -10,8 +13,8 @@
</methods>
<members>
<member name="constant" type="Color" setter="set_constant" getter="get_constant" default="Color( 1, 1, 1, 1 )">
+ A [Color] constant which represents a state of this node.
</member>
- <member name="default_input_values" type="Array" setter="_set_default_input_values" getter="_get_default_input_values" override="true" default="[ ]" />
</members>
<constants>
</constants>
diff --git a/doc/classes/VisualShaderNodeColorFunc.xml b/doc/classes/VisualShaderNodeColorFunc.xml
index b37a669ee9..7cbbfcac53 100644
--- a/doc/classes/VisualShaderNodeColorFunc.xml
+++ b/doc/classes/VisualShaderNodeColorFunc.xml
@@ -1,8 +1,10 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="VisualShaderNodeColorFunc" inherits="VisualShaderNode" category="Core" version="3.2">
+<class name="VisualShaderNodeColorFunc" inherits="VisualShaderNode" version="3.2">
<brief_description>
+ A [Color] function to be used within the visual shader graph.
</brief_description>
<description>
+ Accept a [Color] to the input port and transform it according to [member function].
</description>
<tutorials>
</tutorials>
@@ -10,12 +12,29 @@
</methods>
<members>
<member name="function" type="int" setter="set_function" getter="get_function" enum="VisualShaderNodeColorFunc.Function" default="0">
+ A function to be applied to the input color. See [enum Function] for options.
</member>
</members>
<constants>
<constant name="FUNC_GRAYSCALE" value="0" enum="Function">
+ Converts the color to grayscale using the following formula:
+ [codeblock]
+ vec3 c = input;
+ float max1 = max(c.r, c.g);
+ float max2 = max(max1, c.b);
+ float max3 = max(max1, max2);
+ return vec3(max3, max3, max3);
+ [/codeblock]
</constant>
<constant name="FUNC_SEPIA" value="1" enum="Function">
+ Applies sepia tone effect using the following formula:
+ [codeblock]
+ vec3 c = input;
+ float r = (c.r * 0.393) + (c.g * 0.769) + (c.b * 0.189);
+ float g = (c.r * 0.349) + (c.g * 0.686) + (c.b * 0.168);
+ float b = (c.r * 0.272) + (c.g * 0.534) + (c.b * 0.131);
+ return vec3(r, g, b);
+ [/codeblock]
</constant>
</constants>
</class>
diff --git a/doc/classes/VisualShaderNodeColorOp.xml b/doc/classes/VisualShaderNodeColorOp.xml
index 9997e9c83c..302cc0e88f 100644
--- a/doc/classes/VisualShaderNodeColorOp.xml
+++ b/doc/classes/VisualShaderNodeColorOp.xml
@@ -1,36 +1,98 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="VisualShaderNodeColorOp" inherits="VisualShaderNode" category="Core" version="3.2">
+<class name="VisualShaderNodeColorOp" inherits="VisualShaderNode" version="3.2">
<brief_description>
+ A [Color] operator to be used within the visual shader graph.
</brief_description>
<description>
+ Applies [member operator] to two color inputs.
</description>
<tutorials>
</tutorials>
<methods>
</methods>
<members>
- <member name="default_input_values" type="Array" setter="_set_default_input_values" getter="_get_default_input_values" override="true" default="[ 0, Vector3( 0, 0, 0 ), 1, Vector3( 0, 0, 0 ) ]" />
<member name="operator" type="int" setter="set_operator" getter="get_operator" enum="VisualShaderNodeColorOp.Operator" default="0">
+ An operator to be applied to the inputs. See [enum Operator] for options.
</member>
</members>
<constants>
<constant name="OP_SCREEN" value="0" enum="Operator">
+ Produce a screen effect with the following formula:
+ [codeblock]
+ result = vec3(1.0) - (vec3(1.0) - a) * (vec3(1.0) - b);
+ [/codeblock]
</constant>
<constant name="OP_DIFFERENCE" value="1" enum="Operator">
+ Produce a difference effect with the following formula:
+ [codeblock]
+ result = abs(a - b);
+ [/codeblock]
</constant>
<constant name="OP_DARKEN" value="2" enum="Operator">
+ Produce a darken effect with the following formula:
+ [codeblock]
+ result = min(a, b);
+ [/codeblock]
</constant>
<constant name="OP_LIGHTEN" value="3" enum="Operator">
+ Produce a lighten effect with the following formula:
+ [codeblock]
+ result = max(a, b);
+ [/codeblock]
</constant>
<constant name="OP_OVERLAY" value="4" enum="Operator">
+ Produce an overlay effect with the following formula:
+ [codeblock]
+ for (int i = 0; i &lt; 3; i++) {
+ float base = a[i];
+ float blend = b[i];
+ if (base &lt; 0.5) {
+ result[i] = 2.0 * base * blend;
+ } else {
+ result[i] = 1.0 - 2.0 * (1.0 - blend) * (1.0 - base);
+ }
+ }
+ [/codeblock]
</constant>
<constant name="OP_DODGE" value="5" enum="Operator">
+ Produce a dodge effect with the following formula:
+ [codeblock]
+ result = a / (vec3(1.0) - b);
+ [/codeblock]
</constant>
<constant name="OP_BURN" value="6" enum="Operator">
+ Produce a burn effect with the following formula:
+ [codeblock]
+ result = vec3(1.0) - (vec3(1.0) - a) / b;
+ [/codeblock]
</constant>
<constant name="OP_SOFT_LIGHT" value="7" enum="Operator">
+ Produce a soft light effect with the following formula:
+ [codeblock]
+ for (int i = 0; i &lt; 3; i++) {
+ float base = a[i];
+ float blend = b[i];
+ if (base &lt; 0.5) {
+ result[i] = base * (blend + 0.5);
+ } else {
+ result[i] = 1.0 - (1.0 - base) * (1.0 - (blend - 0.5));
+ }
+ }
+ [/codeblock]
</constant>
<constant name="OP_HARD_LIGHT" value="8" enum="Operator">
+ Produce a hard light effect with the following formula:
+ [codeblock]
+ for (int i = 0; i &lt; 3; i++) {
+ float base = a[i];
+ float blend = b[i];
+ if (base &lt; 0.5) {
+ result[i] = base * (2.0 * blend);
+ } else {
+ result[i] = 1.0 - (1.0 - base) * (1.0 - 2.0 * (blend - 0.5));
+ }
+ }
+ [/codeblock]
</constant>
</constants>
</class>
diff --git a/doc/classes/VisualShaderNodeColorUniform.xml b/doc/classes/VisualShaderNodeColorUniform.xml
index ec61729782..594a85085a 100644
--- a/doc/classes/VisualShaderNodeColorUniform.xml
+++ b/doc/classes/VisualShaderNodeColorUniform.xml
@@ -1,8 +1,10 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="VisualShaderNodeColorUniform" inherits="VisualShaderNodeUniform" category="Core" version="3.2">
+<class name="VisualShaderNodeColorUniform" inherits="VisualShaderNodeUniform" version="3.2">
<brief_description>
+ A [Color] uniform to be used within the visual shader graph.
</brief_description>
<description>
+ Translated to [code]uniform vec4[/code] in the shader language.
</description>
<tutorials>
</tutorials>
diff --git a/doc/classes/VisualShaderNodeCompare.xml b/doc/classes/VisualShaderNodeCompare.xml
index b1106998e9..320ac72fcb 100644
--- a/doc/classes/VisualShaderNodeCompare.xml
+++ b/doc/classes/VisualShaderNodeCompare.xml
@@ -1,8 +1,10 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="VisualShaderNodeCompare" inherits="VisualShaderNode" category="Core" version="3.2">
+<class name="VisualShaderNodeCompare" inherits="VisualShaderNode" version="3.2">
<brief_description>
+ A comparison function for common types within the visual shader graph.
</brief_description>
<description>
+ Compares [code]a[/code] and [code]b[/code] of [member type] by [member function]. Returns a boolean scalar. Translates to [code]if[/code] instruction in shader code.
</description>
<tutorials>
</tutorials>
@@ -10,37 +12,51 @@
</methods>
<members>
<member name="condition" type="int" setter="set_condition" getter="get_condition" enum="VisualShaderNodeCompare.Condition" default="0">
+ Extra condition which is applied if [member type] is set to [constant CTYPE_VECTOR].
</member>
- <member name="default_input_values" type="Array" setter="_set_default_input_values" getter="_get_default_input_values" override="true" default="[ 0, 0.0, 1, 0.0, 2, 1e-05 ]" />
<member name="function" type="int" setter="set_function" getter="get_function" enum="VisualShaderNodeCompare.Function" default="0">
+ A comparison function. See [enum Function] for options.
</member>
- <member name="type" type="int" setter="set_comparsion_type" getter="get_comparsion_type" enum="VisualShaderNodeCompare.ComparsionType" default="0">
+ <member name="type" type="int" setter="set_comparison_type" getter="get_comparison_type" enum="VisualShaderNodeCompare.ComparisonType" default="0">
+ The type to be used in the comparison. See [enum ComparisonType] for options.
</member>
</members>
<constants>
- <constant name="CTYPE_SCALAR" value="0" enum="ComparsionType">
+ <constant name="CTYPE_SCALAR" value="0" enum="ComparisonType">
+ A floating-point scalar.
</constant>
- <constant name="CTYPE_VECTOR" value="1" enum="ComparsionType">
+ <constant name="CTYPE_VECTOR" value="1" enum="ComparisonType">
+ A 3D vector type.
</constant>
- <constant name="CTYPE_BOOLEAN" value="2" enum="ComparsionType">
+ <constant name="CTYPE_BOOLEAN" value="2" enum="ComparisonType">
+ A boolean type.
</constant>
- <constant name="CTYPE_TRANSFORM" value="3" enum="ComparsionType">
+ <constant name="CTYPE_TRANSFORM" value="3" enum="ComparisonType">
+ A transform ([code]mat4[/code]) type.
</constant>
<constant name="FUNC_EQUAL" value="0" enum="Function">
+ Comparison for equality ([code]a == b[/code]).
</constant>
<constant name="FUNC_NOT_EQUAL" value="1" enum="Function">
+ Comparison for inequality ([code]a != b[/code]).
</constant>
<constant name="FUNC_GREATER_THAN" value="2" enum="Function">
+ Comparison for greater than ([code]a &gt; b[/code]). Cannot be used if [member type] set to [constant CTYPE_BOOLEAN] or [constant CTYPE_TRANSFORM].
</constant>
<constant name="FUNC_GREATER_THAN_EQUAL" value="3" enum="Function">
+ Comparison for greater than or equal ([code]a &gt;= b[/code]). Cannot be used if [member type] set to [constant CTYPE_BOOLEAN] or [constant CTYPE_TRANSFORM].
</constant>
<constant name="FUNC_LESS_THAN" value="4" enum="Function">
+ Comparison for less than ([code]a &lt; b[/code]). Cannot be used if [member type] set to [constant CTYPE_BOOLEAN] or [constant CTYPE_TRANSFORM].
</constant>
<constant name="FUNC_LESS_THAN_EQUAL" value="5" enum="Function">
+ Comparison for less than or equal ([code]a &lt; b[/code]). Cannot be used if [member type] set to [constant CTYPE_BOOLEAN] or [constant CTYPE_TRANSFORM].
</constant>
<constant name="COND_ALL" value="0" enum="Condition">
+ The result will be true if all of component in vector satisfy the comparison condition.
</constant>
<constant name="COND_ANY" value="1" enum="Condition">
+ The result will be true if any of component in vector satisfy the comparison condition.
</constant>
</constants>
</class>
diff --git a/doc/classes/VisualShaderNodeCubeMap.xml b/doc/classes/VisualShaderNodeCubeMap.xml
index 29ebe95086..fbc97b41a3 100644
--- a/doc/classes/VisualShaderNodeCubeMap.xml
+++ b/doc/classes/VisualShaderNodeCubeMap.xml
@@ -1,8 +1,10 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="VisualShaderNodeCubeMap" inherits="VisualShaderNode" category="Core" version="3.2">
+<class name="VisualShaderNodeCubeMap" inherits="VisualShaderNode" version="3.2">
<brief_description>
+ A [CubeMap] sampling node to be used within the visual shader graph.
</brief_description>
<description>
+ Translated to [code]texture(cubemap, vec3)[/code] in the shader language. Returns a color vector and alpha channel as scalar.
</description>
<tutorials>
</tutorials>
@@ -10,23 +12,30 @@
</methods>
<members>
<member name="cube_map" type="CubeMap" setter="set_cube_map" getter="get_cube_map">
+ The [CubeMap] texture to sample when using [constant SOURCE_TEXTURE] as [member source].
</member>
- <member name="default_input_values" type="Array" setter="_set_default_input_values" getter="_get_default_input_values" override="true" default="[ ]" />
<member name="source" type="int" setter="set_source" getter="get_source" enum="VisualShaderNodeCubeMap.Source" default="0">
+ Defines which source should be used for the sampling. See [enum Source] for options.
</member>
<member name="texture_type" type="int" setter="set_texture_type" getter="get_texture_type" enum="VisualShaderNodeCubeMap.TextureType" default="0">
+ Defines the type of data provided by the source texture. See [enum TextureType] for options.
</member>
</members>
<constants>
<constant name="SOURCE_TEXTURE" value="0" enum="Source">
+ Use the [CubeMap] set via [member cube_map]. If this is set to [member source], the [code]samplerCube[/code] port is ignored.
</constant>
<constant name="SOURCE_PORT" value="1" enum="Source">
+ Use the [CubeMap] sampler reference passed via the [code]samplerCube[/code] port. If this is set to [member source], the [member cube_map] texture is ignored.
</constant>
<constant name="TYPE_DATA" value="0" enum="TextureType">
+ No hints are added to the uniform declaration.
</constant>
<constant name="TYPE_COLOR" value="1" enum="TextureType">
+ Adds [code]hint_albedo[/code] as hint to the uniform declaration for proper sRGB to linear conversion.
</constant>
<constant name="TYPE_NORMALMAP" value="2" enum="TextureType">
+ Adds [code]hint_normal[/code] as hint to the uniform declaration, which internally converts the texture for proper usage as normal map.
</constant>
</constants>
</class>
diff --git a/doc/classes/VisualShaderNodeCubeMapUniform.xml b/doc/classes/VisualShaderNodeCubeMapUniform.xml
index c6b3db5a9d..0e17b6032d 100644
--- a/doc/classes/VisualShaderNodeCubeMapUniform.xml
+++ b/doc/classes/VisualShaderNodeCubeMapUniform.xml
@@ -1,8 +1,10 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="VisualShaderNodeCubeMapUniform" inherits="VisualShaderNodeTextureUniform" category="Core" version="3.2">
+<class name="VisualShaderNodeCubeMapUniform" inherits="VisualShaderNodeTextureUniform" version="3.2">
<brief_description>
+ A [CubeMap] uniform node to be used within the visual shader graph.
</brief_description>
<description>
+ Translated to [code]uniform samplerCube[/code] in the shader language. The output value can be used as port for [VisualShaderNodeCubeMap].
</description>
<tutorials>
</tutorials>
diff --git a/doc/classes/VisualShaderNodeCustom.xml b/doc/classes/VisualShaderNodeCustom.xml
index 5219dcb77b..1bbc112770 100644
--- a/doc/classes/VisualShaderNodeCustom.xml
+++ b/doc/classes/VisualShaderNodeCustom.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="VisualShaderNodeCustom" inherits="VisualShaderNode" category="Core" version="3.2">
+<class name="VisualShaderNodeCustom" inherits="VisualShaderNode" version="3.2">
<brief_description>
Virtual class to define custom [VisualShaderNode]s for use in the Visual Shader Editor.
</brief_description>
@@ -13,7 +13,7 @@
[/codeblock]
</description>
<tutorials>
- <link>http://docs.godotengine.org/en/latest/tutorials/plugins/editor/visual_shader_plugins.html</link>
+ <link>https://docs.godotengine.org/en/latest/tutorials/plugins/editor/visual_shader_plugins.html</link>
</tutorials>
<methods>
<method name="_get_category" qualifiers="virtual">
@@ -144,9 +144,6 @@
</description>
</method>
</methods>
- <members>
- <member name="default_input_values" type="Array" setter="_set_default_input_values" getter="_get_default_input_values" override="true" default="[ ]" />
- </members>
<constants>
</constants>
</class>
diff --git a/doc/classes/VisualShaderNodeDeterminant.xml b/doc/classes/VisualShaderNodeDeterminant.xml
index 4ea7e5ed6e..5acd08ebd9 100644
--- a/doc/classes/VisualShaderNodeDeterminant.xml
+++ b/doc/classes/VisualShaderNodeDeterminant.xml
@@ -1,16 +1,15 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="VisualShaderNodeDeterminant" inherits="VisualShaderNode" category="Core" version="3.2">
+<class name="VisualShaderNodeDeterminant" inherits="VisualShaderNode" version="3.2">
<brief_description>
+ Calculates the determinant of a [Transform] within the visual shader graph.
</brief_description>
<description>
+ Translates to [code]deteminant(x)[/code] in the shader language.
</description>
<tutorials>
</tutorials>
<methods>
</methods>
- <members>
- <member name="default_input_values" type="Array" setter="_set_default_input_values" getter="_get_default_input_values" override="true" default="[ 0, Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0 ) ]" />
- </members>
<constants>
</constants>
</class>
diff --git a/doc/classes/VisualShaderNodeDotProduct.xml b/doc/classes/VisualShaderNodeDotProduct.xml
index 4c2bae39a1..ef5b5b9f7f 100644
--- a/doc/classes/VisualShaderNodeDotProduct.xml
+++ b/doc/classes/VisualShaderNodeDotProduct.xml
@@ -1,16 +1,15 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="VisualShaderNodeDotProduct" inherits="VisualShaderNode" category="Core" version="3.2">
+<class name="VisualShaderNodeDotProduct" inherits="VisualShaderNode" version="3.2">
<brief_description>
+ Calculates a dot product of two vectors within the visual shader graph.
</brief_description>
<description>
+ Translates to [code]dot(a, b)[/code] in the shader language.
</description>
<tutorials>
</tutorials>
<methods>
</methods>
- <members>
- <member name="default_input_values" type="Array" setter="_set_default_input_values" getter="_get_default_input_values" override="true" default="[ 0, Vector3( 0, 0, 0 ), 1, Vector3( 0, 0, 0 ) ]" />
- </members>
<constants>
</constants>
</class>
diff --git a/doc/classes/VisualShaderNodeExpression.xml b/doc/classes/VisualShaderNodeExpression.xml
index 9727b8698b..e1ba1f0b20 100644
--- a/doc/classes/VisualShaderNodeExpression.xml
+++ b/doc/classes/VisualShaderNodeExpression.xml
@@ -1,22 +1,19 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="VisualShaderNodeExpression" inherits="VisualShaderNodeGroupBase" category="Core" version="3.2">
+<class name="VisualShaderNodeExpression" inherits="VisualShaderNodeGroupBase" version="3.2">
<brief_description>
+ A custom visual shader graph expression written in Godot Shading Language.
</brief_description>
<description>
+ Custom Godot Shading Language expression, with a custom amount of input and output ports.
+ The provided code is directly injected into the graph's matching shader function ([code]vertex[/code], [code]fragment[/code], or [code]light[/code]), so it cannot be used to to declare functions, varyings, uniforms, or global constants. See [VisualShaderNodeGlobalExpression] for such global definitions.
</description>
<tutorials>
</tutorials>
<methods>
- <method name="build">
- <return type="void">
- </return>
- <description>
- </description>
- </method>
</methods>
<members>
- <member name="editable" type="bool" setter="set_editable" getter="is_editable" override="true" default="true" />
<member name="expression" type="String" setter="set_expression" getter="get_expression" default="&quot;&quot;">
+ An expression in Godot Shading Language, which will be injected at the start of the graph's matching shader function ([code]vertex[/code], [code]fragment[/code], or [code]light[/code]), and thus cannot be used to declare functions, varyings, uniforms, or global constants.
</member>
</members>
<constants>
diff --git a/doc/classes/VisualShaderNodeFaceForward.xml b/doc/classes/VisualShaderNodeFaceForward.xml
index 9c755cc6de..59eef17e24 100644
--- a/doc/classes/VisualShaderNodeFaceForward.xml
+++ b/doc/classes/VisualShaderNodeFaceForward.xml
@@ -1,16 +1,15 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="VisualShaderNodeFaceForward" inherits="VisualShaderNode" category="Core" version="3.2">
+<class name="VisualShaderNodeFaceForward" inherits="VisualShaderNode" version="3.2">
<brief_description>
+ Returns the vector that points in the same direction as a reference vector within the visual shader graph.
</brief_description>
<description>
+ Translates to [code]faceforward(N, I, Nref)[/code] in the shader language. The function has three vector parameters: [code]N[/code], the vector to orient, [code]I[/code], the incident vector, and [code]Nref[/code], the reference vector. If the dot product of [code]I[/code] and [code]Nref[/code] is smaller than zero the return value is [code]N[/code]. Otherwise [code]-N[/code] is returned.
</description>
<tutorials>
</tutorials>
<methods>
</methods>
- <members>
- <member name="default_input_values" type="Array" setter="_set_default_input_values" getter="_get_default_input_values" override="true" default="[ 0, Vector3( 0, 0, 0 ), 1, Vector3( 0, 0, 0 ), 2, Vector3( 0, 0, 0 ) ]" />
- </members>
<constants>
</constants>
</class>
diff --git a/doc/classes/VisualShaderNodeFresnel.xml b/doc/classes/VisualShaderNodeFresnel.xml
index b71f5c6f37..c0451d75cb 100644
--- a/doc/classes/VisualShaderNodeFresnel.xml
+++ b/doc/classes/VisualShaderNodeFresnel.xml
@@ -1,16 +1,15 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="VisualShaderNodeFresnel" inherits="VisualShaderNode" category="Core" version="3.2">
+<class name="VisualShaderNodeFresnel" inherits="VisualShaderNode" version="3.2">
<brief_description>
+ A Fresnel effect to be used within the visual shader graph.
</brief_description>
<description>
+ Returns falloff based on the dot product of surface normal and view direction of camera (pass associated inputs to it).
</description>
<tutorials>
</tutorials>
<methods>
</methods>
- <members>
- <member name="default_input_values" type="Array" setter="_set_default_input_values" getter="_get_default_input_values" override="true" default="[ 2, false, 3, 1.0 ]" />
- </members>
<constants>
</constants>
</class>
diff --git a/doc/classes/VisualShaderNodeGlobalExpression.xml b/doc/classes/VisualShaderNodeGlobalExpression.xml
index f008c639cf..7245b121a0 100644
--- a/doc/classes/VisualShaderNodeGlobalExpression.xml
+++ b/doc/classes/VisualShaderNodeGlobalExpression.xml
@@ -1,16 +1,15 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="VisualShaderNodeGlobalExpression" inherits="VisualShaderNodeExpression" category="Core" version="3.2">
+<class name="VisualShaderNodeGlobalExpression" inherits="VisualShaderNodeExpression" version="3.2">
<brief_description>
+ A custom global visual shader graph expression written in Godot Shading Language.
</brief_description>
<description>
+ Custom Godot Shader Language expression, which is placed on top of the generated shader. You can place various function definitions inside to call later in [VisualShaderNodeExpression]s (which are injected in the main shader functions). You can also declare varyings, uniforms and global constants.
</description>
<tutorials>
</tutorials>
<methods>
</methods>
- <members>
- <member name="editable" type="bool" setter="set_editable" getter="is_editable" override="true" default="false" />
- </members>
<constants>
</constants>
</class>
diff --git a/doc/classes/VisualShaderNodeGroupBase.xml b/doc/classes/VisualShaderNodeGroupBase.xml
index 511a56b7a6..b20e8fe4ea 100644
--- a/doc/classes/VisualShaderNodeGroupBase.xml
+++ b/doc/classes/VisualShaderNodeGroupBase.xml
@@ -1,8 +1,10 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="VisualShaderNodeGroupBase" inherits="VisualShaderNode" category="Core" version="3.2">
+<class name="VisualShaderNodeGroupBase" inherits="VisualShaderNode" version="3.2">
<brief_description>
+ Base class for a family of nodes with variable amount of input and output ports within the visual shader graph.
</brief_description>
<description>
+ Currently, has no direct usage, use the derived classes instead.
</description>
<tutorials>
</tutorials>
@@ -17,6 +19,7 @@
<argument index="2" name="name" type="String">
</argument>
<description>
+ Adds an input port with the specified [code]type[/code] (see [enum VisualShaderNode.PortType]) and [code]name[/code].
</description>
</method>
<method name="add_output_port">
@@ -29,68 +32,63 @@
<argument index="2" name="name" type="String">
</argument>
<description>
+ Adds an output port with the specified [code]type[/code] (see [enum VisualShaderNode.PortType]) and [code]name[/code].
</description>
</method>
<method name="clear_input_ports">
<return type="void">
</return>
<description>
+ Removes all previously specified input ports.
</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>
+ Removes all previously specified output ports.
</description>
</method>
<method name="get_free_input_port_id" qualifiers="const">
<return type="int">
</return>
<description>
+ Returns a free input port ID which can be used in [method add_input_port].
</description>
</method>
<method name="get_free_output_port_id" qualifiers="const">
<return type="int">
</return>
<description>
+ Returns a free output port ID which can be used in [method add_output_port].
</description>
</method>
<method name="get_input_port_count" qualifiers="const">
<return type="int">
</return>
<description>
+ Returns the number of input ports in use. Alternative for [method get_free_input_port_id].
</description>
</method>
<method name="get_inputs" qualifiers="const">
<return type="String">
</return>
<description>
+ Returns a [String] description of the input ports as as colon-separated list using the format [code]id,type,name;[/code] (see [method add_input_port]).
</description>
</method>
<method name="get_output_port_count" qualifiers="const">
<return type="int">
</return>
<description>
+ Returns the number of output ports in use. Alternative for [method get_free_output_port_id].
</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>
+ Returns a [String] description of the output ports as as colon-separated list using the format [code]id,type,name;[/code] (see [method add_output_port]).
</description>
</method>
<method name="has_input_port" qualifiers="const">
@@ -99,6 +97,7 @@
<argument index="0" name="id" type="int">
</argument>
<description>
+ Returns [code]true[/code] if the specified input port exists.
</description>
</method>
<method name="has_output_port" qualifiers="const">
@@ -107,6 +106,7 @@
<argument index="0" name="id" type="int">
</argument>
<description>
+ Returns [code]true[/code] if the specified output port exists.
</description>
</method>
<method name="is_valid_port_name" qualifiers="const">
@@ -115,6 +115,7 @@
<argument index="0" name="name" type="String">
</argument>
<description>
+ Returns [code]true[/code] if the specified port name does not override an existed port name and is valid within the shader.
</description>
</method>
<method name="remove_input_port">
@@ -123,6 +124,7 @@
<argument index="0" name="id" type="int">
</argument>
<description>
+ Removes the specified input port.
</description>
</method>
<method name="remove_output_port">
@@ -131,16 +133,7 @@
<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>
+ Removes the specified output port.
</description>
</method>
<method name="set_input_port_name">
@@ -151,6 +144,7 @@
<argument index="1" name="name" type="String">
</argument>
<description>
+ Renames the specified input port.
</description>
</method>
<method name="set_input_port_type">
@@ -161,6 +155,7 @@
<argument index="1" name="type" type="int">
</argument>
<description>
+ Sets the specified input port's type (see [enum VisualShaderNode.PortType]).
</description>
</method>
<method name="set_inputs">
@@ -169,6 +164,7 @@
<argument index="0" name="inputs" type="String">
</argument>
<description>
+ Defines all input ports using a [String] formatted as a colon-separated list: [code]id,type,name;[/code] (see [method add_input_port]).
</description>
</method>
<method name="set_output_port_name">
@@ -179,6 +175,7 @@
<argument index="1" name="name" type="String">
</argument>
<description>
+ Renames the specified output port.
</description>
</method>
<method name="set_output_port_type">
@@ -189,6 +186,7 @@
<argument index="1" name="type" type="int">
</argument>
<description>
+ Sets the specified output port's type (see [enum VisualShaderNode.PortType]).
</description>
</method>
<method name="set_outputs">
@@ -197,20 +195,13 @@
<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>
+ Defines all output ports using a [String] formatted as a colon-separated list: [code]id,type,name;[/code] (see [method add_output_port]).
</description>
</method>
</methods>
<members>
- <member name="default_input_values" type="Array" setter="_set_default_input_values" getter="_get_default_input_values" override="true" default="[ ]" />
- <member name="editable" type="bool" setter="set_editable" getter="is_editable" default="false">
+ <member name="size" type="Vector2" setter="set_size" getter="get_size" default="Vector2( 0, 0 )">
+ The size of the node in the visual shader graph.
</member>
</members>
<constants>
diff --git a/doc/classes/VisualShaderNodeIf.xml b/doc/classes/VisualShaderNodeIf.xml
index 6900cdf81b..63e2660a85 100644
--- a/doc/classes/VisualShaderNodeIf.xml
+++ b/doc/classes/VisualShaderNodeIf.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="VisualShaderNodeIf" inherits="VisualShaderNode" category="Core" version="3.2">
+<class name="VisualShaderNodeIf" inherits="VisualShaderNode" version="3.2">
<brief_description>
</brief_description>
<description>
@@ -8,9 +8,6 @@
</tutorials>
<methods>
</methods>
- <members>
- <member name="default_input_values" type="Array" setter="_set_default_input_values" getter="_get_default_input_values" override="true" default="[ 0, 0.0, 1, 0.0, 2, 1e-05, 3, Vector3( 0, 0, 0 ), 4, Vector3( 0, 0, 0 ), 5, Vector3( 0, 0, 0 ) ]" />
- </members>
<constants>
</constants>
</class>
diff --git a/doc/classes/VisualShaderNodeInput.xml b/doc/classes/VisualShaderNodeInput.xml
index bfcd4c734c..47e8d12f28 100644
--- a/doc/classes/VisualShaderNodeInput.xml
+++ b/doc/classes/VisualShaderNodeInput.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="VisualShaderNodeInput" inherits="VisualShaderNode" category="Core" version="3.2">
+<class name="VisualShaderNodeInput" inherits="VisualShaderNode" version="3.2">
<brief_description>
</brief_description>
<description>
@@ -15,7 +15,6 @@
</method>
</methods>
<members>
- <member name="default_input_values" type="Array" setter="_set_default_input_values" getter="_get_default_input_values" override="true" default="[ ]" />
<member name="input_name" type="String" setter="set_input_name" getter="get_input_name" default="&quot;[None]&quot;">
</member>
</members>
diff --git a/doc/classes/VisualShaderNodeIs.xml b/doc/classes/VisualShaderNodeIs.xml
index c221e60b75..c6f395dddb 100644
--- a/doc/classes/VisualShaderNodeIs.xml
+++ b/doc/classes/VisualShaderNodeIs.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="VisualShaderNodeIs" inherits="VisualShaderNode" category="Core" version="3.2">
+<class name="VisualShaderNodeIs" inherits="VisualShaderNode" version="3.2">
<brief_description>
</brief_description>
<description>
@@ -9,7 +9,6 @@
<methods>
</methods>
<members>
- <member name="default_input_values" type="Array" setter="_set_default_input_values" getter="_get_default_input_values" override="true" default="[ 0, 0.0 ]" />
<member name="function" type="int" setter="set_function" getter="get_function" enum="VisualShaderNodeIs.Function" default="0">
</member>
</members>
diff --git a/doc/classes/VisualShaderNodeOuterProduct.xml b/doc/classes/VisualShaderNodeOuterProduct.xml
index 6111084b44..653f68dbf5 100644
--- a/doc/classes/VisualShaderNodeOuterProduct.xml
+++ b/doc/classes/VisualShaderNodeOuterProduct.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="VisualShaderNodeOuterProduct" inherits="VisualShaderNode" category="Core" version="3.2">
+<class name="VisualShaderNodeOuterProduct" inherits="VisualShaderNode" version="3.2">
<brief_description>
</brief_description>
<description>
@@ -8,9 +8,6 @@
</tutorials>
<methods>
</methods>
- <members>
- <member name="default_input_values" type="Array" setter="_set_default_input_values" getter="_get_default_input_values" override="true" default="[ 0, Vector3( 0, 0, 0 ), 1, Vector3( 0, 0, 0 ) ]" />
- </members>
<constants>
</constants>
</class>
diff --git a/doc/classes/VisualShaderNodeOutput.xml b/doc/classes/VisualShaderNodeOutput.xml
index ff109a949e..0f013877de 100644
--- a/doc/classes/VisualShaderNodeOutput.xml
+++ b/doc/classes/VisualShaderNodeOutput.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="VisualShaderNodeOutput" inherits="VisualShaderNode" category="Core" version="3.2">
+<class name="VisualShaderNodeOutput" inherits="VisualShaderNode" version="3.2">
<brief_description>
</brief_description>
<description>
diff --git a/doc/classes/VisualShaderNodeScalarClamp.xml b/doc/classes/VisualShaderNodeScalarClamp.xml
index 927aeb01ce..8b5d85b430 100644
--- a/doc/classes/VisualShaderNodeScalarClamp.xml
+++ b/doc/classes/VisualShaderNodeScalarClamp.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="VisualShaderNodeScalarClamp" inherits="VisualShaderNode" category="Core" version="3.2">
+<class name="VisualShaderNodeScalarClamp" inherits="VisualShaderNode" version="3.2">
<brief_description>
</brief_description>
<description>
@@ -8,9 +8,6 @@
</tutorials>
<methods>
</methods>
- <members>
- <member name="default_input_values" type="Array" setter="_set_default_input_values" getter="_get_default_input_values" override="true" default="[ 0, 0.0, 1, 0.0, 2, 1.0 ]" />
- </members>
<constants>
</constants>
</class>
diff --git a/doc/classes/VisualShaderNodeScalarConstant.xml b/doc/classes/VisualShaderNodeScalarConstant.xml
index c4ac65aa48..aa22a8bf31 100644
--- a/doc/classes/VisualShaderNodeScalarConstant.xml
+++ b/doc/classes/VisualShaderNodeScalarConstant.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="VisualShaderNodeScalarConstant" inherits="VisualShaderNode" category="Core" version="3.2">
+<class name="VisualShaderNodeScalarConstant" inherits="VisualShaderNode" version="3.2">
<brief_description>
</brief_description>
<description>
@@ -11,7 +11,6 @@
<members>
<member name="constant" type="float" setter="set_constant" getter="get_constant" default="0.0">
</member>
- <member name="default_input_values" type="Array" setter="_set_default_input_values" getter="_get_default_input_values" override="true" default="[ ]" />
</members>
<constants>
</constants>
diff --git a/doc/classes/VisualShaderNodeScalarDerivativeFunc.xml b/doc/classes/VisualShaderNodeScalarDerivativeFunc.xml
index 795054637e..55b3b36964 100644
--- a/doc/classes/VisualShaderNodeScalarDerivativeFunc.xml
+++ b/doc/classes/VisualShaderNodeScalarDerivativeFunc.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="VisualShaderNodeScalarDerivativeFunc" inherits="VisualShaderNode" category="Core" version="3.2">
+<class name="VisualShaderNodeScalarDerivativeFunc" inherits="VisualShaderNode" version="3.2">
<brief_description>
</brief_description>
<description>
@@ -9,7 +9,6 @@
<methods>
</methods>
<members>
- <member name="default_input_values" type="Array" setter="_set_default_input_values" getter="_get_default_input_values" override="true" default="[ 0, 0.0 ]" />
<member name="function" type="int" setter="set_function" getter="get_function" enum="VisualShaderNodeScalarDerivativeFunc.Function" default="0">
</member>
</members>
diff --git a/doc/classes/VisualShaderNodeScalarFunc.xml b/doc/classes/VisualShaderNodeScalarFunc.xml
index 81ccf8aeb6..3930f3f96d 100644
--- a/doc/classes/VisualShaderNodeScalarFunc.xml
+++ b/doc/classes/VisualShaderNodeScalarFunc.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="VisualShaderNodeScalarFunc" inherits="VisualShaderNode" category="Core" version="3.2">
+<class name="VisualShaderNodeScalarFunc" inherits="VisualShaderNode" version="3.2">
<brief_description>
</brief_description>
<description>
@@ -9,7 +9,6 @@
<methods>
</methods>
<members>
- <member name="default_input_values" type="Array" setter="_set_default_input_values" getter="_get_default_input_values" override="true" default="[ 0, 0.0 ]" />
<member name="function" type="int" setter="set_function" getter="get_function" enum="VisualShaderNodeScalarFunc.Function" default="13">
</member>
</members>
diff --git a/doc/classes/VisualShaderNodeScalarInterp.xml b/doc/classes/VisualShaderNodeScalarInterp.xml
index 7e40304b04..09b842f08e 100644
--- a/doc/classes/VisualShaderNodeScalarInterp.xml
+++ b/doc/classes/VisualShaderNodeScalarInterp.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="VisualShaderNodeScalarInterp" inherits="VisualShaderNode" category="Core" version="3.2">
+<class name="VisualShaderNodeScalarInterp" inherits="VisualShaderNode" version="3.2">
<brief_description>
</brief_description>
<description>
@@ -8,9 +8,6 @@
</tutorials>
<methods>
</methods>
- <members>
- <member name="default_input_values" type="Array" setter="_set_default_input_values" getter="_get_default_input_values" override="true" default="[ 0, 0.0, 1, 1.0, 2, 0.5 ]" />
- </members>
<constants>
</constants>
</class>
diff --git a/doc/classes/VisualShaderNodeScalarOp.xml b/doc/classes/VisualShaderNodeScalarOp.xml
index 3ff56bffaa..912793422f 100644
--- a/doc/classes/VisualShaderNodeScalarOp.xml
+++ b/doc/classes/VisualShaderNodeScalarOp.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="VisualShaderNodeScalarOp" inherits="VisualShaderNode" category="Core" version="3.2">
+<class name="VisualShaderNodeScalarOp" inherits="VisualShaderNode" version="3.2">
<brief_description>
</brief_description>
<description>
@@ -9,7 +9,6 @@
<methods>
</methods>
<members>
- <member name="default_input_values" type="Array" setter="_set_default_input_values" getter="_get_default_input_values" override="true" default="[ 0, 0.0, 1, 0.0 ]" />
<member name="operator" type="int" setter="set_operator" getter="get_operator" enum="VisualShaderNodeScalarOp.Operator" default="0">
</member>
</members>
diff --git a/doc/classes/VisualShaderNodeScalarSmoothStep.xml b/doc/classes/VisualShaderNodeScalarSmoothStep.xml
index e71bb16f6f..07a9b9bae0 100644
--- a/doc/classes/VisualShaderNodeScalarSmoothStep.xml
+++ b/doc/classes/VisualShaderNodeScalarSmoothStep.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="VisualShaderNodeScalarSmoothStep" inherits="VisualShaderNode" category="Core" version="3.2">
+<class name="VisualShaderNodeScalarSmoothStep" inherits="VisualShaderNode" version="3.2">
<brief_description>
</brief_description>
<description>
@@ -8,9 +8,6 @@
</tutorials>
<methods>
</methods>
- <members>
- <member name="default_input_values" type="Array" setter="_set_default_input_values" getter="_get_default_input_values" override="true" default="[ 0, 0.0, 1, 0.0, 2, 0.0 ]" />
- </members>
<constants>
</constants>
</class>
diff --git a/doc/classes/VisualShaderNodeScalarSwitch.xml b/doc/classes/VisualShaderNodeScalarSwitch.xml
index 2828f42b47..2828f151df 100644
--- a/doc/classes/VisualShaderNodeScalarSwitch.xml
+++ b/doc/classes/VisualShaderNodeScalarSwitch.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="VisualShaderNodeScalarSwitch" inherits="VisualShaderNodeSwitch" category="Core" version="3.2">
+<class name="VisualShaderNodeScalarSwitch" inherits="VisualShaderNodeSwitch" version="3.2">
<brief_description>
</brief_description>
<description>
@@ -8,9 +8,6 @@
</tutorials>
<methods>
</methods>
- <members>
- <member name="default_input_values" type="Array" setter="_set_default_input_values" getter="_get_default_input_values" override="true" default="[ 0, false, 1, 1.0, 2, 0.0 ]" />
- </members>
<constants>
</constants>
</class>
diff --git a/doc/classes/VisualShaderNodeScalarUniform.xml b/doc/classes/VisualShaderNodeScalarUniform.xml
index bdbb02561b..96c9c9f47a 100644
--- a/doc/classes/VisualShaderNodeScalarUniform.xml
+++ b/doc/classes/VisualShaderNodeScalarUniform.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="VisualShaderNodeScalarUniform" inherits="VisualShaderNodeUniform" category="Core" version="3.2">
+<class name="VisualShaderNodeScalarUniform" inherits="VisualShaderNodeUniform" version="3.2">
<brief_description>
</brief_description>
<description>
diff --git a/doc/classes/VisualShaderNodeSwitch.xml b/doc/classes/VisualShaderNodeSwitch.xml
index 704ac08adb..36f0f56516 100644
--- a/doc/classes/VisualShaderNodeSwitch.xml
+++ b/doc/classes/VisualShaderNodeSwitch.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="VisualShaderNodeSwitch" inherits="VisualShaderNode" category="Core" version="3.2">
+<class name="VisualShaderNodeSwitch" inherits="VisualShaderNode" version="3.2">
<brief_description>
</brief_description>
<description>
@@ -8,9 +8,6 @@
</tutorials>
<methods>
</methods>
- <members>
- <member name="default_input_values" type="Array" setter="_set_default_input_values" getter="_get_default_input_values" override="true" default="[ 0, false, 1, Vector3( 1, 1, 1 ), 2, Vector3( 0, 0, 0 ) ]" />
- </members>
<constants>
</constants>
</class>
diff --git a/doc/classes/VisualShaderNodeTexture.xml b/doc/classes/VisualShaderNodeTexture.xml
index 4150b36c9c..8a97d8bfb6 100644
--- a/doc/classes/VisualShaderNodeTexture.xml
+++ b/doc/classes/VisualShaderNodeTexture.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="VisualShaderNodeTexture" inherits="VisualShaderNode" category="Core" version="3.2">
+<class name="VisualShaderNodeTexture" inherits="VisualShaderNode" version="3.2">
<brief_description>
</brief_description>
<description>
@@ -9,7 +9,6 @@
<methods>
</methods>
<members>
- <member name="default_input_values" type="Array" setter="_set_default_input_values" getter="_get_default_input_values" override="true" default="[ ]" />
<member name="source" type="int" setter="set_source" getter="get_source" enum="VisualShaderNodeTexture.Source" default="0">
</member>
<member name="texture" type="Texture" setter="set_texture" getter="get_texture">
diff --git a/doc/classes/VisualShaderNodeTextureUniform.xml b/doc/classes/VisualShaderNodeTextureUniform.xml
index 3d58ec88c5..ffb3e93561 100644
--- a/doc/classes/VisualShaderNodeTextureUniform.xml
+++ b/doc/classes/VisualShaderNodeTextureUniform.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="VisualShaderNodeTextureUniform" inherits="VisualShaderNodeUniform" category="Core" version="3.2">
+<class name="VisualShaderNodeTextureUniform" inherits="VisualShaderNodeUniform" version="3.2">
<brief_description>
</brief_description>
<description>
diff --git a/doc/classes/VisualShaderNodeTextureUniformTriplanar.xml b/doc/classes/VisualShaderNodeTextureUniformTriplanar.xml
index d4e142651e..9e14501fb8 100644
--- a/doc/classes/VisualShaderNodeTextureUniformTriplanar.xml
+++ b/doc/classes/VisualShaderNodeTextureUniformTriplanar.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="VisualShaderNodeTextureUniformTriplanar" inherits="VisualShaderNodeTextureUniform" category="Core" version="3.2">
+<class name="VisualShaderNodeTextureUniformTriplanar" inherits="VisualShaderNodeTextureUniform" version="3.2">
<brief_description>
</brief_description>
<description>
diff --git a/doc/classes/VisualShaderNodeTransformCompose.xml b/doc/classes/VisualShaderNodeTransformCompose.xml
index 0c44e6b3c5..42d3e06c0d 100644
--- a/doc/classes/VisualShaderNodeTransformCompose.xml
+++ b/doc/classes/VisualShaderNodeTransformCompose.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="VisualShaderNodeTransformCompose" inherits="VisualShaderNode" category="Core" version="3.2">
+<class name="VisualShaderNodeTransformCompose" inherits="VisualShaderNode" version="3.2">
<brief_description>
</brief_description>
<description>
@@ -8,9 +8,6 @@
</tutorials>
<methods>
</methods>
- <members>
- <member name="default_input_values" type="Array" setter="_set_default_input_values" getter="_get_default_input_values" override="true" default="[ 0, Vector3( 0, 0, 0 ), 1, Vector3( 0, 0, 0 ), 2, Vector3( 0, 0, 0 ), 3, Vector3( 0, 0, 0 ) ]" />
- </members>
<constants>
</constants>
</class>
diff --git a/doc/classes/VisualShaderNodeTransformConstant.xml b/doc/classes/VisualShaderNodeTransformConstant.xml
index 737961f8ec..a90856163d 100644
--- a/doc/classes/VisualShaderNodeTransformConstant.xml
+++ b/doc/classes/VisualShaderNodeTransformConstant.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="VisualShaderNodeTransformConstant" inherits="VisualShaderNode" category="Core" version="3.2">
+<class name="VisualShaderNodeTransformConstant" inherits="VisualShaderNode" version="3.2">
<brief_description>
</brief_description>
<description>
@@ -11,7 +11,6 @@
<members>
<member name="constant" type="Transform" setter="set_constant" getter="get_constant" default="Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0 )">
</member>
- <member name="default_input_values" type="Array" setter="_set_default_input_values" getter="_get_default_input_values" override="true" default="[ ]" />
</members>
<constants>
</constants>
diff --git a/doc/classes/VisualShaderNodeTransformDecompose.xml b/doc/classes/VisualShaderNodeTransformDecompose.xml
index 911d2e953a..a2020b32fc 100644
--- a/doc/classes/VisualShaderNodeTransformDecompose.xml
+++ b/doc/classes/VisualShaderNodeTransformDecompose.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="VisualShaderNodeTransformDecompose" inherits="VisualShaderNode" category="Core" version="3.2">
+<class name="VisualShaderNodeTransformDecompose" inherits="VisualShaderNode" version="3.2">
<brief_description>
</brief_description>
<description>
@@ -8,9 +8,6 @@
</tutorials>
<methods>
</methods>
- <members>
- <member name="default_input_values" type="Array" setter="_set_default_input_values" getter="_get_default_input_values" override="true" default="[ 0, Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0 ) ]" />
- </members>
<constants>
</constants>
</class>
diff --git a/doc/classes/VisualShaderNodeTransformFunc.xml b/doc/classes/VisualShaderNodeTransformFunc.xml
index 53b7c9f1ab..9491c091e7 100644
--- a/doc/classes/VisualShaderNodeTransformFunc.xml
+++ b/doc/classes/VisualShaderNodeTransformFunc.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="VisualShaderNodeTransformFunc" inherits="VisualShaderNode" category="Core" version="3.2">
+<class name="VisualShaderNodeTransformFunc" inherits="VisualShaderNode" version="3.2">
<brief_description>
</brief_description>
<description>
@@ -9,7 +9,6 @@
<methods>
</methods>
<members>
- <member name="default_input_values" type="Array" setter="_set_default_input_values" getter="_get_default_input_values" override="true" default="[ 0, Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0 ) ]" />
<member name="function" type="int" setter="set_function" getter="get_function" enum="VisualShaderNodeTransformFunc.Function" default="0">
</member>
</members>
diff --git a/doc/classes/VisualShaderNodeTransformMult.xml b/doc/classes/VisualShaderNodeTransformMult.xml
index f5368b3b1c..db4294af64 100644
--- a/doc/classes/VisualShaderNodeTransformMult.xml
+++ b/doc/classes/VisualShaderNodeTransformMult.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="VisualShaderNodeTransformMult" inherits="VisualShaderNode" category="Core" version="3.2">
+<class name="VisualShaderNodeTransformMult" inherits="VisualShaderNode" version="3.2">
<brief_description>
</brief_description>
<description>
@@ -9,7 +9,6 @@
<methods>
</methods>
<members>
- <member name="default_input_values" type="Array" setter="_set_default_input_values" getter="_get_default_input_values" override="true" default="[ 0, Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0 ), 1, Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0 ) ]" />
<member name="operator" type="int" setter="set_operator" getter="get_operator" enum="VisualShaderNodeTransformMult.Operator" default="0">
</member>
</members>
diff --git a/doc/classes/VisualShaderNodeTransformUniform.xml b/doc/classes/VisualShaderNodeTransformUniform.xml
index 0a28e0c1f6..08b988e03f 100644
--- a/doc/classes/VisualShaderNodeTransformUniform.xml
+++ b/doc/classes/VisualShaderNodeTransformUniform.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="VisualShaderNodeTransformUniform" inherits="VisualShaderNodeUniform" category="Core" version="3.2">
+<class name="VisualShaderNodeTransformUniform" inherits="VisualShaderNodeUniform" version="3.2">
<brief_description>
</brief_description>
<description>
diff --git a/doc/classes/VisualShaderNodeTransformVecMult.xml b/doc/classes/VisualShaderNodeTransformVecMult.xml
index 9ab9c08562..323943e52f 100644
--- a/doc/classes/VisualShaderNodeTransformVecMult.xml
+++ b/doc/classes/VisualShaderNodeTransformVecMult.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="VisualShaderNodeTransformVecMult" inherits="VisualShaderNode" category="Core" version="3.2">
+<class name="VisualShaderNodeTransformVecMult" inherits="VisualShaderNode" version="3.2">
<brief_description>
</brief_description>
<description>
@@ -9,7 +9,6 @@
<methods>
</methods>
<members>
- <member name="default_input_values" type="Array" setter="_set_default_input_values" getter="_get_default_input_values" override="true" default="[ 0, Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0 ), 1, Vector3( 0, 0, 0 ) ]" />
<member name="operator" type="int" setter="set_operator" getter="get_operator" enum="VisualShaderNodeTransformVecMult.Operator" default="0">
</member>
</members>
diff --git a/doc/classes/VisualShaderNodeUniform.xml b/doc/classes/VisualShaderNodeUniform.xml
index 05539294a0..0c822a0d89 100644
--- a/doc/classes/VisualShaderNodeUniform.xml
+++ b/doc/classes/VisualShaderNodeUniform.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="VisualShaderNodeUniform" inherits="VisualShaderNode" category="Core" version="3.2">
+<class name="VisualShaderNodeUniform" inherits="VisualShaderNode" version="3.2">
<brief_description>
</brief_description>
<description>
@@ -9,7 +9,6 @@
<methods>
</methods>
<members>
- <member name="default_input_values" type="Array" setter="_set_default_input_values" getter="_get_default_input_values" override="true" default="[ ]" />
<member name="uniform_name" type="String" setter="set_uniform_name" getter="get_uniform_name" default="&quot;&quot;">
</member>
</members>
diff --git a/doc/classes/VisualShaderNodeVec3Constant.xml b/doc/classes/VisualShaderNodeVec3Constant.xml
index 06e033cd9d..5072d085f7 100644
--- a/doc/classes/VisualShaderNodeVec3Constant.xml
+++ b/doc/classes/VisualShaderNodeVec3Constant.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="VisualShaderNodeVec3Constant" inherits="VisualShaderNode" category="Core" version="3.2">
+<class name="VisualShaderNodeVec3Constant" inherits="VisualShaderNode" version="3.2">
<brief_description>
</brief_description>
<description>
@@ -11,7 +11,6 @@
<members>
<member name="constant" type="Vector3" setter="set_constant" getter="get_constant" default="Vector3( 0, 0, 0 )">
</member>
- <member name="default_input_values" type="Array" setter="_set_default_input_values" getter="_get_default_input_values" override="true" default="[ ]" />
</members>
<constants>
</constants>
diff --git a/doc/classes/VisualShaderNodeVec3Uniform.xml b/doc/classes/VisualShaderNodeVec3Uniform.xml
index a1c9b14566..424ba2c45e 100644
--- a/doc/classes/VisualShaderNodeVec3Uniform.xml
+++ b/doc/classes/VisualShaderNodeVec3Uniform.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="VisualShaderNodeVec3Uniform" inherits="VisualShaderNodeUniform" category="Core" version="3.2">
+<class name="VisualShaderNodeVec3Uniform" inherits="VisualShaderNodeUniform" version="3.2">
<brief_description>
</brief_description>
<description>
diff --git a/doc/classes/VisualShaderNodeVectorClamp.xml b/doc/classes/VisualShaderNodeVectorClamp.xml
index 8b9a0cacff..7c60c104ca 100644
--- a/doc/classes/VisualShaderNodeVectorClamp.xml
+++ b/doc/classes/VisualShaderNodeVectorClamp.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="VisualShaderNodeVectorClamp" inherits="VisualShaderNode" category="Core" version="3.2">
+<class name="VisualShaderNodeVectorClamp" inherits="VisualShaderNode" version="3.2">
<brief_description>
</brief_description>
<description>
@@ -8,9 +8,6 @@
</tutorials>
<methods>
</methods>
- <members>
- <member name="default_input_values" type="Array" setter="_set_default_input_values" getter="_get_default_input_values" override="true" default="[ 0, Vector3( 0, 0, 0 ), 1, Vector3( 0, 0, 0 ), 2, Vector3( 1, 1, 1 ) ]" />
- </members>
<constants>
</constants>
</class>
diff --git a/doc/classes/VisualShaderNodeVectorCompose.xml b/doc/classes/VisualShaderNodeVectorCompose.xml
index 11eb4d2778..1a641820c7 100644
--- a/doc/classes/VisualShaderNodeVectorCompose.xml
+++ b/doc/classes/VisualShaderNodeVectorCompose.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="VisualShaderNodeVectorCompose" inherits="VisualShaderNode" category="Core" version="3.2">
+<class name="VisualShaderNodeVectorCompose" inherits="VisualShaderNode" version="3.2">
<brief_description>
</brief_description>
<description>
@@ -8,9 +8,6 @@
</tutorials>
<methods>
</methods>
- <members>
- <member name="default_input_values" type="Array" setter="_set_default_input_values" getter="_get_default_input_values" override="true" default="[ 0, 0.0, 1, 0.0, 2, 0.0 ]" />
- </members>
<constants>
</constants>
</class>
diff --git a/doc/classes/VisualShaderNodeVectorDecompose.xml b/doc/classes/VisualShaderNodeVectorDecompose.xml
index 30727379e6..361014c3f5 100644
--- a/doc/classes/VisualShaderNodeVectorDecompose.xml
+++ b/doc/classes/VisualShaderNodeVectorDecompose.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="VisualShaderNodeVectorDecompose" inherits="VisualShaderNode" category="Core" version="3.2">
+<class name="VisualShaderNodeVectorDecompose" inherits="VisualShaderNode" version="3.2">
<brief_description>
</brief_description>
<description>
diff --git a/doc/classes/VisualShaderNodeVectorDerivativeFunc.xml b/doc/classes/VisualShaderNodeVectorDerivativeFunc.xml
index 56f89ffc38..4e2680be1a 100644
--- a/doc/classes/VisualShaderNodeVectorDerivativeFunc.xml
+++ b/doc/classes/VisualShaderNodeVectorDerivativeFunc.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="VisualShaderNodeVectorDerivativeFunc" inherits="VisualShaderNode" category="Core" version="3.2">
+<class name="VisualShaderNodeVectorDerivativeFunc" inherits="VisualShaderNode" version="3.2">
<brief_description>
</brief_description>
<description>
diff --git a/doc/classes/VisualShaderNodeVectorDistance.xml b/doc/classes/VisualShaderNodeVectorDistance.xml
index 3b7f743864..2bd20f98fb 100644
--- a/doc/classes/VisualShaderNodeVectorDistance.xml
+++ b/doc/classes/VisualShaderNodeVectorDistance.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="VisualShaderNodeVectorDistance" inherits="VisualShaderNode" category="Core" version="3.2">
+<class name="VisualShaderNodeVectorDistance" inherits="VisualShaderNode" version="3.2">
<brief_description>
</brief_description>
<description>
@@ -8,9 +8,6 @@
</tutorials>
<methods>
</methods>
- <members>
- <member name="default_input_values" type="Array" setter="_set_default_input_values" getter="_get_default_input_values" override="true" default="[ 0, Vector3( 0, 0, 0 ), 1, Vector3( 0, 0, 0 ) ]" />
- </members>
<constants>
</constants>
</class>
diff --git a/doc/classes/VisualShaderNodeVectorFunc.xml b/doc/classes/VisualShaderNodeVectorFunc.xml
index 3725a43395..2ab7d2d7b7 100644
--- a/doc/classes/VisualShaderNodeVectorFunc.xml
+++ b/doc/classes/VisualShaderNodeVectorFunc.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="VisualShaderNodeVectorFunc" inherits="VisualShaderNode" category="Core" version="3.2">
+<class name="VisualShaderNodeVectorFunc" inherits="VisualShaderNode" version="3.2">
<brief_description>
</brief_description>
<description>
diff --git a/doc/classes/VisualShaderNodeVectorInterp.xml b/doc/classes/VisualShaderNodeVectorInterp.xml
index 7aa525cd0e..721bafa693 100644
--- a/doc/classes/VisualShaderNodeVectorInterp.xml
+++ b/doc/classes/VisualShaderNodeVectorInterp.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="VisualShaderNodeVectorInterp" inherits="VisualShaderNode" category="Core" version="3.2">
+<class name="VisualShaderNodeVectorInterp" inherits="VisualShaderNode" version="3.2">
<brief_description>
</brief_description>
<description>
@@ -8,9 +8,6 @@
</tutorials>
<methods>
</methods>
- <members>
- <member name="default_input_values" type="Array" setter="_set_default_input_values" getter="_get_default_input_values" override="true" default="[ 0, Vector3( 0, 0, 0 ), 1, Vector3( 1, 1, 1 ), 2, Vector3( 0.5, 0.5, 0.5 ) ]" />
- </members>
<constants>
</constants>
</class>
diff --git a/doc/classes/VisualShaderNodeVectorLen.xml b/doc/classes/VisualShaderNodeVectorLen.xml
index f6fdc0aff3..821358c7df 100644
--- a/doc/classes/VisualShaderNodeVectorLen.xml
+++ b/doc/classes/VisualShaderNodeVectorLen.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="VisualShaderNodeVectorLen" inherits="VisualShaderNode" category="Core" version="3.2">
+<class name="VisualShaderNodeVectorLen" inherits="VisualShaderNode" version="3.2">
<brief_description>
</brief_description>
<description>
diff --git a/doc/classes/VisualShaderNodeVectorOp.xml b/doc/classes/VisualShaderNodeVectorOp.xml
index d237ee56b0..191dd79c28 100644
--- a/doc/classes/VisualShaderNodeVectorOp.xml
+++ b/doc/classes/VisualShaderNodeVectorOp.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="VisualShaderNodeVectorOp" inherits="VisualShaderNode" category="Core" version="3.2">
+<class name="VisualShaderNodeVectorOp" inherits="VisualShaderNode" version="3.2">
<brief_description>
</brief_description>
<description>
@@ -9,7 +9,6 @@
<methods>
</methods>
<members>
- <member name="default_input_values" type="Array" setter="_set_default_input_values" getter="_get_default_input_values" override="true" default="[ 0, Vector3( 0, 0, 0 ), 1, Vector3( 0, 0, 0 ) ]" />
<member name="operator" type="int" setter="set_operator" getter="get_operator" enum="VisualShaderNodeVectorOp.Operator" default="0">
</member>
</members>
diff --git a/doc/classes/VisualShaderNodeVectorRefract.xml b/doc/classes/VisualShaderNodeVectorRefract.xml
index 453c2bf02f..14ceafe6de 100644
--- a/doc/classes/VisualShaderNodeVectorRefract.xml
+++ b/doc/classes/VisualShaderNodeVectorRefract.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="VisualShaderNodeVectorRefract" inherits="VisualShaderNode" category="Core" version="3.2">
+<class name="VisualShaderNodeVectorRefract" inherits="VisualShaderNode" version="3.2">
<brief_description>
</brief_description>
<description>
@@ -8,9 +8,6 @@
</tutorials>
<methods>
</methods>
- <members>
- <member name="default_input_values" type="Array" setter="_set_default_input_values" getter="_get_default_input_values" override="true" default="[ 0, Vector3( 0, 0, 0 ), 1, Vector3( 0, 0, 0 ), 2, 0.0 ]" />
- </members>
<constants>
</constants>
</class>
diff --git a/doc/classes/VisualShaderNodeVectorScalarMix.xml b/doc/classes/VisualShaderNodeVectorScalarMix.xml
index 4ab396a14b..cebb7af39e 100644
--- a/doc/classes/VisualShaderNodeVectorScalarMix.xml
+++ b/doc/classes/VisualShaderNodeVectorScalarMix.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="VisualShaderNodeVectorScalarMix" inherits="VisualShaderNode" category="Core" version="3.2">
+<class name="VisualShaderNodeVectorScalarMix" inherits="VisualShaderNode" version="3.2">
<brief_description>
</brief_description>
<description>
@@ -8,9 +8,6 @@
</tutorials>
<methods>
</methods>
- <members>
- <member name="default_input_values" type="Array" setter="_set_default_input_values" getter="_get_default_input_values" override="true" default="[ 0, Vector3( 0, 0, 0 ), 1, Vector3( 1, 1, 1 ), 2, 0.5 ]" />
- </members>
<constants>
</constants>
</class>
diff --git a/doc/classes/VisualShaderNodeVectorScalarSmoothStep.xml b/doc/classes/VisualShaderNodeVectorScalarSmoothStep.xml
index 2aeb8c1b53..3a9c279953 100644
--- a/doc/classes/VisualShaderNodeVectorScalarSmoothStep.xml
+++ b/doc/classes/VisualShaderNodeVectorScalarSmoothStep.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="VisualShaderNodeVectorScalarSmoothStep" inherits="VisualShaderNode" category="Core" version="3.2">
+<class name="VisualShaderNodeVectorScalarSmoothStep" inherits="VisualShaderNode" version="3.2">
<brief_description>
</brief_description>
<description>
@@ -8,9 +8,6 @@
</tutorials>
<methods>
</methods>
- <members>
- <member name="default_input_values" type="Array" setter="_set_default_input_values" getter="_get_default_input_values" override="true" default="[ 0, 0.0, 1, 0.0, 2, Vector3( 0, 0, 0 ) ]" />
- </members>
<constants>
</constants>
</class>
diff --git a/doc/classes/VisualShaderNodeVectorScalarStep.xml b/doc/classes/VisualShaderNodeVectorScalarStep.xml
index c448404b7f..8219c87a62 100644
--- a/doc/classes/VisualShaderNodeVectorScalarStep.xml
+++ b/doc/classes/VisualShaderNodeVectorScalarStep.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="VisualShaderNodeVectorScalarStep" inherits="VisualShaderNode" category="Core" version="3.2">
+<class name="VisualShaderNodeVectorScalarStep" inherits="VisualShaderNode" version="3.2">
<brief_description>
</brief_description>
<description>
@@ -8,9 +8,6 @@
</tutorials>
<methods>
</methods>
- <members>
- <member name="default_input_values" type="Array" setter="_set_default_input_values" getter="_get_default_input_values" override="true" default="[ 0, 0.0, 1, Vector3( 0, 0, 0 ) ]" />
- </members>
<constants>
</constants>
</class>
diff --git a/doc/classes/VisualShaderNodeVectorSmoothStep.xml b/doc/classes/VisualShaderNodeVectorSmoothStep.xml
index bb80832c3c..ec9674d84c 100644
--- a/doc/classes/VisualShaderNodeVectorSmoothStep.xml
+++ b/doc/classes/VisualShaderNodeVectorSmoothStep.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="VisualShaderNodeVectorSmoothStep" inherits="VisualShaderNode" category="Core" version="3.2">
+<class name="VisualShaderNodeVectorSmoothStep" inherits="VisualShaderNode" version="3.2">
<brief_description>
</brief_description>
<description>
@@ -8,9 +8,6 @@
</tutorials>
<methods>
</methods>
- <members>
- <member name="default_input_values" type="Array" setter="_set_default_input_values" getter="_get_default_input_values" override="true" default="[ 0, Vector3( 0, 0, 0 ), 1, Vector3( 0, 0, 0 ), 2, Vector3( 0, 0, 0 ) ]" />
- </members>
<constants>
</constants>
</class>
diff --git a/doc/classes/WeakRef.xml b/doc/classes/WeakRef.xml
index 6845c81a13..018c00dbd2 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.2">
+<class name="WeakRef" inherits="Reference" version="3.2">
<brief_description>
Holds an [Object], but does not contribute to the reference count if the object is a reference.
</brief_description>
diff --git a/doc/classes/WindowDialog.xml b/doc/classes/WindowDialog.xml
index 595aaeecee..e2fa1ef3f7 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.2">
+<class name="WindowDialog" inherits="Popup" version="3.2">
<brief_description>
Base class for window dialogs.
</brief_description>
diff --git a/doc/classes/World.xml b/doc/classes/World.xml
index c8e6944b83..91642ae804 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.2">
+<class name="World" inherits="Resource" version="3.2">
<brief_description>
Class that has everything pertaining to a world.
</brief_description>
diff --git a/doc/classes/World2D.xml b/doc/classes/World2D.xml
index 66ef18f8f4..dee6bc9fae 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.2">
+<class name="World2D" inherits="Resource" version="3.2">
<brief_description>
Class that has everything pertaining to a 2D world.
</brief_description>
diff --git a/doc/classes/WorldEnvironment.xml b/doc/classes/WorldEnvironment.xml
index b4524bfea0..452ae97ef7 100644
--- a/doc/classes/WorldEnvironment.xml
+++ b/doc/classes/WorldEnvironment.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="WorldEnvironment" inherits="Node" category="Core" version="3.2">
+<class name="WorldEnvironment" inherits="Node" version="3.2">
<brief_description>
Default environment properties for the entire scene (post-processing effects, lighting and background settings).
</brief_description>
diff --git a/doc/classes/X509Certificate.xml b/doc/classes/X509Certificate.xml
index 5f3e91c4e6..c3303e3211 100644
--- a/doc/classes/X509Certificate.xml
+++ b/doc/classes/X509Certificate.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="X509Certificate" inherits="Resource" category="Core" version="3.2">
+<class name="X509Certificate" inherits="Resource" version="3.2">
<brief_description>
An X509 certificate (e.g. for SSL).
</brief_description>
diff --git a/doc/classes/XMLParser.xml b/doc/classes/XMLParser.xml
index 4375b2eb62..26bfcef060 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.2">
+<class name="XMLParser" inherits="Reference" version="3.2">
<brief_description>
Low-level class for creating parsers for [url=https://en.wikipedia.org/wiki/XML]XML[/url] files.
</brief_description>
@@ -147,25 +147,25 @@
</methods>
<constants>
<constant name="NODE_NONE" value="0" enum="NodeType">
- There's no node (no file or buffer opened)
+ There's no node (no file or buffer opened).
</constant>
<constant name="NODE_ELEMENT" value="1" enum="NodeType">
- Element (tag)
+ Element (tag).
</constant>
<constant name="NODE_ELEMENT_END" value="2" enum="NodeType">
- End of element
+ End of element.
</constant>
<constant name="NODE_TEXT" value="3" enum="NodeType">
- Text node
+ Text node.
</constant>
<constant name="NODE_COMMENT" value="4" enum="NodeType">
- Comment node
+ Comment node.
</constant>
<constant name="NODE_CDATA" value="5" enum="NodeType">
- CDATA content
+ CDATA content.
</constant>
<constant name="NODE_UNKNOWN" value="6" enum="NodeType">
- Unknown node
+ Unknown node.
</constant>
</constants>
</class>
diff --git a/doc/classes/YSort.xml b/doc/classes/YSort.xml
index 6045a5713c..d79f132915 100644
--- a/doc/classes/YSort.xml
+++ b/doc/classes/YSort.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="YSort" inherits="Node2D" category="Core" version="3.2">
+<class name="YSort" inherits="Node2D" version="3.2">
<brief_description>
Sort all child nodes based on their Y positions.
</brief_description>
diff --git a/doc/classes/bool.xml b/doc/classes/bool.xml
index ba6a932d4f..5074b1fca1 100644
--- a/doc/classes/bool.xml
+++ b/doc/classes/bool.xml
@@ -1,10 +1,10 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="bool" category="Built-In Types" version="3.2">
+<class name="bool" version="3.2">
<brief_description>
Boolean built-in type.
</brief_description>
<description>
- Boolean is a built-in type. It can represent any data type that is either a true or false value. You can think of it as an switch with on or off (1 or 0) setting . It's often used as part of programming logic in condition statements like [code]if[/code] statements.
+ Boolean is a built-in type. It can represent any data type that is either a true or false value. You can think of it as an switch with on or off (1 or 0) setting. It's often used as part of programming logic in condition statements like [code]if[/code] statements.
[b]Note:[/b] In a code below [code]if can_shoot[/code] is equivalent of [code]if can_shoot == true[/code]. It is good practice to follow the natural spoken language structure when possible. Use [code]if can_shoot[/code] rather than [code]if can_shoot == true[/code] and use [code]if not can_shoot[/code] rather than [code]if can_shoot == false[/code].
[codeblock]
var can_shoot = true
diff --git a/doc/classes/float.xml b/doc/classes/float.xml
index 1571bae847..32536cd36e 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.2">
+<class name="float" version="3.2">
<brief_description>
Float built-in type.
</brief_description>
diff --git a/doc/classes/int.xml b/doc/classes/int.xml
index dad0f0d8c0..7814abb253 100644
--- a/doc/classes/int.xml
+++ b/doc/classes/int.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="int" category="Built-In Types" version="3.2">
+<class name="int" version="3.2">
<brief_description>
Integer built-in type.
</brief_description>
@@ -8,16 +8,16 @@
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 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 int.
var max_int = 9223372036854775807
- print(max_int) # 9223372036854775807, OK
+ print(max_int) # 9223372036854775807, OK.
max_int += 1
- print(max_int) # -9223372036854775808, we overflowed and wrapped around
+ print(max_int) # -9223372036854775808, we overflowed and wrapped around.
[/codeblock]
</description>
<tutorials>
diff --git a/doc/tools/doc_status.py b/doc/tools/doc_status.py
index 6e34cffc05..352b292be2 100755
--- a/doc/tools/doc_status.py
+++ b/doc/tools/doc_status.py
@@ -69,8 +69,8 @@ long_flags = {
'empty': 'e',
}
-table_columns = ['name', 'brief_description', 'description', 'methods', 'constants', 'members', 'signals']
-table_column_names = ['Name', 'Brief Desc.', 'Desc.', 'Methods', 'Constants', 'Members', 'Signals']
+table_columns = ['name', 'brief_description', 'description', 'methods', 'constants', 'members', 'signals', 'theme_items']
+table_column_names = ['Name', 'Brief Desc.', 'Desc.', 'Methods', 'Constants', 'Members', 'Signals', 'Theme Items']
colors = {
'name': [36], # cyan
'part_big_problem': [4, 31], # underline, red
@@ -176,6 +176,7 @@ class ClassStatus:
'methods': ClassStatusProgress(),
'constants': ClassStatusProgress(),
'members': ClassStatusProgress(),
+ 'theme_items': ClassStatusProgress(),
'signals': ClassStatusProgress()
}
@@ -220,7 +221,7 @@ class ClassStatus:
)
items_progress = ClassStatusProgress()
- for k in ['methods', 'constants', 'members', 'signals']:
+ for k in ['methods', 'constants', 'members', 'signals', 'theme_items']:
items_progress += self.progresses[k]
output[k] = self.progresses[k].to_configured_colored_string()
@@ -257,7 +258,7 @@ class ClassStatus:
for sub_tag in list(tag):
descr = sub_tag.find('description')
status.progresses[tag.tag].increment(len(descr.text.strip()) > 0)
- elif tag.tag in ['constants', 'members']:
+ elif tag.tag in ['constants', 'members', 'theme_items']:
for sub_tag in list(tag):
if not sub_tag.text is None:
status.progresses[tag.tag].increment(len(sub_tag.text.strip()) > 0)
@@ -300,7 +301,7 @@ for arg in sys.argv[1:]:
sys.exit(1)
if flags['i']:
- for r in ['methods', 'constants', 'members', 'signals']:
+ for r in ['methods', 'constants', 'members', 'signals', 'theme_items']:
index = table_columns.index(r)
del table_column_names[index]
del table_columns[index]
diff --git a/doc/tools/makerst.py b/doc/tools/makerst.py
index 18fc70516e..9012de03b3 100755
--- a/doc/tools/makerst.py
+++ b/doc/tools/makerst.py
@@ -98,7 +98,6 @@ class ClassDef:
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]]]
@@ -122,10 +121,6 @@ class State:
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
@@ -881,6 +876,7 @@ def rstize_text(text, state): # type: (str, State) -> str
inside_code = True
elif cmd.startswith('enum '):
tag_text = make_enum(cmd[5:], state)
+ escape_post = True
else:
tag_text = make_type(tag_text, state)
escape_post = True
diff --git a/drivers/alsamidi/midi_driver_alsamidi.cpp b/drivers/alsamidi/midi_driver_alsamidi.cpp
index 10581a460c..68a34fe485 100644
--- a/drivers/alsamidi/midi_driver_alsamidi.cpp
+++ b/drivers/alsamidi/midi_driver_alsamidi.cpp
@@ -43,12 +43,30 @@ static int get_message_size(uint8_t message) {
case 0x90: // note on
case 0xA0: // aftertouch
case 0xB0: // continuous controller
+ case 0xE0: // pitch bend
+ case 0xF2: // song position pointer
return 3;
case 0xC0: // patch change
case 0xD0: // channel pressure
- case 0xE0: // pitch bend
+ case 0xF1: // time code quarter frame
+ case 0xF3: // song select
return 2;
+
+ case 0xF0: // SysEx start
+ case 0xF4: // reserved
+ case 0xF5: // reserved
+ case 0xF6: // tune request
+ case 0xF7: // SysEx end
+ case 0xF8: // timing clock
+ case 0xF9: // reserved
+ case 0xFA: // start
+ case 0xFB: // continue
+ case 0xFC: // stop
+ case 0xFD: // reserved
+ case 0xFE: // active sensing
+ case 0xFF: // reset
+ return 1;
}
return 256;
@@ -83,6 +101,9 @@ void MIDIDriverALSAMidi::thread_func(void *p_udata) {
bytes = 0;
}
expected_size = get_message_size(byte);
+ // After a SysEx start, all bytes are data until a SysEx end, so
+ // we're going to end the command at the SES, and let the common
+ // driver ignore the following data bytes.
}
if (bytes < 256) {
diff --git a/drivers/gles2/rasterizer_scene_gles2.cpp b/drivers/gles2/rasterizer_scene_gles2.cpp
index a315684ce9..c0ba93db6a 100644
--- a/drivers/gles2/rasterizer_scene_gles2.cpp
+++ b/drivers/gles2/rasterizer_scene_gles2.cpp
@@ -2658,14 +2658,14 @@ void RasterizerSceneGLES2::_draw_sky(RasterizerStorageGLES2::Sky *p_sky, const C
};
if (!asymmetrical) {
- float vw, vh, zn;
- camera.get_viewport_size(vw, vh);
+ Vector2 vp_he = camera.get_viewport_half_extents();
+ float zn;
zn = p_projection.get_z_near();
for (int i = 0; i < 4; i++) {
Vector3 uv = vertices[i * 2 + 1];
- uv.x = (uv.x * 2.0 - 1.0) * vw;
- uv.y = -(uv.y * 2.0 - 1.0) * vh;
+ uv.x = (uv.x * 2.0 - 1.0) * vp_he.x;
+ uv.y = -(uv.y * 2.0 - 1.0) * vp_he.y;
uv.z = -zn;
vertices[i * 2 + 1] = p_transform.basis.xform(uv).normalized();
vertices[i * 2 + 1].z = -vertices[i * 2 + 1].z;
diff --git a/drivers/gles2/rasterizer_storage_gles2.cpp b/drivers/gles2/rasterizer_storage_gles2.cpp
index c633d17cca..cd6a7d86c6 100644
--- a/drivers/gles2/rasterizer_storage_gles2.cpp
+++ b/drivers/gles2/rasterizer_storage_gles2.cpp
@@ -2692,6 +2692,7 @@ void RasterizerStorageGLES2::mesh_set_custom_aabb(RID p_mesh, const AABB &p_aabb
ERR_FAIL_COND(!mesh);
mesh->custom_aabb = p_aabb;
+ mesh->instance_change_notify(true, false);
}
AABB RasterizerStorageGLES2::mesh_get_custom_aabb(RID p_mesh) const {
diff --git a/drivers/gles2/shader_compiler_gles2.cpp b/drivers/gles2/shader_compiler_gles2.cpp
index 24b89aedc2..5dec6f2fee 100644
--- a/drivers/gles2/shader_compiler_gles2.cpp
+++ b/drivers/gles2/shader_compiler_gles2.cpp
@@ -80,7 +80,7 @@ static String _opstr(SL::Operator p_op) {
static String _mkid(const String &p_id) {
- String id = "m_" + p_id;
+ String id = "m_" + p_id.replace("__", "_dus_");
return id.replace("__", "_dus_"); //doubleunderscore is reserved in glsl
}
diff --git a/drivers/gles3/rasterizer_scene_gles3.cpp b/drivers/gles3/rasterizer_scene_gles3.cpp
index c9ee2a18ef..27173d317b 100644
--- a/drivers/gles3/rasterizer_scene_gles3.cpp
+++ b/drivers/gles3/rasterizer_scene_gles3.cpp
@@ -2497,14 +2497,14 @@ void RasterizerSceneGLES3::_draw_sky(RasterizerStorageGLES3::Sky *p_sky, const C
};
if (!asymmetrical) {
- float vw, vh, zn;
- camera.get_viewport_size(vw, vh);
+ Vector2 vp_he = camera.get_viewport_half_extents();
+ float zn;
zn = p_projection.get_z_near();
for (int i = 0; i < 4; i++) {
Vector3 uv = vertices[i * 2 + 1];
- uv.x = (uv.x * 2.0 - 1.0) * vw;
- uv.y = -(uv.y * 2.0 - 1.0) * vh;
+ uv.x = (uv.x * 2.0 - 1.0) * vp_he.x;
+ uv.y = -(uv.y * 2.0 - 1.0) * vp_he.y;
uv.z = -zn;
vertices[i * 2 + 1] = p_transform.basis.xform(uv).normalized();
vertices[i * 2 + 1].z = -vertices[i * 2 + 1].z;
@@ -4130,11 +4130,15 @@ void RasterizerSceneGLES3::render_scene(const Transform &p_cam_transform, const
state.ubo_data.shadow_dual_paraboloid_render_zfar = 0;
state.ubo_data.opaque_prepass_threshold = 0.99;
- p_cam_projection.get_viewport_size(state.ubo_data.viewport_size[0], state.ubo_data.viewport_size[1]);
-
if (storage->frame.current_rt) {
- state.ubo_data.screen_pixel_size[0] = 1.0 / storage->frame.current_rt->width;
- state.ubo_data.screen_pixel_size[1] = 1.0 / storage->frame.current_rt->height;
+ int viewport_width_pixels = storage->frame.current_rt->width;
+ int viewport_height_pixels = storage->frame.current_rt->height;
+
+ state.ubo_data.viewport_size[0] = viewport_width_pixels;
+ state.ubo_data.viewport_size[1] = viewport_height_pixels;
+
+ state.ubo_data.screen_pixel_size[0] = 1.0 / viewport_width_pixels;
+ state.ubo_data.screen_pixel_size[1] = 1.0 / viewport_height_pixels;
}
_setup_environment(env, p_cam_projection, p_cam_transform, p_reflection_probe.is_valid());
diff --git a/drivers/gles3/rasterizer_storage_gles3.cpp b/drivers/gles3/rasterizer_storage_gles3.cpp
index 712120c7f4..6baf69dc7b 100644
--- a/drivers/gles3/rasterizer_storage_gles3.cpp
+++ b/drivers/gles3/rasterizer_storage_gles3.cpp
@@ -1854,6 +1854,9 @@ void RasterizerStorageGLES3::sky_set_texture(RID p_sky, RID p_panorama, int p_ra
glFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, sky->irradiance, 0);
+ int irradiance_size = GLOBAL_GET("rendering/quality/reflections/irradiance_max_size");
+ int upscale_size = MIN(int(previous_power_of_2(irradiance_size)), p_radiance_size);
+
GLuint tmp_fb2;
GLuint tmp_tex;
{
@@ -1862,7 +1865,7 @@ void RasterizerStorageGLES3::sky_set_texture(RID p_sky, RID p_panorama, int p_ra
glBindFramebuffer(GL_FRAMEBUFFER, tmp_fb2);
glGenTextures(1, &tmp_tex);
glBindTexture(GL_TEXTURE_2D, tmp_tex);
- glTexImage2D(GL_TEXTURE_2D, 0, internal_format, p_radiance_size, 2.0 * p_radiance_size, 0, format, type, NULL);
+ glTexImage2D(GL_TEXTURE_2D, 0, internal_format, upscale_size, 2.0 * upscale_size, 0, format, type, NULL);
glFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, tmp_tex, 0);
glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR_MIPMAP_LINEAR);
glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
@@ -1882,9 +1885,8 @@ void RasterizerStorageGLES3::sky_set_texture(RID p_sky, RID p_panorama, int p_ra
shaders.cubemap_filter.set_uniform(CubemapFilterShaderGLES3::SOURCE_MIP_LEVEL, MAX(Math::floor(Math::log(float(texture->width)) / Math::log(2.0f)) - 10.0f, 0.0f));
// Compute Irradiance for a large texture, specified by radiance size and then pull out a low mipmap corresponding to 32x32
- int vp_size = p_radiance_size;
for (int i = 0; i < 2; i++) {
- glViewport(0, i * vp_size, vp_size, vp_size);
+ glViewport(0, i * upscale_size, upscale_size, upscale_size);
glBindVertexArray(resources.quadie_array);
shaders.cubemap_filter.set_uniform(CubemapFilterShaderGLES3::Z_FLIP, i > 0);
@@ -1903,7 +1905,7 @@ void RasterizerStorageGLES3::sky_set_texture(RID p_sky, RID p_panorama, int p_ra
shaders.copy.set_conditional(CopyShaderGLES3::USE_LOD, true);
shaders.copy.bind();
- shaders.copy.set_uniform(CopyShaderGLES3::MIP_LEVEL, MAX(Math::floor(Math::log(float(p_radiance_size)) / Math::log(2.0f)) - 5.0f, 0.0f)); // Mip level that corresponds to a 32x32 texture
+ shaders.copy.set_uniform(CopyShaderGLES3::MIP_LEVEL, MAX(Math::floor(Math::log(float(upscale_size)) / Math::log(2.0f)) - 5.0f, 0.0f)); // Mip level that corresponds to a 32x32 texture
glViewport(0, 0, size, size * 2.0);
glBindVertexArray(resources.quadie_array);
diff --git a/drivers/gles3/shader_compiler_gles3.cpp b/drivers/gles3/shader_compiler_gles3.cpp
index f43943bdff..4e4d896bd7 100644
--- a/drivers/gles3/shader_compiler_gles3.cpp
+++ b/drivers/gles3/shader_compiler_gles3.cpp
@@ -166,7 +166,7 @@ static String _opstr(SL::Operator p_op) {
static String _mkid(const String &p_id) {
- String id = "m_" + p_id;
+ String id = "m_" + p_id.replace("__", "_dus_");
return id.replace("__", "_dus_"); //doubleunderscore is reserved in glsl
}
diff --git a/drivers/unix/os_unix.h b/drivers/unix/os_unix.h
index 8ce0eca8c6..c381890834 100644
--- a/drivers/unix/os_unix.h
+++ b/drivers/unix/os_unix.h
@@ -85,7 +85,7 @@ public:
virtual void delay_usec(uint32_t p_usec) const;
virtual uint64_t get_ticks_usec() const;
- virtual Error execute(const String &p_path, const List<String> &p_arguments, bool p_blocking, ProcessID *r_child_id = NULL, String *r_pipe = NULL, int *r_exitcode = NULL, bool read_stderr = false, Mutex *p_pipe_mutex = NULL);
+ virtual Error execute(const String &p_path, const List<String> &p_arguments, bool p_blocking = true, ProcessID *r_child_id = NULL, String *r_pipe = NULL, int *r_exitcode = NULL, bool read_stderr = false, Mutex *p_pipe_mutex = NULL);
virtual Error kill(const ProcessID &p_pid);
virtual int get_process_id() const;
diff --git a/editor/animation_track_editor.cpp b/editor/animation_track_editor.cpp
index 22a5298d5c..e9719f8618 100644
--- a/editor/animation_track_editor.cpp
+++ b/editor/animation_track_editor.cpp
@@ -4839,19 +4839,22 @@ struct _AnimMoveRestore {
void AnimationTrackEditor::_clear_key_edit() {
if (key_edit) {
//if key edit is the object being inspected, remove it first
- if (EditorNode::get_singleton()->get_inspector()->get_edited_object() == key_edit ||
- EditorNode::get_singleton()->get_inspector()->get_edited_object() == multi_key_edit) {
+ if (EditorNode::get_singleton()->get_inspector()->get_edited_object() == key_edit) {
EditorNode::get_singleton()->push_item(NULL);
}
//then actually delete it
- if (key_edit) {
- memdelete(key_edit);
- key_edit = NULL;
- } else if (multi_key_edit) {
- memdelete(multi_key_edit);
- multi_key_edit = NULL;
+ memdelete(key_edit);
+ key_edit = NULL;
+ }
+
+ if (multi_key_edit) {
+ if (EditorNode::get_singleton()->get_inspector()->get_edited_object() == multi_key_edit) {
+ EditorNode::get_singleton()->push_item(NULL);
}
+
+ memdelete(multi_key_edit);
+ multi_key_edit = NULL;
}
}
@@ -4907,7 +4910,7 @@ void AnimationTrackEditor::_update_key_edit() {
if (!key_ofs_map.has(track)) {
key_ofs_map[track] = List<float>();
- base_map[track] = *memnew(NodePath);
+ base_map[track] = NodePath();
}
key_ofs_map[track].push_back(animation->track_get_key_time(track, E->key().key));
@@ -5974,6 +5977,7 @@ AnimationTrackEditor::AnimationTrackEditor() {
keying = false;
moving_selection = 0;
key_edit = NULL;
+ multi_key_edit = NULL;
box_selection = memnew(Control);
add_child(box_selection);
@@ -6085,4 +6089,7 @@ AnimationTrackEditor::~AnimationTrackEditor() {
if (key_edit) {
memdelete(key_edit);
}
+ if (multi_key_edit) {
+ memdelete(multi_key_edit);
+ }
}
diff --git a/editor/code_editor.cpp b/editor/code_editor.cpp
index 4f684c7bdc..e05ace53da 100644
--- a/editor/code_editor.cpp
+++ b/editor/code_editor.cpp
@@ -277,7 +277,8 @@ void FindReplaceBar::_replace_all() {
}
text_edit->set_v_scroll(vsval);
- set_error(vformat(TTR("Replaced %d occurrence(s)."), rc));
+ matches_label->add_color_override("font_color", rc > 0 ? get_color("font_color", "Label") : get_color("error_color", "Editor"));
+ matches_label->set_text(vformat(TTR("%d replaced."), rc));
text_edit->call_deferred("connect", "text_changed", this, "_editor_text_changed");
results_count = -1;
diff --git a/editor/doc/doc_data.cpp b/editor/doc/doc_data.cpp
index f9f8761247..adfffe27ba 100644
--- a/editor/doc/doc_data.cpp
+++ b/editor/doc/doc_data.cpp
@@ -233,6 +233,8 @@ void DocData::generate(bool p_basic_types) {
List<StringName> classes;
ClassDB::get_class_list(&classes);
classes.sort_custom<StringName::AlphCompare>();
+ // Move ProjectSettings, so that other classes can register properties there.
+ classes.move_to_back(classes.find("ProjectSettings"));
bool skip_setter_getter_methods = true;
@@ -249,7 +251,6 @@ void DocData::generate(bool p_basic_types) {
ClassDoc &c = class_list[cname];
c.name = cname;
c.inherits = ClassDB::get_parent_class(name);
- c.category = ClassDB::get_category(name);
List<PropertyInfo> properties;
List<PropertyInfo> own_properties;
@@ -401,13 +402,10 @@ void DocData::generate(bool p_basic_types) {
} else {
const PropertyInfo &arginfo = E->get().arguments[i];
-
ArgumentDoc argument;
-
argument_doc_from_arginfo(argument, arginfo);
int darg_idx = i - (E->get().arguments.size() - E->get().default_arguments.size());
-
if (darg_idx >= 0) {
Variant default_arg = E->get().default_arguments[darg_idx];
argument.default_value = default_arg.get_construct_string();
@@ -431,14 +429,10 @@ void DocData::generate(bool p_basic_types) {
signal.name = EV->get().name;
for (int i = 0; i < EV->get().arguments.size(); i++) {
- PropertyInfo arginfo = EV->get().arguments[i];
+ const PropertyInfo &arginfo = EV->get().arguments[i];
ArgumentDoc argument;
- argument.name = arginfo.name;
- if (arginfo.type == Variant::OBJECT && arginfo.class_name != StringName()) {
- argument.type = arginfo.class_name.operator String();
- } else {
- argument.type = Variant::get_type_name(arginfo.type);
- }
+ argument_doc_from_arginfo(argument, arginfo);
+
signal.arguments.push_back(argument);
}
@@ -516,7 +510,7 @@ void DocData::generate(bool p_basic_types) {
}
{
- //so it can be documented that it does not exist
+ // So we can document the concept of Variant even if it's not a usable class per se.
class_list["Variant"] = ClassDoc();
class_list["Variant"].name = "Variant";
}
@@ -524,17 +518,18 @@ void DocData::generate(bool p_basic_types) {
if (!p_basic_types)
return;
+ // Add Variant types.
for (int i = 0; i < Variant::VARIANT_MAX; i++) {
-
+ if (i == Variant::NIL)
+ continue; // Not exposed outside of 'null', should not be in class list.
if (i == Variant::OBJECT)
- continue; //use the core type instead
+ continue; // Use the core type instead.
String cname = Variant::get_type_name(Variant::Type(i));
class_list[cname] = ClassDoc();
ClassDoc &c = class_list[cname];
c.name = cname;
- c.category = "Built-In Types";
Variant::CallError cerror;
Variant v = Variant::construct(Variant::Type(i), NULL, 0, cerror);
@@ -554,15 +549,10 @@ void DocData::generate(bool p_basic_types) {
for (int j = 0; j < mi.arguments.size(); j++) {
PropertyInfo arginfo = mi.arguments[j];
-
ArgumentDoc ad;
+ argument_doc_from_arginfo(ad, mi.arguments[j]);
ad.name = arginfo.name;
- if (arginfo.type == Variant::NIL)
- ad.type = "Variant";
- else
- ad.type = Variant::get_type_name(arginfo.type);
-
int defarg = mi.default_arguments.size() - mi.arguments.size() + j;
if (defarg >= 0)
ad.default_value = mi.default_arguments[defarg];
@@ -851,8 +841,6 @@ Error DocData::_load(Ref<XMLParser> parser) {
c.name = name;
if (parser->has_attribute("inherits"))
c.inherits = parser->get_attribute_value("inherits");
- if (parser->has_attribute("category"))
- c.category = parser->get_attribute_value("category");
while (parser->read() == OK) {
@@ -1042,25 +1030,24 @@ Error DocData::save_classes(const String &p_default_path, const Map<String, Stri
String header = "<class name=\"" + c.name + "\"";
if (c.inherits != "")
header += " inherits=\"" + c.inherits + "\"";
-
- String category = c.category;
- if (c.category == "")
- category = "Core";
- header += " category=\"" + category + "\"";
header += String(" version=\"") + VERSION_NUMBER + "\"";
header += ">";
_write_string(f, 0, header);
+
_write_string(f, 1, "<brief_description>");
_write_string(f, 2, c.brief_description.strip_edges().xml_escape());
_write_string(f, 1, "</brief_description>");
+
_write_string(f, 1, "<description>");
_write_string(f, 2, c.description.strip_edges().xml_escape());
_write_string(f, 1, "</description>");
+
_write_string(f, 1, "<tutorials>");
for (int i = 0; i < c.tutorials.size(); i++) {
_write_string(f, 2, "<link>" + c.tutorials.get(i).xml_escape() + "</link>");
}
_write_string(f, 1, "</tutorials>");
+
_write_string(f, 1, "<methods>");
c.methods.sort();
diff --git a/editor/doc/doc_dump.cpp b/editor/doc/doc_dump.cpp
index edb1a536c3..d7e1d257f2 100644
--- a/editor/doc/doc_dump.cpp
+++ b/editor/doc/doc_dump.cpp
@@ -93,16 +93,14 @@ void DocDump::dump(const String &p_file) {
String inherits = ClassDB::get_parent_class(name);
if (inherits != "")
header += " inherits=\"" + inherits + "\"";
- String category = ClassDB::get_category(name);
- if (category == "")
- category = "Core";
- header += " category=\"" + category + "\"";
- header += ">";
_write_string(f, 0, header);
+
_write_string(f, 1, "<brief_description>");
_write_string(f, 1, "</brief_description>");
+
_write_string(f, 1, "<description>");
_write_string(f, 1, "</description>");
+
_write_string(f, 1, "<methods>");
List<MethodInfo> method_list;
diff --git a/editor/editor_autoload_settings.cpp b/editor/editor_autoload_settings.cpp
index 46a54969e0..dba8c2ec8c 100644
--- a/editor/editor_autoload_settings.cpp
+++ b/editor/editor_autoload_settings.cpp
@@ -120,6 +120,7 @@ void EditorAutoloadSettings::_autoload_add() {
autoload_add_path->get_line_edit()->set_text("");
autoload_add_name->set_text("");
+ add_autoload->set_disabled(true);
}
void EditorAutoloadSettings::_autoload_selected() {
@@ -312,7 +313,34 @@ void EditorAutoloadSettings::_autoload_open(const String &fpath) {
void EditorAutoloadSettings::_autoload_file_callback(const String &p_path) {
- autoload_add_name->set_text(p_path.get_file().get_basename());
+ // Convert the file name to PascalCase, which is the convention for classes in GDScript.
+ const String class_name = p_path.get_file().get_basename().capitalize().replace(" ", "");
+
+ // If the name collides with a built-in class, prefix the name to make it possible to add without having to edit the name.
+ // The prefix is subjective, but it provides better UX than leaving the Add button disabled :)
+ const String prefix = ClassDB::class_exists(class_name) ? "Global" : "";
+
+ autoload_add_name->set_text(prefix + class_name);
+ add_autoload->set_disabled(false);
+}
+
+void EditorAutoloadSettings::_autoload_text_entered(const String p_name) {
+
+ if (autoload_add_path->get_line_edit()->get_text() != "" && _autoload_name_is_valid(p_name, NULL)) {
+ _autoload_add();
+ }
+}
+
+void EditorAutoloadSettings::_autoload_path_text_changed(const String p_path) {
+
+ add_autoload->set_disabled(
+ p_path == "" || !_autoload_name_is_valid(autoload_add_name->get_text(), NULL));
+}
+
+void EditorAutoloadSettings::_autoload_text_changed(const String p_name) {
+
+ add_autoload->set_disabled(
+ autoload_add_path->get_line_edit()->get_text() == "" || !_autoload_name_is_valid(p_name, NULL));
}
Node *EditorAutoloadSettings::_create_autoload(const String &p_path) {
@@ -424,7 +452,7 @@ void EditorAutoloadSettings::update_autoload() {
item->set_editable(2, true);
item->set_text(2, TTR("Enable"));
item->set_checked(2, info.is_singleton);
- item->add_button(3, get_icon("FileList", "EditorIcons"), BUTTON_OPEN);
+ item->add_button(3, get_icon("Load", "EditorIcons"), BUTTON_OPEN);
item->add_button(3, get_icon("MoveUp", "EditorIcons"), BUTTON_MOVE_UP);
item->add_button(3, get_icon("MoveDown", "EditorIcons"), BUTTON_MOVE_DOWN);
item->add_button(3, get_icon("Remove", "EditorIcons"), BUTTON_DELETE);
@@ -713,7 +741,9 @@ void EditorAutoloadSettings::_bind_methods() {
ClassDB::bind_method("_autoload_edited", &EditorAutoloadSettings::_autoload_edited);
ClassDB::bind_method("_autoload_button_pressed", &EditorAutoloadSettings::_autoload_button_pressed);
ClassDB::bind_method("_autoload_activated", &EditorAutoloadSettings::_autoload_activated);
+ ClassDB::bind_method("_autoload_path_text_changed", &EditorAutoloadSettings::_autoload_path_text_changed);
ClassDB::bind_method("_autoload_text_entered", &EditorAutoloadSettings::_autoload_text_entered);
+ ClassDB::bind_method("_autoload_text_changed", &EditorAutoloadSettings::_autoload_text_changed);
ClassDB::bind_method("_autoload_open", &EditorAutoloadSettings::_autoload_open);
ClassDB::bind_method("_autoload_file_callback", &EditorAutoloadSettings::_autoload_file_callback);
@@ -806,6 +836,8 @@ EditorAutoloadSettings::EditorAutoloadSettings() {
autoload_add_path->set_h_size_flags(SIZE_EXPAND_FILL);
autoload_add_path->get_file_dialog()->set_mode(EditorFileDialog::MODE_OPEN_FILE);
autoload_add_path->get_file_dialog()->connect("file_selected", this, "_autoload_file_callback");
+ autoload_add_path->get_line_edit()->connect("text_changed", this, "_autoload_path_text_changed");
+
hbc->add_child(autoload_add_path);
l = memnew(Label);
@@ -815,11 +847,14 @@ EditorAutoloadSettings::EditorAutoloadSettings() {
autoload_add_name = memnew(LineEdit);
autoload_add_name->set_h_size_flags(SIZE_EXPAND_FILL);
autoload_add_name->connect("text_entered", this, "_autoload_text_entered");
+ autoload_add_name->connect("text_changed", this, "_autoload_text_changed");
hbc->add_child(autoload_add_name);
- Button *add_autoload = memnew(Button);
+ add_autoload = memnew(Button);
add_autoload->set_text(TTR("Add"));
add_autoload->connect("pressed", this, "_autoload_add");
+ // The button will be enabled once a valid name is entered (either automatically or manually).
+ add_autoload->set_disabled(true);
hbc->add_child(add_autoload);
tree = memnew(Tree);
diff --git a/editor/editor_autoload_settings.h b/editor/editor_autoload_settings.h
index e1a04644aa..653a1b0a78 100644
--- a/editor/editor_autoload_settings.h
+++ b/editor/editor_autoload_settings.h
@@ -76,6 +76,7 @@ class EditorAutoloadSettings : public VBoxContainer {
Tree *tree;
EditorLineEditFileChooser *autoload_add_path;
LineEdit *autoload_add_name;
+ Button *add_autoload;
bool _autoload_name_is_valid(const String &p_name, String *r_error = NULL);
@@ -84,7 +85,9 @@ class EditorAutoloadSettings : public VBoxContainer {
void _autoload_edited();
void _autoload_button_pressed(Object *p_item, int p_column, int p_button);
void _autoload_activated();
- void _autoload_text_entered(String) { _autoload_add(); }
+ void _autoload_path_text_changed(const String p_path);
+ void _autoload_text_entered(const String p_name);
+ void _autoload_text_changed(const String p_name);
void _autoload_open(const String &fpath);
void _autoload_file_callback(const String &p_path);
Node *_create_autoload(const String &p_path);
diff --git a/editor/editor_help.cpp b/editor/editor_help.cpp
index d3c50423b7..556dbcbfc4 100644
--- a/editor/editor_help.cpp
+++ b/editor/editor_help.cpp
@@ -468,39 +468,31 @@ void EditorHelp::_update_doc() {
}
// Online tutorials
- {
+ if (cd.tutorials.size()) {
class_desc->push_color(title_color);
class_desc->push_font(doc_title_font);
class_desc->add_text(TTR("Online Tutorials"));
class_desc->pop();
class_desc->pop();
- class_desc->push_indent(1);
+ class_desc->push_indent(1);
class_desc->push_font(doc_code_font);
-
class_desc->add_newline();
- // class_desc->add_newline();
-
- if (cd.tutorials.size() != 0) {
- for (int i = 0; i < cd.tutorials.size(); i++) {
- String link = cd.tutorials[i];
- String linktxt = link;
- int seppos = linktxt.find("//");
- if (seppos != -1) {
- linktxt = link.right(seppos + 2);
- }
-
- class_desc->push_color(symbol_color);
- class_desc->append_bbcode("[url=" + link + "]" + linktxt + "[/url]");
- class_desc->pop();
- class_desc->add_newline();
+ for (int i = 0; i < cd.tutorials.size(); i++) {
+ const String link = cd.tutorials[i];
+ String linktxt = link;
+ const int seppos = linktxt.find("//");
+ if (seppos != -1) {
+ linktxt = link.right(seppos + 2);
}
- } else {
- class_desc->push_color(comment_color);
- class_desc->append_bbcode(TTR("There are currently no tutorials for this class, you can [color=$color][url=$url]contribute one[/url][/color] or [color=$color][url=$url2]request one[/url][/color].").replace("$url2", REQUEST_URL).replace("$url", CONTRIBUTE2_URL).replace("$color", link_color_text));
+
+ class_desc->push_color(symbol_color);
+ class_desc->append_bbcode("[url=" + link + "]" + linktxt + "[/url]");
class_desc->pop();
+ class_desc->add_newline();
}
+
class_desc->pop();
class_desc->pop();
class_desc->add_newline();
diff --git a/editor/editor_inspector.cpp b/editor/editor_inspector.cpp
index 56da7d93fa..7c1e58862e 100644
--- a/editor/editor_inspector.cpp
+++ b/editor/editor_inspector.cpp
@@ -1596,7 +1596,7 @@ void EditorInspector::update_tree() {
if (capitalize_paths)
cat = cat.capitalize();
- if (!filter.is_subsequence_ofi(cat) && !filter.is_subsequence_ofi(name))
+ if (!filter.is_subsequence_ofi(cat) && !filter.is_subsequence_ofi(name) && property_prefix.to_lower().find(filter.to_lower()) == -1)
continue;
}
diff --git a/editor/editor_node.cpp b/editor/editor_node.cpp
index c5b67eb971..dd15910d09 100644
--- a/editor/editor_node.cpp
+++ b/editor/editor_node.cpp
@@ -1765,6 +1765,8 @@ void EditorNode::_edit_current() {
return;
}
+ Object *prev_inspected_object = get_inspector()->get_edited_object();
+
bool capitalize = bool(EDITOR_GET("interface/inspector/capitalize_properties"));
bool disable_folding = bool(EDITOR_GET("interface/inspector/disable_folding"));
bool is_resource = current_obj->is_class("Resource");
@@ -1856,6 +1858,11 @@ void EditorNode::_edit_current() {
inspector_dock->update(NULL);
}
+ if (current_obj == prev_inspected_object) {
+ // Make sure inspected properties are restored.
+ get_inspector()->update_tree();
+ }
+
inspector_dock->set_warning(editable_warning);
if (get_inspector()->is_capitalize_paths_enabled() != capitalize) {
diff --git a/editor/editor_profiler.cpp b/editor/editor_profiler.cpp
index 4807f8839c..3fdeaff19d 100644
--- a/editor/editor_profiler.cpp
+++ b/editor/editor_profiler.cpp
@@ -102,26 +102,28 @@ void EditorProfiler::clear() {
}
static String _get_percent_txt(float p_value, float p_total) {
- if (p_total == 0)
+ if (p_total == 0) {
p_total = 0.00001;
+ }
+
return String::num((p_value / p_total) * 100, 1) + "%";
}
String EditorProfiler::_get_time_as_text(const Metric &m, float p_time, int p_calls) {
- int dmode = display_mode->get_selected();
+ const int dmode = display_mode->get_selected();
if (dmode == DISPLAY_FRAME_TIME) {
- return rtos(p_time);
+ return rtos(p_time * 1000).pad_decimals(2) + " ms";
} else if (dmode == DISPLAY_AVERAGE_TIME) {
- if (p_calls == 0)
- return "0";
- else
- return rtos(p_time / p_calls);
+ if (p_calls == 0) {
+ return "0.00 ms";
+ } else {
+ return rtos((p_time / p_calls) * 1000).pad_decimals(2) + " ms";
+ }
} else if (dmode == DISPLAY_FRAME_PERCENT) {
return _get_percent_txt(p_time, m.frame_time);
} else if (dmode == DISPLAY_PHYSICS_FRAME_PERCENT) {
-
return _get_percent_txt(p_time, m.physics_frame_time);
}
@@ -729,7 +731,7 @@ EditorProfiler::EditorProfiler() {
h_split->set_v_size_flags(SIZE_EXPAND_FILL);
variables = memnew(Tree);
- variables->set_custom_minimum_size(Size2(300, 0) * EDSCALE);
+ variables->set_custom_minimum_size(Size2(320, 0) * EDSCALE);
variables->set_hide_folding(true);
h_split->add_child(variables);
variables->set_hide_root(true);
@@ -737,10 +739,10 @@ EditorProfiler::EditorProfiler() {
variables->set_column_titles_visible(true);
variables->set_column_title(0, TTR("Name"));
variables->set_column_expand(0, true);
- variables->set_column_min_width(0, 60);
+ variables->set_column_min_width(0, 60 * EDSCALE);
variables->set_column_title(1, TTR("Time"));
variables->set_column_expand(1, false);
- variables->set_column_min_width(1, 60 * EDSCALE);
+ variables->set_column_min_width(1, 100 * EDSCALE);
variables->set_column_title(2, TTR("Calls"));
variables->set_column_expand(2, false);
variables->set_column_min_width(2, 60 * EDSCALE);
@@ -749,7 +751,6 @@ EditorProfiler::EditorProfiler() {
graph = memnew(TextureRect);
graph->set_expand(true);
graph->set_mouse_filter(MOUSE_FILTER_STOP);
- //graph->set_ignore_mouse(false);
graph->connect("draw", this, "_graph_tex_draw");
graph->connect("gui_input", this, "_graph_tex_input");
graph->connect("mouse_exited", this, "_graph_tex_mouse_exit");
@@ -760,13 +761,10 @@ EditorProfiler::EditorProfiler() {
int metric_size = CLAMP(int(EDITOR_DEF("debugger/profiler_frame_history_size", 600)), 60, 1024);
frame_metrics.resize(metric_size);
last_metric = -1;
- //cursor_metric=-1;
hover_metric = -1;
EDITOR_DEF("debugger/profiler_frame_max_functions", 64);
- //display_mode=DISPLAY_FRAME_TIME;
-
frame_delay = memnew(Timer);
frame_delay->set_wait_time(0.1);
frame_delay->set_one_shot(true);
@@ -784,6 +782,4 @@ EditorProfiler::EditorProfiler() {
seeking = false;
graph_height = 1;
-
- //activate->set_disabled(true);
}
diff --git a/editor/editor_sectioned_inspector.cpp b/editor/editor_sectioned_inspector.cpp
index 28825b45e1..2090c12c91 100644
--- a/editor/editor_sectioned_inspector.cpp
+++ b/editor/editor_sectioned_inspector.cpp
@@ -245,6 +245,9 @@ void SectionedInspector::update_category_list() {
if (pi.name.find(":") != -1 || pi.name == "script" || pi.name == "resource_name" || pi.name == "resource_path" || pi.name == "resource_local_to_scene" || pi.name.begins_with("_global_script"))
continue;
+ if (!filter.empty() && !filter.is_subsequence_ofi(pi.name) && !filter.is_subsequence_ofi(pi.name.replace("/", " ").capitalize()))
+ continue;
+
int sp = pi.name.find("/");
if (sp == -1)
pi.name = "global/" + pi.name;
@@ -252,9 +255,6 @@ void SectionedInspector::update_category_list() {
Vector<String> sectionarr = pi.name.split("/");
String metasection;
- if (!filter.empty() && !filter.is_subsequence_ofi(sectionarr[sectionarr.size() - 1].capitalize()))
- continue;
-
int sc = MIN(2, sectionarr.size() - 1);
for (int i = 0; i < sc; i++) {
diff --git a/editor/editor_themes.cpp b/editor/editor_themes.cpp
index 621f531687..8037045e77 100644
--- a/editor/editor_themes.cpp
+++ b/editor/editor_themes.cpp
@@ -89,7 +89,11 @@ Ref<ImageTexture> editor_generate_icon(int p_index, bool p_convert_color, float
// dumb gizmo check
bool is_gizmo = String(editor_icons_names[p_index]).begins_with("Gizmo");
- ImageLoaderSVG::create_image_from_string(img, editor_icons_sources[p_index], p_scale, true, p_convert_color);
+ // Upsample icon generation only if the editor scale isn't an integer multiplier.
+ // Generating upsampled icons is slower, and the benefit is hardly visible
+ // with integer editor scales.
+ const bool upsample = !Math::is_equal_approx(Math::round(p_scale), p_scale);
+ ImageLoaderSVG::create_image_from_string(img, editor_icons_sources[p_index], p_scale, upsample, p_convert_color);
if ((p_scale - (float)((int)p_scale)) > 0.0 || is_gizmo || p_force_filter)
icon->create_from_image(img); // in this case filter really helps
@@ -106,7 +110,15 @@ Ref<ImageTexture> editor_generate_icon(int p_index, bool p_convert_color, float
void editor_register_and_generate_icons(Ref<Theme> p_theme, bool p_dark_theme = true, int p_thumb_size = 32, bool p_only_thumbs = false) {
#ifdef SVG_ENABLED
+ // The default icon theme is designed to be used for a dark theme.
+ // This dictionary stores color codes to convert to other colors
+ // for better readability on a light theme.
Dictionary dark_icon_color_dictionary;
+
+ // The names of the icons to never convert, even if one of their colors
+ // are contained in the dictionary above.
+ Set<StringName> exceptions;
+
if (!p_dark_theme) {
// convert color: FROM TO
ADD_CONVERT_COLOR(dark_icon_color_dictionary, "#e0e0e0", "#5a5a5a"); // common icon color
@@ -172,9 +184,31 @@ void editor_register_and_generate_icons(Ref<Theme> p_theme, bool p_dark_theme =
ADD_CONVERT_COLOR(dark_icon_color_dictionary, "#69ec9a", "#2ce573"); // VS rid
ADD_CONVERT_COLOR(dark_icon_color_dictionary, "#79f3e8", "#12d5c3"); // VS object
ADD_CONVERT_COLOR(dark_icon_color_dictionary, "#77edb1", "#57e99f"); // VS dict
+
+ exceptions.insert("EditorPivot");
+ exceptions.insert("EditorHandle");
+ exceptions.insert("Editor3DHandle");
+ exceptions.insert("Godot");
+ exceptions.insert("PanoramaSky");
+ exceptions.insert("ProceduralSky");
+ exceptions.insert("EditorControlAnchor");
+ exceptions.insert("DefaultProjectIcon");
+ exceptions.insert("GuiCloseCustomizable");
+ exceptions.insert("GuiGraphNodePort");
+ exceptions.insert("GuiResizer");
+ exceptions.insert("ZoomMore");
+ exceptions.insert("ZoomLess");
+ exceptions.insert("ZoomReset");
+ exceptions.insert("LockViewport");
+ exceptions.insert("GroupViewport");
+ exceptions.insert("StatusError");
+ exceptions.insert("StatusSuccess");
+ exceptions.insert("StatusWarning");
+ exceptions.insert("NodeWarning");
+ exceptions.insert("OverbrightIndicator");
}
- // these ones should be converted even if we are using a dark theme
+ // These ones should be converted even if we are using a dark theme.
const Color error_color = p_theme->get_color("error_color", "Editor");
const Color success_color = p_theme->get_color("success_color", "Editor");
const Color warning_color = p_theme->get_color("warning_color", "Editor");
@@ -182,65 +216,44 @@ void editor_register_and_generate_icons(Ref<Theme> p_theme, bool p_dark_theme =
dark_icon_color_dictionary[Color::html("#45ff8b")] = success_color;
dark_icon_color_dictionary[Color::html("#dbab09")] = warning_color;
- List<String> exceptions;
- exceptions.push_back("EditorPivot");
- exceptions.push_back("EditorHandle");
- exceptions.push_back("Editor3DHandle");
- exceptions.push_back("Godot");
- exceptions.push_back("PanoramaSky");
- exceptions.push_back("ProceduralSky");
- exceptions.push_back("EditorControlAnchor");
- exceptions.push_back("DefaultProjectIcon");
- exceptions.push_back("GuiCloseCustomizable");
- exceptions.push_back("GuiGraphNodePort");
- exceptions.push_back("GuiResizer");
- exceptions.push_back("ZoomMore");
- exceptions.push_back("ZoomLess");
- exceptions.push_back("ZoomReset");
- exceptions.push_back("LockViewport");
- exceptions.push_back("GroupViewport");
- exceptions.push_back("StatusError");
- exceptions.push_back("StatusSuccess");
- exceptions.push_back("StatusWarning");
- exceptions.push_back("NodeWarning");
- exceptions.push_back("OverbrightIndicator");
-
ImageLoaderSVG::set_convert_colors(&dark_icon_color_dictionary);
- // generate icons
- if (!p_only_thumbs)
+ // Generate icons.
+ if (!p_only_thumbs) {
for (int i = 0; i < editor_icons_count; i++) {
- List<String>::Element *is_exception = exceptions.find(editor_icons_names[i]);
- if (is_exception) exceptions.erase(is_exception);
- Ref<ImageTexture> icon = editor_generate_icon(i, !is_exception);
+ const int is_exception = exceptions.has(editor_icons_names[i]);
+ const Ref<ImageTexture> icon = editor_generate_icon(i, !is_exception);
+
p_theme->set_icon(editor_icons_names[i], "EditorIcons", icon);
}
+ }
- // generate thumb files with the given thumb size
- bool force_filter = p_thumb_size != 64 && p_thumb_size != 32; // we don't need filter with original resolution
+ // Generate thumbnail icons with the given thumbnail size.
+ // We don't need filtering when generating at one of the default resolutions.
+ const bool force_filter = p_thumb_size != 64 && p_thumb_size != 32;
if (p_thumb_size >= 64) {
- float scale = (float)p_thumb_size / 64.0 * EDSCALE;
+ const float scale = (float)p_thumb_size / 64.0 * EDSCALE;
for (int i = 0; i < editor_bg_thumbs_count; i++) {
- int index = editor_bg_thumbs_indices[i];
- List<String>::Element *is_exception = exceptions.find(editor_icons_names[index]);
- if (is_exception) exceptions.erase(is_exception);
- Ref<ImageTexture> icon = editor_generate_icon(index, !p_dark_theme && !is_exception, scale, force_filter);
+ const int index = editor_bg_thumbs_indices[i];
+ const int is_exception = exceptions.has(editor_icons_names[index]);
+ const Ref<ImageTexture> icon = editor_generate_icon(index, !p_dark_theme && !is_exception, scale, force_filter);
+
p_theme->set_icon(editor_icons_names[index], "EditorIcons", icon);
}
} else {
- float scale = (float)p_thumb_size / 32.0 * EDSCALE;
+ const float scale = (float)p_thumb_size / 32.0 * EDSCALE;
for (int i = 0; i < editor_md_thumbs_count; i++) {
- int index = editor_md_thumbs_indices[i];
- List<String>::Element *is_exception = exceptions.find(editor_icons_names[index]);
- if (is_exception) exceptions.erase(is_exception);
- Ref<ImageTexture> icon = editor_generate_icon(index, !p_dark_theme && !is_exception, scale, force_filter);
+ const int index = editor_md_thumbs_indices[i];
+ const bool is_exception = exceptions.has(editor_icons_names[index]);
+ const Ref<ImageTexture> icon = editor_generate_icon(index, !p_dark_theme && !is_exception, scale, force_filter);
+
p_theme->set_icon(editor_icons_names[index], "EditorIcons", icon);
}
}
ImageLoaderSVG::set_convert_colors(NULL);
#else
- print_line("SVG support disabled, editor icons won't be rendered.");
+ WARN_PRINT("SVG support disabled, editor icons won't be rendered.");
#endif
}
diff --git a/editor/import/editor_scene_importer_gltf.cpp b/editor/import/editor_scene_importer_gltf.cpp
index a418915830..2f9135c52c 100644
--- a/editor/import/editor_scene_importer_gltf.cpp
+++ b/editor/import/editor_scene_importer_gltf.cpp
@@ -2634,22 +2634,22 @@ template <>
struct EditorSceneImporterGLTFInterpolate<Quat> {
Quat lerp(const Quat &a, const Quat &b, const float c) const {
- ERR_FAIL_COND_V(!a.is_normalized(), Quat());
- ERR_FAIL_COND_V(!b.is_normalized(), Quat());
+ ERR_FAIL_COND_V_MSG(!a.is_normalized(), Quat(), "The quaternion \"a\" must be normalized.");
+ ERR_FAIL_COND_V_MSG(!b.is_normalized(), Quat(), "The quaternion \"b\" must be normalized.");
return a.slerp(b, c).normalized();
}
Quat catmull_rom(const Quat &p0, const Quat &p1, const Quat &p2, const Quat &p3, const float c) {
- ERR_FAIL_COND_V(!p1.is_normalized(), Quat());
- ERR_FAIL_COND_V(!p2.is_normalized(), Quat());
+ ERR_FAIL_COND_V_MSG(!p1.is_normalized(), Quat(), "The quaternion \"p1\" must be normalized.");
+ ERR_FAIL_COND_V_MSG(!p2.is_normalized(), Quat(), "The quaternion \"p2\" must be normalized.");
return p1.slerp(p2, c).normalized();
}
Quat bezier(const Quat start, const Quat control_1, const Quat control_2, const Quat end, const float t) {
- ERR_FAIL_COND_V(!start.is_normalized(), Quat());
- ERR_FAIL_COND_V(!end.is_normalized(), Quat());
+ ERR_FAIL_COND_V_MSG(!start.is_normalized(), Quat(), "The start quaternion must be normalized.");
+ ERR_FAIL_COND_V_MSG(!end.is_normalized(), Quat(), "The end quaternion must be normalized.");
return start.slerp(end, t).normalized();
}
diff --git a/editor/inspector_dock.cpp b/editor/inspector_dock.cpp
index 2be3464d30..b65482cc6b 100644
--- a/editor/inspector_dock.cpp
+++ b/editor/inspector_dock.cpp
@@ -584,6 +584,7 @@ InspectorDock::InspectorDock(EditorNode *p_editor, EditorData &p_editor_data) {
add_child(warning);
warning->set_text(TTR("Changes may be lost!"));
warning->set_icon(get_icon("NodeWarning", "EditorIcons"));
+ warning->set_clip_text(true);
warning->hide();
warning->connect("pressed", this, "_warning_pressed");
diff --git a/editor/plugins/canvas_item_editor_plugin.cpp b/editor/plugins/canvas_item_editor_plugin.cpp
index d3cbf2947e..1d8f3a2bbd 100644
--- a/editor/plugins/canvas_item_editor_plugin.cpp
+++ b/editor/plugins/canvas_item_editor_plugin.cpp
@@ -2599,14 +2599,14 @@ void CanvasItemEditor::_draw_guides() {
Color text_color = get_color("font_color", "Editor");
text_color.a = 0.5;
if (drag_type == DRAG_DOUBLE_GUIDE || drag_type == DRAG_V_GUIDE) {
- String str = vformat("%d px", xform.affine_inverse().xform(dragged_guide_pos).x);
+ String str = vformat("%d px", Math::round(xform.affine_inverse().xform(dragged_guide_pos).x));
Ref<Font> font = get_font("font", "Label");
Size2 text_size = font->get_string_size(str);
viewport->draw_string(font, Point2(dragged_guide_pos.x + 10, RULER_WIDTH + text_size.y / 2 + 10), str, text_color);
viewport->draw_line(Point2(dragged_guide_pos.x, 0), Point2(dragged_guide_pos.x, viewport->get_size().y), guide_color, Math::round(EDSCALE));
}
if (drag_type == DRAG_DOUBLE_GUIDE || drag_type == DRAG_H_GUIDE) {
- String str = vformat("%d px", xform.affine_inverse().xform(dragged_guide_pos).y);
+ String str = vformat("%d px", Math::round(xform.affine_inverse().xform(dragged_guide_pos).y));
Ref<Font> font = get_font("font", "Label");
Size2 text_size = font->get_string_size(str);
viewport->draw_string(font, Point2(RULER_WIDTH + 10, dragged_guide_pos.y + text_size.y / 2 + 10), str, text_color);
diff --git a/editor/plugins/polygon_2d_editor_plugin.cpp b/editor/plugins/polygon_2d_editor_plugin.cpp
index 04d595461d..35c0142d4b 100644
--- a/editor/plugins/polygon_2d_editor_plugin.cpp
+++ b/editor/plugins/polygon_2d_editor_plugin.cpp
@@ -92,6 +92,9 @@ void Polygon2DEditor::_notification(int p_what) {
b_snap_grid->set_icon(get_icon("Grid", "EditorIcons"));
b_snap_enable->set_icon(get_icon("SnapGrid", "EditorIcons"));
uv_icon_zoom->set_texture(get_icon("Zoom", "EditorIcons"));
+
+ uv_vscroll->set_anchors_and_margins_preset(PRESET_RIGHT_WIDE);
+ uv_hscroll->set_anchors_and_margins_preset(PRESET_BOTTOM_WIDE);
} break;
case NOTIFICATION_VISIBILITY_CHANGED: {
@@ -1471,12 +1474,10 @@ Polygon2DEditor::Polygon2DEditor(EditorNode *p_editor) :
uv_vscroll = memnew(VScrollBar);
uv_vscroll->set_step(0.001);
uv_edit_draw->add_child(uv_vscroll);
- uv_vscroll->set_anchors_and_margins_preset(PRESET_RIGHT_WIDE);
uv_vscroll->connect("value_changed", this, "_uv_scroll_changed");
uv_hscroll = memnew(HScrollBar);
uv_hscroll->set_step(0.001);
uv_edit_draw->add_child(uv_hscroll);
- uv_hscroll->set_anchors_and_margins_preset(PRESET_BOTTOM_WIDE);
uv_hscroll->connect("value_changed", this, "_uv_scroll_changed");
bone_scroll_main_vb = memnew(VBoxContainer);
diff --git a/editor/plugins/spatial_editor_plugin.cpp b/editor/plugins/spatial_editor_plugin.cpp
index bf87bfc14d..31e6b65640 100644
--- a/editor/plugins/spatial_editor_plugin.cpp
+++ b/editor/plugins/spatial_editor_plugin.cpp
@@ -428,8 +428,7 @@ Vector3 SpatialEditorViewport::_get_screen_to_space(const Vector3 &p_vector3) {
} else {
cm.set_perspective(get_fov(), get_size().aspect(), get_znear() + p_vector3.z, get_zfar());
}
- float screen_w, screen_h;
- cm.get_viewport_size(screen_w, screen_h);
+ Vector2 screen_he = cm.get_viewport_half_extents();
Transform camera_transform;
camera_transform.translate(cursor.pos);
@@ -437,7 +436,7 @@ Vector3 SpatialEditorViewport::_get_screen_to_space(const Vector3 &p_vector3) {
camera_transform.basis.rotate(Vector3(0, 1, 0), -cursor.y_rot);
camera_transform.translate(0, 0, cursor.distance);
- return camera_transform.xform(Vector3(((p_vector3.x / get_size().width) * 2.0 - 1.0) * screen_w, ((1.0 - (p_vector3.y / get_size().height)) * 2.0 - 1.0) * screen_h, -(get_znear() + p_vector3.z)));
+ return camera_transform.xform(Vector3(((p_vector3.x / get_size().width) * 2.0 - 1.0) * screen_he.x, ((1.0 - (p_vector3.y / get_size().height)) * 2.0 - 1.0) * screen_he.y, -(get_znear() + p_vector3.z)));
}
void SpatialEditorViewport::_select_region() {
diff --git a/editor/plugins/texture_region_editor_plugin.cpp b/editor/plugins/texture_region_editor_plugin.cpp
index ce6bb4b91a..507ea0b83d 100644
--- a/editor/plugins/texture_region_editor_plugin.cpp
+++ b/editor/plugins/texture_region_editor_plugin.cpp
@@ -736,6 +736,9 @@ void TextureRegionEditor::_notification(int p_what) {
zoom_out->set_icon(get_icon("ZoomLess", "EditorIcons"));
zoom_reset->set_icon(get_icon("ZoomReset", "EditorIcons"));
zoom_in->set_icon(get_icon("ZoomMore", "EditorIcons"));
+
+ vscroll->set_anchors_and_margins_preset(PRESET_RIGHT_WIDE);
+ hscroll->set_anchors_and_margins_preset(PRESET_BOTTOM_WIDE);
} break;
case NOTIFICATION_VISIBILITY_CHANGED: {
if (snap_mode == SNAP_AUTOSLICE && is_visible() && autoslice_is_dirty) {
@@ -1022,12 +1025,10 @@ TextureRegionEditor::TextureRegionEditor(EditorNode *p_editor) {
vscroll = memnew(VScrollBar);
vscroll->set_step(0.001);
edit_draw->add_child(vscroll);
- vscroll->set_anchors_and_margins_preset(PRESET_RIGHT_WIDE);
vscroll->connect("value_changed", this, "_scroll_changed");
hscroll = memnew(HScrollBar);
hscroll->set_step(0.001);
edit_draw->add_child(hscroll);
- hscroll->set_anchors_and_margins_preset(PRESET_BOTTOM_WIDE);
hscroll->connect("value_changed", this, "_scroll_changed");
updating_scroll = false;
diff --git a/editor/plugins/tile_map_editor_plugin.cpp b/editor/plugins/tile_map_editor_plugin.cpp
index a107cb020d..f889228f87 100644
--- a/editor/plugins/tile_map_editor_plugin.cpp
+++ b/editor/plugins/tile_map_editor_plugin.cpp
@@ -627,13 +627,14 @@ PoolVector<Vector2> TileMapEditor::_bucket_fill(const Point2i &p_start, bool era
if (r != bucket_cache_rect)
_clear_bucket_cache();
// Cache grid is not initialized
- if (bucket_cache_visited == 0) {
+ if (bucket_cache_visited == NULL) {
bucket_cache_visited = new bool[area];
invalidate_cache = true;
}
// Tile ID changed or position wasn't visited by the previous fill
- int loc = (p_start.x - r.position.x) + (p_start.y - r.position.y) * r.get_size().x;
- if (prev_id != bucket_cache_tile || !bucket_cache_visited[loc]) {
+ const int loc = (p_start.x - r.position.x) + (p_start.y - r.position.y) * r.get_size().x;
+ const bool in_range = 0 <= loc && loc < area;
+ if (prev_id != bucket_cache_tile || (in_range && !bucket_cache_visited[loc])) {
invalidate_cache = true;
}
if (invalidate_cache) {
@@ -893,7 +894,7 @@ void TileMapEditor::_draw_fill_preview(Control *p_viewport, int p_cell, const Po
void TileMapEditor::_clear_bucket_cache() {
if (bucket_cache_visited) {
delete[] bucket_cache_visited;
- bucket_cache_visited = 0;
+ bucket_cache_visited = NULL;
}
}
@@ -1924,7 +1925,7 @@ TileMapEditor::TileMapEditor(EditorNode *p_editor) {
transpose = false;
bucket_cache_tile = -1;
- bucket_cache_visited = 0;
+ bucket_cache_visited = NULL;
invalid_cell.resize(1);
invalid_cell.write[0] = TileMap::INVALID_CELL;
diff --git a/editor/rename_dialog.cpp b/editor/rename_dialog.cpp
index 32fcdab4c6..7586f6eac1 100644
--- a/editor/rename_dialog.cpp
+++ b/editor/rename_dialog.cpp
@@ -109,9 +109,13 @@ RenameDialog::RenameDialog(SceneTreeEditor *p_scene_tree_editor, UndoRedo *p_und
const int feature_min_height = 160 * EDSCALE;
- CheckButton *chk_collapse_features = memnew(CheckButton);
- chk_collapse_features->set_text(TTR("Advanced Options"));
- vbc->add_child(chk_collapse_features);
+ cbut_regex = memnew(CheckButton);
+ cbut_regex->set_text(TTR("Use Regular Expressions"));
+ vbc->add_child(cbut_regex);
+
+ CheckButton *cbut_collapse_features = memnew(CheckButton);
+ cbut_collapse_features->set_text(TTR("Advanced Options"));
+ vbc->add_child(cbut_collapse_features);
tabc_features = memnew(TabContainer);
tabc_features->set_tab_align(TabContainer::ALIGN_LEFT);
@@ -195,7 +199,7 @@ RenameDialog::RenameDialog(SceneTreeEditor *p_scene_tree_editor, UndoRedo *p_und
grd_substitute->add_child(but_insert_count);
chk_per_level_counter = memnew(CheckBox);
- chk_per_level_counter->set_text(TTR("Per Level counter"));
+ chk_per_level_counter->set_text(TTR("Per-level Counter"));
chk_per_level_counter->set_tooltip(TTR("If set the counter restarts for each group of child nodes"));
vbc_substitute->add_child(chk_per_level_counter);
@@ -233,18 +237,6 @@ RenameDialog::RenameDialog(SceneTreeEditor *p_scene_tree_editor, UndoRedo *p_und
spn_count_padding->set_step(1);
hbc_count_options->add_child(spn_count_padding);
- // ---- Tab RegEx
-
- VBoxContainer *vbc_regex = memnew(VBoxContainer);
- vbc_regex->set_h_size_flags(SIZE_EXPAND_FILL);
- vbc_regex->set_name(TTR("Regular Expressions"));
- vbc_regex->set_custom_minimum_size(Size2(0, feature_min_height));
- tabc_features->add_child(vbc_regex);
-
- cbut_regex = memnew(CheckBox);
- cbut_regex->set_text(TTR("Regular Expressions"));
- vbc_regex->add_child(cbut_regex);
-
// ---- Tab Process
VBoxContainer *vbc_process = memnew(VBoxContainer);
@@ -268,8 +260,8 @@ RenameDialog::RenameDialog(SceneTreeEditor *p_scene_tree_editor, UndoRedo *p_und
opt_style = memnew(OptionButton);
opt_style->add_item(TTR("Keep"));
- opt_style->add_item(TTR("CamelCase to under_scored"));
- opt_style->add_item(TTR("under_scored to CamelCase"));
+ opt_style->add_item(TTR("PascalCase to snake_case"));
+ opt_style->add_item(TTR("snake_case to PascalCase"));
hbc_style->add_child(opt_style);
// ------ Case
@@ -299,7 +291,7 @@ RenameDialog::RenameDialog(SceneTreeEditor *p_scene_tree_editor, UndoRedo *p_und
lbl_preview = memnew(Label);
lbl_preview->set_text("");
- lbl_preview->add_color_override("font_color", Color(1, 0.5f, 0, 1));
+ lbl_preview->add_color_override("font_color", EditorNode::get_singleton()->get_gui_base()->get_color("error_color", "Editor"));
vbc->add_child(lbl_preview);
// ---- Dialog related
@@ -314,7 +306,7 @@ RenameDialog::RenameDialog(SceneTreeEditor *p_scene_tree_editor, UndoRedo *p_und
// ---- Connections
- chk_collapse_features->connect("toggled", this, "_features_toggled");
+ cbut_collapse_features->connect("toggled", this, "_features_toggled");
// Substitite Buttons
@@ -414,9 +406,12 @@ void RenameDialog::_update_preview(String new_text) {
lbl_preview->set_text(new_name);
if (new_name == preview_node->get_name()) {
- lbl_preview->add_color_override("font_color", Color(0, 0.5f, 0.25f, 1));
+ // New name is identical to the old one. Don't color it as much to avoid distracting the user.
+ const Color accent_color = EditorNode::get_singleton()->get_gui_base()->get_color("accent_color", "Editor");
+ const Color text_color = EditorNode::get_singleton()->get_gui_base()->get_color("default_color", "RichTextLabel");
+ lbl_preview->add_color_override("font_color", accent_color.linear_interpolate(text_color, 0.5));
} else {
- lbl_preview->add_color_override("font_color", Color(0, 1, 0.5f, 1));
+ lbl_preview->add_color_override("font_color", EditorNode::get_singleton()->get_gui_base()->get_color("success_color", "Editor"));
}
}
@@ -501,9 +496,9 @@ void RenameDialog::_error_handler(void *p_self, const char *p_func, const char *
}
self->has_errors = true;
- self->lbl_preview_title->set_text(TTR("Error"));
- self->lbl_preview->add_color_override("font_color", Color(1, 0.25f, 0, 1));
- self->lbl_preview->set_text(err_str);
+ self->lbl_preview_title->set_text(TTR("Regular Expression Error"));
+ self->lbl_preview->add_color_override("font_color", EditorNode::get_singleton()->get_gui_base()->get_color("error_color", "Editor"));
+ self->lbl_preview->set_text(vformat(TTR("At character %s"), err_str));
}
String RenameDialog::_regex(const String &pattern, const String &subject, const String &replacement) {
@@ -520,18 +515,18 @@ String RenameDialog::_postprocess(const String &subject) {
String result = subject;
if (style_id == 1) {
+ // PascalCase to snake_case
- // CamelCase to Under_Line
result = result.camelcase_to_underscore(true);
result = _regex("_+", result, "_");
} else if (style_id == 2) {
+ // snake_case to PascalCase
- // Under_Line to CamelCase
RegEx pattern("_+(.?)");
Array matches = pattern.search_all(result);
- // _ name would become empty. Ignore
+ // The name `_` would become empty; ignore it.
if (matches.size() && result != "_") {
String buffer;
int start = 0;
diff --git a/editor/rename_dialog.h b/editor/rename_dialog.h
index 692e56f1a4..2825cb2cd2 100644
--- a/editor/rename_dialog.h
+++ b/editor/rename_dialog.h
@@ -75,7 +75,7 @@ class RenameDialog : public ConfirmationDialog {
TabContainer *tabc_features;
CheckBox *cbut_substitute;
- CheckBox *cbut_regex;
+ CheckButton *cbut_regex;
CheckBox *cbut_process;
CheckBox *chk_per_level_counter;
diff --git a/editor/script_create_dialog.cpp b/editor/script_create_dialog.cpp
index 35d5fe5f70..a982724d4c 100644
--- a/editor/script_create_dialog.cpp
+++ b/editor/script_create_dialog.cpp
@@ -644,7 +644,7 @@ void ScriptCreateDialog::_update_dialog() {
}
if (script_ok) {
- _msg_script_valid(true, TTR("Script is valid."));
+ _msg_script_valid(true, TTR("Script path/name is valid."));
}
// Does script have named classes?
diff --git a/editor/script_editor_debugger.cpp b/editor/script_editor_debugger.cpp
index 71a946b256..ab4501bb8a 100644
--- a/editor/script_editor_debugger.cpp
+++ b/editor/script_editor_debugger.cpp
@@ -484,8 +484,10 @@ int ScriptEditorDebugger::_update_scene_tree(TreeItem *parent, const Array &node
void ScriptEditorDebugger::_video_mem_request() {
- ERR_FAIL_COND(connection.is_null());
- ERR_FAIL_COND(!connection->is_connected_to_host());
+ if (connection.is_null() || !connection->is_connected_to_host()) {
+ // Video RAM usage is only available while a project is being debugged.
+ return;
+ }
Array msg;
msg.push_back("request_video_mem");
@@ -806,25 +808,25 @@ void ScriptEditorDebugger::_parse_message(const String &p_msg, const Array &p_da
p.write[i] = arr[i];
if (i < perf_items.size()) {
- float v = p[i];
- String vs = rtos(v);
- String tt = vs;
+ const float value = p[i];
+ String label = rtos(value);
+ String tooltip = label;
switch (Performance::MonitorType((int)perf_items[i]->get_metadata(1))) {
case Performance::MONITOR_TYPE_MEMORY: {
- vs = String::humanize_size(v);
- tt = vs;
+ label = String::humanize_size(value);
+ tooltip = label;
} break;
case Performance::MONITOR_TYPE_TIME: {
- tt += " seconds";
- vs += " s";
+ label = rtos(value * 1000).pad_decimals(2) + " ms";
+ tooltip = label;
} break;
default: {
- tt += " " + perf_items[i]->get_text(0);
+ tooltip += " " + perf_items[i]->get_text(0);
} break;
}
- perf_items[i]->set_text(1, vs);
- perf_items[i]->set_tooltip(1, tt);
+ perf_items[i]->set_text(1, label);
+ perf_items[i]->set_tooltip(1, tooltip);
if (p[i] > perf_max[i])
perf_max.write[i] = p[i];
}
@@ -1323,6 +1325,7 @@ void ScriptEditorDebugger::_notification(int p_what) {
inspect_scene_tree->clear();
le_set->set_disabled(true);
le_clear->set_disabled(false);
+ vmem_refresh->set_disabled(false);
error_tree->clear();
error_count = 0;
warning_count = 0;
@@ -1523,6 +1526,7 @@ void ScriptEditorDebugger::stop() {
le_clear->set_disabled(false);
le_set->set_disabled(true);
profiler->set_enabled(true);
+ vmem_refresh->set_disabled(true);
inspect_scene_tree->clear();
inspector->edit(NULL);
@@ -1622,6 +1626,7 @@ void ScriptEditorDebugger::_output_clear() {
void ScriptEditorDebugger::_export_csv() {
file_dialog->set_mode(EditorFileDialog::MODE_SAVE_FILE);
+ file_dialog->set_access(EditorFileDialog::ACCESS_FILESYSTEM);
file_dialog_mode = SAVE_CSV;
file_dialog->popup_centered_ratio();
}
@@ -2187,6 +2192,13 @@ void ScriptEditorDebugger::_item_menu_id_pressed(int p_option) {
}
}
+void ScriptEditorDebugger::_tab_changed(int p_tab) {
+ if (tabs->get_tab_title(p_tab) == TTR("Video RAM")) {
+ // "Video RAM" tab was clicked, refresh the data it's dislaying when entering the tab.
+ _video_mem_request();
+ }
+}
+
void ScriptEditorDebugger::_bind_methods() {
ClassDB::bind_method(D_METHOD("_stack_dump_frame_selected"), &ScriptEditorDebugger::_stack_dump_frame_selected);
@@ -2218,6 +2230,7 @@ void ScriptEditorDebugger::_bind_methods() {
ClassDB::bind_method(D_METHOD("_error_tree_item_rmb_selected"), &ScriptEditorDebugger::_error_tree_item_rmb_selected);
ClassDB::bind_method(D_METHOD("_item_menu_id_pressed"), &ScriptEditorDebugger::_item_menu_id_pressed);
+ ClassDB::bind_method(D_METHOD("_tab_changed"), &ScriptEditorDebugger::_tab_changed);
ClassDB::bind_method(D_METHOD("_paused"), &ScriptEditorDebugger::_paused);
@@ -2258,13 +2271,13 @@ ScriptEditorDebugger::ScriptEditorDebugger(EditorNode *p_editor) {
tabs->add_style_override("panel", editor->get_gui_base()->get_stylebox("DebuggerPanel", "EditorStyles"));
tabs->add_style_override("tab_fg", editor->get_gui_base()->get_stylebox("DebuggerTabFG", "EditorStyles"));
tabs->add_style_override("tab_bg", editor->get_gui_base()->get_stylebox("DebuggerTabBG", "EditorStyles"));
+ tabs->connect("tab_changed", this, "_tab_changed");
add_child(tabs);
{ //debugger
VBoxContainer *vbc = memnew(VBoxContainer);
vbc->set_name(TTR("Debugger"));
- //tabs->add_child(vbc);
Control *dbg = vbc;
HBoxContainer *hbc = memnew(HBoxContainer);
@@ -2522,6 +2535,7 @@ ScriptEditorDebugger::ScriptEditorDebugger(EditorNode *p_editor) {
vmem_total->set_custom_minimum_size(Size2(100, 0) * EDSCALE);
vmem_hb->add_child(vmem_total);
vmem_refresh = memnew(ToolButton);
+ vmem_refresh->set_disabled(true);
vmem_hb->add_child(vmem_refresh);
vmem_vb->add_child(vmem_hb);
vmem_refresh->connect("pressed", this, "_video_mem_request");
@@ -2534,20 +2548,20 @@ ScriptEditorDebugger::ScriptEditorDebugger(EditorNode *p_editor) {
vmmc->set_v_size_flags(SIZE_EXPAND_FILL);
vmem_vb->add_child(vmmc);
- vmem_vb->set_name(TTR("Video Mem"));
+ vmem_vb->set_name(TTR("Video RAM"));
vmem_tree->set_columns(4);
vmem_tree->set_column_titles_visible(true);
vmem_tree->set_column_title(0, TTR("Resource Path"));
vmem_tree->set_column_expand(0, true);
vmem_tree->set_column_expand(1, false);
vmem_tree->set_column_title(1, TTR("Type"));
- vmem_tree->set_column_min_width(1, 100);
+ vmem_tree->set_column_min_width(1, 100 * EDSCALE);
vmem_tree->set_column_expand(2, false);
vmem_tree->set_column_title(2, TTR("Format"));
- vmem_tree->set_column_min_width(2, 150);
+ vmem_tree->set_column_min_width(2, 150 * EDSCALE);
vmem_tree->set_column_expand(3, false);
vmem_tree->set_column_title(3, TTR("Usage"));
- vmem_tree->set_column_min_width(3, 80);
+ vmem_tree->set_column_min_width(3, 80 * EDSCALE);
vmem_tree->set_hide_root(true);
tabs->add_child(vmem_vb);
diff --git a/editor/script_editor_debugger.h b/editor/script_editor_debugger.h
index 7d91e247b6..589a011bff 100644
--- a/editor/script_editor_debugger.h
+++ b/editor/script_editor_debugger.h
@@ -226,6 +226,7 @@ private:
void _error_tree_item_rmb_selected(const Vector2 &p_pos);
void _item_menu_id_pressed(int p_option);
+ void _tab_changed(int p_tab);
void _export_csv();
diff --git a/editor/translations/af.po b/editor/translations/af.po
index 9e9f07b064..23917c09e6 100644
--- a/editor/translations/af.po
+++ b/editor/translations/af.po
@@ -2022,16 +2022,6 @@ msgid "Online Tutorials"
msgstr ""
#: editor/editor_help.cpp
-#, fuzzy
-msgid ""
-"There are currently no tutorials for this class, you can [color=$color][url="
-"$url]contribute one[/url][/color] or [color=$color][url=$url2]request one[/"
-"url][/color]."
-msgstr ""
-"Daar is tans geen beskrywing vir hierdie metode nie. Help ons asseblief deur "
-"[color=$color][url=$url]een by te dra[/url][/color]!"
-
-#: editor/editor_help.cpp
msgid "Properties"
msgstr "Eienskappe"
@@ -4603,7 +4593,6 @@ msgid "Animation Tools"
msgstr ""
#: editor/plugins/animation_player_editor_plugin.cpp
-#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Animation"
msgstr ""
@@ -5688,6 +5677,11 @@ msgid "Auto Insert Key"
msgstr "Anim Voeg Sleutel by"
#: editor/plugins/canvas_item_editor_plugin.cpp
+#, fuzzy
+msgid "Animation Key and Pose Options"
+msgstr "Animasie lengte (in sekondes)."
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Insert Key (Existing Tracks)"
msgstr ""
@@ -5977,7 +5971,6 @@ msgid "No mesh to debug."
msgstr ""
#: editor/plugins/mesh_instance_editor_plugin.cpp
-#: editor/plugins/sprite_editor_plugin.cpp
msgid "Model has no UV in this layer"
msgstr ""
@@ -12547,6 +12540,15 @@ msgstr ""
msgid "Constants cannot be modified."
msgstr ""
+#, fuzzy
+#~ msgid ""
+#~ "There are currently no tutorials for this class, you can [color=$color]"
+#~ "[url=$url]contribute one[/url][/color] or [color=$color][url="
+#~ "$url2]request one[/url][/color]."
+#~ msgstr ""
+#~ "Daar is tans geen beskrywing vir hierdie metode nie. Help ons asseblief "
+#~ "deur [color=$color][url=$url]een by te dra[/url][/color]!"
+
#~ msgid "enum "
#~ msgstr "enum "
diff --git a/editor/translations/ar.po b/editor/translations/ar.po
index 8eed29764d..6a3dba2b43 100644
--- a/editor/translations/ar.po
+++ b/editor/translations/ar.po
@@ -1999,16 +1999,6 @@ msgid "Online Tutorials"
msgstr "الدورس علي الإنترنت:"
#: editor/editor_help.cpp
-msgid ""
-"There are currently no tutorials for this class, you can [color=$color][url="
-"$url]contribute one[/url][/color] or [color=$color][url=$url2]request one[/"
-"url][/color]."
-msgstr ""
-"ليس هناك دروس تعليمية ÙÙŠ هذا الÙصل، يمكنك [color=$color][url=$url] المساهمة "
-"ÙÙŠ إحداها [/url][/color] أو [color=$color][url=$url2]أطلب أحداها [/url][/"
-"color]."
-
-#: editor/editor_help.cpp
msgid "Properties"
msgstr "خصائص"
@@ -4684,7 +4674,6 @@ msgid "Animation Tools"
msgstr "أدوات الحركة"
#: editor/plugins/animation_player_editor_plugin.cpp
-#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Animation"
msgstr "صورة متحركة"
@@ -5811,6 +5800,11 @@ msgid "Auto Insert Key"
msgstr "أض٠مÙتاح الحركة"
#: editor/plugins/canvas_item_editor_plugin.cpp
+#, fuzzy
+msgid "Animation Key and Pose Options"
+msgstr "مدة الحركة (seconds)"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Insert Key (Existing Tracks)"
msgstr "أدخل Ù…Ùتاح (مسارات موجودة بالÙعل)"
@@ -6109,7 +6103,6 @@ msgid "No mesh to debug."
msgstr "لا ميش لتصحيحة."
#: editor/plugins/mesh_instance_editor_plugin.cpp
-#: editor/plugins/sprite_editor_plugin.cpp
msgid "Model has no UV in this layer"
msgstr "النموذج ليس لديه UV ÙÙŠ هذا الطابق"
@@ -12813,6 +12806,15 @@ msgstr "يمكن تعيين المتغيرات Ùقط ÙÙŠ الذروة ."
msgid "Constants cannot be modified."
msgstr "لا يمكن تعديل الثوابت."
+#~ msgid ""
+#~ "There are currently no tutorials for this class, you can [color=$color]"
+#~ "[url=$url]contribute one[/url][/color] or [color=$color][url="
+#~ "$url2]request one[/url][/color]."
+#~ msgstr ""
+#~ "ليس هناك دروس تعليمية ÙÙŠ هذا الÙصل، يمكنك [color=$color][url=$url] "
+#~ "المساهمة ÙÙŠ إحداها [/url][/color] أو [color=$color][url=$url2]أطلب أحداها "
+#~ "[/url][/color]."
+
#~ msgid "enum "
#~ msgstr "التعداد "
diff --git a/editor/translations/bg.po b/editor/translations/bg.po
index f5f4b0071d..a42e873790 100644
--- a/editor/translations/bg.po
+++ b/editor/translations/bg.po
@@ -1986,13 +1986,6 @@ msgid "Online Tutorials"
msgstr ""
#: editor/editor_help.cpp
-msgid ""
-"There are currently no tutorials for this class, you can [color=$color][url="
-"$url]contribute one[/url][/color] or [color=$color][url=$url2]request one[/"
-"url][/color]."
-msgstr ""
-
-#: editor/editor_help.cpp
msgid "Properties"
msgstr ""
@@ -4615,7 +4608,6 @@ msgid "Animation Tools"
msgstr "Ðнимационни ИнÑтрументи"
#: editor/plugins/animation_player_editor_plugin.cpp
-#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Animation"
msgstr ""
@@ -5728,6 +5720,11 @@ msgid "Auto Insert Key"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
+#, fuzzy
+msgid "Animation Key and Pose Options"
+msgstr "Промени Името на ÐнимациÑта:"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Insert Key (Existing Tracks)"
msgstr ""
@@ -6017,7 +6014,6 @@ msgid "No mesh to debug."
msgstr ""
#: editor/plugins/mesh_instance_editor_plugin.cpp
-#: editor/plugins/sprite_editor_plugin.cpp
msgid "Model has no UV in this layer"
msgstr ""
diff --git a/editor/translations/bn.po b/editor/translations/bn.po
index eb2f1b5b22..3cfcc98809 100644
--- a/editor/translations/bn.po
+++ b/editor/translations/bn.po
@@ -2076,17 +2076,6 @@ msgstr "টিউটোরিয়ালসমূহ"
#: editor/editor_help.cpp
#, fuzzy
-msgid ""
-"There are currently no tutorials for this class, you can [color=$color][url="
-"$url]contribute one[/url][/color] or [color=$color][url=$url2]request one[/"
-"url][/color]."
-msgstr ""
-"à¦à¦‡ মেথড সমà§à¦ªà¦°à§à¦•à§‡ বিসà§à¦¤à¦¾à¦°à¦¿à¦¤ তথà§à¦¯ লিপিবদà§à¦§ করা হয়নি। অনà§à¦—à§à¦°à¦¹ করে তথà§à¦¯ পà§à¦°à¦¦à¦¾à¦¨à§‡à¦° মাধà§à¦¯à¦®à§‡ "
-"সহায়তা করà§à¦¨à¥¤ তথà§à¦¯ পà§à¦°à¦¦à¦¾à¦¨à§‡à¦° জনà§à¦¯ [color=$color][url=$url], [/url][/color] ফরমà§à¦¯à¦¾à¦Ÿ "
-"বà§à¦¯à¦¾à¦¬à¦¹à¦¾à¦° করà§à¦¨ !"
-
-#: editor/editor_help.cpp
-#, fuzzy
msgid "Properties"
msgstr "পà§à¦°à§‹à¦ªà¦¾à¦°à§à¦Ÿà¦¿-সমূহ:"
@@ -4888,7 +4877,6 @@ msgid "Animation Tools"
msgstr "অà§à¦¯à¦¾à¦¨à¦¿à¦®à§‡à¦¶à¦¨à§‡à¦° সরঞà§à¦œà¦¾à¦®à¦¸à¦®à§‚হ"
#: editor/plugins/animation_player_editor_plugin.cpp
-#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Animation"
msgstr "অà§à¦¯à¦¾à¦¨à¦¿à¦®à§‡à¦¶à¦¨"
@@ -6042,6 +6030,11 @@ msgid "Auto Insert Key"
msgstr "অà§à¦¯à¦¾à¦¨à¦¿à¦®à§‡à¦¶à¦¨à§‡ (Anim) চাবি যোগ করà§à¦¨"
#: editor/plugins/canvas_item_editor_plugin.cpp
+#, fuzzy
+msgid "Animation Key and Pose Options"
+msgstr "অà§à¦¯à¦¾à¦¨à¦¿à¦®à§‡à¦¶à¦¨à§‡à¦° চাবি সনà§à¦¨à¦¿à¦¬à§‡à¦¶à¦¿à¦¤ হয়েছে।"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Insert Key (Existing Tracks)"
msgstr "চাবি সনà§à¦¨à¦¿à¦¬à§‡à¦¶ করà§à¦¨ (বিদà§à¦¯à¦®à¦¾à¦¨ টà§à¦°à§à¦¯à¦¾à¦•/পথসমূহ)"
@@ -6351,7 +6344,6 @@ msgid "No mesh to debug."
msgstr ""
#: editor/plugins/mesh_instance_editor_plugin.cpp
-#: editor/plugins/sprite_editor_plugin.cpp
msgid "Model has no UV in this layer"
msgstr ""
@@ -13392,6 +13384,16 @@ msgstr ""
msgid "Constants cannot be modified."
msgstr ""
+#, fuzzy
+#~ msgid ""
+#~ "There are currently no tutorials for this class, you can [color=$color]"
+#~ "[url=$url]contribute one[/url][/color] or [color=$color][url="
+#~ "$url2]request one[/url][/color]."
+#~ msgstr ""
+#~ "à¦à¦‡ মেথড সমà§à¦ªà¦°à§à¦•à§‡ বিসà§à¦¤à¦¾à¦°à¦¿à¦¤ তথà§à¦¯ লিপিবদà§à¦§ করা হয়নি। অনà§à¦—à§à¦°à¦¹ করে তথà§à¦¯ পà§à¦°à¦¦à¦¾à¦¨à§‡à¦° "
+#~ "মাধà§à¦¯à¦®à§‡ সহায়তা করà§à¦¨à¥¤ তথà§à¦¯ পà§à¦°à¦¦à¦¾à¦¨à§‡à¦° জনà§à¦¯ [color=$color][url=$url], [/url][/"
+#~ "color] ফরমà§à¦¯à¦¾à¦Ÿ বà§à¦¯à¦¾à¦¬à¦¹à¦¾à¦° করà§à¦¨ !"
+
#~ msgid "enum "
#~ msgstr "enum "
diff --git a/editor/translations/ca.po b/editor/translations/ca.po
index 9902c8a736..dc618c880f 100644
--- a/editor/translations/ca.po
+++ b/editor/translations/ca.po
@@ -9,12 +9,13 @@
# roger <616steam@gmail.com>, 2019.
# Roger BR <drai_kin@hotmail.com>, 2019.
# Adolfo Jayme Barrientos <fitojb@ubuntu.com>, 2020.
+# Xavier Gomez <hiulit@gmail.com>, 2020.
msgid ""
msgstr ""
"Project-Id-Version: Godot Engine editor\n"
"POT-Creation-Date: \n"
-"PO-Revision-Date: 2020-01-03 21:21+0000\n"
-"Last-Translator: Adolfo Jayme Barrientos <fitojb@ubuntu.com>\n"
+"PO-Revision-Date: 2020-01-27 07:09+0000\n"
+"Last-Translator: Xavier Gomez <hiulit@gmail.com>\n"
"Language-Team: Catalan <https://hosted.weblate.org/projects/godot-engine/"
"godot/ca/>\n"
"Language: ca\n"
@@ -22,7 +23,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Generator: Weblate 3.10\n"
+"X-Generator: Weblate 3.11-dev\n"
#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
#: modules/visual_script/visual_script_builtin_funcs.cpp
@@ -431,7 +432,7 @@ msgstr "No es pot afegir una nova pista sense cap arrel"
#: editor/animation_track_editor.cpp
msgid "Invalid track for Bezier (no suitable sub-properties)"
-msgstr ""
+msgstr "La pista no és vàlida per a Bezier (no hi ha subpropietats adequades)"
#: editor/animation_track_editor.cpp
msgid "Add Bezier Track"
@@ -500,16 +501,23 @@ msgid ""
"Alternatively, use an import preset that imports animations to separate "
"files."
msgstr ""
+"Aquesta animació pertany a una escena importada, de manera que no es desaran "
+"els canvis a les pistes importades.\n"
+"\n"
+"Per habilitar la possibilitat d’afegir pistes personalitzades, navegueu a la "
+"configuració d’importació de l’escena i establiu\n"
+"\"Animation > Storage\" a \"Files\", activeu \"Animation > Keep Custom Tracks"
+"\", i, després, reimporteu.\n"
+"També podeu fer servir una configuració preestablerta que importi animacions "
+"a fitxers separats."
#: editor/animation_track_editor.cpp
msgid "Warning: Editing imported animation"
msgstr "Advertiment: Edició d'animació importada"
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "Select an AnimationPlayer node to create and edit animations."
-msgstr ""
-"Selecciona un AnimationPlayer a l'Arbre de l'Escena per editar-ne l'animació."
+msgstr "Seleccioneu un node AnimationPlayer per a crear i editar animacions."
#: editor/animation_track_editor.cpp
msgid "Only show tracks from nodes selected in tree."
@@ -811,9 +819,8 @@ msgid "Extra Call Arguments:"
msgstr "Arguments de Crida addicionals:"
#: editor/connections_dialog.cpp
-#, fuzzy
msgid "Receiver Method:"
-msgstr "Selecciona un Mètode"
+msgstr "Mètode Receptor:"
#: editor/connections_dialog.cpp
msgid "Advanced"
@@ -1166,22 +1173,21 @@ msgid "License"
msgstr "Llicència"
#: editor/editor_about.cpp
-#, fuzzy
msgid "Third-party Licenses"
msgstr "Llicències de Tercers"
#: editor/editor_about.cpp
-#, fuzzy
msgid ""
"Godot Engine relies on a number of third-party free and open source "
"libraries, all compatible with the terms of its MIT license. The following "
"is an exhaustive list of all such third-party components with their "
"respective copyright statements and license terms."
msgstr ""
-"El motor Godot es recolza en una sèrie de biblioteques lliures i de codi "
-"obert, totes elles compatibles amb els termes de la llicència MIT. Tot "
-"seguit podeu trobar la llista exhaustiva de tots aquests components externs "
-"amb llurs respectius drets d'autor i termes de llicenciament."
+"Godot Engine compta amb diverses biblioteques gratuïtes i de codi obert de "
+"tercers, totes compatibles amb els termes de la seva llicència MIT. A "
+"continuació, es mostra una llista exhaustiva de tots aquests components de "
+"tercers amb les seves respectives declaracions de copyright i termes de "
+"llicència."
#: editor/editor_about.cpp
msgid "All Components"
@@ -1196,14 +1202,13 @@ msgid "Licenses"
msgstr "Llicències"
#: editor/editor_asset_installer.cpp editor/project_manager.cpp
-#, fuzzy
msgid "Error opening package file, not in ZIP format."
-msgstr "Error en obrir el arxiu comprimit, el fitxer no té el format ZIP."
+msgstr ""
+"S'ha produit un error en obrir el fitxer comprimit, no té el format ZIP."
#: editor/editor_asset_installer.cpp
-#, fuzzy
msgid "%s (Already Exists)"
-msgstr "Ja existeix"
+msgstr "%s (Ja existeix)"
#: editor/editor_asset_installer.cpp
msgid "Uncompressing Assets"
@@ -1214,9 +1219,8 @@ msgid "The following files failed extraction from package:"
msgstr "Ha fracassat l'extracció del paquet dels següents fitxers:"
#: editor/editor_asset_installer.cpp
-#, fuzzy
msgid "And %s more files."
-msgstr "%d fitxer(s) més"
+msgstr "I %d fitxer(s) més."
#: editor/editor_asset_installer.cpp editor/project_manager.cpp
msgid "Package installed successfully!"
@@ -1228,9 +1232,8 @@ msgid "Success!"
msgstr "Èxit!"
#: editor/editor_asset_installer.cpp
-#, fuzzy
msgid "Package Contents:"
-msgstr "Continguts:"
+msgstr "Contingut del Paquet:"
#: editor/editor_asset_installer.cpp editor/editor_node.cpp
msgid "Install"
@@ -1285,9 +1288,8 @@ msgid "Delete Bus Effect"
msgstr "Elimina l'Efecte de Bus"
#: editor/editor_audio_buses.cpp
-#, fuzzy
msgid "Drag & drop to rearrange."
-msgstr "Arrossegueu i deixeu anar per reordenar."
+msgstr "Arrossegueu i deixeu anar per a reorganitzar."
#: editor/editor_audio_buses.cpp
msgid "Solo"
@@ -1371,9 +1373,8 @@ msgid "Invalid file, not an audio bus layout."
msgstr "Fitxer incorrecte. No és un disseny de bus d'àudio."
#: editor/editor_audio_buses.cpp
-#, fuzzy
msgid "Error saving file: %s"
-msgstr "Error en desar el fitxer!"
+msgstr "S'ha produit un error al desar el fitxer! %s"
#: editor/editor_audio_buses.cpp
msgid "Add Bus"
@@ -1422,28 +1423,20 @@ msgid "Valid characters:"
msgstr "Caràcters vàlids:"
#: editor/editor_autoload_settings.cpp
-#, fuzzy
msgid "Must not collide with an existing engine class name."
-msgstr "No pot coincidir amb noms de classe del motor ja existents."
+msgstr "No ha de coincidir amb un nom de classe de motor existent."
#: editor/editor_autoload_settings.cpp
-#, fuzzy
msgid "Must not collide with an existing built-in type name."
-msgstr ""
-"El Nom no és vàlid. No pot coincidir amb noms de tipus integrats ja "
-"existents."
+msgstr "No ha de coincidir amb un nom de tipus incorporat existent."
#: editor/editor_autoload_settings.cpp
-#, fuzzy
msgid "Must not collide with an existing global constant name."
-msgstr ""
-"El Nom no és vàlid. No pot coincidir amb noms de constants globals ja "
-"existents."
+msgstr "No ha de coincidir amb una constant global existent."
#: editor/editor_autoload_settings.cpp
-#, fuzzy
msgid "Keyword cannot be used as an autoload name."
-msgstr "Una paraula clau no es pot utilitzar com a nom de càrrega automàtica."
+msgstr "La paraula clau no es pot utilitzar com a nom d'autocàrrega."
#: editor/editor_autoload_settings.cpp
msgid "Autoload '%s' already exists!"
@@ -1595,6 +1588,10 @@ msgid ""
"Enable 'Import Etc' in Project Settings, or disable 'Driver Fallback "
"Enabled'."
msgstr ""
+"La plataforma de destinació requereix una compressió de textura 'ETC' per a "
+"utilitzar GLES2 com a controlador alternatiu.\n"
+"Activeu \"Import Etc\" a Configuració del Projecte o desactiveu la opció "
+"'Driver Fallback Enabled''."
#: editor/editor_export.cpp platform/android/export/export.cpp
#: platform/iphone/export/export.cpp platform/javascript/export/export.cpp
@@ -1613,11 +1610,9 @@ msgid "Template file not found:"
msgstr "No s'ha trobat la Plantilla:"
#: editor/editor_export.cpp
-#, fuzzy
msgid "On 32-bit exports the embedded PCK cannot be bigger than 4 GiB."
msgstr ""
-"En les exportacions de 32 bits, el PCK incrustat no pot ser més gran que 4 "
-"GiB."
+"En les exportacions de 32 bits, el PCK incrustat no pot ser superior a 4 GiB."
#: editor/editor_feature_profile.cpp
msgid "3D Editor"
@@ -1970,16 +1965,6 @@ msgid "Online Tutorials"
msgstr "Tutorials en línia:"
#: editor/editor_help.cpp
-msgid ""
-"There are currently no tutorials for this class, you can [color=$color][url="
-"$url]contribute one[/url][/color] or [color=$color][url=$url2]request one[/"
-"url][/color]."
-msgstr ""
-"Aquesta classe no disposa encara de cap Tutorial. Podeu contribuir [color="
-"$color][url=$url] tot aportant-ne un[/url][/color] o [color=$color][url="
-"$url2]sol·licitant-lo[/url][/color]."
-
-#: editor/editor_help.cpp
msgid "Properties"
msgstr "Propietats"
@@ -4601,7 +4586,6 @@ msgid "Animation Tools"
msgstr "Eines d'Animació"
#: editor/plugins/animation_player_editor_plugin.cpp
-#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Animation"
msgstr "Animació"
@@ -5724,6 +5708,11 @@ msgid "Auto Insert Key"
msgstr "Inserir Clau Automàticament"
#: editor/plugins/canvas_item_editor_plugin.cpp
+#, fuzzy
+msgid "Animation Key and Pose Options"
+msgstr "S'ha insertit una Clau d'Animació."
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Insert Key (Existing Tracks)"
msgstr "Insereix una Clau (Pistes existents)"
@@ -6017,7 +6006,6 @@ msgid "No mesh to debug."
msgstr "Cap malla per depurar."
#: editor/plugins/mesh_instance_editor_plugin.cpp
-#: editor/plugins/sprite_editor_plugin.cpp
msgid "Model has no UV in this layer"
msgstr "El model no té UVs en aquesta capa"
@@ -12988,6 +12976,15 @@ msgstr ""
msgid "Constants cannot be modified."
msgstr "Les constants no es poden modificar."
+#~ msgid ""
+#~ "There are currently no tutorials for this class, you can [color=$color]"
+#~ "[url=$url]contribute one[/url][/color] or [color=$color][url="
+#~ "$url2]request one[/url][/color]."
+#~ msgstr ""
+#~ "Aquesta classe no disposa encara de cap Tutorial. Podeu contribuir "
+#~ "[color=$color][url=$url] tot aportant-ne un[/url][/color] o [color="
+#~ "$color][url=$url2]sol·licitant-lo[/url][/color]."
+
#~ msgid "enum "
#~ msgstr "enum "
diff --git a/editor/translations/cs.po b/editor/translations/cs.po
index 9c8c99d251..b060c0c234 100644
--- a/editor/translations/cs.po
+++ b/editor/translations/cs.po
@@ -1963,16 +1963,6 @@ msgid "Online Tutorials"
msgstr "Online návody"
#: editor/editor_help.cpp
-msgid ""
-"There are currently no tutorials for this class, you can [color=$color][url="
-"$url]contribute one[/url][/color] or [color=$color][url=$url2]request one[/"
-"url][/color]."
-msgstr ""
-"V souÄasné dobÄ› pro tuto třídu neexistují žádné návody, můžete nÄ›jaký [color="
-"$color][url=$url]vytvořit[/url][/color] nebo o něj [color=$color][url="
-"$url2]zažádat[/url][/color]."
-
-#: editor/editor_help.cpp
msgid "Properties"
msgstr "Vlastnosti"
@@ -4580,7 +4570,6 @@ msgid "Animation Tools"
msgstr "Nástroje pro animaci"
#: editor/plugins/animation_player_editor_plugin.cpp
-#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Animation"
msgstr "Animace"
@@ -5663,6 +5652,11 @@ msgid "Auto Insert Key"
msgstr "Animace: vložit klíÄ"
#: editor/plugins/canvas_item_editor_plugin.cpp
+#, fuzzy
+msgid "Animation Key and Pose Options"
+msgstr "AnimaÄní klÃ­Ä vložen."
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Insert Key (Existing Tracks)"
msgstr "Vložit klÃ­Ä (existující stopy)"
@@ -5957,7 +5951,6 @@ msgid "No mesh to debug."
msgstr "Žádná mesh pro debugování."
#: editor/plugins/mesh_instance_editor_plugin.cpp
-#: editor/plugins/sprite_editor_plugin.cpp
msgid "Model has no UV in this layer"
msgstr "Model nemá UV v této vrstvě"
@@ -12738,6 +12731,15 @@ msgstr ""
msgid "Constants cannot be modified."
msgstr "Konstanty není možné upravovat."
+#~ msgid ""
+#~ "There are currently no tutorials for this class, you can [color=$color]"
+#~ "[url=$url]contribute one[/url][/color] or [color=$color][url="
+#~ "$url2]request one[/url][/color]."
+#~ msgstr ""
+#~ "V souÄasné dobÄ› pro tuto třídu neexistují žádné návody, můžete nÄ›jaký "
+#~ "[color=$color][url=$url]vytvořit[/url][/color] nebo o něj [color=$color]"
+#~ "[url=$url2]zažádat[/url][/color]."
+
#~ msgid "enum "
#~ msgstr "výÄet "
diff --git a/editor/translations/da.po b/editor/translations/da.po
index 1851018836..aed35d2dc6 100644
--- a/editor/translations/da.po
+++ b/editor/translations/da.po
@@ -2033,16 +2033,6 @@ msgid "Online Tutorials"
msgstr "Online Undervisning:"
#: editor/editor_help.cpp
-msgid ""
-"There are currently no tutorials for this class, you can [color=$color][url="
-"$url]contribute one[/url][/color] or [color=$color][url=$url2]request one[/"
-"url][/color]."
-msgstr ""
-"Der er i øjeblikket ingen vejledninger for denne klasse, du kan [color="
-"$color][url=$url]bidrage med en[/url][/color] eller [color=$color][url="
-"$url2]anmode en[/url][/color]."
-
-#: editor/editor_help.cpp
msgid "Properties"
msgstr "Egenskaber"
@@ -4714,7 +4704,6 @@ msgid "Animation Tools"
msgstr ""
#: editor/plugins/animation_player_editor_plugin.cpp
-#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Animation"
msgstr ""
@@ -5819,6 +5808,11 @@ msgid "Auto Insert Key"
msgstr "Anim Indsæt Nøgle"
#: editor/plugins/canvas_item_editor_plugin.cpp
+#, fuzzy
+msgid "Animation Key and Pose Options"
+msgstr "Animations længde (i sekunder)"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Insert Key (Existing Tracks)"
msgstr ""
@@ -6109,7 +6103,6 @@ msgid "No mesh to debug."
msgstr ""
#: editor/plugins/mesh_instance_editor_plugin.cpp
-#: editor/plugins/sprite_editor_plugin.cpp
msgid "Model has no UV in this layer"
msgstr ""
@@ -12875,6 +12868,15 @@ msgstr ""
msgid "Constants cannot be modified."
msgstr "Konstanter kan ikke ændres."
+#~ msgid ""
+#~ "There are currently no tutorials for this class, you can [color=$color]"
+#~ "[url=$url]contribute one[/url][/color] or [color=$color][url="
+#~ "$url2]request one[/url][/color]."
+#~ msgstr ""
+#~ "Der er i øjeblikket ingen vejledninger for denne klasse, du kan [color="
+#~ "$color][url=$url]bidrage med en[/url][/color] eller [color=$color][url="
+#~ "$url2]anmode en[/url][/color]."
+
#~ msgid "enum "
#~ msgstr "enum "
diff --git a/editor/translations/de.po b/editor/translations/de.po
index 60b086ffe6..1b1ada4825 100644
--- a/editor/translations/de.po
+++ b/editor/translations/de.po
@@ -52,7 +52,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Godot Engine editor\n"
"POT-Creation-Date: \n"
-"PO-Revision-Date: 2020-01-19 11:03+0000\n"
+"PO-Revision-Date: 2020-01-20 11:39+0000\n"
"Last-Translator: So Wieso <sowieso@dukun.de>\n"
"Language-Team: German <https://hosted.weblate.org/projects/godot-engine/"
"godot/de/>\n"
@@ -61,7 +61,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Generator: Weblate 3.10.2\n"
+"X-Generator: Weblate 3.11-dev\n"
#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
#: modules/visual_script/visual_script_builtin_funcs.cpp
@@ -1993,16 +1993,6 @@ msgid "Online Tutorials"
msgstr "Anleitungen im Netz"
#: editor/editor_help.cpp
-msgid ""
-"There are currently no tutorials for this class, you can [color=$color][url="
-"$url]contribute one[/url][/color] or [color=$color][url=$url2]request one[/"
-"url][/color]."
-msgstr ""
-"Es gibt zurzeit keine Tutorials zu dieser Klasse. Mitwirkungen durch [color="
-"$color][url=$url]eigene Beiträge[/url][/color] oder [color=$color][url="
-"$url2]Meldung von Problemen[/url][/color] sind sehr erwünscht."
-
-#: editor/editor_help.cpp
msgid "Properties"
msgstr "Eigenschaften"
@@ -4601,7 +4591,6 @@ msgid "Animation Tools"
msgstr "Animationswerkzeuge"
#: editor/plugins/animation_player_editor_plugin.cpp
-#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Animation"
msgstr "Animation"
@@ -5678,6 +5667,11 @@ msgid "Auto Insert Key"
msgstr "Schlüsselbild automatisch einfügen"
#: editor/plugins/canvas_item_editor_plugin.cpp
+#, fuzzy
+msgid "Animation Key and Pose Options"
+msgstr "Animationsschlüsselbild eingefügt."
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Insert Key (Existing Tracks)"
msgstr "Schlüsselbild einfügen (in existierende Spuren)"
@@ -5961,7 +5955,6 @@ msgid "No mesh to debug."
msgstr "Kein Mesh zu debuggen."
#: editor/plugins/mesh_instance_editor_plugin.cpp
-#: editor/plugins/sprite_editor_plugin.cpp
msgid "Model has no UV in this layer"
msgstr "Modell besitzt kein UV in dieser Schicht"
@@ -7358,7 +7351,7 @@ msgstr "Cinematische Vorschau"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Not available when using the GLES2 renderer."
-msgstr ""
+msgstr "Nicht verfügbar wenn der GLES2–Renderer genutzt wird."
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Freelook Left"
@@ -12744,6 +12737,15 @@ msgstr "Varyings können nur in Vertex-Funktion zugewiesen werden."
msgid "Constants cannot be modified."
msgstr "Konstanten können nicht verändert werden."
+#~ msgid ""
+#~ "There are currently no tutorials for this class, you can [color=$color]"
+#~ "[url=$url]contribute one[/url][/color] or [color=$color][url="
+#~ "$url2]request one[/url][/color]."
+#~ msgstr ""
+#~ "Es gibt zurzeit keine Tutorials zu dieser Klasse. Mitwirkungen durch "
+#~ "[color=$color][url=$url]eigene Beiträge[/url][/color] oder [color=$color]"
+#~ "[url=$url2]Meldung von Problemen[/url][/color] sind sehr erwünscht."
+
#~ msgid "enum "
#~ msgstr "Enum "
diff --git a/editor/translations/de_CH.po b/editor/translations/de_CH.po
index bfa4c18d1f..fc524de9ad 100644
--- a/editor/translations/de_CH.po
+++ b/editor/translations/de_CH.po
@@ -2,23 +2,22 @@
# Copyright (c) 2007-2020 Juan Linietsky, Ariel Manzur.
# Copyright (c) 2014-2020 Godot Engine contributors (cf. AUTHORS.md).
# This file is distributed under the same license as the Godot source code.
-#
# Christian Fisch <christian.fiesel@gmail.com>, 2016.
-#
+# Nils <nfa106008@iet-gibb.ch>, 2020.
msgid ""
msgstr ""
"Project-Id-Version: Godot Engine editor\n"
"POT-Creation-Date: \n"
-"PO-Revision-Date: 2018-12-13 14:38+0100\n"
-"Last-Translator: Christian Fisch <christian.fiesel@gmail.com>\n"
-"Language-Team: Swiss High German <https://hosted.weblate.org/projects/godot-"
-"engine/godot/de_CH/>\n"
+"PO-Revision-Date: 2020-01-20 11:39+0000\n"
+"Last-Translator: Nils <nfa106008@iet-gibb.ch>\n"
+"Language-Team: German (Swiss High) <https://hosted.weblate.org/projects/"
+"godot-engine/godot/de_CH/>\n"
"Language: de_CH\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Generator: Poedit 2.2\n"
+"X-Generator: Weblate 3.11-dev\n"
#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
#: modules/visual_script/visual_script_builtin_funcs.cpp
@@ -41,108 +40,103 @@ msgstr ""
#: core/math/expression.cpp
msgid "self can't be used because instance is null (not passed)"
-msgstr ""
+msgstr "self cha nid brucht wärde wöu d Instanz null isch (nid düre cho)"
#: core/math/expression.cpp
msgid "Invalid operands to operator %s, %s and %s."
-msgstr ""
+msgstr "Invalidi Operande füre Operator %s, %s und %s."
#: core/math/expression.cpp
msgid "Invalid index of type %s for base type %s"
-msgstr ""
+msgstr "Invalide index vom Typ %s füre Basis Typ %s"
#: core/math/expression.cpp
msgid "Invalid named index '%s' for base type %s"
-msgstr ""
+msgstr "Invalid benamslete index '%s' füre Basis Typ %s"
#: core/math/expression.cpp
msgid "Invalid arguments to construct '%s'"
-msgstr ""
+msgstr "Invalidi argumänt für s '%s' z konstruiere"
#: core/math/expression.cpp
msgid "On call to '%s':"
-msgstr ""
+msgstr "Ufem ufruef für '%s':"
#: core/ustring.cpp
msgid "B"
-msgstr ""
+msgstr "B"
#: core/ustring.cpp
msgid "KiB"
-msgstr ""
+msgstr "KiB"
#: core/ustring.cpp
msgid "MiB"
-msgstr ""
+msgstr "MiB"
#: core/ustring.cpp
msgid "GiB"
-msgstr ""
+msgstr "GiB"
#: core/ustring.cpp
msgid "TiB"
-msgstr ""
+msgstr "TiB"
#: core/ustring.cpp
msgid "PiB"
-msgstr ""
+msgstr "PiB"
#: core/ustring.cpp
msgid "EiB"
-msgstr ""
+msgstr "EiB"
#: editor/animation_bezier_editor.cpp
msgid "Free"
-msgstr ""
+msgstr "Gratis"
#: editor/animation_bezier_editor.cpp
msgid "Balanced"
-msgstr ""
+msgstr "Usgliche"
#: editor/animation_bezier_editor.cpp
msgid "Mirror"
-msgstr ""
+msgstr "Spiegu"
#: editor/animation_bezier_editor.cpp editor/editor_profiler.cpp
msgid "Time:"
-msgstr ""
+msgstr "Zit:"
#: editor/animation_bezier_editor.cpp
msgid "Value:"
-msgstr ""
+msgstr "Wärt:"
#: editor/animation_bezier_editor.cpp
-#, fuzzy
msgid "Insert Key Here"
-msgstr "Bild einfügen"
+msgstr "Schlüssu hie ifüege"
#: editor/animation_bezier_editor.cpp
-#, fuzzy
msgid "Duplicate Selected Key(s)"
-msgstr "Node(s) duplizieren"
+msgstr "Usgwäuti Schlüssle dupliziere"
#: editor/animation_bezier_editor.cpp
-#, fuzzy
msgid "Delete Selected Key(s)"
-msgstr "Node(s) löschen"
+msgstr "Usgwäuti Schlüssle lösche"
#: editor/animation_bezier_editor.cpp
-#, fuzzy
msgid "Add Bezier Point"
-msgstr "Script hinzufügen"
+msgstr "Dr Bezier Punkt hinzuefüege"
#: editor/animation_bezier_editor.cpp
-#, fuzzy
msgid "Move Bezier Points"
-msgstr "Ungültige Bilder löschen"
+msgstr "Dr Bezier Punkt bewege"
#: editor/animation_bezier_editor.cpp editor/animation_track_editor.cpp
msgid "Anim Duplicate Keys"
-msgstr "Anim Bilder duplizieren"
+msgstr "Anim Schlüssle Dupliziere"
#: editor/animation_bezier_editor.cpp editor/animation_track_editor.cpp
msgid "Anim Delete Keys"
-msgstr "Anim Bilder löschen"
+msgstr "Anim Schlüssle lösche"
#: editor/animation_track_editor.cpp
msgid "Anim Change Keyframe Time"
@@ -232,37 +226,36 @@ msgstr "Animations-Node"
#: editor/animation_track_editor.cpp
msgid "Add Track"
-msgstr ""
+msgstr "Spur hinzuefüege"
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "Animation Looping"
-msgstr "Animations-Node"
+msgstr "Animationswiderholig"
#: editor/animation_track_editor.cpp
#: modules/visual_script/visual_script_editor.cpp
msgid "Functions:"
-msgstr ""
+msgstr "Funktione:"
#: editor/animation_track_editor.cpp
msgid "Audio Clips:"
-msgstr ""
+msgstr "Audioclips:"
#: editor/animation_track_editor.cpp
msgid "Anim Clips:"
-msgstr ""
+msgstr "Animationsclips:"
#: editor/animation_track_editor.cpp
msgid "Change Track Path"
-msgstr ""
+msgstr "D Spur wächsle"
#: editor/animation_track_editor.cpp
msgid "Toggle this track on/off."
-msgstr ""
+msgstr "Die Spur ah-/abschaute"
#: editor/animation_track_editor.cpp
msgid "Update Mode (How this property is set)"
-msgstr ""
+msgstr "Update Modus (Wie die Eigeschaft gsetzt isch)"
#: editor/animation_track_editor.cpp
#, fuzzy
@@ -1973,13 +1966,6 @@ msgid "Online Tutorials"
msgstr ""
#: editor/editor_help.cpp
-msgid ""
-"There are currently no tutorials for this class, you can [color=$color][url="
-"$url]contribute one[/url][/color] or [color=$color][url=$url2]request one[/"
-"url][/color]."
-msgstr ""
-
-#: editor/editor_help.cpp
msgid "Properties"
msgstr ""
@@ -4569,7 +4555,6 @@ msgid "Animation Tools"
msgstr ""
#: editor/plugins/animation_player_editor_plugin.cpp
-#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Animation"
msgstr ""
@@ -5666,6 +5651,11 @@ msgid "Auto Insert Key"
msgstr "Anim Bild einfügen"
#: editor/plugins/canvas_item_editor_plugin.cpp
+#, fuzzy
+msgid "Animation Key and Pose Options"
+msgstr "Animationsbild eingefügt."
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Insert Key (Existing Tracks)"
msgstr "Bild in bestehende Ebene einfügen"
@@ -5957,7 +5947,6 @@ msgid "No mesh to debug."
msgstr ""
#: editor/plugins/mesh_instance_editor_plugin.cpp
-#: editor/plugins/sprite_editor_plugin.cpp
msgid "Model has no UV in this layer"
msgstr ""
diff --git a/editor/translations/editor.pot b/editor/translations/editor.pot
index 5a69173c37..c1b2932a6f 100644
--- a/editor/translations/editor.pot
+++ b/editor/translations/editor.pot
@@ -1888,13 +1888,6 @@ msgid "Online Tutorials"
msgstr ""
#: editor/editor_help.cpp
-msgid ""
-"There are currently no tutorials for this class, you can [color=$color][url="
-"$url]contribute one[/url][/color] or [color=$color][url=$url2]request one[/"
-"url][/color]."
-msgstr ""
-
-#: editor/editor_help.cpp
msgid "Properties"
msgstr ""
@@ -4355,7 +4348,6 @@ msgid "Animation Tools"
msgstr ""
#: editor/plugins/animation_player_editor_plugin.cpp
-#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Animation"
msgstr ""
@@ -5398,6 +5390,10 @@ msgid "Auto Insert Key"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Animation Key and Pose Options"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Insert Key (Existing Tracks)"
msgstr ""
@@ -5678,7 +5674,6 @@ msgid "No mesh to debug."
msgstr ""
#: editor/plugins/mesh_instance_editor_plugin.cpp
-#: editor/plugins/sprite_editor_plugin.cpp
msgid "Model has no UV in this layer"
msgstr ""
diff --git a/editor/translations/el.po b/editor/translations/el.po
index 0c1313d388..99e7a49f85 100644
--- a/editor/translations/el.po
+++ b/editor/translations/el.po
@@ -2,7 +2,7 @@
# Copyright (c) 2007-2020 Juan Linietsky, Ariel Manzur.
# Copyright (c) 2014-2020 Godot Engine contributors (cf. AUTHORS.md).
# This file is distributed under the same license as the Godot source code.
-# George Tsiamasiotis <gtsiam@windowslive.com>, 2017-2018, 2019.
+# George Tsiamasiotis <gtsiam@windowslive.com>, 2017-2018, 2019, 2020.
# Georgios Katsanakis <geo.elgeo@gmail.com>, 2019.
# Overloaded <manoschool@yahoo.gr>, 2019.
# Eternal Death <eternaldeath0001@gmail.com>, 2019.
@@ -11,9 +11,8 @@ msgid ""
msgstr ""
"Project-Id-Version: Godot Engine editor\n"
"POT-Creation-Date: \n"
-"PO-Revision-Date: 2020-01-03 21:21+0000\n"
-"Last-Translator: Overloaded @ Orama Interactive http://orama-interactive."
-"com/ <manoschool@yahoo.gr>\n"
+"PO-Revision-Date: 2020-01-27 07:09+0000\n"
+"Last-Translator: George Tsiamasiotis <gtsiam@windowslive.com>\n"
"Language-Team: Greek <https://hosted.weblate.org/projects/godot-engine/godot/"
"el/>\n"
"Language: el\n"
@@ -21,7 +20,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Generator: Weblate 3.10\n"
+"X-Generator: Weblate 3.11-dev\n"
#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
#: modules/visual_script/visual_script_builtin_funcs.cpp
@@ -426,7 +425,7 @@ msgstr "ΑδÏνατη η Ï€Ïοσθήκη ÎºÎ¿Î¼Î¼Î±Ï„Î¹Î¿Ï Ï‡Ï‰Ïίς ÏίζÎ
#: editor/animation_track_editor.cpp
msgid "Invalid track for Bezier (no suitable sub-properties)"
-msgstr ""
+msgstr "ΆκυÏο κομμάτι καμπÏλης Bezier (χωÏίς κατάλληλες υπό-ιδιότητες)"
#: editor/animation_track_editor.cpp
msgid "Add Bezier Track"
@@ -1200,9 +1199,8 @@ msgid "Error opening package file, not in ZIP format."
msgstr "Σφάλμα ανοίγματος αÏχείου πακέτου, δεν είναι σε μοÏφή ZIP."
#: editor/editor_asset_installer.cpp
-#, fuzzy
msgid "%s (Already Exists)"
-msgstr "ΥπάÏχει ήδη"
+msgstr "%s (ΥπάÏχει ήδη)"
#: editor/editor_asset_installer.cpp
msgid "Uncompressing Assets"
@@ -1213,9 +1211,8 @@ msgid "The following files failed extraction from package:"
msgstr "Η εξαγωγή των ακόλουθων αÏχείων από το πακέτο απέτυχε:"
#: editor/editor_asset_installer.cpp
-#, fuzzy
msgid "And %s more files."
-msgstr "%d πεÏισσότεÏα αÏχεία"
+msgstr "Και %s αÏχεία ακόμα."
#: editor/editor_asset_installer.cpp editor/project_manager.cpp
msgid "Package installed successfully!"
@@ -1227,9 +1224,8 @@ msgid "Success!"
msgstr "Επιτυχία!"
#: editor/editor_asset_installer.cpp
-#, fuzzy
msgid "Package Contents:"
-msgstr "ΠεÏιεχόμενα:"
+msgstr "ΠεÏιεχόμενα Πακέτου:"
#: editor/editor_asset_installer.cpp editor/editor_node.cpp
msgid "Install"
@@ -1369,9 +1365,8 @@ msgid "Invalid file, not an audio bus layout."
msgstr "ΆκυÏο αÏχείο, δεν είναι διάταξη διαÏλων ήχου."
#: editor/editor_audio_buses.cpp
-#, fuzzy
msgid "Error saving file: %s"
-msgstr "Σφάλμα αποθήκευσης αÏχείου!"
+msgstr "Σφάλμα αποθήκευσης αÏχείου: %s"
#: editor/editor_audio_buses.cpp
msgid "Add Bus"
@@ -1947,37 +1942,24 @@ msgid "Inherited by:"
msgstr "ΚληÏονομείται από:"
#: editor/editor_help.cpp
-#, fuzzy
msgid "Description"
-msgstr "ΠεÏιγÏαφή:"
+msgstr "ΠεÏιγÏαφή"
#: editor/editor_help.cpp
msgid "Online Tutorials"
msgstr "Διαδικτυακή Εκμάθηση"
#: editor/editor_help.cpp
-msgid ""
-"There are currently no tutorials for this class, you can [color=$color][url="
-"$url]contribute one[/url][/color] or [color=$color][url=$url2]request one[/"
-"url][/color]."
-msgstr ""
-"Δεν υπάÏχει ακόμα βοήθεια για αυτήν την κλάση, μποÏείτε να την [color=$color]"
-"[url=$url]γÏάψετε[/url][/color] ή να την [color=$color][url=$url2]ζητήσετε[/"
-"url][/color]."
-
-#: editor/editor_help.cpp
msgid "Properties"
msgstr "Ιδιότητες"
#: editor/editor_help.cpp
-#, fuzzy
msgid "override:"
-msgstr "Αντικατάσταση"
+msgstr "παÏάκαμψη:"
#: editor/editor_help.cpp
-#, fuzzy
msgid "default:"
-msgstr "ΠÏοεπιλογή"
+msgstr "Ï€Ïοεπιλογή:"
#: editor/editor_help.cpp
msgid "Methods"
@@ -2000,9 +1982,8 @@ msgid "Property Descriptions"
msgstr "ΠεÏιγÏαφές ιδιοτήτων"
#: editor/editor_help.cpp
-#, fuzzy
msgid "(value)"
-msgstr "Τιμή"
+msgstr "(τιμή)"
#: editor/editor_help.cpp
msgid ""
@@ -2034,9 +2015,8 @@ msgid "Case Sensitive"
msgstr "ΔιάκÏιση πεζών-κεφαλαίων"
#: editor/editor_help_search.cpp
-#, fuzzy
msgid "Show Hierarchy"
-msgstr "Εμφάνιση Βοηθών"
+msgstr "Εμφάνιση ΙεÏαÏχίας"
#: editor/editor_help_search.cpp
msgid "Display All"
@@ -2075,9 +2055,8 @@ msgid "Class"
msgstr "Κλάση"
#: editor/editor_help_search.cpp
-#, fuzzy
msgid "Method"
-msgstr "ΣυναÏτήσεις"
+msgstr "Μέθοδος"
#: editor/editor_help_search.cpp editor/plugins/script_text_editor.cpp
msgid "Signal"
@@ -2088,14 +2067,12 @@ msgid "Constant"
msgstr "ΣταθεÏή"
#: editor/editor_help_search.cpp
-#, fuzzy
msgid "Property"
-msgstr "Ιδιότητα:"
+msgstr "Ιδιότητα"
#: editor/editor_help_search.cpp
-#, fuzzy
msgid "Theme Property"
-msgstr "Ιδιότητες θέματος"
+msgstr "Ιδιότητα Θέματος"
#: editor/editor_inspector.cpp editor/project_settings_editor.cpp
msgid "Property:"
@@ -2876,10 +2853,10 @@ msgid ""
"When used remotely on a device, this is more efficient with network "
"filesystem."
msgstr ""
-"Όταν αυτή η επιλογή είναι ενεÏγοποιημένη, ÏŒ,τι αλλαγές γίνουν στη σκηνή θα "
-"αναπαÏαχθοÏν και στο παιχνίδι.\n"
-"Όταν χÏησιμοποιηθεί απομακÏυσμένα σε μία συσκευή, αυτό είναι ποιο "
-"αποτελεσματικό με δικτυωμένο σÏστημα αÏχείων."
+"Η ενεÏγοποίηση της επιλογής αυτής θα συγχÏονίσει αλλαγές της σκηνής εντός "
+"του επεξεÏγαστή με το παιχνίδι που εκτελείται.\n"
+"Σε απομακÏυσμένες συσκευές, η επιλογή είναι ποιο αποδοτική με δικτυωμένο "
+"σÏστημα αÏχείων."
#: editor/editor_node.cpp
msgid "Sync Script Changes"
@@ -2892,10 +2869,10 @@ msgid ""
"When used remotely on a device, this is more efficient with network "
"filesystem."
msgstr ""
-"Όταν αυτή η επιλογή είναι ενεÏγοποιημένη, όποια δέσμη ενεÏγειών αποθηκευτεί "
-"θα επαναφοÏτωθεί στο παιχνίδι.\n"
-"Όταν χÏησιμοποιηθεί απομακÏυσμένα σε μία συσκευή, αυτό είναι ποιο "
-"αποτελεσματικό με δικτυωμένο σÏστημα αÏχείων."
+"Η ενεÏγοποίηση της επιλογής αυτής θα συγχÏονίσει κάθε δέσμη ενεÏγειών που "
+"αποθηκεÏεται με το παιχνίδι που εκτελείται.\n"
+"Σε απομακÏυσμένες συσκευές, η επιλογή είναι ποιο αποδοτική με δικτυωμένο "
+"σÏστημα αÏχείων."
#: editor/editor_node.cpp editor/script_create_dialog.cpp
msgid "Editor"
@@ -3482,13 +3459,14 @@ msgid "Importing:"
msgstr "Εισαγωγή:"
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Error getting the list of mirrors."
-msgstr "Σφάλμα κατά τη δημιουÏγία της υπογÏαφής του αντικειμένου."
+msgstr "Σφάλμα απόκτησης λίστας κατοπτÏισμοÏ."
#: editor/export_template_manager.cpp
msgid "Error parsing JSON of mirror list. Please report this issue!"
msgstr ""
+"Σφάλμα ανάλυσης JSON της λίστας κατοπτÏισμοÏ. ΠαÏακαλοÏμε να αναφέÏετε αυτό "
+"το Ï€Ïόβλημα!"
#: editor/export_template_manager.cpp
msgid ""
@@ -4575,7 +4553,6 @@ msgid "Animation Tools"
msgstr "ΕÏγαλεία κινήσεων"
#: editor/plugins/animation_player_editor_plugin.cpp
-#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Animation"
msgstr "Κίνηση"
@@ -4679,9 +4656,8 @@ msgid "Move Node"
msgstr "Μετακίνηση Κόμβου"
#: editor/plugins/animation_state_machine_editor.cpp
-#, fuzzy
msgid "Transition exists!"
-msgstr "Μετάβαση: "
+msgstr "ΥπαÏκτή μετάφÏαση!"
#: editor/plugins/animation_state_machine_editor.cpp
msgid "Add Transition"
@@ -5656,6 +5632,10 @@ msgid "Auto Insert Key"
msgstr "Αυτόματη Εισαγωγή ΚλειδιοÏ"
#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Animation Key and Pose Options"
+msgstr "Επιλογές ÎšÎ»ÎµÎ¹Î´Î¹Î¿Ï ÎºÎ±Î¹ Πόζας Κίνησης"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Insert Key (Existing Tracks)"
msgstr "Εισαγωγή ÎšÎ»ÎµÎ¹Î´Î¹Î¿Ï (ΥπαÏκτά κομμάτια)"
@@ -5764,20 +5744,18 @@ msgstr "Μάσκα εκπομπής"
#: editor/plugins/cpu_particles_2d_editor_plugin.cpp
#: editor/plugins/particles_2d_editor_plugin.cpp
-#, fuzzy
msgid "Solid Pixels"
-msgstr "ΣμίκÏυνση (Εικονοστοιχεία): "
+msgstr "Αμιγή Εικονοστοιχεία"
#: editor/plugins/cpu_particles_2d_editor_plugin.cpp
#: editor/plugins/particles_2d_editor_plugin.cpp
msgid "Border Pixels"
-msgstr ""
+msgstr "Εικονοστοιχεία ΠεÏιγÏάμματος"
#: editor/plugins/cpu_particles_2d_editor_plugin.cpp
#: editor/plugins/particles_2d_editor_plugin.cpp
-#, fuzzy
msgid "Directed Border Pixels"
-msgstr "Φάκελοι & ΑÏχεία:"
+msgstr "Εικονοστοιχεία ΠÏοσανατολισμένου ΠεÏιγÏάμματος"
#: editor/plugins/cpu_particles_2d_editor_plugin.cpp
#: editor/plugins/particles_2d_editor_plugin.cpp
@@ -5940,7 +5918,6 @@ msgid "No mesh to debug."
msgstr "Κανένα πλέγμα για αποσφαλμάτωση."
#: editor/plugins/mesh_instance_editor_plugin.cpp
-#: editor/plugins/sprite_editor_plugin.cpp
msgid "Model has no UV in this layer"
msgstr "Το μοντέλο δεν έχει UV σε αυτό το στÏώμα"
@@ -6006,18 +5983,19 @@ msgstr "Μέγεθος πεÏιγÏάμματος:"
#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "UV Channel Debug"
-msgstr ""
+msgstr "Αποσφαλμάτωση ÎšÎ±Î½Î±Î»Î¹Î¿Ï UV"
#: editor/plugins/mesh_library_editor_plugin.cpp
msgid "Remove item %d?"
msgstr "ΑφαίÏεση του στοιχείου %d?"
#: editor/plugins/mesh_library_editor_plugin.cpp
-#, fuzzy
msgid ""
"Update from existing scene?:\n"
"%s"
-msgstr "ΑναπÏοσαÏμογή από την σκηνή"
+msgstr ""
+"Ανανέωση από υπαÏκτό δέντÏο; :\n"
+"%s"
#: editor/plugins/mesh_library_editor_plugin.cpp
msgid "Mesh Library"
@@ -6932,6 +6910,8 @@ msgstr "Μόνο οι πόÏοι από το σÏστημα αÏχείων μπÎ
#: modules/visual_script/visual_script_editor.cpp
msgid "Can't drop nodes because script '%s' is not used in this scene."
msgstr ""
+"Σφάλμα τοποθέτησης κόμβων, καθώς η δέσμη ενεÏγειών «%s» δεν χÏησιμοποιείται "
+"σε αυτήν την σκηνή."
#: editor/plugins/script_text_editor.cpp
msgid "Lookup Symbol"
@@ -7339,7 +7319,7 @@ msgstr "ΚινηματογÏαφική ΠÏοεπισκόπηση"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Not available when using the GLES2 renderer."
-msgstr ""
+msgstr "Δεν είναι διαθέσιμο στην απόδοση GLES2."
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Freelook Left"
@@ -7584,9 +7564,8 @@ msgid "Create Mesh2D"
msgstr "ΔημιουÏγία Mesh2D"
#: editor/plugins/sprite_editor_plugin.cpp
-#, fuzzy
msgid "Mesh2D Preview"
-msgstr "ΔημιουÏγία Ï€Ïοεπισκοπήσεων πλεγμάτων"
+msgstr "ΠÏοεπισκόπηση Mesh2D"
#: editor/plugins/sprite_editor_plugin.cpp
msgid "Create Polygon2D"
@@ -7594,25 +7573,23 @@ msgstr "ΔημιουÏγία Polygon2D"
#: editor/plugins/sprite_editor_plugin.cpp
msgid "Polygon2D Preview"
-msgstr ""
+msgstr "ΠÏοεπισκόπηση Polygon2D"
#: editor/plugins/sprite_editor_plugin.cpp
msgid "Create CollisionPolygon2D"
msgstr "ΔημιουÏγία CollisionPolygon2D"
#: editor/plugins/sprite_editor_plugin.cpp
-#, fuzzy
msgid "CollisionPolygon2D Preview"
-msgstr "ΔημιουÏγία CollisionPolygon2D"
+msgstr "ΠÏοεπισκόπηση CollisionPolygon2D"
#: editor/plugins/sprite_editor_plugin.cpp
msgid "Create LightOccluder2D"
msgstr "ΔημιουÏγία LightOccluder2D"
#: editor/plugins/sprite_editor_plugin.cpp
-#, fuzzy
msgid "LightOccluder2D Preview"
-msgstr "ΔημιουÏγία LightOccluder2D"
+msgstr "ΠÏοεπισκόπηση LightOccluder2D"
#: editor/plugins/sprite_editor_plugin.cpp
msgid "Sprite is empty!"
@@ -7691,9 +7668,8 @@ msgid "Add Frame"
msgstr "ΠÏοσθήκη καÏέ"
#: editor/plugins/sprite_frames_editor_plugin.cpp
-#, fuzzy
msgid "Unable to load images"
-msgstr "Δεν ήταν δυνατή η φόÏτωση της εικόνας:"
+msgstr "Αδυναμία φόÏτωσης εικόνων"
#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "ERROR: Couldn't load frame resource!"
@@ -8384,14 +8360,12 @@ msgid "Edit Tile Z Index"
msgstr "Αλλαγή Δείκτη Z Πλακιδίου"
#: editor/plugins/tile_set_editor_plugin.cpp
-#, fuzzy
msgid "Make Convex"
-msgstr "ΜετατÏοπή Πολυγώνου σε ΚυÏÏ„ÏŒ"
+msgstr "ΜετατÏοπή σε ΚυÏÏ„ÏŒ"
#: editor/plugins/tile_set_editor_plugin.cpp
-#, fuzzy
msgid "Make Concave"
-msgstr "ΜετατÏοπή Πολυγώνου σε Κοίλο"
+msgstr "ΜετατÏοπή σε Κοίλο"
#: editor/plugins/tile_set_editor_plugin.cpp
msgid "Create Collision Polygon"
@@ -10540,13 +10514,13 @@ msgstr ""
"του κόμβου στις Ï€Ïοεπιλογές τους."
#: editor/scene_tree_dock.cpp
-#, fuzzy
msgid ""
"Enabling \"Load As Placeholder\" will disable \"Editable Children\" and "
"cause all properties of the node to be reverted to their default."
msgstr ""
-"Η απενεÏγοποίηση του «editable_instance» θα επαναφέÏει όλες τις ιδιότητες "
-"του κόμβου στις Ï€Ïοεπιλογές τους."
+"Η ενεÏγοποίηση του «ΦόÏτωση ως μέσο κÏάτησης» θα απενεÏγοποιήσει το "
+"«ΕπεξεÏγάσιμα παιδιά» και θα επαναφέÏει όλες τις ιδιότητες του κόμβου στις "
+"Ï€Ïοεπιλογές τους."
#: editor/scene_tree_dock.cpp
msgid "Make Local"
@@ -10595,9 +10569,8 @@ msgid "Remove Node(s)"
msgstr "ΑφαίÏεση κόμβων"
#: editor/scene_tree_dock.cpp
-#, fuzzy
msgid "Change type of node(s)"
-msgstr "Αλλαγή ονόματος θÏÏας εξόδου"
+msgstr "Αλλαγή Ï„Ïπου κόμβων"
#: editor/scene_tree_dock.cpp
msgid ""
@@ -10629,7 +10602,7 @@ msgstr "ΕπεξεÏγάσιμα παιδιά"
#: editor/scene_tree_dock.cpp
msgid "Load As Placeholder"
-msgstr "ΦόÏτωση ως μέσο κÏάτησης θέσης"
+msgstr "ΦόÏτωση ως μέσο κÏάτησης"
#: editor/scene_tree_dock.cpp
msgid "Open Documentation"
@@ -10724,31 +10697,28 @@ msgid "Node configuration warning:"
msgstr "ΠÏοειδοποίηση διαμόÏφωσης κόμβου:"
#: editor/scene_tree_editor.cpp
-#, fuzzy
msgid ""
"Node has %s connection(s) and %s group(s).\n"
"Click to show signals dock."
msgstr ""
-"Ο κόμβος έχει συνδέσεις και ομάδες.\n"
-"Πατήστε για να δείξετε την πλατφόÏμα σημάτων."
+"Ο κόμβος έχει %s σÏνδεση/-εις και %s ομάδα/-ες.\n"
+"Πατήστε για εμφάνιση της πλατφόÏμας σημάτων."
#: editor/scene_tree_editor.cpp
-#, fuzzy
msgid ""
"Node has %s connection(s).\n"
"Click to show signals dock."
msgstr ""
-"Ο κόμβος έχει συνδέσεις\n"
-"Πατήστε για να δείξετε την πλατφόÏμα σημάτων."
+"Ο κόμβος έχει %s σÏνδεση/-εις.\n"
+"Πατήστε για εμφάνιση της πλατφόÏμας σημάτων."
#: editor/scene_tree_editor.cpp
-#, fuzzy
msgid ""
"Node is in %s group(s).\n"
"Click to show groups dock."
msgstr ""
-"Ο κόμβος έχει και ομάδες\n"
-"Πατήστε για να δείξετε την πλατφόÏμα σημάτων."
+"Ο κόμβος είναι σε %s ομάδα/-ες\n"
+"Πατήστε για εμφάνιση της πλατφόÏμας ομάδων."
#: editor/scene_tree_editor.cpp
msgid "Open Script:"
@@ -10843,9 +10813,8 @@ msgid "Error loading script from %s"
msgstr "Σφάλμα κατά την φόÏτωση δέσμής ενεÏγειών από %s"
#: editor/script_create_dialog.cpp
-#, fuzzy
msgid "Overrides"
-msgstr "Αντικατάσταση"
+msgstr "ΠαÏακάμπτει"
#: editor/script_create_dialog.cpp
msgid "N/A"
@@ -10892,24 +10861,20 @@ msgid "Will load an existing script file."
msgstr "Θα φοÏτώσει υπαÏκτό αÏχείο δέσμης ενεÏγειών."
#: editor/script_create_dialog.cpp
-#, fuzzy
msgid "Script file already exists."
-msgstr "Η ενέÏγεια '%s' υπάÏχει ήδη!"
+msgstr "ΥπαÏκτό αÏχείο δέσμης ενεÏγειών."
#: editor/script_create_dialog.cpp
-#, fuzzy
msgid "Class Name:"
-msgstr "Όνομα κλάσης"
+msgstr "Όνομα Κλάσης:"
#: editor/script_create_dialog.cpp
-#, fuzzy
msgid "Template:"
-msgstr "ΠÏότυπο"
+msgstr "ΠÏότυπο:"
#: editor/script_create_dialog.cpp
-#, fuzzy
msgid "Built-in Script:"
-msgstr "Ενσωμάτωση"
+msgstr "Ενσωμάτωση:"
#: editor/script_create_dialog.cpp
msgid "Attach Node Script"
@@ -10924,38 +10889,32 @@ msgid "Bytes:"
msgstr "Ψηφιολέξεις:"
#: editor/script_editor_debugger.cpp
-#, fuzzy
msgid "Warning:"
-msgstr "ΠÏοειδοποιήσεις:"
+msgstr "ΠÏοειδοποίηση:"
#: editor/script_editor_debugger.cpp
msgid "Error:"
msgstr "Σφάλμα:"
#: editor/script_editor_debugger.cpp
-#, fuzzy
msgid "C++ Error"
-msgstr "ΑντιγÏαφή σφάλματος"
+msgstr "Σφάλμα C++"
#: editor/script_editor_debugger.cpp
-#, fuzzy
msgid "C++ Error:"
-msgstr "Σφάλμα:"
+msgstr "Σφάλμα C++:"
#: editor/script_editor_debugger.cpp
-#, fuzzy
msgid "C++ Source"
-msgstr "Πηγή"
+msgstr "Πηγή C++"
#: editor/script_editor_debugger.cpp
-#, fuzzy
msgid "Source:"
-msgstr "Πηγή"
+msgstr "Πηγή:"
#: editor/script_editor_debugger.cpp
-#, fuzzy
msgid "C++ Source:"
-msgstr "Πηγή"
+msgstr "Πηγή C++:"
#: editor/script_editor_debugger.cpp
msgid "Stack Trace"
@@ -10966,18 +10925,16 @@ msgid "Errors"
msgstr "Σφάλματα"
#: editor/script_editor_debugger.cpp
-#, fuzzy
msgid "Child process connected."
-msgstr "Η παιδική διαδικασία συνδέθηκε"
+msgstr "Η παιδική διεÏγασία συνδέθηκε."
#: editor/script_editor_debugger.cpp
msgid "Copy Error"
msgstr "ΑντιγÏαφή σφάλματος"
#: editor/script_editor_debugger.cpp
-#, fuzzy
msgid "Skip Breakpoints"
-msgstr "Σημεία Διακοπής"
+msgstr "ΠαÏάλειψη Σημείων Διακοπής"
#: editor/script_editor_debugger.cpp
msgid "Inspect Previous Instance"
@@ -11070,19 +11027,16 @@ msgid "Export measures as CSV"
msgstr "Εξαγωγή μετÏικών ως CSV"
#: editor/settings_config_dialog.cpp
-#, fuzzy
msgid "Erase Shortcut"
-msgstr "Ομαλά έξω"
+msgstr "ΔιαγÏαφή Συνόμευσης"
#: editor/settings_config_dialog.cpp
-#, fuzzy
msgid "Restore Shortcut"
-msgstr "ΣυντομεÏσεις"
+msgstr "ΕπαναφοÏά Συντόμευσης"
#: editor/settings_config_dialog.cpp
-#, fuzzy
msgid "Change Shortcut"
-msgstr "Αλλαγή αγκυÏών"
+msgstr "Αλλαγή Συντόμευσης"
#: editor/settings_config_dialog.cpp
msgid "Editor Settings"
@@ -11113,9 +11067,8 @@ msgid "Change Camera Size"
msgstr "Αλλαγή μεγέθους κάμεÏας"
#: editor/spatial_editor_gizmos.cpp
-#, fuzzy
msgid "Change Notifier AABB"
-msgstr "Αλλαγή διαστάσεων ειδοποιητή"
+msgstr "Ειδοποιητής Αλλαγής AABB"
#: editor/spatial_editor_gizmos.cpp
msgid "Change Particles AABB"
@@ -11142,38 +11095,32 @@ msgid "Change Capsule Shape Height"
msgstr "Αλλαγή Ïψους κάψουλας"
#: editor/spatial_editor_gizmos.cpp
-#, fuzzy
msgid "Change Cylinder Shape Radius"
-msgstr "Αλλαγή ακτίνας κάψουλας"
+msgstr "Αλλαγή Ακτίνας Σχήματος ΚυλίνδÏου"
#: editor/spatial_editor_gizmos.cpp
-#, fuzzy
msgid "Change Cylinder Shape Height"
-msgstr "Αλλαγή Ïψους κάψουλας"
+msgstr "Αλλαγή Ύψους Σχήματος ΚυλίνδÏου"
#: editor/spatial_editor_gizmos.cpp
msgid "Change Ray Shape Length"
msgstr "Αλλαγή μήκους ακτίνας"
#: modules/csg/csg_gizmos.cpp
-#, fuzzy
msgid "Change Cylinder Radius"
-msgstr "Αλλαγή διαμέτÏου φωτός"
+msgstr "Αλλαγή Ακτίνας ΚυλίνδÏου"
#: modules/csg/csg_gizmos.cpp
-#, fuzzy
msgid "Change Cylinder Height"
-msgstr "Αλλαγή Ïψους κάψουλας"
+msgstr "Αλλαγή Ύψους ΚυλίνδÏου"
#: modules/csg/csg_gizmos.cpp
-#, fuzzy
msgid "Change Torus Inner Radius"
-msgstr "Αλλαγή ακτίνας σφαιÏÎ¹ÎºÎ¿Ï ÏƒÏ‡Î®Î¼Î±Ï„Î¿Ï‚"
+msgstr "Αλλαγή ΕσωτεÏική Ακτίνας ΤόÏου"
#: modules/csg/csg_gizmos.cpp
-#, fuzzy
msgid "Change Torus Outer Radius"
-msgstr "Αλλαγή διαμέτÏου φωτός"
+msgstr "Αλλαγή ΕξωτεÏικής Ακτίνας ΤόÏου"
#: modules/gdnative/gdnative_library_editor_plugin.cpp
msgid "Select the dynamic library for this entry"
@@ -11213,12 +11160,11 @@ msgstr "Βιβλιοθήκη GDNative"
#: modules/gdnative/gdnative_library_singleton_editor.cpp
msgid "Enabled GDNative Singleton"
-msgstr ""
+msgstr "ΕνεÏγοποίηση Μονοσυνόλου GDNative"
#: modules/gdnative/gdnative_library_singleton_editor.cpp
-#, fuzzy
msgid "Disabled GDNative Singleton"
-msgstr "ΑπενεÏγοποίηση δείκτη ενημέÏωσης"
+msgstr "ΑπενεÏγοποίηση Μονοσυνόλου GDNative"
#: modules/gdnative/gdnative_library_singleton_editor.cpp
msgid "Library"
@@ -11233,9 +11179,8 @@ msgid "GDNative"
msgstr "GDNative"
#: modules/gdscript/gdscript_functions.cpp
-#, fuzzy
msgid "Step argument is zero!"
-msgstr "Η παÏάμετÏος step είναι μηδέν!"
+msgstr "Μηδενική παÏάμετÏος step!"
#: modules/gdscript/gdscript_functions.cpp
msgid "Not a script with an instance"
@@ -11300,14 +11245,12 @@ msgid "GridMap Delete Selection"
msgstr "GridMap ΔιαγÏαφή επιλογής"
#: modules/gridmap/grid_map_editor_plugin.cpp
-#, fuzzy
msgid "GridMap Fill Selection"
-msgstr "GridMap ΔιαγÏαφή επιλογής"
+msgstr "GridMap Γέμισμα Επιλογής"
#: modules/gridmap/grid_map_editor_plugin.cpp
-#, fuzzy
msgid "GridMap Paste Selection"
-msgstr "GridMap ΔιαγÏαφή επιλογής"
+msgstr "GridMap Επικόλληση Επιλογής"
#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "GridMap Paint"
@@ -11374,9 +11317,8 @@ msgid "Cursor Clear Rotation"
msgstr "ΕκκαθάÏιση πεÏιστÏοφής δÏομέα"
#: modules/gridmap/grid_map_editor_plugin.cpp
-#, fuzzy
msgid "Paste Selects"
-msgstr "ΔιαγÏαφή επιλογής"
+msgstr "Επιλογή Επικόλλησης"
#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Clear Selection"
@@ -11395,13 +11337,12 @@ msgid "Pick Distance:"
msgstr "Επιλογή απόστασης:"
#: modules/gridmap/grid_map_editor_plugin.cpp
-#, fuzzy
msgid "Filter meshes"
-msgstr "ΦιλτÏάÏισμα μεθόδων"
+msgstr "ΦιλτÏάÏισμα πλεγμάτων"
#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Give a MeshLibrary resource to this GridMap to use its meshes."
-msgstr ""
+msgstr "ΟÏίστε έναν πόÏο MeshLibrary στο GridMap για χÏήση των πλεγμάτων του."
#: modules/mono/csharp_script.cpp
msgid "Class name can't be a reserved keyword"
@@ -11412,9 +11353,8 @@ msgid "End of inner exception stack trace"
msgstr "Τέλος ιχνηλάτησης στοίβας εσωτεÏικής εξαίÏεσης"
#: modules/recast/navigation_mesh_editor_plugin.cpp
-#, fuzzy
msgid "Bake NavMesh"
-msgstr "Ψήσιμο NavMesh (πλέγματος πλοήγησης)"
+msgstr "Ψήσιμο NavMesh"
#: modules/recast/navigation_mesh_editor_plugin.cpp
msgid "Clear the navigation mesh."
@@ -11531,42 +11471,36 @@ msgid "Set Variable Type"
msgstr "ΟÏισμός Ï„Ïπου μεταβλητής"
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Add Input Port"
-msgstr "ΠÏοσθήκη θÏÏας εισόδου"
+msgstr "ΠÏοσθήκη ΘÏÏας Εισόδου"
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Add Output Port"
-msgstr "ΠÏοσθήκη θÏÏας εξόδου"
+msgstr "ΠÏοσθήκη ΘÏÏας Εξόδου"
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Override an existing built-in function."
-msgstr "Δεν μποÏεί να συγχέεται με υπαÏκτό ενσωματωμένο όνομα Ï„Ïπου."
+msgstr "ΠαÏάκαμψη υπαÏκτής ενσωματωμένης συνάÏτησης."
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Create a new function."
-msgstr "ΔημιουÏγία νέου οÏθογωνίου."
+msgstr "ΔημιουÏγία νέας συνάÏτησης."
#: modules/visual_script/visual_script_editor.cpp
msgid "Variables:"
msgstr "Μεταβλητές:"
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Create a new variable."
-msgstr "ΔημιουÏγία νέου οÏθογωνίου."
+msgstr "ΔημιουÏγία νέας μεταβλητής."
#: modules/visual_script/visual_script_editor.cpp
msgid "Signals:"
msgstr "Σήματα:"
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Create a new signal."
-msgstr "ΔημιουÏγία νέου πολυγώνου."
+msgstr "ΔημιουÏγία νέου σήματος."
#: modules/visual_script/visual_script_editor.cpp
msgid "Name is not a valid identifier:"
@@ -11593,9 +11527,8 @@ msgid "Add Function"
msgstr "ΠÏοσθήκη συνάÏτησης"
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Delete input port"
-msgstr "ΑφαίÏεση θÏÏας εισόδου"
+msgstr "ΔιαγÏαφή θÏÏας εισόδου"
#: modules/visual_script/visual_script_editor.cpp
msgid "Add Variable"
@@ -11606,14 +11539,12 @@ msgid "Add Signal"
msgstr "ΠÏοσθήκη σήματος"
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Remove Input Port"
-msgstr "ΑφαίÏεση θÏÏας εισόδου"
+msgstr "ΑφαίÏεση ΘÏÏας Εισόδου"
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Remove Output Port"
-msgstr "ΑφαίÏεση θÏÏας εξόδου"
+msgstr "ΑφαίÏεση ΘÏÏας Εξόδου"
#: modules/visual_script/visual_script_editor.cpp
msgid "Change Expression"
@@ -11670,6 +11601,10 @@ msgid ""
"Can't drop properties because script '%s' is not used in this scene.\n"
"Drop holding 'Shift' to just copy the signature."
msgstr ""
+"Σφάλμα τοποθέτησης ιδιοτήτων, καθώς η δέσμη ενεÏγειών «%s» δεν "
+"χÏησιμοποιείται σε αυτήν την σκηνή.\n"
+"Τοποθετήστε τες κÏατώντας παÏατεταμένα στο «Shift» για απλή αντιγÏαφή της "
+"υπογÏαφής."
#: modules/visual_script/visual_script_editor.cpp
msgid "Add Getter Property"
@@ -11696,19 +11631,16 @@ msgid "Connect Nodes"
msgstr "ΣÏνδεση κόμβων"
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Disconnect Nodes"
-msgstr "ΑποσÏνδεση κόμβων γÏαφήματος"
+msgstr "ΑποσÏνδεση Κόμβων"
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Connect Node Data"
-msgstr "ΣÏνδεση κόμβων"
+msgstr "ΣÏνδεση Δεδομένων Κόμβων"
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Connect Node Sequence"
-msgstr "ΣÏνδεση κόμβων"
+msgstr "ΣÏνδεση Εκτέλεσης Κόμβων"
#: modules/visual_script/visual_script_editor.cpp
msgid "Script already has function '%s'"
@@ -11719,9 +11651,8 @@ msgid "Change Input Value"
msgstr "Αλλαγή τιμής εισόδου"
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Resize Comment"
-msgstr "Αλλαγή μεγέθους CanvasItem"
+msgstr "Αλλαγή Μεγέθους Σχολίου"
#: modules/visual_script/visual_script_editor.cpp
msgid "Can't copy the function node."
@@ -11736,26 +11667,24 @@ msgid "Paste VisualScript Nodes"
msgstr "Επικόλληση κόμβων VisualScript"
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Can't create function with a function node."
-msgstr "ΑδÏνατη η αντιγÏαφή του κόμβου συνάÏτησης."
+msgstr "Αδυναμία δημιουÏγίας συνάÏτησης με κόμβου συνάÏτησης."
#: modules/visual_script/visual_script_editor.cpp
msgid "Can't create function of nodes from nodes of multiple functions."
-msgstr ""
+msgstr "Αδυναμία δημιουÏγίας συνάÏτησης κόμβων από κόμβους συναÏτήσεων."
#: modules/visual_script/visual_script_editor.cpp
msgid "Select at least one node with sequence port."
-msgstr ""
+msgstr "Επιλέξτε τουλάχιστον έναν κόμβο με θÏÏα εκτέλεσης."
#: modules/visual_script/visual_script_editor.cpp
msgid "Try to only have one sequence input in selection."
-msgstr ""
+msgstr "ΠÏοσπαθήστε να έχετε μόνο μία είσοδο εκτέλεσης στην επιλογή."
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Create Function"
-msgstr "Μετονομασία συνάÏτησης"
+msgstr "ΔημιουÏγία ΣυνάÏτησης"
#: modules/visual_script/visual_script_editor.cpp
msgid "Remove Function"
@@ -11778,38 +11707,33 @@ msgid "Editing Signal:"
msgstr "ΕπεξεÏγασία σήματος:"
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Make Tool:"
-msgstr "Κάνε τοπικό"
+msgstr "Κάνε ΕÏγαλείο (tool):"
#: modules/visual_script/visual_script_editor.cpp
msgid "Members:"
msgstr "Μέλη:"
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Change Base Type:"
-msgstr "Αλλαγή Î²Î±ÏƒÎ¹ÎºÎ¿Ï Ï„Ïπου"
+msgstr "Αλλαγή Î’Î±ÏƒÎ¹ÎºÎ¿Ï Î¤Ïπου:"
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Add Nodes..."
-msgstr "ΠÏοσθήκη Κόμβου..."
+msgstr "ΠÏοσθήκη Κόμβων..."
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Add Function..."
-msgstr "ΠÏοσθήκη συνάÏτησης"
+msgstr "ΠÏοσθήκη ΣυνάÏτησης..."
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "function_name"
-msgstr "ΣυνάÏτηση:"
+msgstr "όνομα_συνάÏτησης"
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Select or create a function to edit its graph."
-msgstr "Επιλέξτε ή δημιουÏγήστε μία συνάÏτηση για να επεξεÏγαστείτε το γÏάφημα"
+msgstr ""
+"Επιλέξτε ή δημιουÏγήστε μία συνάÏτηση για να επεξεÏγαστείτε το γÏάφημα της."
#: modules/visual_script/visual_script_editor.cpp
msgid "Delete Selected"
@@ -11828,19 +11752,16 @@ msgid "Cut Nodes"
msgstr "Αποκοπή κόμβων"
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Make Function"
-msgstr "Μετονομασία συνάÏτησης"
+msgstr "Κάνε ΣυνάÏτηση"
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Refresh Graph"
-msgstr "Αναναίωση"
+msgstr "Ανανέωση ΓÏαφήματος"
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Edit Member"
-msgstr "Μέλη"
+msgstr "ΕπεξεÏγασία Μέλους"
#: modules/visual_script/visual_script_flow_control.cpp
msgid "Input type not iterable: "
@@ -11900,17 +11821,16 @@ msgstr ""
"ή ακολουθία χαÏακτήÏων (error)."
#: modules/visual_script/visual_script_property_selector.cpp
-#, fuzzy
msgid "Search VisualScript"
-msgstr "ΑφαίÏεση κόμβου VisualScript"
+msgstr "Αναζήτηση VisualScript"
#: modules/visual_script/visual_script_property_selector.cpp
msgid "Get %s"
-msgstr ""
+msgstr "Διάβασε %s"
#: modules/visual_script/visual_script_property_selector.cpp
msgid "Set %s"
-msgstr ""
+msgstr "Θέσε %s"
#: platform/android/export/export.cpp
msgid "Package name is missing."
@@ -11921,10 +11841,9 @@ msgid "Package segments must be of non-zero length."
msgstr "Τα τμήματα του πακέτου Ï€Ïέπει να έχουν μη μηδενικό μήκος."
#: platform/android/export/export.cpp
-#, fuzzy
msgid "The character '%s' is not allowed in Android application package names."
msgstr ""
-"Ο χαÏακτήÏας '%s' δεν επιτÏέπεται στα ονόματα των πακέτων εφαÏμογών Android."
+"Ο χαÏακτήÏας «%s» απαγοÏεÏεται στο όνομα πακέτου των εφαÏμογών Android."
#: platform/android/export/export.cpp
msgid "A digit cannot be the first character in a package segment."
@@ -11955,11 +11874,10 @@ msgid "OpenJDK jarsigner not configured in the Editor Settings."
msgstr "Το OpenJDK jarsigner δεν έχει Ïυθμιστεί στις Ρυθμίσεις ΕπεξεÏγαστή."
#: platform/android/export/export.cpp
-#, fuzzy
msgid "Debug keystore not configured in the Editor Settings nor in the preset."
msgstr ""
-"Το Debug keystore δεν έχει Ïυθμιστεί στις Ρυθμίσεις ΕπεξεÏγαστή ή στην "
-"Ï€Ïοεπιλεγμένη ÏÏθμιση."
+"Το «debug keystore» δεν έχει καθοÏιστεί στις Ρυθμίσεις ΕπεξεÏγαστή ή την "
+"διαμόÏφωση."
#: platform/android/export/export.cpp
msgid "Custom build requires a valid Android SDK path in Editor Settings."
@@ -11986,9 +11904,8 @@ msgid "Invalid public key for APK expansion."
msgstr "Μη έγκυÏο δημόσιο κλειδί (public key) για επέκταση APK."
#: platform/android/export/export.cpp
-#, fuzzy
msgid "Invalid package name:"
-msgstr "Μη έγκυÏο όνομα κλάσης"
+msgstr "ΆκυÏο όνομα πακέτου:"
#: platform/android/export/export.cpp
msgid ""
@@ -12033,30 +11950,26 @@ msgid "Identifier is missing."
msgstr "Το αναγνωÏιστικό λείπει."
#: platform/iphone/export/export.cpp
-#, fuzzy
msgid "The character '%s' is not allowed in Identifier."
-msgstr "Το όνομα δεν είναι έγκυÏο αναγνωÏιστικό:"
+msgstr "Ο χαÏακτήÏας «%s» είναι άκυÏος σε αναγνωÏιστικό."
#: platform/iphone/export/export.cpp
-#, fuzzy
msgid "App Store Team ID not specified - cannot configure the project."
msgstr ""
-"Το ομαδικό αναγνωÏιστικό (Team ID) App Store δεν έχει καθοÏιστεί - δεν "
-"είναι δυνατή η διαμόÏφωση του έÏγου."
+"Δεν έχει καθοÏιστεί αναγνωÏιστικό ομάδας (Team ID) του App Store - αδυναμία "
+"διαμόÏφωσης έÏγου."
#: platform/iphone/export/export.cpp
-#, fuzzy
msgid "Invalid Identifier:"
-msgstr "Το όνομα δεν είναι έγκυÏο αναγνωÏιστικό:"
+msgstr "ΆκυÏο ΑναγνωÏιστικό:"
#: platform/iphone/export/export.cpp
-#, fuzzy
msgid "Required icon is not specified in the preset."
-msgstr "Το απαιτοÏμενο εικονίδιο δεν έχει καθοÏιστεί στην Ï€Ïοεπιλογή."
+msgstr "Το απαιτοÏμενο εικονίδιο δεν έχει καθοÏιστεί στην διαμόÏφωση."
#: platform/javascript/export/export.cpp
msgid "Stop HTTP Server"
-msgstr ""
+msgstr "ΤεÏματισμός Διακομιστή HTTP"
#: platform/javascript/export/export.cpp
msgid "Run in Browser"
@@ -12091,19 +12004,16 @@ msgid "Using default boot splash image."
msgstr "ΧÏήση Ï€Ïοεπιλεγμένης εικόνας εκκίνησης."
#: platform/uwp/export/export.cpp
-#, fuzzy
msgid "Invalid package short name."
-msgstr "Μη έγκυÏο όνομα κλάσης"
+msgstr "ΆκυÏο σÏντομο όνομα πακέτου."
#: platform/uwp/export/export.cpp
-#, fuzzy
msgid "Invalid package unique name."
-msgstr "ΆκυÏο μοναδικό όνομα."
+msgstr "ΆκυÏο μοναδικό όνομα πακέτου."
#: platform/uwp/export/export.cpp
-#, fuzzy
msgid "Invalid package publisher display name."
-msgstr "ΆκυÏο μοναδικό όνομα."
+msgstr "ΆκυÏο όνομα εμφάνισης εκδότη πακέτου."
#: platform/uwp/export/export.cpp
msgid "Invalid product GUID."
@@ -12214,6 +12124,8 @@ msgid ""
"CPUParticles2D animation requires the usage of a CanvasItemMaterial with "
"\"Particles Animation\" enabled."
msgstr ""
+"Η κίνηση CPUParticles2D απαιτεί την χÏήση CanvasItemMaterial με το "
+"«Particles Animation» ενεÏγό."
#: scene/2d/light_2d.cpp
#, fuzzy
@@ -12265,6 +12177,9 @@ msgid ""
"Use the CPUParticles2D node instead. You can use the \"Convert to "
"CPUParticles\" option for this purpose."
msgstr ""
+"Τα σωματίδια GPU δεν υποστηÏίζονται από τον οδηγό βίντεο GLES2.\n"
+"ΧÏησιμοποιήστε τον κόμβο CPUParticles2D. ΜποÏείτε να χÏησιμοποιήσετε την "
+"επιλογή «Convert to CPUParticles» για αυτόν τον σκοπό."
#: scene/2d/particles_2d.cpp scene/3d/particles.cpp
msgid ""
@@ -12279,6 +12194,8 @@ msgid ""
"Particles2D animation requires the usage of a CanvasItemMaterial with "
"\"Particles Animation\" enabled."
msgstr ""
+"Η κίνηση Particles2D απαιτεί την χÏήση ενός CanvasItemMaterial με το "
+"«Particles Animation» ενεÏγό."
#: scene/2d/path_2d.cpp
msgid "PathFollow2D only works when set as a child of a Path2D node."
@@ -12302,16 +12219,20 @@ msgstr ""
#: scene/2d/skeleton_2d.cpp
msgid "This Bone2D chain should end at a Skeleton2D node."
-msgstr ""
+msgstr "Αυτή η αλυσίδα Bone2D Ï€Ïέπει να τελειώνει σε έναν κόμβο Skeleton2D."
#: scene/2d/skeleton_2d.cpp
msgid "A Bone2D only works with a Skeleton2D or another Bone2D as parent node."
msgstr ""
+"Ένα Bone2D δουλεÏει μόνο με ένα Skeleton2D ή άλλο Bone2D σαν τον γονικό του "
+"κόμβο."
#: scene/2d/skeleton_2d.cpp
msgid ""
"This bone lacks a proper REST pose. Go to the Skeleton2D node and set one."
msgstr ""
+"Αυτό το κόκαλο δεν έχει θέση REST. Πηγαίνετε στον κόμβο Skeleton2D και "
+"οÏίστε την."
#: scene/2d/tile_map.cpp
#, fuzzy
@@ -12462,6 +12383,8 @@ msgid ""
"CPUParticles animation requires the usage of a SpatialMaterial whose "
"Billboard Mode is set to \"Particle Billboard\"."
msgstr ""
+"Η κίνηση CPUParticles απαιτεί την χÏήση ενός SpatialMaterial με το Billboard "
+"Mode ίσο με «Particle Billboard»."
#: scene/3d/gi_probe.cpp
msgid "Plotting Meshes"
@@ -12503,6 +12426,9 @@ msgid ""
"Use the CPUParticles node instead. You can use the \"Convert to CPUParticles"
"\" option for this purpose."
msgstr ""
+"Τα σωματίδια GPU δεν υποστηÏίζονται από τον οδηγό βίντεο GLES2.\n"
+"ΧÏησιμοποιήστε τον κόμβο CPUParticles. ΜποÏείτε να χÏησιμοποιήσετε την "
+"επιλογή «Convert to CPUParticles» για αυτόν τον σκοπό."
#: scene/3d/particles.cpp
msgid ""
@@ -12515,6 +12441,8 @@ msgid ""
"Particles animation requires the usage of a SpatialMaterial whose Billboard "
"Mode is set to \"Particle Billboard\"."
msgstr ""
+"Η κίνηση Particles απαιτεί την χÏήση ενός SpatialMaterial με το Billboard "
+"Mode ίσο με «Particle Billboard»."
#: scene/3d/path.cpp
#, fuzzy
@@ -12526,6 +12454,8 @@ msgid ""
"PathFollow's ROTATION_ORIENTED requires \"Up Vector\" to be enabled in its "
"parent Path's Curve resource."
msgstr ""
+"Το ROTATION_ORIENTED του PathFollow απαιτεί το «Up Vector» να είναι ενεÏγό "
+"στον πόÏο Curve του Î³Î¿Î½Î¹ÎºÎ¿Ï Path."
#: scene/3d/physics_body.cpp
msgid ""
@@ -12583,6 +12513,8 @@ msgid ""
"WorldEnvironment requires its \"Environment\" property to contain an "
"Environment to have a visible effect."
msgstr ""
+"Το WorldEnvironment απαιτεί τον οÏισμό της ιδιότητας «Environment» για να "
+"έχει οÏατό αποτέλεσμα."
#: scene/3d/world_environment.cpp
msgid ""
@@ -12601,7 +12533,7 @@ msgstr ""
#: scene/animation/animation_blend_tree.cpp
msgid "On BlendTree node '%s', animation not found: '%s'"
-msgstr ""
+msgstr "Στον κόμβο BlendTree «%s», δεν βÏέθηκε η κίνηση: «%s»"
#: scene/animation/animation_blend_tree.cpp
#, fuzzy
@@ -12625,7 +12557,7 @@ msgstr "ΑποσÏνδεση του '%s' απο το '%s'"
#: scene/animation/animation_tree.cpp
msgid "No root AnimationNode for the graph is set."
-msgstr ""
+msgstr "Δεν έχει οÏιστεί Ïιζικό AnimationNode για το γÏάφημα."
#: scene/animation/animation_tree.cpp
#, fuzzy
@@ -12637,6 +12569,7 @@ msgstr ""
#: scene/animation/animation_tree.cpp
msgid "Path set for AnimationPlayer does not lead to an AnimationPlayer node."
msgstr ""
+"Το ÏŒÏισμα διαδÏομής AnimationPlayer δεν οδηγεί σε κόμβο AnimationPlayer."
#: scene/animation/animation_tree.cpp
#, fuzzy
@@ -12654,6 +12587,9 @@ msgid ""
"LMB: Set color\n"
"RMB: Remove preset"
msgstr ""
+"ΧÏώμα: #%s\n"
+"LMB: ΟÏισμός χÏώματος\n"
+"RMB: ΚατάÏγηση διαμόÏφωσης"
#: scene/gui/color_picker.cpp
#, fuzzy
@@ -12671,7 +12607,7 @@ msgstr "ΠαÏέκκλιση"
#: scene/gui/color_picker.cpp
msgid "Switch between hexadecimal and code values."
-msgstr ""
+msgstr "Εναλλαγή δεκαεξαδικών και κωδικοποιημένων τιμών."
#: scene/gui/color_picker.cpp
msgid "Add current color as a preset."
@@ -12694,6 +12630,9 @@ msgid ""
"The Hint Tooltip won't be displayed as the control's Mouse Filter is set to "
"\"Ignore\". To solve this, set the Mouse Filter to \"Stop\" or \"Pass\"."
msgstr ""
+"Το Hint Tooltip δεν θα εμφανιστεί, καθώς το Mouse Filter του Control είναι "
+"«Ignore». Για επίλυση του Ï€Ïοβλήματος, θέστε το Mouse Filter σε «Stop» ή "
+"«Pass»."
#: scene/gui/dialogs.cpp
msgid "Alert!"
@@ -12717,6 +12656,8 @@ msgstr ""
#: scene/gui/range.cpp
msgid "If \"Exp Edit\" is enabled, \"Min Value\" must be greater than 0."
msgstr ""
+"Εάν το «Exp Edit» είναι ενεÏγό, το «Min Value» Ï€Ïέπει να είναι μεγαλÏτεÏο "
+"του 0."
#: scene/gui/scroll_container.cpp
#, fuzzy
@@ -12771,20 +12712,29 @@ msgstr "Μη έγκυÏη πηγή!"
#: servers/visual/shader_language.cpp
msgid "Assignment to function."
-msgstr ""
+msgstr "Ανάθεση σε συνάÏτηση."
#: servers/visual/shader_language.cpp
msgid "Assignment to uniform."
-msgstr ""
+msgstr "Ανάθεση σε ενιαία μεταβλητή."
#: servers/visual/shader_language.cpp
msgid "Varyings can only be assigned in vertex function."
-msgstr ""
+msgstr "Τα «varying» μποÏοÏν να ανατεθοÏν μόνο στην σκίαση κοÏυφής."
#: servers/visual/shader_language.cpp
msgid "Constants cannot be modified."
msgstr "Οι σταθεÏές δεν μποÏοÏν να Ï„ÏοποποιηθοÏν."
+#~ msgid ""
+#~ "There are currently no tutorials for this class, you can [color=$color]"
+#~ "[url=$url]contribute one[/url][/color] or [color=$color][url="
+#~ "$url2]request one[/url][/color]."
+#~ msgstr ""
+#~ "Δεν υπάÏχει ακόμα βοήθεια για αυτήν την κλάση, μποÏείτε να την [color="
+#~ "$color][url=$url]γÏάψετε[/url][/color] ή να την [color=$color][url="
+#~ "$url2]ζητήσετε[/url][/color]."
+
#~ msgid "enum "
#~ msgstr "απαÏίθμηση "
diff --git a/editor/translations/eo.po b/editor/translations/eo.po
index c2acb4613b..f8818961c6 100644
--- a/editor/translations/eo.po
+++ b/editor/translations/eo.po
@@ -1935,13 +1935,6 @@ msgid "Online Tutorials"
msgstr ""
#: editor/editor_help.cpp
-msgid ""
-"There are currently no tutorials for this class, you can [color=$color][url="
-"$url]contribute one[/url][/color] or [color=$color][url=$url2]request one[/"
-"url][/color]."
-msgstr ""
-
-#: editor/editor_help.cpp
msgid "Properties"
msgstr ""
@@ -4461,7 +4454,6 @@ msgid "Animation Tools"
msgstr ""
#: editor/plugins/animation_player_editor_plugin.cpp
-#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Animation"
msgstr ""
@@ -5509,6 +5501,11 @@ msgid "Auto Insert Key"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
+#, fuzzy
+msgid "Animation Key and Pose Options"
+msgstr "Animado loneco (sekundoj)"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Insert Key (Existing Tracks)"
msgstr ""
@@ -5790,7 +5787,6 @@ msgid "No mesh to debug."
msgstr ""
#: editor/plugins/mesh_instance_editor_plugin.cpp
-#: editor/plugins/sprite_editor_plugin.cpp
msgid "Model has no UV in this layer"
msgstr ""
diff --git a/editor/translations/es.po b/editor/translations/es.po
index 3e76fcf75f..7ae1e60572 100644
--- a/editor/translations/es.po
+++ b/editor/translations/es.po
@@ -46,7 +46,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Godot Engine editor\n"
"POT-Creation-Date: \n"
-"PO-Revision-Date: 2020-01-19 11:03+0000\n"
+"PO-Revision-Date: 2020-01-27 07:09+0000\n"
"Last-Translator: Javier Ocampos <xavier.ocampos@gmail.com>\n"
"Language-Team: Spanish <https://hosted.weblate.org/projects/godot-engine/"
"godot/es/>\n"
@@ -55,7 +55,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Generator: Weblate 3.10.2\n"
+"X-Generator: Weblate 3.11-dev\n"
#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
#: modules/visual_script/visual_script_builtin_funcs.cpp
@@ -1990,16 +1990,6 @@ msgid "Online Tutorials"
msgstr "Tutoriales en línea"
#: editor/editor_help.cpp
-msgid ""
-"There are currently no tutorials for this class, you can [color=$color][url="
-"$url]contribute one[/url][/color] or [color=$color][url=$url2]request one[/"
-"url][/color]."
-msgstr ""
-"Actualmente no existen tutoriales para esta clase, puedes [color=$color][url="
-"$url]contribuir uno[/url][/color] o [color=$color][url=$url2]solicitar uno[/"
-"url][/color]."
-
-#: editor/editor_help.cpp
msgid "Properties"
msgstr "Propiedades"
@@ -4602,7 +4592,6 @@ msgid "Animation Tools"
msgstr "Herramientas de Animación"
#: editor/plugins/animation_player_editor_plugin.cpp
-#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Animation"
msgstr "Animación"
@@ -5677,6 +5666,10 @@ msgid "Auto Insert Key"
msgstr "Auto Insertar Clave"
#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Animation Key and Pose Options"
+msgstr "Clave de animación y Opciones de Pose"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Insert Key (Existing Tracks)"
msgstr "Insertar clave (pistas existentes)"
@@ -5959,7 +5952,6 @@ msgid "No mesh to debug."
msgstr "No hay meshes para depurar."
#: editor/plugins/mesh_instance_editor_plugin.cpp
-#: editor/plugins/sprite_editor_plugin.cpp
msgid "Model has no UV in this layer"
msgstr "El modelo no tiene UV en esta capa"
@@ -7351,7 +7343,7 @@ msgstr "Vista Previa Cinemática"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Not available when using the GLES2 renderer."
-msgstr ""
+msgstr "No disponible al utilizar el renderizador GLES2."
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Freelook Left"
@@ -12724,6 +12716,15 @@ msgstr "Solo se pueden asignar variaciones en funciones de vértice."
msgid "Constants cannot be modified."
msgstr "Las constantes no pueden modificarse."
+#~ msgid ""
+#~ "There are currently no tutorials for this class, you can [color=$color]"
+#~ "[url=$url]contribute one[/url][/color] or [color=$color][url="
+#~ "$url2]request one[/url][/color]."
+#~ msgstr ""
+#~ "Actualmente no existen tutoriales para esta clase, puedes [color=$color]"
+#~ "[url=$url]contribuir uno[/url][/color] o [color=$color][url="
+#~ "$url2]solicitar uno[/url][/color]."
+
#~ msgid "enum "
#~ msgstr "enum "
diff --git a/editor/translations/es_AR.po b/editor/translations/es_AR.po
index 62c54c7f8c..c367f694c1 100644
--- a/editor/translations/es_AR.po
+++ b/editor/translations/es_AR.po
@@ -18,7 +18,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Godot Engine editor\n"
"POT-Creation-Date: \n"
-"PO-Revision-Date: 2020-01-16 22:23+0000\n"
+"PO-Revision-Date: 2020-01-27 07:09+0000\n"
"Last-Translator: Javier Ocampos <xavier.ocampos@gmail.com>\n"
"Language-Team: Spanish (Argentina) <https://hosted.weblate.org/projects/"
"godot-engine/godot/es_AR/>\n"
@@ -27,7 +27,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Generator: Weblate 3.10.2-dev\n"
+"X-Generator: Weblate 3.11-dev\n"
#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
#: modules/visual_script/visual_script_builtin_funcs.cpp
@@ -1951,37 +1951,24 @@ msgid "Inherited by:"
msgstr "Heredada por:"
#: editor/editor_help.cpp
-#, fuzzy
msgid "Description"
-msgstr "Descripción:"
+msgstr "Descripción"
#: editor/editor_help.cpp
msgid "Online Tutorials"
msgstr "Tutoriales en línea"
#: editor/editor_help.cpp
-msgid ""
-"There are currently no tutorials for this class, you can [color=$color][url="
-"$url]contribute one[/url][/color] or [color=$color][url=$url2]request one[/"
-"url][/color]."
-msgstr ""
-"Actualmente no existen tutoriales para esta clase, podés [color=$color][url="
-"$url]contribuir uno[/url][/color] o [color=$color][url=$url2]solicitar uno[/"
-"url][/color]."
-
-#: editor/editor_help.cpp
msgid "Properties"
msgstr "Propiedades"
#: editor/editor_help.cpp
-#, fuzzy
msgid "override:"
-msgstr "Reemplazos(Overrides)"
+msgstr "reemplazar(override):"
#: editor/editor_help.cpp
-#, fuzzy
msgid "default:"
-msgstr "Por Defecto"
+msgstr "predeterminado:"
#: editor/editor_help.cpp
msgid "Methods"
@@ -2004,9 +1991,8 @@ msgid "Property Descriptions"
msgstr "Descripción de Propiedades"
#: editor/editor_help.cpp
-#, fuzzy
msgid "(value)"
-msgstr "Valor"
+msgstr "(valor)"
#: editor/editor_help.cpp
msgid ""
@@ -4573,7 +4559,6 @@ msgid "Animation Tools"
msgstr "Herramientas de Animación"
#: editor/plugins/animation_player_editor_plugin.cpp
-#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Animation"
msgstr "Animación"
@@ -5647,6 +5632,10 @@ msgid "Auto Insert Key"
msgstr "Auto Insertar Clave"
#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Animation Key and Pose Options"
+msgstr "Clave de animación y Opciones de Pose"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Insert Key (Existing Tracks)"
msgstr "Insetar Clave (Tracks Existentes)"
@@ -5929,7 +5918,6 @@ msgid "No mesh to debug."
msgstr "No hay meshes para depurar."
#: editor/plugins/mesh_instance_editor_plugin.cpp
-#: editor/plugins/sprite_editor_plugin.cpp
msgid "Model has no UV in this layer"
msgstr "El modelo no tiene UV en esta capa"
@@ -7321,7 +7309,7 @@ msgstr "Vista Previa Cinemática"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Not available when using the GLES2 renderer."
-msgstr ""
+msgstr "No disponible usando el renderizador GLES2."
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Freelook Left"
@@ -12687,6 +12675,15 @@ msgstr "Solo se pueden asignar variaciones en funciones de vértice."
msgid "Constants cannot be modified."
msgstr "Las constantes no pueden modificarse."
+#~ msgid ""
+#~ "There are currently no tutorials for this class, you can [color=$color]"
+#~ "[url=$url]contribute one[/url][/color] or [color=$color][url="
+#~ "$url2]request one[/url][/color]."
+#~ msgstr ""
+#~ "Actualmente no existen tutoriales para esta clase, podés [color=$color]"
+#~ "[url=$url]contribuir uno[/url][/color] o [color=$color][url="
+#~ "$url2]solicitar uno[/url][/color]."
+
#~ msgid "enum "
#~ msgstr "enum "
diff --git a/editor/translations/et.po b/editor/translations/et.po
index e1fd30d97e..1db95acc83 100644
--- a/editor/translations/et.po
+++ b/editor/translations/et.po
@@ -1898,13 +1898,6 @@ msgid "Online Tutorials"
msgstr ""
#: editor/editor_help.cpp
-msgid ""
-"There are currently no tutorials for this class, you can [color=$color][url="
-"$url]contribute one[/url][/color] or [color=$color][url=$url2]request one[/"
-"url][/color]."
-msgstr ""
-
-#: editor/editor_help.cpp
msgid "Properties"
msgstr ""
@@ -4371,7 +4364,6 @@ msgid "Animation Tools"
msgstr ""
#: editor/plugins/animation_player_editor_plugin.cpp
-#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Animation"
msgstr ""
@@ -5417,6 +5409,10 @@ msgid "Auto Insert Key"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Animation Key and Pose Options"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Insert Key (Existing Tracks)"
msgstr ""
@@ -5697,7 +5693,6 @@ msgid "No mesh to debug."
msgstr ""
#: editor/plugins/mesh_instance_editor_plugin.cpp
-#: editor/plugins/sprite_editor_plugin.cpp
msgid "Model has no UV in this layer"
msgstr ""
diff --git a/editor/translations/eu.po b/editor/translations/eu.po
index 7431e5407f..b9a682553e 100644
--- a/editor/translations/eu.po
+++ b/editor/translations/eu.po
@@ -1893,13 +1893,6 @@ msgid "Online Tutorials"
msgstr ""
#: editor/editor_help.cpp
-msgid ""
-"There are currently no tutorials for this class, you can [color=$color][url="
-"$url]contribute one[/url][/color] or [color=$color][url=$url2]request one[/"
-"url][/color]."
-msgstr ""
-
-#: editor/editor_help.cpp
msgid "Properties"
msgstr ""
@@ -4360,7 +4353,6 @@ msgid "Animation Tools"
msgstr ""
#: editor/plugins/animation_player_editor_plugin.cpp
-#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Animation"
msgstr ""
@@ -5403,6 +5395,10 @@ msgid "Auto Insert Key"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Animation Key and Pose Options"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Insert Key (Existing Tracks)"
msgstr ""
@@ -5683,7 +5679,6 @@ msgid "No mesh to debug."
msgstr ""
#: editor/plugins/mesh_instance_editor_plugin.cpp
-#: editor/plugins/sprite_editor_plugin.cpp
msgid "Model has no UV in this layer"
msgstr ""
diff --git a/editor/translations/fa.po b/editor/translations/fa.po
index bc5adb4ce0..5d071126c6 100644
--- a/editor/translations/fa.po
+++ b/editor/translations/fa.po
@@ -2020,13 +2020,6 @@ msgid "Online Tutorials"
msgstr ""
#: editor/editor_help.cpp
-msgid ""
-"There are currently no tutorials for this class, you can [color=$color][url="
-"$url]contribute one[/url][/color] or [color=$color][url=$url2]request one[/"
-"url][/color]."
-msgstr ""
-
-#: editor/editor_help.cpp
msgid "Properties"
msgstr ""
@@ -4640,7 +4633,6 @@ msgid "Animation Tools"
msgstr ""
#: editor/plugins/animation_player_editor_plugin.cpp
-#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Animation"
msgstr ""
@@ -5746,6 +5738,11 @@ msgid "Auto Insert Key"
msgstr "کلید را در انیمیشن درج کن"
#: editor/plugins/canvas_item_editor_plugin.cpp
+#, fuzzy
+msgid "Animation Key and Pose Options"
+msgstr "طول انیمیشن (seconds)"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Insert Key (Existing Tracks)"
msgstr ""
@@ -6036,7 +6033,6 @@ msgid "No mesh to debug."
msgstr ""
#: editor/plugins/mesh_instance_editor_plugin.cpp
-#: editor/plugins/sprite_editor_plugin.cpp
msgid "Model has no UV in this layer"
msgstr ""
diff --git a/editor/translations/fi.po b/editor/translations/fi.po
index 11f8a2a611..bac46bbf8b 100644
--- a/editor/translations/fi.po
+++ b/editor/translations/fi.po
@@ -14,7 +14,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Godot Engine editor\n"
"POT-Creation-Date: \n"
-"PO-Revision-Date: 2020-01-19 11:03+0000\n"
+"PO-Revision-Date: 2020-01-27 07:10+0000\n"
"Last-Translator: Tapani Niemi <tapani.niemi@kapsi.fi>\n"
"Language-Team: Finnish <https://hosted.weblate.org/projects/godot-engine/"
"godot/fi/>\n"
@@ -23,7 +23,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Generator: Weblate 3.10.2\n"
+"X-Generator: Weblate 3.11-dev\n"
#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
#: modules/visual_script/visual_script_builtin_funcs.cpp
@@ -1944,16 +1944,6 @@ msgid "Online Tutorials"
msgstr "Online-oppaat"
#: editor/editor_help.cpp
-msgid ""
-"There are currently no tutorials for this class, you can [color=$color][url="
-"$url]contribute one[/url][/color] or [color=$color][url=$url2]request one[/"
-"url][/color]."
-msgstr ""
-"Tälle luokalle ei vielä löydy kuvausta. Voit [color=$color][url=$url]auttaa "
-"luomalla sellaisen[/url][/color] tai [color=$color][url=$url2]pyytää "
-"sellaisen[/url][/color]."
-
-#: editor/editor_help.cpp
msgid "Properties"
msgstr "Ominaisuudet"
@@ -4525,7 +4515,6 @@ msgid "Animation Tools"
msgstr "Animaatiotyökalut"
#: editor/plugins/animation_player_editor_plugin.cpp
-#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Animation"
msgstr "Animaatio"
@@ -5600,6 +5589,10 @@ msgid "Auto Insert Key"
msgstr "Lisää avainruutuja automaattisesti"
#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Animation Key and Pose Options"
+msgstr "Animaatioavaimen ja asennon valinnat"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Insert Key (Existing Tracks)"
msgstr "Lisää avainruutu (olemassa olevat raidat)"
@@ -5882,7 +5875,6 @@ msgid "No mesh to debug."
msgstr "Ei meshiä debugattavaksi."
#: editor/plugins/mesh_instance_editor_plugin.cpp
-#: editor/plugins/sprite_editor_plugin.cpp
msgid "Model has no UV in this layer"
msgstr "Mallilla ei ole UV-kanavaa tällä kerroksella"
@@ -7273,7 +7265,7 @@ msgstr "Elokuvallinen esikatselu"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Not available when using the GLES2 renderer."
-msgstr ""
+msgstr "Ei käytettävissä GLES2-renderöijää käytettäessä."
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Freelook Left"
@@ -12611,6 +12603,15 @@ msgstr "Varying tyypin voi sijoittaa vain vertex-funktiossa."
msgid "Constants cannot be modified."
msgstr "Vakioita ei voi muokata."
+#~ msgid ""
+#~ "There are currently no tutorials for this class, you can [color=$color]"
+#~ "[url=$url]contribute one[/url][/color] or [color=$color][url="
+#~ "$url2]request one[/url][/color]."
+#~ msgstr ""
+#~ "Tälle luokalle ei vielä löydy kuvausta. Voit [color=$color][url="
+#~ "$url]auttaa luomalla sellaisen[/url][/color] tai [color=$color][url="
+#~ "$url2]pyytää sellaisen[/url][/color]."
+
#~ msgid "enum "
#~ msgstr "enum "
diff --git a/editor/translations/fil.po b/editor/translations/fil.po
index db6c34ffe8..c8a2a20684 100644
--- a/editor/translations/fil.po
+++ b/editor/translations/fil.po
@@ -1900,13 +1900,6 @@ msgid "Online Tutorials"
msgstr ""
#: editor/editor_help.cpp
-msgid ""
-"There are currently no tutorials for this class, you can [color=$color][url="
-"$url]contribute one[/url][/color] or [color=$color][url=$url2]request one[/"
-"url][/color]."
-msgstr ""
-
-#: editor/editor_help.cpp
msgid "Properties"
msgstr ""
@@ -4370,7 +4363,6 @@ msgid "Animation Tools"
msgstr ""
#: editor/plugins/animation_player_editor_plugin.cpp
-#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Animation"
msgstr ""
@@ -5415,6 +5407,10 @@ msgid "Auto Insert Key"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Animation Key and Pose Options"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Insert Key (Existing Tracks)"
msgstr ""
@@ -5697,7 +5693,6 @@ msgid "No mesh to debug."
msgstr ""
#: editor/plugins/mesh_instance_editor_plugin.cpp
-#: editor/plugins/sprite_editor_plugin.cpp
msgid "Model has no UV in this layer"
msgstr ""
diff --git a/editor/translations/fr.po b/editor/translations/fr.po
index 010380ae58..c92a8d3bb0 100644
--- a/editor/translations/fr.po
+++ b/editor/translations/fr.po
@@ -2017,16 +2017,6 @@ msgid "Online Tutorials"
msgstr "Tutoriels en ligne"
#: editor/editor_help.cpp
-msgid ""
-"There are currently no tutorials for this class, you can [color=$color][url="
-"$url]contribute one[/url][/color] or [color=$color][url=$url2]request one[/"
-"url][/color]."
-msgstr ""
-"Il n'y a pas de tutoriels disponibles pour cette classe, vous pouvez [color="
-"$color][url=$url]en créer un[/url][/color] ou [color=$color][url=$url2]en "
-"demander un[/url][/color]."
-
-#: editor/editor_help.cpp
msgid "Properties"
msgstr "Propriétés"
@@ -4639,7 +4629,6 @@ msgid "Animation Tools"
msgstr "Outils d'animation"
#: editor/plugins/animation_player_editor_plugin.cpp
-#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Animation"
msgstr "Animation"
@@ -5716,6 +5705,10 @@ msgid "Auto Insert Key"
msgstr "Auto insertion de clé"
#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Animation Key and Pose Options"
+msgstr "Options pour les clés et poses d'animations"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Insert Key (Existing Tracks)"
msgstr "Insérer clé (pistes existantes)"
@@ -6000,7 +5993,6 @@ msgid "No mesh to debug."
msgstr "Aucun maillage à déboguer."
#: editor/plugins/mesh_instance_editor_plugin.cpp
-#: editor/plugins/sprite_editor_plugin.cpp
msgid "Model has no UV in this layer"
msgstr "Le modèle n'a pas d'UV dans cette couche"
@@ -12794,6 +12786,15 @@ msgstr "Les variations ne peuvent être affectées que dans la fonction vertex."
msgid "Constants cannot be modified."
msgstr "Les constantes ne peuvent être modifiées."
+#~ msgid ""
+#~ "There are currently no tutorials for this class, you can [color=$color]"
+#~ "[url=$url]contribute one[/url][/color] or [color=$color][url="
+#~ "$url2]request one[/url][/color]."
+#~ msgstr ""
+#~ "Il n'y a pas de tutoriels disponibles pour cette classe, vous pouvez "
+#~ "[color=$color][url=$url]en créer un[/url][/color] ou [color=$color][url="
+#~ "$url2]en demander un[/url][/color]."
+
#~ msgid "enum "
#~ msgstr "enum_ "
diff --git a/editor/translations/ga.po b/editor/translations/ga.po
index c21203046c..f1db3d5a78 100644
--- a/editor/translations/ga.po
+++ b/editor/translations/ga.po
@@ -1896,13 +1896,6 @@ msgid "Online Tutorials"
msgstr ""
#: editor/editor_help.cpp
-msgid ""
-"There are currently no tutorials for this class, you can [color=$color][url="
-"$url]contribute one[/url][/color] or [color=$color][url=$url2]request one[/"
-"url][/color]."
-msgstr ""
-
-#: editor/editor_help.cpp
msgid "Properties"
msgstr ""
@@ -4366,7 +4359,6 @@ msgid "Animation Tools"
msgstr ""
#: editor/plugins/animation_player_editor_plugin.cpp
-#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Animation"
msgstr ""
@@ -5411,6 +5403,10 @@ msgid "Auto Insert Key"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Animation Key and Pose Options"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Insert Key (Existing Tracks)"
msgstr ""
@@ -5691,7 +5687,6 @@ msgid "No mesh to debug."
msgstr ""
#: editor/plugins/mesh_instance_editor_plugin.cpp
-#: editor/plugins/sprite_editor_plugin.cpp
msgid "Model has no UV in this layer"
msgstr ""
diff --git a/editor/translations/he.po b/editor/translations/he.po
index f316738641..6a153b6f11 100644
--- a/editor/translations/he.po
+++ b/editor/translations/he.po
@@ -2014,13 +2014,6 @@ msgid "Online Tutorials"
msgstr "×ž×¡×ž×›×™× ×ž×§×•×•× ×™×"
#: editor/editor_help.cpp
-msgid ""
-"There are currently no tutorials for this class, you can [color=$color][url="
-"$url]contribute one[/url][/color] or [color=$color][url=$url2]request one[/"
-"url][/color]."
-msgstr ""
-
-#: editor/editor_help.cpp
msgid "Properties"
msgstr "מ×פייני×"
@@ -4635,7 +4628,6 @@ msgid "Animation Tools"
msgstr ""
#: editor/plugins/animation_player_editor_plugin.cpp
-#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Animation"
msgstr ""
@@ -5746,6 +5738,11 @@ msgid "Auto Insert Key"
msgstr "הכנס מפתח"
#: editor/plugins/canvas_item_editor_plugin.cpp
+#, fuzzy
+msgid "Animation Key and Pose Options"
+msgstr "משך ההנפשה (שניות)"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Insert Key (Existing Tracks)"
msgstr ""
@@ -6038,7 +6035,6 @@ msgid "No mesh to debug."
msgstr ""
#: editor/plugins/mesh_instance_editor_plugin.cpp
-#: editor/plugins/sprite_editor_plugin.cpp
msgid "Model has no UV in this layer"
msgstr ""
diff --git a/editor/translations/hi.po b/editor/translations/hi.po
index 65b542cbfe..424a9a6bc1 100644
--- a/editor/translations/hi.po
+++ b/editor/translations/hi.po
@@ -1988,13 +1988,6 @@ msgid "Online Tutorials"
msgstr ""
#: editor/editor_help.cpp
-msgid ""
-"There are currently no tutorials for this class, you can [color=$color][url="
-"$url]contribute one[/url][/color] or [color=$color][url=$url2]request one[/"
-"url][/color]."
-msgstr ""
-
-#: editor/editor_help.cpp
msgid "Properties"
msgstr ""
@@ -4515,7 +4508,6 @@ msgid "Animation Tools"
msgstr ""
#: editor/plugins/animation_player_editor_plugin.cpp
-#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Animation"
msgstr ""
@@ -5583,6 +5575,11 @@ msgid "Auto Insert Key"
msgstr "चाबी यहां डालें"
#: editor/plugins/canvas_item_editor_plugin.cpp
+#, fuzzy
+msgid "Animation Key and Pose Options"
+msgstr "à¤à¤¨à¤¿à¤®à¥‡à¤¶à¤¨ लंबाई समय (सेकंडà¥à¤¸)"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Insert Key (Existing Tracks)"
msgstr ""
@@ -5867,7 +5864,6 @@ msgid "No mesh to debug."
msgstr ""
#: editor/plugins/mesh_instance_editor_plugin.cpp
-#: editor/plugins/sprite_editor_plugin.cpp
msgid "Model has no UV in this layer"
msgstr ""
diff --git a/editor/translations/hr.po b/editor/translations/hr.po
index 97b2df1bc2..bc5abb76fc 100644
--- a/editor/translations/hr.po
+++ b/editor/translations/hr.po
@@ -1910,13 +1910,6 @@ msgid "Online Tutorials"
msgstr ""
#: editor/editor_help.cpp
-msgid ""
-"There are currently no tutorials for this class, you can [color=$color][url="
-"$url]contribute one[/url][/color] or [color=$color][url=$url2]request one[/"
-"url][/color]."
-msgstr ""
-
-#: editor/editor_help.cpp
msgid "Properties"
msgstr ""
@@ -4386,7 +4379,6 @@ msgid "Animation Tools"
msgstr ""
#: editor/plugins/animation_player_editor_plugin.cpp
-#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Animation"
msgstr ""
@@ -5436,6 +5428,11 @@ msgid "Auto Insert Key"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
+#, fuzzy
+msgid "Animation Key and Pose Options"
+msgstr "Trajanje animacije (u sekundama)"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Insert Key (Existing Tracks)"
msgstr ""
@@ -5721,7 +5718,6 @@ msgid "No mesh to debug."
msgstr ""
#: editor/plugins/mesh_instance_editor_plugin.cpp
-#: editor/plugins/sprite_editor_plugin.cpp
msgid "Model has no UV in this layer"
msgstr ""
diff --git a/editor/translations/hu.po b/editor/translations/hu.po
index b7a1a08cad..af13990fdc 100644
--- a/editor/translations/hu.po
+++ b/editor/translations/hu.po
@@ -2033,16 +2033,6 @@ msgid "Online Tutorials"
msgstr "Online Oktatóanyagok:"
#: editor/editor_help.cpp
-msgid ""
-"There are currently no tutorials for this class, you can [color=$color][url="
-"$url]contribute one[/url][/color] or [color=$color][url=$url2]request one[/"
-"url][/color]."
-msgstr ""
-"Jelenleg nincsenek oktatóanyagok ehhez az osztályhoz. [color=$color][url="
-"$url]Hozzájárulhat eggyel[/url][/color], vagy [color=$color][url="
-"$url2]kérvényezhet egyet[/url][/color]."
-
-#: editor/editor_help.cpp
msgid "Properties"
msgstr "Tulajdonságok"
@@ -4751,7 +4741,6 @@ msgid "Animation Tools"
msgstr "Animációs Eszközök"
#: editor/plugins/animation_player_editor_plugin.cpp
-#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Animation"
msgstr "Animáció"
@@ -5893,6 +5882,11 @@ msgid "Auto Insert Key"
msgstr "Animáció kulcs beillesztés"
#: editor/plugins/canvas_item_editor_plugin.cpp
+#, fuzzy
+msgid "Animation Key and Pose Options"
+msgstr "Animáció hossza (másodpercben)"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Insert Key (Existing Tracks)"
msgstr "Kulcs Beszúrása (Meglévő Nyomvonalakra)"
@@ -6191,7 +6185,6 @@ msgid "No mesh to debug."
msgstr "Nincs mesh a hibakereséshez."
#: editor/plugins/mesh_instance_editor_plugin.cpp
-#: editor/plugins/sprite_editor_plugin.cpp
msgid "Model has no UV in this layer"
msgstr "A modellnek nincs UV-je ezen a rétegen"
@@ -12910,6 +12903,15 @@ msgstr ""
msgid "Constants cannot be modified."
msgstr ""
+#~ msgid ""
+#~ "There are currently no tutorials for this class, you can [color=$color]"
+#~ "[url=$url]contribute one[/url][/color] or [color=$color][url="
+#~ "$url2]request one[/url][/color]."
+#~ msgstr ""
+#~ "Jelenleg nincsenek oktatóanyagok ehhez az osztályhoz. [color=$color][url="
+#~ "$url]Hozzájárulhat eggyel[/url][/color], vagy [color=$color][url="
+#~ "$url2]kérvényezhet egyet[/url][/color]."
+
#~ msgid "enum "
#~ msgstr "enum "
diff --git a/editor/translations/id.po b/editor/translations/id.po
index e73d9c355d..4208edb582 100644
--- a/editor/translations/id.po
+++ b/editor/translations/id.po
@@ -1965,16 +1965,6 @@ msgid "Online Tutorials"
msgstr "Tutorial Daring"
#: editor/editor_help.cpp
-msgid ""
-"There are currently no tutorials for this class, you can [color=$color][url="
-"$url]contribute one[/url][/color] or [color=$color][url=$url2]request one[/"
-"url][/color]."
-msgstr ""
-"Untuk saat ini tidak ada tutorial dalam kelas ini, anda bisa [color=$color]"
-"[url=$url]ikut berkontribusi[/url][/color] atau [color=$color][url="
-"$url2]memberikan usulan[/url][/color]."
-
-#: editor/editor_help.cpp
msgid "Properties"
msgstr "Properti Objek"
@@ -4564,7 +4554,6 @@ msgid "Animation Tools"
msgstr "Perkakas Animasi"
#: editor/plugins/animation_player_editor_plugin.cpp
-#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Animation"
msgstr "Animasi"
@@ -5656,6 +5645,11 @@ msgid "Auto Insert Key"
msgstr "Otomatis Sisipkan Kunci"
#: editor/plugins/canvas_item_editor_plugin.cpp
+#, fuzzy
+msgid "Animation Key and Pose Options"
+msgstr "Kunci Animasi Dimasukkan."
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Insert Key (Existing Tracks)"
msgstr "Sisip Key (ke Trek yang Ada)"
@@ -5941,7 +5935,6 @@ msgid "No mesh to debug."
msgstr "Tidak ada mesh untuk diawakutu."
#: editor/plugins/mesh_instance_editor_plugin.cpp
-#: editor/plugins/sprite_editor_plugin.cpp
msgid "Model has no UV in this layer"
msgstr "Model tidak memiliki UV dalam lapisan ini"
@@ -12690,6 +12683,15 @@ msgstr "Variasi hanya bisa ditetapkan dalam fungsi vertex."
msgid "Constants cannot be modified."
msgstr "Konstanta tidak dapat dimodifikasi."
+#~ msgid ""
+#~ "There are currently no tutorials for this class, you can [color=$color]"
+#~ "[url=$url]contribute one[/url][/color] or [color=$color][url="
+#~ "$url2]request one[/url][/color]."
+#~ msgstr ""
+#~ "Untuk saat ini tidak ada tutorial dalam kelas ini, anda bisa [color="
+#~ "$color][url=$url]ikut berkontribusi[/url][/color] atau [color=$color][url="
+#~ "$url2]memberikan usulan[/url][/color]."
+
#~ msgid "enum "
#~ msgstr "enum "
diff --git a/editor/translations/is.po b/editor/translations/is.po
index 529051be32..7a2250c0b2 100644
--- a/editor/translations/is.po
+++ b/editor/translations/is.po
@@ -1931,13 +1931,6 @@ msgid "Online Tutorials"
msgstr ""
#: editor/editor_help.cpp
-msgid ""
-"There are currently no tutorials for this class, you can [color=$color][url="
-"$url]contribute one[/url][/color] or [color=$color][url=$url2]request one[/"
-"url][/color]."
-msgstr ""
-
-#: editor/editor_help.cpp
msgid "Properties"
msgstr ""
@@ -4415,7 +4408,6 @@ msgid "Animation Tools"
msgstr ""
#: editor/plugins/animation_player_editor_plugin.cpp
-#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Animation"
msgstr ""
@@ -5472,6 +5464,10 @@ msgid "Auto Insert Key"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Animation Key and Pose Options"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Insert Key (Existing Tracks)"
msgstr ""
@@ -5754,7 +5750,6 @@ msgid "No mesh to debug."
msgstr ""
#: editor/plugins/mesh_instance_editor_plugin.cpp
-#: editor/plugins/sprite_editor_plugin.cpp
msgid "Model has no UV in this layer"
msgstr ""
diff --git a/editor/translations/it.po b/editor/translations/it.po
index 571281ead8..a549df218c 100644
--- a/editor/translations/it.po
+++ b/editor/translations/it.po
@@ -36,17 +36,18 @@
# Davide Giuliano <davidegiuliano00@gmail.com>, 2019.
# Stefano Merazzi <asso99@hotmail.com>, 2019.
# Sinapse X <sinapsex13@gmail.com>, 2019.
-# Micila Micillotto <micillotto@gmail.com>, 2019.
+# Micila Micillotto <micillotto@gmail.com>, 2019, 2020.
# Mirko Soppelsa <miknsop@gmail.com>, 2019.
# No <kingofwizards.kw7@gmail.com>, 2019.
# StarFang208 <polaritymanx@yahoo.it>, 2019.
# Katia Piazza <gydey@ridiculousglitch.com>, 2019.
# nickfla1 <lanterniniflavio@gmail.com>, 2019.
+# Fabio Iotti <fabiogiopla@gmail.com>, 2020.
msgid ""
msgstr ""
"Project-Id-Version: Godot Engine editor\n"
"POT-Creation-Date: \n"
-"PO-Revision-Date: 2019-12-30 17:25+0000\n"
+"PO-Revision-Date: 2020-01-27 07:09+0000\n"
"Last-Translator: Micila Micillotto <micillotto@gmail.com>\n"
"Language-Team: Italian <https://hosted.weblate.org/projects/godot-engine/"
"godot/it/>\n"
@@ -55,7 +56,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Generator: Weblate 3.10\n"
+"X-Generator: Weblate 3.11-dev\n"
#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
#: modules/visual_script/visual_script_builtin_funcs.cpp
@@ -456,7 +457,7 @@ msgstr "Non è possibile aggiungere una nuova traccia senza un nodo root"
#: editor/animation_track_editor.cpp
msgid "Invalid track for Bezier (no suitable sub-properties)"
-msgstr ""
+msgstr "Traccia non valida per la curva Bézier (nessuna sottoproprietà adatta)"
#: editor/animation_track_editor.cpp
msgid "Add Bezier Track"
@@ -1229,9 +1230,8 @@ msgid "Error opening package file, not in ZIP format."
msgstr "Errore nell'apertura del file package: non è in formato ZIP."
#: editor/editor_asset_installer.cpp
-#, fuzzy
msgid "%s (Already Exists)"
-msgstr "Già esistente"
+msgstr "%s (già esistente)"
#: editor/editor_asset_installer.cpp
msgid "Uncompressing Assets"
@@ -1242,9 +1242,8 @@ msgid "The following files failed extraction from package:"
msgstr "Impossibile estrarre i file seguenti dal pacchetto:"
#: editor/editor_asset_installer.cpp
-#, fuzzy
msgid "And %s more files."
-msgstr "%d altri file"
+msgstr "E %s altri file."
#: editor/editor_asset_installer.cpp editor/project_manager.cpp
msgid "Package installed successfully!"
@@ -1256,9 +1255,8 @@ msgid "Success!"
msgstr "Successo!"
#: editor/editor_asset_installer.cpp
-#, fuzzy
msgid "Package Contents:"
-msgstr "Contenuti:"
+msgstr "Contenuti del pacchetto:"
#: editor/editor_asset_installer.cpp editor/editor_node.cpp
msgid "Install"
@@ -1398,9 +1396,8 @@ msgid "Invalid file, not an audio bus layout."
msgstr "File non valido, non è una disposizione di un bus audio."
#: editor/editor_audio_buses.cpp
-#, fuzzy
msgid "Error saving file: %s"
-msgstr "Errore nel salvataggio file!"
+msgstr "Errore nel salvataggio file: %s"
#: editor/editor_audio_buses.cpp
msgid "Add Bus"
@@ -1978,37 +1975,24 @@ msgid "Inherited by:"
msgstr "Ereditato da:"
#: editor/editor_help.cpp
-#, fuzzy
msgid "Description"
-msgstr "Descrizione:"
+msgstr "Descrizione"
#: editor/editor_help.cpp
msgid "Online Tutorials"
msgstr "Tutorial Online"
#: editor/editor_help.cpp
-msgid ""
-"There are currently no tutorials for this class, you can [color=$color][url="
-"$url]contribute one[/url][/color] or [color=$color][url=$url2]request one[/"
-"url][/color]."
-msgstr ""
-"Al momento non esiste alcuna descrizione per questa classe. Aiutaci [color="
-"$color][url=$url]aggiungendone una[/url][/color] oppure [color=$color][url="
-"$url2]richiedendone una[/url][/color]."
-
-#: editor/editor_help.cpp
msgid "Properties"
msgstr "Proprietà"
#: editor/editor_help.cpp
-#, fuzzy
msgid "override:"
-msgstr "Sovrascrizioni"
+msgstr "sovrascrivi:"
#: editor/editor_help.cpp
-#, fuzzy
msgid "default:"
-msgstr "Default"
+msgstr "predefinito:"
#: editor/editor_help.cpp
msgid "Methods"
@@ -2031,9 +2015,8 @@ msgid "Property Descriptions"
msgstr "Descrizioni delle proprietà"
#: editor/editor_help.cpp
-#, fuzzy
msgid "(value)"
-msgstr "Valore"
+msgstr "(valore)"
#: editor/editor_help.cpp
msgid ""
@@ -2062,12 +2045,11 @@ msgstr "Cerca aiuto"
#: editor/editor_help_search.cpp
msgid "Case Sensitive"
-msgstr "Case Sensitive"
+msgstr "Distinzione maiuscole/minuscole"
#: editor/editor_help_search.cpp
-#, fuzzy
msgid "Show Hierarchy"
-msgstr "Mostra Guide"
+msgstr "Mostra dipendenze"
#: editor/editor_help_search.cpp
msgid "Display All"
@@ -2106,9 +2088,8 @@ msgid "Class"
msgstr "Classe"
#: editor/editor_help_search.cpp
-#, fuzzy
msgid "Method"
-msgstr "Metodi"
+msgstr "Metodo"
#: editor/editor_help_search.cpp editor/plugins/script_text_editor.cpp
msgid "Signal"
@@ -2119,12 +2100,10 @@ msgid "Constant"
msgstr "Costante"
#: editor/editor_help_search.cpp
-#, fuzzy
msgid "Property"
-msgstr "Proprietà:"
+msgstr "Proprietà"
#: editor/editor_help_search.cpp
-#, fuzzy
msgid "Theme Property"
msgstr "Proprietà del tema"
@@ -3513,13 +3492,14 @@ msgid "Importing:"
msgstr "Importo:"
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Error getting the list of mirrors."
-msgstr "Errore in creazione del signature object."
+msgstr "Errore nella ricezione della lista dei mirror."
#: editor/export_template_manager.cpp
msgid "Error parsing JSON of mirror list. Please report this issue!"
msgstr ""
+"Errore elaborazione JSON della lista dei mirror. Si prega di segnalare "
+"questo problema!"
#: editor/export_template_manager.cpp
msgid ""
@@ -3532,7 +3512,7 @@ msgstr ""
#: editor/export_template_manager.cpp
#: editor/plugins/asset_library_editor_plugin.cpp
msgid "Can't resolve."
-msgstr "Impossibile risolvete."
+msgstr "Impossibile risolvere."
#: editor/export_template_manager.cpp
#: editor/plugins/asset_library_editor_plugin.cpp
@@ -4605,7 +4585,6 @@ msgid "Animation Tools"
msgstr "Strumenti di Animazione"
#: editor/plugins/animation_player_editor_plugin.cpp
-#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Animation"
msgstr "Animazione"
@@ -4709,9 +4688,8 @@ msgid "Move Node"
msgstr "Sposta Nodo"
#: editor/plugins/animation_state_machine_editor.cpp
-#, fuzzy
msgid "Transition exists!"
-msgstr "Transizioni"
+msgstr "La transizione esiste!"
#: editor/plugins/animation_state_machine_editor.cpp
msgid "Add Transition"
@@ -5681,6 +5659,10 @@ msgid "Auto Insert Key"
msgstr "Inserimento Automatico Chiave"
#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Animation Key and Pose Options"
+msgstr "Chiavi d'Animazione e Opzioni Posa"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Insert Key (Existing Tracks)"
msgstr "Inserisci Key (Tracce Esistenti)"
@@ -5789,20 +5771,18 @@ msgstr "Maschera Emissione"
#: editor/plugins/cpu_particles_2d_editor_plugin.cpp
#: editor/plugins/particles_2d_editor_plugin.cpp
-#, fuzzy
msgid "Solid Pixels"
-msgstr "Rimpicciolisci (Pixels): "
+msgstr "Pixel Solidi"
#: editor/plugins/cpu_particles_2d_editor_plugin.cpp
#: editor/plugins/particles_2d_editor_plugin.cpp
msgid "Border Pixels"
-msgstr ""
+msgstr "Pixel del Bordo"
#: editor/plugins/cpu_particles_2d_editor_plugin.cpp
#: editor/plugins/particles_2d_editor_plugin.cpp
-#, fuzzy
msgid "Directed Border Pixels"
-msgstr "File e cartelle:"
+msgstr "Pixel dei Bordi Diretti"
#: editor/plugins/cpu_particles_2d_editor_plugin.cpp
#: editor/plugins/particles_2d_editor_plugin.cpp
@@ -5966,7 +5946,6 @@ msgid "No mesh to debug."
msgstr "Nessuna mesh da debuggare."
#: editor/plugins/mesh_instance_editor_plugin.cpp
-#: editor/plugins/sprite_editor_plugin.cpp
msgid "Model has no UV in this layer"
msgstr "Il modello non ha UV su questo layer"
@@ -6032,18 +6011,19 @@ msgstr "Dimensione Outline:"
#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "UV Channel Debug"
-msgstr ""
+msgstr "Debug del Canale UV"
#: editor/plugins/mesh_library_editor_plugin.cpp
msgid "Remove item %d?"
msgstr "Rimuovi elemento %d?"
#: editor/plugins/mesh_library_editor_plugin.cpp
-#, fuzzy
msgid ""
"Update from existing scene?:\n"
"%s"
-msgstr "Aggiorna da Scena"
+msgstr ""
+"Aggiornare da scena esistente?:\n"
+"%s"
#: editor/plugins/mesh_library_editor_plugin.cpp
msgid "Mesh Library"
@@ -7358,7 +7338,7 @@ msgstr "Anteprima Cinematografica"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Not available when using the GLES2 renderer."
-msgstr ""
+msgstr "Non disponibile quando il renderer GLES2 è in uso."
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Freelook Left"
@@ -7602,35 +7582,32 @@ msgid "Create Mesh2D"
msgstr "Crea Mesh2D"
#: editor/plugins/sprite_editor_plugin.cpp
-#, fuzzy
msgid "Mesh2D Preview"
-msgstr "Creazione Anteprime Mesh"
+msgstr "Anteprima Mesh2D"
#: editor/plugins/sprite_editor_plugin.cpp
msgid "Create Polygon2D"
-msgstr "Crea Poligono 2D"
+msgstr "Crea Polygon2D"
#: editor/plugins/sprite_editor_plugin.cpp
msgid "Polygon2D Preview"
-msgstr ""
+msgstr "Anteprima Polygon2D"
#: editor/plugins/sprite_editor_plugin.cpp
msgid "Create CollisionPolygon2D"
-msgstr "Crea Poligono di Collisione 2D"
+msgstr "Crea CollisionPolygon2D"
#: editor/plugins/sprite_editor_plugin.cpp
-#, fuzzy
msgid "CollisionPolygon2D Preview"
-msgstr "Crea Poligono di Collisione 2D"
+msgstr "Anteprima CollisionPolygon2D"
#: editor/plugins/sprite_editor_plugin.cpp
msgid "Create LightOccluder2D"
-msgstr "Crea Occlusore di Luce 2D"
+msgstr "Crea LightOccluder2D"
#: editor/plugins/sprite_editor_plugin.cpp
-#, fuzzy
msgid "LightOccluder2D Preview"
-msgstr "Crea Occlusore di Luce 2D"
+msgstr "Crea LightOccluder2D"
#: editor/plugins/sprite_editor_plugin.cpp
msgid "Sprite is empty!"
@@ -7656,7 +7633,7 @@ msgstr "Geometria non valida, impossibile creare il poligono."
#: editor/plugins/sprite_editor_plugin.cpp
msgid "Convert to Polygon2D"
-msgstr "Converti in Poligono 2D"
+msgstr "Converti in Polygon2D"
#: editor/plugins/sprite_editor_plugin.cpp
msgid "Invalid geometry, can't create collision polygon."
@@ -7664,7 +7641,7 @@ msgstr "Geometria non valida, impossibile creare un poligono di collisione."
#: editor/plugins/sprite_editor_plugin.cpp
msgid "Create CollisionPolygon2D Sibling"
-msgstr "Crea fratello del Poligono di Collisione 2D"
+msgstr "Crea fratello del CollisionPolygon2D"
#: editor/plugins/sprite_editor_plugin.cpp
msgid "Invalid geometry, can't create light occluder."
@@ -7672,7 +7649,7 @@ msgstr "Geometria non valida, impossibile creare un occlusore di luce."
#: editor/plugins/sprite_editor_plugin.cpp
msgid "Create LightOccluder2D Sibling"
-msgstr "Crea fratello di Occlusore di Luce 2D"
+msgstr "Crea fratello del LightOccluder2D"
#: editor/plugins/sprite_editor_plugin.cpp
msgid "Sprite"
@@ -7711,9 +7688,8 @@ msgid "Add Frame"
msgstr "Aggiungi frame"
#: editor/plugins/sprite_frames_editor_plugin.cpp
-#, fuzzy
msgid "Unable to load images"
-msgstr "Impossibile caricare immagine:"
+msgstr "Impossibile caricare le immagini"
#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "ERROR: Couldn't load frame resource!"
@@ -8405,14 +8381,12 @@ msgid "Edit Tile Z Index"
msgstr "Modifica Indice Z della Tile"
#: editor/plugins/tile_set_editor_plugin.cpp
-#, fuzzy
msgid "Make Convex"
-msgstr "Rendi il Poligono Convesso"
+msgstr "Rendi Convesso"
#: editor/plugins/tile_set_editor_plugin.cpp
-#, fuzzy
msgid "Make Concave"
-msgstr "Rendi il Poligono Concavo"
+msgstr "Rendi Concavo"
#: editor/plugins/tile_set_editor_plugin.cpp
msgid "Create Collision Polygon"
@@ -10907,9 +10881,8 @@ msgid "Will load an existing script file."
msgstr "Caricherà un file di script esistente."
#: editor/script_create_dialog.cpp
-#, fuzzy
msgid "Script file already exists."
-msgstr "L'Azione '%s' esiste già!"
+msgstr "Il file di script esiste già."
#: editor/script_create_dialog.cpp
msgid "Class Name:"
@@ -11361,9 +11334,8 @@ msgid "Cursor Clear Rotation"
msgstr "Cursore Cancella Rotazione"
#: modules/gridmap/grid_map_editor_plugin.cpp
-#, fuzzy
msgid "Paste Selects"
-msgstr "Cancella Selezione"
+msgstr "Incolla Selezioni"
#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Clear Selection"
@@ -12609,11 +12581,13 @@ msgid ""
"LMB: Set color\n"
"RMB: Remove preset"
msgstr ""
+"Colore: #%s\n"
+"LMB: Imposta colore\n"
+"RMB: Rimuovi preset"
#: scene/gui/color_picker.cpp
-#, fuzzy
msgid "Pick a color from the editor window."
-msgstr "Scegliere un colore dallo schermo."
+msgstr "Scegli un colore dalla finestra dell'editor."
#: scene/gui/color_picker.cpp
msgid "HSV"
@@ -12733,6 +12707,15 @@ msgstr "Varyings può essere assegnato soltanto nella funzione del vertice."
msgid "Constants cannot be modified."
msgstr "Le constanti non possono essere modificate."
+#~ msgid ""
+#~ "There are currently no tutorials for this class, you can [color=$color]"
+#~ "[url=$url]contribute one[/url][/color] or [color=$color][url="
+#~ "$url2]request one[/url][/color]."
+#~ msgstr ""
+#~ "Al momento non esiste alcuna descrizione per questa classe. Aiutaci "
+#~ "[color=$color][url=$url]aggiungendone una[/url][/color] oppure [color="
+#~ "$color][url=$url2]richiedendone una[/url][/color]."
+
#~ msgid "enum "
#~ msgstr "enum "
diff --git a/editor/translations/ja.po b/editor/translations/ja.po
index 546c4c3e12..af2cca2ca6 100644
--- a/editor/translations/ja.po
+++ b/editor/translations/ja.po
@@ -35,7 +35,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Godot Engine editor\n"
"POT-Creation-Date: \n"
-"PO-Revision-Date: 2020-01-16 22:23+0000\n"
+"PO-Revision-Date: 2020-01-27 07:09+0000\n"
"Last-Translator: Wataru Onuki <bettawat@yahoo.co.jp>\n"
"Language-Team: Japanese <https://hosted.weblate.org/projects/godot-engine/"
"godot/ja/>\n"
@@ -44,7 +44,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
-"X-Generator: Weblate 3.10.2-dev\n"
+"X-Generator: Weblate 3.11-dev\n"
#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
#: modules/visual_script/visual_script_builtin_funcs.cpp
@@ -681,7 +681,7 @@ msgstr "コピー"
#: editor/animation_track_editor.cpp
msgid "Select All/None"
-msgstr "å…¨ã¦ã‚’é¸æŠž/解除"
+msgstr "ã™ã¹ã¦ã‚’é¸æŠž/解除"
#: editor/animation_track_editor_plugins.cpp
msgid "Add Audio Track Clip"
@@ -928,7 +928,7 @@ msgstr "ã“ã®ã‚·ã‚°ãƒŠãƒ«ã‹ã‚‰å…¨ã¦ã®æŽ¥ç¶šã‚’除去ã—ã¦ã‚‚よã‚ã—ã„ã§
#: editor/connections_dialog.cpp
msgid "Disconnect All"
-msgstr "å…¨ã¦åˆ‡æ–­"
+msgstr "ã™ã¹ã¦åˆ‡æ–­"
#: editor/connections_dialog.cpp
msgid "Edit..."
@@ -1202,7 +1202,7 @@ msgstr ""
#: editor/editor_about.cpp
msgid "All Components"
-msgstr "å…¨ã¦ã®ã‚³ãƒ³ãƒãƒ¼ãƒãƒ³ãƒˆ"
+msgstr "ã™ã¹ã¦ã®ã‚³ãƒ³ãƒãƒ¼ãƒãƒ³ãƒˆ"
#: editor/editor_about.cpp
msgid "Components"
@@ -1217,9 +1217,8 @@ msgid "Error opening package file, not in ZIP format."
msgstr "パッケージファイルを開ã‘ã¾ã›ã‚“ã§ã—ãŸã€zip å½¢å¼ã§ã¯ã‚ã‚Šã¾ã›ã‚“。"
#: editor/editor_asset_installer.cpp
-#, fuzzy
msgid "%s (Already Exists)"
-msgstr "æ—¢ã«å­˜åœ¨ã—ã¾ã™"
+msgstr "%s (ã™ã§ã«å­˜åœ¨ã—ã¾ã™)"
#: editor/editor_asset_installer.cpp
msgid "Uncompressing Assets"
@@ -1230,9 +1229,8 @@ msgid "The following files failed extraction from package:"
msgstr "次ã®ãƒ•ã‚¡ã‚¤ãƒ«ã‚’パッケージã‹ã‚‰æŠ½å‡ºã§ãã¾ã›ã‚“ã§ã—ãŸ:"
#: editor/editor_asset_installer.cpp
-#, fuzzy
msgid "And %s more files."
-msgstr "%d 以上ã®ãƒ•ã‚¡ã‚¤ãƒ«"
+msgstr "ãŠã‚ˆã³ %s 個ã®ãƒ•ã‚¡ã‚¤ãƒ«ã€‚"
#: editor/editor_asset_installer.cpp editor/project_manager.cpp
msgid "Package installed successfully!"
@@ -1244,9 +1242,8 @@ msgid "Success!"
msgstr "æˆåŠŸï¼"
#: editor/editor_asset_installer.cpp
-#, fuzzy
msgid "Package Contents:"
-msgstr "コンテンツ:"
+msgstr "パッケージã®å†…容:"
#: editor/editor_asset_installer.cpp editor/editor_node.cpp
msgid "Install"
@@ -1386,9 +1383,8 @@ msgid "Invalid file, not an audio bus layout."
msgstr "無効ãªãƒ•ã‚¡ã‚¤ãƒ«ã§ã™ã€‚オーディオãƒã‚¹ã®ãƒ¬ã‚¤ã‚¢ã‚¦ãƒˆã§ã¯ã‚ã‚Šã¾ã›ã‚“。"
#: editor/editor_audio_buses.cpp
-#, fuzzy
msgid "Error saving file: %s"
-msgstr "ファイルã®ä¿å­˜ã‚¨ãƒ©ãƒ¼!"
+msgstr "ファイルã®ä¿å­˜ã‚¨ãƒ©ãƒ¼: %s"
#: editor/editor_audio_buses.cpp
msgid "Add Bus"
@@ -1964,37 +1960,24 @@ msgid "Inherited by:"
msgstr "継承先:"
#: editor/editor_help.cpp
-#, fuzzy
msgid "Description"
-msgstr "説明:"
+msgstr "説明"
#: editor/editor_help.cpp
msgid "Online Tutorials"
msgstr "オンラインãƒãƒ¥ãƒ¼ãƒˆãƒªã‚¢ãƒ«"
#: editor/editor_help.cpp
-msgid ""
-"There are currently no tutorials for this class, you can [color=$color][url="
-"$url]contribute one[/url][/color] or [color=$color][url=$url2]request one[/"
-"url][/color]."
-msgstr ""
-"ç¾åœ¨ã€ã“ã®ã‚¯ãƒ©ã‚¹ã®ãƒãƒ¥ãƒ¼ãƒˆãƒªã‚¢ãƒ«ã¯ã‚ã‚Šã¾ã›ã‚“ãŒã€[color=$color][url=$url]貢献"
-"[/url][/color]ã€ã¾ãŸã¯[color=$color][url=$url2]リクエスト[/url][/color]ã¯å¯èƒ½"
-"ã§ã™ã€‚"
-
-#: editor/editor_help.cpp
msgid "Properties"
msgstr "プロパティ"
#: editor/editor_help.cpp
-#, fuzzy
msgid "override:"
-msgstr "上書ã"
+msgstr "上書ã:"
#: editor/editor_help.cpp
-#, fuzzy
msgid "default:"
-msgstr "デフォルト"
+msgstr "デフォルト:"
#: editor/editor_help.cpp
msgid "Methods"
@@ -2017,9 +2000,8 @@ msgid "Property Descriptions"
msgstr "プロパティã®èª¬æ˜Ž"
#: editor/editor_help.cpp
-#, fuzzy
msgid "(value)"
-msgstr "値"
+msgstr "(値)"
#: editor/editor_help.cpp
msgid ""
@@ -2051,9 +2033,8 @@ msgid "Case Sensitive"
msgstr "大文字å°æ–‡å­—を区別"
#: editor/editor_help_search.cpp
-#, fuzzy
msgid "Show Hierarchy"
-msgstr "ヘルパーを表示"
+msgstr "階層表示"
#: editor/editor_help_search.cpp
msgid "Display All"
@@ -2092,7 +2073,6 @@ msgid "Class"
msgstr "クラス"
#: editor/editor_help_search.cpp
-#, fuzzy
msgid "Method"
msgstr "メソッド"
@@ -2640,7 +2620,7 @@ msgstr "ä»–ã®ã‚¿ãƒ–ã‚’é–‰ã˜ã‚‹"
#: editor/editor_node.cpp
msgid "Close Tabs to the Right"
-msgstr "タブをå³ã«é–‰ã˜ã‚‹"
+msgstr "å³å´ã®ã‚¿ãƒ–ã‚’é–‰ã˜ã‚‹"
#: editor/editor_node.cpp
msgid "Close All Tabs"
@@ -2728,7 +2708,7 @@ msgstr "シーンをä¿å­˜"
#: editor/editor_node.cpp
msgid "Save All Scenes"
-msgstr "å…¨ã¦ã®ã‚·ãƒ¼ãƒ³ã‚’ä¿å­˜"
+msgstr "ã™ã¹ã¦ã®ã‚·ãƒ¼ãƒ³ã‚’ä¿å­˜"
#: editor/editor_node.cpp
msgid "Convert To..."
@@ -3476,9 +3456,8 @@ msgid "Importing:"
msgstr "インãƒãƒ¼ãƒˆä¸­:"
#: editor/export_template_manager.cpp
-#, fuzzy
msgid "Error getting the list of mirrors."
-msgstr "ç½²åオブジェクトã®ç”Ÿæˆã‚¨ãƒ©ãƒ¼"
+msgstr "ミラーリストã®å–得エラー。"
#: editor/export_template_manager.cpp
msgid "Error parsing JSON of mirror list. Please report this issue!"
@@ -4558,7 +4537,6 @@ msgid "Animation Tools"
msgstr "アニメーションツール"
#: editor/plugins/animation_player_editor_plugin.cpp
-#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Animation"
msgstr "アニメーション"
@@ -4662,9 +4640,8 @@ msgid "Move Node"
msgstr "ノードを移動"
#: editor/plugins/animation_state_machine_editor.cpp
-#, fuzzy
msgid "Transition exists!"
-msgstr "トランジション: "
+msgstr "トランジションãŒå­˜åœ¨ã—ã¦ã„ã¾ã™ï¼"
#: editor/plugins/animation_state_machine_editor.cpp
msgid "Add Transition"
@@ -4758,7 +4735,7 @@ msgstr "プレイモード:"
#: editor/plugins/animation_tree_editor_plugin.cpp
#: editor/plugins/animation_tree_player_editor_plugin.cpp
msgid "AnimationTree"
-msgstr "アニメーションツリー"
+msgstr "AnimationTree(アニメーションツリー)"
#: editor/plugins/animation_tree_player_editor_plugin.cpp
msgid "New name:"
@@ -5145,7 +5122,7 @@ msgstr "グリッドã®ã‚¹ãƒ†ãƒƒãƒ—:"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Primary Line Every:"
-msgstr ""
+msgstr "基本ラインã®é–“éš”:"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "steps"
@@ -5320,6 +5297,8 @@ msgid ""
"Game Camera Override\n"
"Overrides game camera with editor viewport camera."
msgstr ""
+"ゲームカメラã®ç½®ãæ›ãˆ\n"
+"エディタã®ãƒ“ューãƒãƒ¼ãƒˆã‚«ãƒ¡ãƒ©ã§ã‚²ãƒ¼ãƒ ã‚«ãƒ¡ãƒ©ã‚’ç½®ãæ›ãˆã‚‹ã€‚"
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
@@ -5327,6 +5306,8 @@ msgid ""
"Game Camera Override\n"
"No game instance running."
msgstr ""
+"ゲームカメラã®ç½®ãæ›ãˆ\n"
+"実行中ã®ã‚²ãƒ¼ãƒ ã‚¤ãƒ³ã‚¹ã‚¿ãƒ³ã‚¹ç„¡ã—。"
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
@@ -5626,6 +5607,11 @@ msgid "Auto Insert Key"
msgstr "自動キー挿入"
#: editor/plugins/canvas_item_editor_plugin.cpp
+#, fuzzy
+msgid "Animation Key and Pose Options"
+msgstr "アニメーションキーãŒæŒ¿å…¥ã•ã‚Œã¾ã—ãŸã€‚"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Insert Key (Existing Tracks)"
msgstr "(既存ã®ãƒˆãƒ©ãƒƒã‚¯ã«)キーを挿入"
@@ -5730,7 +5716,7 @@ msgstr "生æˆã—ãŸãƒã‚¤ãƒ³ãƒˆã®æ•°:"
#: editor/plugins/cpu_particles_2d_editor_plugin.cpp
#: editor/plugins/particles_2d_editor_plugin.cpp
msgid "Emission Mask"
-msgstr "放出マスク"
+msgstr "\\ Emission Mask"
#: editor/plugins/cpu_particles_2d_editor_plugin.cpp
#: editor/plugins/particles_2d_editor_plugin.cpp
@@ -5755,7 +5741,7 @@ msgstr "ピクセルã‹ã‚‰ã‚­ãƒ£ãƒ—ãƒãƒ£"
#: editor/plugins/cpu_particles_2d_editor_plugin.cpp
#: editor/plugins/particles_2d_editor_plugin.cpp
msgid "Emission Colors"
-msgstr "放出時ã®è‰²"
+msgstr "発光(Emission)色"
#: editor/plugins/cpu_particles_editor_plugin.cpp
msgid "CPUParticles"
@@ -5869,7 +5855,7 @@ msgstr "メッシュãŒã‚ã‚Šã¾ã›ã‚“!"
#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "Create Static Trimesh Body"
-msgstr "é™çš„三角形メッシュ ボディを作æˆ"
+msgstr "三角形メッシュé™çš„ボディを作æˆ"
#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "Create Static Convex Body"
@@ -5881,7 +5867,7 @@ msgstr "シーンã®ãƒ«ãƒ¼ãƒˆã§ã¯ç„¡åŠ¹ã§ã™!"
#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "Create Trimesh Static Shape"
-msgstr "é™çš„三角形メッシュ シェイプを生æˆ"
+msgstr "三角形メッシュé™çš„シェイプを生æˆ"
#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "Failed creating shapes!"
@@ -5908,7 +5894,6 @@ msgid "No mesh to debug."
msgstr "デãƒãƒƒã‚°ã™ã‚‹ãƒ¡ãƒƒã‚·ãƒ¥ãŒã‚ã‚Šã¾ã›ã‚“。"
#: editor/plugins/mesh_instance_editor_plugin.cpp
-#: editor/plugins/sprite_editor_plugin.cpp
msgid "Model has no UV in this layer"
msgstr "モデルã«ã¯ã“ã®ãƒ¬ã‚¤ãƒ¤ãƒ¼ã«UVãŒã‚ã‚Šã¾ã›ã‚“"
@@ -5938,7 +5923,7 @@ msgstr "メッシュ"
#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "Create Trimesh Static Body"
-msgstr "é™çš„三角形メッシュボディを作æˆ"
+msgstr "三角形メッシュé™çš„ボディを作æˆ"
#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "Create Trimesh Collision Sibling"
@@ -5974,18 +5959,19 @@ msgstr "アウトラインã®ã‚µã‚¤ã‚º:"
#: editor/plugins/mesh_instance_editor_plugin.cpp
msgid "UV Channel Debug"
-msgstr ""
+msgstr "UVãƒãƒ£ãƒ³ãƒãƒ« デãƒãƒƒã‚°"
#: editor/plugins/mesh_library_editor_plugin.cpp
msgid "Remove item %d?"
msgstr "アイテム%dã‚’å–り除ãã¾ã™ã‹ï¼Ÿ"
#: editor/plugins/mesh_library_editor_plugin.cpp
-#, fuzzy
msgid ""
"Update from existing scene?:\n"
"%s"
-msgstr "シーンã‹ã‚‰ã‚¢ãƒƒãƒ—デート"
+msgstr ""
+"既存シーンã‹ã‚‰ã‚¢ãƒƒãƒ—デートã—ã¾ã™ã‹ï¼Ÿ:\n"
+"%s"
#: editor/plugins/mesh_library_editor_plugin.cpp
msgid "Mesh Library"
@@ -7302,7 +7288,7 @@ msgstr "ã‚·ãƒãƒžãƒ†ã‚£ãƒƒã‚¯ãƒ—レビュー"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Not available when using the GLES2 renderer."
-msgstr ""
+msgstr "GLES2レンダラーã®å ´åˆã¯åˆ©ç”¨ã§ãã¾ã›ã‚“。"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Freelook Left"
@@ -7346,9 +7332,8 @@ msgstr ""
"ゲーム内ã®ãƒ‘フォーマンスを確実ã«ç¤ºã™ã‚‚ã®ã¨ã—ã¦ä½¿ç”¨ã™ã‚‹ã“ã¨ã¯ã§ãã¾ã›ã‚“。"
#: editor/plugins/spatial_editor_plugin.cpp
-#, fuzzy
msgid "View Rotation Locked"
-msgstr "情報を表示"
+msgstr "ビューã®å›žè»¢ã‚’固定中"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "XForm Dialog"
@@ -7428,7 +7413,7 @@ msgstr "フリールックã®åˆ‡ã‚Šæ›¿ãˆ"
#: editor/plugins/spatial_editor_plugin.cpp
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Transform"
-msgstr "変形"
+msgstr "幾何学変æ›(変形)"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Snap Object to Floor"
@@ -7545,12 +7530,11 @@ msgstr "ç„¡åã®ã‚®ã‚ºãƒ¢"
#: editor/plugins/sprite_editor_plugin.cpp
msgid "Create Mesh2D"
-msgstr "メッシュ2Dを作æˆ"
+msgstr "Mesh2Dを作æˆã™ã‚‹"
#: editor/plugins/sprite_editor_plugin.cpp
-#, fuzzy
msgid "Mesh2D Preview"
-msgstr "メッシュプレビューを作æˆ"
+msgstr "Mesh2D プレビュー"
#: editor/plugins/sprite_editor_plugin.cpp
msgid "Create Polygon2D"
@@ -7558,25 +7542,23 @@ msgstr "Polygon2Dを作æˆ"
#: editor/plugins/sprite_editor_plugin.cpp
msgid "Polygon2D Preview"
-msgstr ""
+msgstr "Polygon2D プレビュー"
#: editor/plugins/sprite_editor_plugin.cpp
msgid "Create CollisionPolygon2D"
msgstr "CollisionPolygon2Dを作æˆ"
#: editor/plugins/sprite_editor_plugin.cpp
-#, fuzzy
msgid "CollisionPolygon2D Preview"
-msgstr "CollisionPolygon2Dを作æˆ"
+msgstr "CollisionPolygon2D プレビュー"
#: editor/plugins/sprite_editor_plugin.cpp
msgid "Create LightOccluder2D"
msgstr "LightOccluder2Dを作æˆ"
#: editor/plugins/sprite_editor_plugin.cpp
-#, fuzzy
msgid "LightOccluder2D Preview"
-msgstr "LightOccluder2Dを作æˆ"
+msgstr "LightOccluder2D プレビュー"
#: editor/plugins/sprite_editor_plugin.cpp
msgid "Sprite is empty!"
@@ -7592,7 +7574,7 @@ msgstr "ジオメトリãŒç„¡åŠ¹ã§ã™ã€‚メッシュã«ç½®ãæ›ãˆã‚‹ã“ã¨ã¯
#: editor/plugins/sprite_editor_plugin.cpp
msgid "Convert to Mesh2D"
-msgstr "メッシュ2Dã«å¤‰æ›"
+msgstr "Mesh2Dã«å¤‰æ›ã™ã‚‹"
#: editor/plugins/sprite_editor_plugin.cpp
msgid "Invalid geometry, can't create polygon."
@@ -7655,9 +7637,8 @@ msgid "Add Frame"
msgstr "フレームを追加"
#: editor/plugins/sprite_frames_editor_plugin.cpp
-#, fuzzy
msgid "Unable to load images"
-msgstr "イメージを読ã¿è¾¼ã‚ã¾ã›ã‚“ã§ã—ãŸ:"
+msgstr "ç”»åƒã‚’読ã¿è¾¼ã‚ã¾ã›ã‚“ã§ã—ãŸ:"
#: editor/plugins/sprite_frames_editor_plugin.cpp
msgid "ERROR: Couldn't load frame resource!"
@@ -7950,7 +7931,7 @@ msgstr "フォント"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Color"
-msgstr "色"
+msgstr "\\ Color"
#: editor/plugins/theme_editor_plugin.cpp
msgid "Theme File"
@@ -9165,18 +9146,17 @@ msgid "1.0 / vector"
msgstr "1.0 / ベクトル"
#: editor/plugins/visual_shader_editor_plugin.cpp
-#, fuzzy
msgid ""
"Returns the vector that points in the direction of reflection ( a : incident "
"vector, b : normal vector )."
-msgstr "åå°„ã®æ–¹å‘(a:入射ベクトルã€b:法線ベクトル)を指ã™ãƒ™ã‚¯ãƒˆãƒ«ã‚’è¿”ã—ã¾ã™ã€‚"
+msgstr ""
+"åå°„ã®æ–¹å‘ (a: 入射ベクトルã€b: 法線ベクトル) を指ã™ãƒ™ã‚¯ãƒˆãƒ«ã‚’è¿”ã—ã¾ã™ã€‚"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Returns the vector that points in the direction of refraction."
msgstr "屈折ã®æ–¹å‘を指ã™ãƒ™ã‚¯ãƒˆãƒ«ã‚’è¿”ã—ã¾ã™ã€‚"
#: editor/plugins/visual_shader_editor_plugin.cpp
-#, fuzzy
msgid ""
"SmoothStep function( vector(edge0), vector(edge1), vector(x) ).\n"
"\n"
@@ -9184,14 +9164,13 @@ msgid ""
"'edge1'. Otherwise the return value is interpolated between 0.0 and 1.0 "
"using Hermite polynomials."
msgstr ""
-"SmoothStep関数(vector(エッジ0)ã€vector(エッジ1)ã€vector (x))。\n"
+"SmoothStep関数( vector(edge0), vector(edge1), vector (x) )。\n"
"\n"
-"'x' ㌠'edge0' よりå°ã•ã„å ´åˆã¯0.0ã‚’è¿”ã—ã€x㌠'edge1' より大ãã„å ´åˆã¯1.0ã‚’è¿”"
-"ã—ã¾ã™ã€‚ãれ以外ã®å ´åˆã€æˆ»ã‚Šå€¤ã¯ã‚¨ãƒ«ãƒŸãƒ¼ãƒˆå¤šé …å¼ã‚’使用ã—ã¦0.0ã¨1.0ã®é–“ã§è£œé–“"
-"ã•ã‚Œã¾ã™ã€‚"
+"'x' ㌠'edge0' よりå°ã•ã„å ´åˆã¯0.0ã‚’è¿”ã—ã€'x' ㌠'edge1' より大ãã„å ´åˆã¯1.0"
+"ã‚’è¿”ã—ã¾ã™ã€‚ãれ以外ã®å ´åˆã€æˆ»ã‚Šå€¤ã¯ã‚¨ãƒ«ãƒŸãƒ¼ãƒˆå¤šé …å¼ã‚’使用ã—ã¦0.0ã¨1.0ã®é–“ã§"
+"補間ã•ã‚Œã¾ã™ã€‚"
#: editor/plugins/visual_shader_editor_plugin.cpp
-#, fuzzy
msgid ""
"SmoothStep function( scalar(edge0), scalar(edge1), vector(x) ).\n"
"\n"
@@ -9199,31 +9178,29 @@ msgid ""
"'edge1'. Otherwise the return value is interpolated between 0.0 and 1.0 "
"using Hermite polynomials."
msgstr ""
-"SmoothStep関数(scalar(エッジ0)ã€scalar(エッジ1)ã€vector (x))。\n"
+"SmoothStep関数( scalar(edge0), scalar(edge1), vector(x) )。\n"
"\n"
"'x' ㌠'edge0' よりå°ã•ã„å ´åˆã¯0.0ã‚’è¿”ã—ã€x㌠'edge1' より大ãã„å ´åˆã¯1.0ã‚’è¿”"
"ã—ã¾ã™ã€‚ãれ以外ã®å ´åˆã€æˆ»ã‚Šå€¤ã¯ã‚¨ãƒ«ãƒŸãƒ¼ãƒˆå¤šé …å¼ã‚’使用ã—ã¦0.0ã¨1.0ã®é–“ã§è£œé–“"
"ã•ã‚Œã¾ã™ã€‚"
#: editor/plugins/visual_shader_editor_plugin.cpp
-#, fuzzy
msgid ""
"Step function( vector(edge), vector(x) ).\n"
"\n"
"Returns 0.0 if 'x' is smaller than 'edge' and otherwise 1.0."
msgstr ""
-"Step関数( vector(edge)ã€vector(x))。\n"
+"Step関数( vector(edge), vector(x) )。\n"
"\n"
"'x' ㌠'edge' よりå°ã•ã„å ´åˆã¯0.0ã‚’è¿”ã—ã€ãれ以外ã®å ´åˆã¯1.0ã‚’è¿”ã—ã¾ã™ã€‚"
#: editor/plugins/visual_shader_editor_plugin.cpp
-#, fuzzy
msgid ""
"Step function( scalar(edge), vector(x) ).\n"
"\n"
"Returns 0.0 if 'x' is smaller than 'edge' and otherwise 1.0."
msgstr ""
-"Step関数( scalar(edge)ã€vector(x))。\n"
+"Step関数( scalar(edge), vector(x) )。\n"
"\n"
"'x' ㌠'edge' よりå°ã•ã„å ´åˆã¯0.0ã‚’è¿”ã—ã€ãれ以外ã®å ´åˆã¯1.0ã‚’è¿”ã—ã¾ã™ã€‚"
@@ -9346,7 +9323,7 @@ msgstr "ビジュアルシェーダー"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Edit Visual Property"
-msgstr "ビジュアルプロパティã®ç·¨é›†"
+msgstr "ビジュアルプロパティを編集"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Visual Shader Mode Changed"
@@ -9357,13 +9334,12 @@ msgid "Runnable"
msgstr "実行å¯èƒ½"
#: editor/project_export.cpp
-#, fuzzy
msgid "Add initial export..."
-msgstr "入力ãƒãƒ¼ãƒˆã®è¿½åŠ "
+msgstr "åˆå›žã‚¨ã‚¯ã‚¹ãƒãƒ¼ãƒˆã‚’追加…"
#: editor/project_export.cpp
msgid "Add previous patches..."
-msgstr ""
+msgstr "å‰å›žã®ãƒ‘ッãƒã‚’追加…"
#: editor/project_export.cpp
msgid "Delete patch '%s' from list?"
@@ -9392,9 +9368,8 @@ msgstr ""
"ã™ã€‚"
#: editor/project_export.cpp
-#, fuzzy
msgid "Release"
-msgstr "離ã—ãŸ"
+msgstr "リリース"
#: editor/project_export.cpp
msgid "Exporting All"
@@ -10426,8 +10401,8 @@ msgid ""
"Cannot instance the scene '%s' because the current scene exists within one "
"of its nodes."
msgstr ""
-"ã“ã®ã‚·ãƒ¼ãƒ³ã¯è‡ªèº«ã®ãƒŽãƒ¼ãƒ‰ã®ã†ã¡ã®ä¸€ã¤ã®å†…ã«ã‚ã‚‹ãŸã‚〠'%s'シーンをインスタンス"
-"化ã§ãã¾ã›ã‚“。"
+"シーン '%s' ã®ãƒŽãƒ¼ãƒ‰ã®ä¸€ã¤ã«ç¾åœ¨ã®ã‚·ãƒ¼ãƒ³ãŒã‚ã‚‹ãŸã‚ã€ã‚¤ãƒ³ã‚¹ã‚¿ãƒ³ã‚¹åŒ–ã§ãã¾ã›"
+"ん。"
#: editor/scene_tree_dock.cpp
msgid "Instance Scene(s)"
@@ -10620,9 +10595,8 @@ msgid "Change Type"
msgstr "型を変更"
#: editor/scene_tree_dock.cpp
-#, fuzzy
msgid "Reparent to New Node"
-msgstr "親ノードを変更"
+msgstr "親ノードを新è¦ãƒŽãƒ¼ãƒ‰ã«å¤‰æ›´"
#: editor/scene_tree_dock.cpp
msgid "Make Scene Root"
@@ -10850,7 +10824,7 @@ msgstr "使用å¯èƒ½: a-z, A-Z, 0-9 㨠."
#: editor/script_create_dialog.cpp
msgid "Built-in script (into scene file)."
-msgstr "組ã¿è¾¼ã¿ã‚¹ã‚¯ãƒªãƒ—ト(シーンファイルã¸ã®)。"
+msgstr "組ã¿è¾¼ã¿ã‚¹ã‚¯ãƒªãƒ—ト (シーンファイル内)。"
#: editor/script_create_dialog.cpp
msgid "Will create a new script file."
@@ -10861,9 +10835,8 @@ msgid "Will load an existing script file."
msgstr "既存ã®ã‚¹ã‚¯ãƒªãƒ—トファイルを読ã¿è¾¼ã‚€ã€‚"
#: editor/script_create_dialog.cpp
-#, fuzzy
msgid "Script file already exists."
-msgstr "アクション'%s'ã¯æ—¢ã«ã‚ã‚Šã¾ã™!"
+msgstr "スクリプトファイルãŒæ—¢ã«ã‚ã‚Šã¾ã™ã€‚"
#: editor/script_create_dialog.cpp
msgid "Class Name:"
@@ -10991,7 +10964,7 @@ msgstr "リソースã®ãƒ‘ス(ResourcePath)"
#: editor/script_editor_debugger.cpp
msgid "Type"
-msgstr "タイプ(型)"
+msgstr "タイプ(型)"
#: editor/script_editor_debugger.cpp
msgid "Format"
@@ -10999,7 +10972,7 @@ msgstr "フォーマット"
#: editor/script_editor_debugger.cpp
msgid "Usage"
-msgstr "使用"
+msgstr "使用法"
#: editor/script_editor_debugger.cpp
msgid "Misc"
@@ -11239,24 +11212,20 @@ msgid "Floor:"
msgstr "床é¢:"
#: modules/gridmap/grid_map_editor_plugin.cpp
-#, fuzzy
msgid "GridMap Delete Selection"
-msgstr "é¸æŠžç¯„囲を消去"
+msgstr "GridMap é¸æŠžç¯„囲を削除"
#: modules/gridmap/grid_map_editor_plugin.cpp
-#, fuzzy
msgid "GridMap Fill Selection"
-msgstr "é¸æŠžç¯„囲を消去"
+msgstr "GridMap é¸æŠžç¯„囲を埋ã‚ã‚‹"
#: modules/gridmap/grid_map_editor_plugin.cpp
-#, fuzzy
msgid "GridMap Paste Selection"
-msgstr "é¸æŠžç¯„囲を消去"
+msgstr "GridMap é¸æŠžç¯„囲を貼り付ã‘"
#: modules/gridmap/grid_map_editor_plugin.cpp
-#, fuzzy
msgid "GridMap Paint"
-msgstr "グリッドマップã®è¨­å®š"
+msgstr "GridMap ペイント"
#: modules/gridmap/grid_map_editor_plugin.cpp
msgid "Grid Map"
@@ -11547,14 +11516,12 @@ msgid "Add Signal"
msgstr "シグナルを追加"
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Remove Input Port"
-msgstr "入力ãƒãƒ¼ãƒˆã®å‰Šé™¤"
+msgstr "入力ãƒãƒ¼ãƒˆã®é™¤åŽ»"
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Remove Output Port"
-msgstr "出力ãƒãƒ¼ãƒˆã®å‰Šé™¤"
+msgstr "出力ãƒãƒ¼ãƒˆã®é™¤åŽ»"
#: modules/visual_script/visual_script_editor.cpp
msgid "Change Expression"
@@ -11569,10 +11536,10 @@ msgid "Duplicate VisualScript Nodes"
msgstr "VisualScriptノードを複製"
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Hold %s to drop a Getter. Hold Shift to drop a generic signature."
msgstr ""
-"メタキーをä¿æŒã—ã¦getterã‚’è½ã¨ã™.Shiftキーをä¿æŒã—ã¦ã‚¸ã‚§ãƒãƒªãƒƒã‚¯ã‚’指示ã™ã‚‹."
+"%sを押ã—ãŸã¾ã¾Getterを(ドラッグ&)ドロップã™ã‚‹ã€‚Shiftを押ã—ãŸã¾ã¾æ±Žç”¨ç½²åã‚’"
+"(ドラッグ&)ドロップã™ã‚‹ã€‚"
#: modules/visual_script/visual_script_editor.cpp
msgid "Hold Ctrl to drop a Getter. Hold Shift to drop a generic signature."
@@ -11581,9 +11548,10 @@ msgstr ""
"ãƒãƒãƒ£ã‚’(ドラッグ&)ドロップã™ã‚‹."
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Hold %s to drop a simple reference to the node."
-msgstr "メタキーをä¿æŒã—ã¦å˜ç´”å‚照(simple reference)ã‚’è½ã¨ã™."
+msgstr ""
+"%sを押ã—ãŸã¾ã¾ãƒŽãƒ¼ãƒ‰ã¸å˜ç´”å‚照(simple reference)を(ドラッグ&)ドロップã™"
+"る。"
#: modules/visual_script/visual_script_editor.cpp
msgid "Hold Ctrl to drop a simple reference to the node."
@@ -11592,9 +11560,8 @@ msgstr ""
"る。"
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Hold %s to drop a Variable Setter."
-msgstr "メタキーをä¿æŒã—ã¦å¤‰æ•°ã®setterã‚’è½ã¨ã™"
+msgstr "%sを押ã—ãŸã¾ã¾å¤‰æ•°ã®Setterを(ドラッグ&)ドロップã™ã‚‹ã€‚"
#: modules/visual_script/visual_script_editor.cpp
msgid "Hold Ctrl to drop a Variable Setter."
@@ -11644,9 +11611,8 @@ msgid "Connect Nodes"
msgstr "ノードã«æŽ¥ç¶š"
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Disconnect Nodes"
-msgstr "グラフノードを切断"
+msgstr "ノードを切断"
#: modules/visual_script/visual_script_editor.cpp
msgid "Connect Node Data"
@@ -11699,9 +11665,8 @@ msgid "Try to only have one sequence input in selection."
msgstr "セクションã§ã¯å”¯ä¸€ã¤ã®ã‚·ãƒ¼ã‚±ãƒ³ã‚¹å…¥åŠ›ã‚’æŒã¤ã‚ˆã†ã«ã—ã¦ãã ã•ã„。"
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Create Function"
-msgstr "関数åを変更"
+msgstr "関数を作æˆ"
#: modules/visual_script/visual_script_editor.cpp
msgid "Remove Function"
@@ -11724,9 +11689,8 @@ msgid "Editing Signal:"
msgstr "シグナルを接続:"
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Make Tool:"
-msgstr "ローカルã«ã™ã‚‹"
+msgstr "ツールã«ã™ã‚‹:"
#: modules/visual_script/visual_script_editor.cpp
msgid "Members:"
@@ -11737,14 +11701,12 @@ msgid "Change Base Type:"
msgstr "基底型を変更:"
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Add Nodes..."
msgstr "ノードを追加..."
#: modules/visual_script/visual_script_editor.cpp
-#, fuzzy
msgid "Add Function..."
-msgstr "関数を追加"
+msgstr "関数を追加…"
#: modules/visual_script/visual_script_editor.cpp
#, fuzzy
@@ -12691,6 +12653,15 @@ msgstr "Varyingã¯é ‚点関数ã«ã®ã¿å‰²ã‚Šå½“ã¦ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚"
msgid "Constants cannot be modified."
msgstr "定数ã¯å¤‰æ›´ã§ãã¾ã›ã‚“。"
+#~ msgid ""
+#~ "There are currently no tutorials for this class, you can [color=$color]"
+#~ "[url=$url]contribute one[/url][/color] or [color=$color][url="
+#~ "$url2]request one[/url][/color]."
+#~ msgstr ""
+#~ "ç¾åœ¨ã€ã“ã®ã‚¯ãƒ©ã‚¹ã®ãƒãƒ¥ãƒ¼ãƒˆãƒªã‚¢ãƒ«ã¯ã‚ã‚Šã¾ã›ã‚“ãŒã€[color=$color][url=$url]è²¢"
+#~ "献[/url][/color]ã€ã¾ãŸã¯[color=$color][url=$url2]リクエスト[/url][/color]"
+#~ "ã¯å¯èƒ½ã§ã™ã€‚"
+
#~ msgid "enum "
#~ msgstr "列挙型 "
diff --git a/editor/translations/ka.po b/editor/translations/ka.po
index f19630502b..4808e9177b 100644
--- a/editor/translations/ka.po
+++ b/editor/translations/ka.po
@@ -1997,13 +1997,6 @@ msgid "Online Tutorials"
msgstr ""
#: editor/editor_help.cpp
-msgid ""
-"There are currently no tutorials for this class, you can [color=$color][url="
-"$url]contribute one[/url][/color] or [color=$color][url=$url2]request one[/"
-"url][/color]."
-msgstr ""
-
-#: editor/editor_help.cpp
msgid "Properties"
msgstr ""
@@ -4527,7 +4520,6 @@ msgid "Animation Tools"
msgstr ""
#: editor/plugins/animation_player_editor_plugin.cpp
-#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Animation"
msgstr ""
@@ -5603,6 +5595,11 @@ msgid "Auto Insert Key"
msgstr "áƒáƒœáƒ˜áƒ› გáƒáƒ¡áƒáƒ¦áƒ”ბის ჩáƒáƒ§áƒ”ნებáƒ"
#: editor/plugins/canvas_item_editor_plugin.cpp
+#, fuzzy
+msgid "Animation Key and Pose Options"
+msgstr "áƒáƒœáƒ˜áƒ›áƒáƒªáƒ˜áƒ˜áƒ¡ ხáƒáƒœáƒ’რძლივáƒáƒ‘რ(წáƒáƒ›áƒ”ბში)."
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Insert Key (Existing Tracks)"
msgstr ""
@@ -5890,7 +5887,6 @@ msgid "No mesh to debug."
msgstr ""
#: editor/plugins/mesh_instance_editor_plugin.cpp
-#: editor/plugins/sprite_editor_plugin.cpp
msgid "Model has no UV in this layer"
msgstr ""
diff --git a/editor/translations/ko.po b/editor/translations/ko.po
index 8e5b32a895..ae7e1edf52 100644
--- a/editor/translations/ko.po
+++ b/editor/translations/ko.po
@@ -19,7 +19,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Godot Engine editor\n"
"POT-Creation-Date: \n"
-"PO-Revision-Date: 2020-01-19 11:03+0000\n"
+"PO-Revision-Date: 2020-01-27 07:09+0000\n"
"Last-Translator: 송태섭 <xotjq237@gmail.com>\n"
"Language-Team: Korean <https://hosted.weblate.org/projects/godot-engine/"
"godot/ko/>\n"
@@ -28,12 +28,12 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
-"X-Generator: Weblate 3.10.2\n"
+"X-Generator: Weblate 3.11-dev\n"
#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
#: modules/visual_script/visual_script_builtin_funcs.cpp
msgid "Invalid type argument to convert(), use TYPE_* constants."
-msgstr "convert() ë©”ì„œë“œì˜ ì¸ìˆ˜ ìœ í˜•ì´ ìž˜ëª»ë˜ì—ˆì–´ìš”. TYPE_* ìƒìˆ˜ë¥¼ 사용하세요."
+msgstr "convert() ë©”ì„œë“œì˜ ì¸ìˆ˜ ìœ í˜•ì´ ìž˜ëª»ëì–´ìš”. TYPE_* ìƒìˆ˜ë¥¼ 사용하세요."
#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
msgid "Expected a string of length 1 (a character)."
@@ -47,7 +47,7 @@ msgstr "디코딩할 ë°”ì´íŠ¸ê°€ 모ìžë¼ê±°ë‚˜ ìž˜ëª»ëœ í˜•ì‹ì´ì—ìš”."
#: core/math/expression.cpp
msgid "Invalid input %i (not passed) in expression"
-msgstr "표현ì‹ì—ì„œ ìž…ë ¥ %iì´(ê°€) 잘못ë˜ì—ˆì–´ìš” (전달ë˜ì§€ ì•ŠìŒ)"
+msgstr "표현ì‹ì—ì„œ ìž…ë ¥ %iì´(ê°€) 잘못ëì–´ìš” (전달ë˜ì§€ ì•ŠìŒ)"
#: core/math/expression.cpp
msgid "self can't be used because instance is null (not passed)"
@@ -55,15 +55,15 @@ msgstr "ì¸ìŠ¤í„´ìŠ¤ê°€ 비어있어서 Self를 사용할 수 없어요 (전달ë
#: core/math/expression.cpp
msgid "Invalid operands to operator %s, %s and %s."
-msgstr "ì—°ì‚°ìž %s와(ê³¼) %s, %sì˜ ì—°ì‚° 대ìƒì´ 잘못ë˜ì—ˆì–´ìš”."
+msgstr "ì—°ì‚°ìž %s와(ê³¼) %s, %sì˜ ì—°ì‚° 대ìƒì´ 잘못ëì–´ìš”."
#: core/math/expression.cpp
msgid "Invalid index of type %s for base type %s"
-msgstr "기본 ìœ í˜•ì´ %sì¸ %s ìœ í˜•ì˜ ì¸ë±ìŠ¤ê°€ 잘못ë˜ì—ˆì–´ìš”"
+msgstr "기본 ìœ í˜•ì´ %sì¸ %s ìœ í˜•ì˜ ì¸ë±ìŠ¤ê°€ 잘못ëì–´ìš”"
#: core/math/expression.cpp
msgid "Invalid named index '%s' for base type %s"
-msgstr "기본 ìœ í˜•ì´ %sì¸ '%s' ì¸ë±ìŠ¤ì˜ ì´ë¦„ì´ ìž˜ëª»ë˜ì—ˆì–´ìš”"
+msgstr "기본 ìœ í˜•ì´ %sì¸ '%s' ì¸ë±ìŠ¤ì˜ ì´ë¦„ì´ ìž˜ëª»ëì–´ìš”"
#: core/math/expression.cpp
msgid "Invalid arguments to construct '%s'"
@@ -381,7 +381,7 @@ msgstr ""
#: editor/animation_track_editor.cpp
msgid "Anim Create & Insert"
-msgstr "애니메ì´ì…˜ ìƒì„±í•˜ê¸° & 삽입하기"
+msgstr "애니메ì´ì…˜ 만들기 & 삽입하기"
#: editor/animation_track_editor.cpp
msgid "Anim Insert Track & Key"
@@ -439,7 +439,7 @@ msgstr "베지어 트랙 추가하기"
#: editor/animation_track_editor.cpp
msgid "Track path is invalid, so can't add a key."
-msgstr "트랙 경로가 잘못ë˜ì—ˆì–´ìš”. 키를 추가할 수 없어요."
+msgstr "트랙 경로가 잘못ëì–´ìš”. 키를 추가할 수 없어요."
#: editor/animation_track_editor.cpp
msgid "Track is not of type Spatial, can't insert key"
@@ -1674,7 +1674,7 @@ msgstr "켜진 í´ëž˜ìŠ¤:"
#: editor/editor_feature_profile.cpp
msgid "File '%s' format is invalid, import aborted."
-msgstr "íŒŒì¼ '%s' 형ì‹ì´ 잘못ë˜ì—ˆì–´ìš”. 가져올 수 없어요."
+msgstr "íŒŒì¼ '%s' 형ì‹ì´ 잘못ëì–´ìš”. 가져올 수 없어요."
#: editor/editor_feature_profile.cpp
msgid ""
@@ -1942,16 +1942,6 @@ msgid "Online Tutorials"
msgstr "온ë¼ì¸ 튜토리얼"
#: editor/editor_help.cpp
-msgid ""
-"There are currently no tutorials for this class, you can [color=$color][url="
-"$url]contribute one[/url][/color] or [color=$color][url=$url2]request one[/"
-"url][/color]."
-msgstr ""
-"현재 ì´ í´ëž˜ìŠ¤ì— 대한 íŠœí† ë¦¬ì–¼ì´ ì—†ì–´ìš”. [color=$color][url=$url]íŠœí† ë¦¬ì–¼ì— "
-"기여하거나[/url][/color] [color=$color][url=$url2]íŠœí† ë¦¬ì–¼ì„ ìš”ì²­í•  수[/url]"
-"[/color] 있어요."
-
-#: editor/editor_help.cpp
msgid "Properties"
msgstr "ì†ì„±"
@@ -2271,7 +2261,7 @@ msgstr "ë ˆì´ì•„웃 저장 중 오류!"
#: editor/editor_node.cpp
msgid "Default editor layout overridden."
-msgstr "편집기 기본 ë ˆì´ì•„ì›ƒì´ ìƒˆë¡œ ì •ì˜ë˜ì—ˆì–´ìš”."
+msgstr "편집기 기본 ë ˆì´ì•„ì›ƒì´ ìƒˆë¡œ ì •ì˜ëì–´ìš”."
#: editor/editor_node.cpp
msgid "Layout name not found!"
@@ -2370,7 +2360,7 @@ msgstr "닫기 ì „ì— '%s'ì— ë³€ê²½ ì‚¬í•­ì„ ì €ìž¥í• ê¹Œìš”?"
#: editor/editor_node.cpp
msgid "Saved %s modified resource(s)."
-msgstr "ìˆ˜ì •ëœ ë¦¬ì†ŒìŠ¤ %sì´(ê°€) 저장ë˜ì—ˆì–´ìš”."
+msgstr "ìˆ˜ì •ëœ ë¦¬ì†ŒìŠ¤ %sì´(ê°€) 저장ëì–´ìš”."
#: editor/editor_node.cpp
msgid "A root node is required to save the scene."
@@ -2851,7 +2841,7 @@ msgstr ""
#: editor/editor_node.cpp editor/script_create_dialog.cpp
msgid "Editor"
-msgstr "편집기"
+msgstr "편집기(Editor)"
#: editor/editor_node.cpp
msgid "Editor Settings..."
@@ -3412,7 +3402,7 @@ msgstr "í…œí”Œë¦¿ì— version.txt를 ì°¾ì„ ìˆ˜ 없어요."
#: editor/export_template_manager.cpp
msgid "Error creating path for templates:"
-msgstr "í…œí”Œë¦¿ì˜ ê²½ë¡œ ìƒì„± 중 오류:"
+msgstr "í…œí”Œë¦¿ì˜ ê²½ë¡œë¥¼ 만드는 중 오류:"
#: editor/export_template_manager.cpp
msgid "Extracting Export Templates"
@@ -4504,7 +4494,6 @@ msgid "Animation Tools"
msgstr "애니메ì´ì…˜ ë„구"
#: editor/plugins/animation_player_editor_plugin.cpp
-#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Animation"
msgstr "애니메ì´ì…˜(Animation)"
@@ -5565,6 +5554,10 @@ msgid "Auto Insert Key"
msgstr "ìžë™ìœ¼ë¡œ 키 삽입하기"
#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Animation Key and Pose Options"
+msgstr "애니메ì´ì…˜ 키와 í¬ì¦ˆ 설정"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Insert Key (Existing Tracks)"
msgstr "키 삽입하기 (기존 트랙)"
@@ -5847,7 +5840,6 @@ msgid "No mesh to debug."
msgstr "디버그할 메시가 없어요."
#: editor/plugins/mesh_instance_editor_plugin.cpp
-#: editor/plugins/sprite_editor_plugin.cpp
msgid "Model has no UV in this layer"
msgstr "ì´ ë ˆì´ì–´ì—ì„œ 모ë¸ì€ UVê°€ 없어요"
@@ -7234,7 +7226,7 @@ msgstr "시네마틱 미리 보기"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Not available when using the GLES2 renderer."
-msgstr ""
+msgstr "GLES2 ë Œë”러ì—ì„œ 사용할 수 없어요."
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Freelook Left"
@@ -9496,7 +9488,7 @@ msgstr "프로ì íŠ¸ 경로ì—ì„œ project.godot 파ì¼ì„ 편집할 수 없어ìš
#: editor/project_manager.cpp
msgid "Couldn't create project.godot in project path."
-msgstr "프로ì íŠ¸ 경로ì—ì„œ project.godot 파ì¼ì„ ìƒì„±í•  수 없어요."
+msgstr "프로ì íŠ¸ 경로ì—ì„œ project.godot 파ì¼ì„ 만들 수 없어요."
#: editor/project_manager.cpp
msgid "Rename Project"
@@ -9588,7 +9580,7 @@ msgstr "누ë½ëœ 프로ì íŠ¸"
#: editor/project_manager.cpp
msgid "Error: Project is missing on the filesystem."
-msgstr "오류: 프로ì íŠ¸ê°€ íŒŒì¼ ì‹œìŠ¤í…œì—ì„œ 누ë½ë˜ì—ˆì–´ìš”."
+msgstr "오류: 프로ì íŠ¸ê°€ íŒŒì¼ ì‹œìŠ¤í…œì—ì„œ 누ë½ëì–´ìš”."
#: editor/project_manager.cpp
msgid "Can't open project at '%s'."
@@ -11280,7 +11272,7 @@ msgid ""
"Node yielded, but did not return a function state in the first working "
"memory."
msgstr ""
-"노드가 Yieldë˜ì—ˆì§€ë§Œ, 첫번째 ìž‘ì—… ë©”ëª¨ë¦¬ì˜ í•¨ìˆ˜ ìƒíƒœë¥¼ 반환하지 않았어요."
+"노드가 Yieldë지만, 첫번째 ìž‘ì—… ë©”ëª¨ë¦¬ì˜ í•¨ìˆ˜ ìƒíƒœë¥¼ 반환하지 않았어요."
#: modules/visual_script/visual_script.cpp
msgid ""
@@ -12486,6 +12478,15 @@ msgstr "Varyingì€ ê¼­ì§“ì  í•¨ìˆ˜ì—만 지정할 수 있어요."
msgid "Constants cannot be modified."
msgstr "ìƒìˆ˜ëŠ” 수정할 수 없어요."
+#~ msgid ""
+#~ "There are currently no tutorials for this class, you can [color=$color]"
+#~ "[url=$url]contribute one[/url][/color] or [color=$color][url="
+#~ "$url2]request one[/url][/color]."
+#~ msgstr ""
+#~ "현재 ì´ í´ëž˜ìŠ¤ì— 대한 íŠœí† ë¦¬ì–¼ì´ ì—†ì–´ìš”. [color=$color][url=$url]튜토리얼"
+#~ "ì— ê¸°ì—¬í•˜ê±°ë‚˜[/url][/color] [color=$color][url=$url2]íŠœí† ë¦¬ì–¼ì„ ìš”ì²­í•  수"
+#~ "[/url][/color] 있어요."
+
#~ msgid "enum "
#~ msgstr "ì´ë„˜ "
diff --git a/editor/translations/lt.po b/editor/translations/lt.po
index 5a156470d8..f3118b9942 100644
--- a/editor/translations/lt.po
+++ b/editor/translations/lt.po
@@ -1964,13 +1964,6 @@ msgid "Online Tutorials"
msgstr ""
#: editor/editor_help.cpp
-msgid ""
-"There are currently no tutorials for this class, you can [color=$color][url="
-"$url]contribute one[/url][/color] or [color=$color][url=$url2]request one[/"
-"url][/color]."
-msgstr ""
-
-#: editor/editor_help.cpp
msgid "Properties"
msgstr ""
@@ -4502,7 +4495,6 @@ msgid "Animation Tools"
msgstr ""
#: editor/plugins/animation_player_editor_plugin.cpp
-#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Animation"
msgstr "Animacija"
@@ -5580,6 +5572,11 @@ msgid "Auto Insert Key"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
+#, fuzzy
+msgid "Animation Key and Pose Options"
+msgstr "Animacijos Nodas"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Insert Key (Existing Tracks)"
msgstr ""
@@ -5865,7 +5862,6 @@ msgid "No mesh to debug."
msgstr ""
#: editor/plugins/mesh_instance_editor_plugin.cpp
-#: editor/plugins/sprite_editor_plugin.cpp
msgid "Model has no UV in this layer"
msgstr ""
diff --git a/editor/translations/lv.po b/editor/translations/lv.po
index 2cecc5ae11..b6066df271 100644
--- a/editor/translations/lv.po
+++ b/editor/translations/lv.po
@@ -1967,13 +1967,6 @@ msgid "Online Tutorials"
msgstr ""
#: editor/editor_help.cpp
-msgid ""
-"There are currently no tutorials for this class, you can [color=$color][url="
-"$url]contribute one[/url][/color] or [color=$color][url=$url2]request one[/"
-"url][/color]."
-msgstr ""
-
-#: editor/editor_help.cpp
msgid "Properties"
msgstr ""
@@ -4492,7 +4485,6 @@ msgid "Animation Tools"
msgstr ""
#: editor/plugins/animation_player_editor_plugin.cpp
-#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Animation"
msgstr ""
@@ -5562,6 +5554,11 @@ msgid "Auto Insert Key"
msgstr "Anim ievietot atslēgievietni"
#: editor/plugins/canvas_item_editor_plugin.cpp
+#, fuzzy
+msgid "Animation Key and Pose Options"
+msgstr "AnimÄcijas Garums (sekundes)"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Insert Key (Existing Tracks)"
msgstr ""
@@ -5850,7 +5847,6 @@ msgid "No mesh to debug."
msgstr ""
#: editor/plugins/mesh_instance_editor_plugin.cpp
-#: editor/plugins/sprite_editor_plugin.cpp
msgid "Model has no UV in this layer"
msgstr ""
diff --git a/editor/translations/mi.po b/editor/translations/mi.po
index e2b6df89b4..24d1f213e2 100644
--- a/editor/translations/mi.po
+++ b/editor/translations/mi.po
@@ -1886,13 +1886,6 @@ msgid "Online Tutorials"
msgstr ""
#: editor/editor_help.cpp
-msgid ""
-"There are currently no tutorials for this class, you can [color=$color][url="
-"$url]contribute one[/url][/color] or [color=$color][url=$url2]request one[/"
-"url][/color]."
-msgstr ""
-
-#: editor/editor_help.cpp
msgid "Properties"
msgstr ""
@@ -4353,7 +4346,6 @@ msgid "Animation Tools"
msgstr ""
#: editor/plugins/animation_player_editor_plugin.cpp
-#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Animation"
msgstr ""
@@ -5396,6 +5388,10 @@ msgid "Auto Insert Key"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Animation Key and Pose Options"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Insert Key (Existing Tracks)"
msgstr ""
@@ -5676,7 +5672,6 @@ msgid "No mesh to debug."
msgstr ""
#: editor/plugins/mesh_instance_editor_plugin.cpp
-#: editor/plugins/sprite_editor_plugin.cpp
msgid "Model has no UV in this layer"
msgstr ""
diff --git a/editor/translations/ml.po b/editor/translations/ml.po
index e7ffab4f18..dbf8e76d3f 100644
--- a/editor/translations/ml.po
+++ b/editor/translations/ml.po
@@ -1896,13 +1896,6 @@ msgid "Online Tutorials"
msgstr ""
#: editor/editor_help.cpp
-msgid ""
-"There are currently no tutorials for this class, you can [color=$color][url="
-"$url]contribute one[/url][/color] or [color=$color][url=$url2]request one[/"
-"url][/color]."
-msgstr ""
-
-#: editor/editor_help.cpp
msgid "Properties"
msgstr ""
@@ -4368,7 +4361,6 @@ msgid "Animation Tools"
msgstr ""
#: editor/plugins/animation_player_editor_plugin.cpp
-#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Animation"
msgstr ""
@@ -5411,6 +5403,11 @@ msgid "Auto Insert Key"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
+#, fuzzy
+msgid "Animation Key and Pose Options"
+msgstr "ചലന നേരം (ഞൊടികൾ)"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Insert Key (Existing Tracks)"
msgstr ""
@@ -5691,7 +5688,6 @@ msgid "No mesh to debug."
msgstr ""
#: editor/plugins/mesh_instance_editor_plugin.cpp
-#: editor/plugins/sprite_editor_plugin.cpp
msgid "Model has no UV in this layer"
msgstr ""
diff --git a/editor/translations/mr.po b/editor/translations/mr.po
index a4bdd7f18a..43f7620d28 100644
--- a/editor/translations/mr.po
+++ b/editor/translations/mr.po
@@ -1892,13 +1892,6 @@ msgid "Online Tutorials"
msgstr ""
#: editor/editor_help.cpp
-msgid ""
-"There are currently no tutorials for this class, you can [color=$color][url="
-"$url]contribute one[/url][/color] or [color=$color][url=$url2]request one[/"
-"url][/color]."
-msgstr ""
-
-#: editor/editor_help.cpp
msgid "Properties"
msgstr ""
@@ -4360,7 +4353,6 @@ msgid "Animation Tools"
msgstr ""
#: editor/plugins/animation_player_editor_plugin.cpp
-#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Animation"
msgstr ""
@@ -5403,6 +5395,10 @@ msgid "Auto Insert Key"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Animation Key and Pose Options"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Insert Key (Existing Tracks)"
msgstr ""
@@ -5683,7 +5679,6 @@ msgid "No mesh to debug."
msgstr ""
#: editor/plugins/mesh_instance_editor_plugin.cpp
-#: editor/plugins/sprite_editor_plugin.cpp
msgid "Model has no UV in this layer"
msgstr ""
diff --git a/editor/translations/ms.po b/editor/translations/ms.po
index 50895dcaae..0207d83de5 100644
--- a/editor/translations/ms.po
+++ b/editor/translations/ms.po
@@ -6,12 +6,14 @@
# Shaqir Rafiq <moshamoradev@gmail.com>, 2018.
# Syaz Amirin <amirin123z@gmail.com>, 2018.
# Nafis Ibrahim <thepreciousnafis@gmail.com>, 2018.
+# Muhammad Hazim bin Hafizalshah <muhammadhazimhafizalshah@gmail.com>, 2020.
msgid ""
msgstr ""
"Project-Id-Version: Godot Engine editor\n"
"POT-Creation-Date: \n"
-"PO-Revision-Date: 2018-12-13 14:41+0100\n"
-"Last-Translator: Nafis Ibrahim <thepreciousnafis@gmail.com>\n"
+"PO-Revision-Date: 2020-01-27 07:10+0000\n"
+"Last-Translator: Muhammad Hazim bin Hafizalshah "
+"<muhammadhazimhafizalshah@gmail.com>\n"
"Language-Team: Malay <https://hosted.weblate.org/projects/godot-engine/godot/"
"ms/>\n"
"Language: ms\n"
@@ -19,7 +21,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
-"X-Generator: Poedit 2.2\n"
+"X-Generator: Weblate 3.11-dev\n"
#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
#: modules/visual_script/visual_script_builtin_funcs.cpp
@@ -1915,13 +1917,6 @@ msgid "Online Tutorials"
msgstr ""
#: editor/editor_help.cpp
-msgid ""
-"There are currently no tutorials for this class, you can [color=$color][url="
-"$url]contribute one[/url][/color] or [color=$color][url=$url2]request one[/"
-"url][/color]."
-msgstr ""
-
-#: editor/editor_help.cpp
msgid "Properties"
msgstr ""
@@ -4261,9 +4256,8 @@ msgid "Audio Clips"
msgstr "Anim Tambah Trek"
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
-#, fuzzy
msgid "Functions"
-msgstr "Semua Pilihan"
+msgstr "Fungsi"
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
#: editor/plugins/animation_state_machine_editor.cpp
@@ -4392,7 +4386,6 @@ msgid "Animation Tools"
msgstr ""
#: editor/plugins/animation_player_editor_plugin.cpp
-#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Animation"
msgstr ""
@@ -4591,7 +4584,7 @@ msgstr ""
#: editor/plugins/animation_tree_editor_plugin.cpp
#: editor/plugins/animation_tree_player_editor_plugin.cpp
msgid "AnimationTree"
-msgstr ""
+msgstr "AnimationTree"
#: editor/plugins/animation_tree_player_editor_plugin.cpp
msgid "New name:"
@@ -5447,6 +5440,10 @@ msgid "Auto Insert Key"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Animation Key and Pose Options"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Insert Key (Existing Tracks)"
msgstr ""
@@ -5729,7 +5726,6 @@ msgid "No mesh to debug."
msgstr ""
#: editor/plugins/mesh_instance_editor_plugin.cpp
-#: editor/plugins/sprite_editor_plugin.cpp
msgid "Model has no UV in this layer"
msgstr ""
@@ -9763,9 +9759,8 @@ msgid "Action:"
msgstr ""
#: editor/project_settings_editor.cpp
-#, fuzzy
msgid "Action"
-msgstr "Semua Pilihan"
+msgstr "Aksi"
#: editor/project_settings_editor.cpp
msgid "Deadzone"
diff --git a/editor/translations/nb.po b/editor/translations/nb.po
index 5b57604bc9..dcbe8e6950 100644
--- a/editor/translations/nb.po
+++ b/editor/translations/nb.po
@@ -2059,16 +2059,6 @@ msgid "Online Tutorials"
msgstr "Online dokumentasjon:"
#: editor/editor_help.cpp
-msgid ""
-"There are currently no tutorials for this class, you can [color=$color][url="
-"$url]contribute one[/url][/color] or [color=$color][url=$url2]request one[/"
-"url][/color]."
-msgstr ""
-"Det finnes i øyeblikket ingen beskrivelse av denne metoden, men du kan "
-"[colour=$color][url=$url]bidra med en[/url][/color] eller [color=$color][url="
-"$url2]be om en[/url][/color]."
-
-#: editor/editor_help.cpp
msgid "Properties"
msgstr "Egenskaper"
@@ -4820,7 +4810,6 @@ msgid "Animation Tools"
msgstr "Animasjonsverktøy"
#: editor/plugins/animation_player_editor_plugin.cpp
-#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Animation"
msgstr "Animasjon"
@@ -5970,6 +5959,11 @@ msgid "Auto Insert Key"
msgstr "Anim Sett Inn Nøkkel"
#: editor/plugins/canvas_item_editor_plugin.cpp
+#, fuzzy
+msgid "Animation Key and Pose Options"
+msgstr "Animasjonslengde (sekunder)"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Insert Key (Existing Tracks)"
msgstr "Sett inn Nøkkel (Eksisterende Spor)"
@@ -6268,7 +6262,6 @@ msgid "No mesh to debug."
msgstr ""
#: editor/plugins/mesh_instance_editor_plugin.cpp
-#: editor/plugins/sprite_editor_plugin.cpp
msgid "Model has no UV in this layer"
msgstr ""
@@ -13041,6 +13034,15 @@ msgstr ""
msgid "Constants cannot be modified."
msgstr "Konstanter kan ikke endres."
+#~ msgid ""
+#~ "There are currently no tutorials for this class, you can [color=$color]"
+#~ "[url=$url]contribute one[/url][/color] or [color=$color][url="
+#~ "$url2]request one[/url][/color]."
+#~ msgstr ""
+#~ "Det finnes i øyeblikket ingen beskrivelse av denne metoden, men du kan "
+#~ "[colour=$color][url=$url]bidra med en[/url][/color] eller [color=$color]"
+#~ "[url=$url2]be om en[/url][/color]."
+
#~ msgid "enum "
#~ msgstr "num "
diff --git a/editor/translations/nl.po b/editor/translations/nl.po
index 423d10d264..39bca63def 100644
--- a/editor/translations/nl.po
+++ b/editor/translations/nl.po
@@ -39,12 +39,12 @@
# ebbe <ebbesteenhoudt@gmail.com>, 2019.
# Tirrin <lensenjoe@gmail.com>, 2019.
# Filip Van Raemdonck <arrawn@gmail.com>, 2019.
-# Julian <jdhoogvorst@gmail.com>, 2019.
+# Julian <jdhoogvorst@gmail.com>, 2019, 2020.
msgid ""
msgstr ""
"Project-Id-Version: Godot Engine editor\n"
"POT-Creation-Date: \n"
-"PO-Revision-Date: 2020-01-19 11:03+0000\n"
+"PO-Revision-Date: 2020-01-27 07:09+0000\n"
"Last-Translator: Stijn Hinlopen <f.a.hinlopen@gmail.com>\n"
"Language-Team: Dutch <https://hosted.weblate.org/projects/godot-engine/godot/"
"nl/>\n"
@@ -53,7 +53,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Generator: Weblate 3.10.2\n"
+"X-Generator: Weblate 3.11-dev\n"
#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
#: modules/visual_script/visual_script_builtin_funcs.cpp
@@ -288,7 +288,7 @@ msgstr "Schakel deze track aan/uit."
#: editor/animation_track_editor.cpp
msgid "Update Mode (How this property is set)"
-msgstr "Update Modus (Setting van deze eigenschap)"
+msgstr "Bijwerkmodus (hoe de eigenschap ingesteld wordt)"
#: editor/animation_track_editor.cpp
msgid "Interpolation Mode"
@@ -296,8 +296,7 @@ msgstr "Interpolatiemodus"
#: editor/animation_track_editor.cpp
msgid "Loop Wrap Mode (Interpolate end with beginning on loop)"
-msgstr ""
-"Terugloopmodus (Interpolatie tussen het begin en het einde van de loop)"
+msgstr "Naadloze-lusmodus (interpoleert einde met begin van lus)"
#: editor/animation_track_editor.cpp
msgid "Remove this track."
@@ -363,11 +362,11 @@ msgstr "Sleutel(s) verwijderen"
#: editor/animation_track_editor.cpp
msgid "Change Animation Update Mode"
-msgstr "Verander animatie update modus"
+msgstr "Animatiebijwerkmodus veranderen"
#: editor/animation_track_editor.cpp
msgid "Change Animation Interpolation Mode"
-msgstr "Verander Animatie Interpolatiemodus"
+msgstr "Animatieinterpolatiemodus veranderen"
#: editor/animation_track_editor.cpp
msgid "Change Animation Loop Mode"
@@ -1373,15 +1372,15 @@ msgstr "Verplaats audiobus"
#: editor/editor_audio_buses.cpp
msgid "Save Audio Bus Layout As..."
-msgstr "Sla Audio Bus Layout Op Als..."
+msgstr "Audiobusindeling opslaan als..."
#: editor/editor_audio_buses.cpp
msgid "Location for New Layout..."
-msgstr "Locatie voor Nieuwe Layout..."
+msgstr "Opslagplaats voor nieuwe indeling..."
#: editor/editor_audio_buses.cpp
msgid "Open Audio Bus Layout"
-msgstr "Open Audio Bus Lay-out"
+msgstr "Audiobusindeling openen"
#: editor/editor_audio_buses.cpp
msgid "There is no '%s' file."
@@ -1393,7 +1392,7 @@ msgstr "Indeling"
#: editor/editor_audio_buses.cpp
msgid "Invalid file, not an audio bus layout."
-msgstr "Ongeldig bestand, geen audiobus layout."
+msgstr "Ongeldig bestand, geen audiobusindeling."
#: editor/editor_audio_buses.cpp
msgid "Error saving file: %s"
@@ -1405,7 +1404,7 @@ msgstr "Bus Toevoegen"
#: editor/editor_audio_buses.cpp
msgid "Add a new Audio Bus to this layout."
-msgstr "Voeg een nieuwe Audio Bus toe aan deze layout."
+msgstr "Nieuwe audiobus toevoegen aan deze indeling."
#: editor/editor_audio_buses.cpp editor/editor_properties.cpp
#: editor/plugins/animation_player_editor_plugin.cpp editor/property_editor.cpp
@@ -1415,7 +1414,7 @@ msgstr "Laden"
#: editor/editor_audio_buses.cpp
msgid "Load an existing Bus Layout."
-msgstr "Laad een bestaand audiobus layout."
+msgstr "Bestaande busindeling laden."
#: editor/editor_audio_buses.cpp
msgid "Save As"
@@ -1423,7 +1422,7 @@ msgstr "Opslaan Als"
#: editor/editor_audio_buses.cpp
msgid "Save this Bus Layout to a file."
-msgstr "Sla deze audiobus layout op in een bestand."
+msgstr "Audiobusindeling opslaan in een bestand."
#: editor/editor_audio_buses.cpp editor/import_dock.cpp
msgid "Load Default"
@@ -1431,11 +1430,11 @@ msgstr "Laad standaard"
#: editor/editor_audio_buses.cpp
msgid "Load the default Bus Layout."
-msgstr "Laad de standaard audiobus layout."
+msgstr "Standaard audiobusindeling laden."
#: editor/editor_audio_buses.cpp
msgid "Create a new Bus Layout."
-msgstr "Maak een nieuwe audiobus layout."
+msgstr "Maak een nieuwe audiobusindeling."
#: editor/editor_autoload_settings.cpp
msgid "Invalid name."
@@ -1874,7 +1873,7 @@ msgstr "Toggle Favoriet"
#: editor/editor_file_dialog.cpp
msgid "Toggle Mode"
-msgstr "Toggle Modus"
+msgstr "Modus omschakelen"
#: editor/editor_file_dialog.cpp
msgid "Focus Path"
@@ -1980,16 +1979,6 @@ msgid "Online Tutorials"
msgstr "Online Zelfstudie"
#: editor/editor_help.cpp
-msgid ""
-"There are currently no tutorials for this class, you can [color=$color][url="
-"$url]contribute one[/url][/color] or [color=$color][url=$url2]request one[/"
-"url][/color]."
-msgstr ""
-"Er is momenteel geen handleiding voor deze methode. Help ons alsjeblieft "
-"door [color=$color][url=$url]een toe te voegen[/url][/color] of [color="
-"$color][url=$url2]een aan te vragen[/url][/color]."
-
-#: editor/editor_help.cpp
msgid "Properties"
msgstr "Eigenschappen"
@@ -2307,19 +2296,19 @@ msgstr "Error bij het opslaan van TileSet!"
#: editor/editor_node.cpp
msgid "Error trying to save layout!"
-msgstr "Error bij het opslaan van layout!"
+msgstr "Fout bij het opslaan van indeling!"
#: editor/editor_node.cpp
msgid "Default editor layout overridden."
-msgstr "Standaard editorindeling overschreven."
+msgstr "Standaardeditorindeling overschreven."
#: editor/editor_node.cpp
msgid "Layout name not found!"
-msgstr "Lay-out naam niet gevonden!"
+msgstr "Indelingsnaam niet gevonden!"
#: editor/editor_node.cpp
msgid "Restored default layout to base settings."
-msgstr "Standaard layout hersteld naar basisinstellingen."
+msgstr "Standaardindeling teruggezet naar basisinstellingen."
#: editor/editor_node.cpp
msgid ""
@@ -2553,7 +2542,7 @@ msgstr ""
#: editor/editor_node.cpp
msgid "Unable to load addon script from path: '%s' Script is not in tool mode."
msgstr ""
-"Volgend script kon niet geladen worden: '%s' Script is niet in tool modus."
+"Uitbreidingsscript kon niet geladen worden: '%s' Script is niet in toolmodus."
#: editor/editor_node.cpp
msgid ""
@@ -2610,11 +2599,11 @@ msgstr ""
#: editor/editor_node.cpp
msgid "Save Layout"
-msgstr "Layout Opslaan"
+msgstr "Indeling opslaan"
#: editor/editor_node.cpp
msgid "Delete Layout"
-msgstr "Layout Verwijderen"
+msgstr "Indeling verwijderen"
#: editor/editor_node.cpp editor/import_dock.cpp
#: editor/script_create_dialog.cpp
@@ -2672,11 +2661,11 @@ msgstr "Tabbladpositie"
#: editor/editor_node.cpp
msgid "Distraction Free Mode"
-msgstr "Afleidingsvrije Modus"
+msgstr "Afleidingsvrijemodus"
#: editor/editor_node.cpp
msgid "Toggle distraction-free mode."
-msgstr "Afleidingsvrije modus veranderen."
+msgstr "Afleidingsvrijemodus omschakelen."
#: editor/editor_node.cpp
msgid "Add a new scene."
@@ -2912,7 +2901,7 @@ msgstr "Editor Instellingen..."
#: editor/editor_node.cpp
msgid "Editor Layout"
-msgstr "Editor Layout"
+msgstr "Editorindeling"
#: editor/editor_node.cpp
msgid "Take Screenshot"
@@ -2928,7 +2917,7 @@ msgstr "Schakel Volledig Scherm"
#: editor/editor_node.cpp
msgid "Toggle System Console"
-msgstr "Systeemconsole (on)zichtbaar maken"
+msgstr "Systeemconsole aan-/uitschakelen"
#: editor/editor_node.cpp
msgid "Open Editor Data/Settings Folder"
@@ -3785,7 +3774,7 @@ msgstr "Bestandssysteem Opnieuw Scannen"
#: editor/filesystem_dock.cpp
msgid "Toggle Split Mode"
-msgstr "Split-modus in-/uitschakelen"
+msgstr "Splitsmodus omschakelen"
#: editor/filesystem_dock.cpp
msgid "Search files"
@@ -4573,7 +4562,6 @@ msgid "Animation Tools"
msgstr "Animatiehulpmiddelen"
#: editor/plugins/animation_player_editor_plugin.cpp
-#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Animation"
msgstr "Animatie"
@@ -5405,7 +5393,7 @@ msgstr "Zoom terugzetten"
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Select Mode"
-msgstr "Selecteer Modus"
+msgstr "Selecteermodus"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Drag: Rotate"
@@ -5438,7 +5426,7 @@ msgstr "Rotatiemodus"
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Scale Mode"
-msgstr "Schaalwijze"
+msgstr "Schaalmodus"
#: editor/plugins/canvas_item_editor_plugin.cpp
#: editor/plugins/spatial_editor_plugin.cpp
@@ -5446,8 +5434,8 @@ msgid ""
"Show a list of all objects at the position clicked\n"
"(same as Alt+RMB in select mode)."
msgstr ""
-"Toon een lijst van alle objecten op de aangeklikte positie\n"
-"(hetzelfde als Alt+RMK in de selectiemodus)."
+"Toon alle knopen op de aangeklikte positie\n"
+"(zelfde als Alt+RMK in de selecteermodus)."
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Click to change object's rotation pivot."
@@ -5455,7 +5443,7 @@ msgstr "Klik om het draaipunt van het object aan te passen."
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Pan Mode"
-msgstr "Verschuif Modus"
+msgstr "Verschuifmodus"
#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Ruler Mode"
@@ -5650,6 +5638,10 @@ msgid "Auto Insert Key"
msgstr "Sleutel automatisch invoegen"
#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Animation Key and Pose Options"
+msgstr "Opties voor animatiesleutels en -poses"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Insert Key (Existing Tracks)"
msgstr "Sleutel invoegen (in bestaande sporen)"
@@ -5932,7 +5924,6 @@ msgid "No mesh to debug."
msgstr "Geen mesh om te debuggen."
#: editor/plugins/mesh_instance_editor_plugin.cpp
-#: editor/plugins/sprite_editor_plugin.cpp
msgid "Model has no UV in this layer"
msgstr "Model heeft geen UV in deze laag"
@@ -6661,13 +6652,13 @@ msgstr "Script herladen mislukt, zie de console voor foutmeldingen."
#: editor/plugins/script_editor_plugin.cpp
msgid "Script is not in tool mode, will not be able to run."
-msgstr "Script is niet in 'tool' modus en kan niet uitgevoerd worden."
+msgstr "Script is niet in 'tool'-modus en kan niet uitgevoerd worden."
#: editor/plugins/script_editor_plugin.cpp
msgid ""
"To run this script, it must inherit EditorScript and be set to tool mode."
msgstr ""
-"Om dit script uit te voeren moet het erven van EditorScript en in 'tool' "
+"Om dit script uit te voeren moet het erven van EditorScript en in 'tool'-"
"modus gezet worden."
#: editor/plugins/script_editor_plugin.cpp
@@ -7270,7 +7261,7 @@ msgstr "Deze bewerking vereist één geselecteerde knoop."
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Lock View Rotation"
-msgstr "Vergrendel View Rotatie"
+msgstr "Beeldrotatie vergrendelen"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Display Normal"
@@ -7322,7 +7313,7 @@ msgstr "Bioscoop Preview"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Not available when using the GLES2 renderer."
-msgstr ""
+msgstr "Niet beschikbaar bij gebruik van de GLES2 renderer."
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Freelook Left"
@@ -7367,7 +7358,7 @@ msgstr ""
#: editor/plugins/spatial_editor_plugin.cpp
msgid "View Rotation Locked"
-msgstr "Bekijk rotatie vergrendeld"
+msgstr "Beeldrotatie vergrendeld"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "XForm Dialog"
@@ -8136,19 +8127,19 @@ msgstr "Z Index"
#: editor/plugins/tile_set_editor_plugin.cpp
msgid "Region Mode"
-msgstr "Regio Modus"
+msgstr "Bereikmodus"
#: editor/plugins/tile_set_editor_plugin.cpp
msgid "Collision Mode"
-msgstr "Collision modus"
+msgstr "Botsingsmodus"
#: editor/plugins/tile_set_editor_plugin.cpp
msgid "Occlusion Mode"
-msgstr "Occlusion Mode"
+msgstr "Occlusiemodus"
#: editor/plugins/tile_set_editor_plugin.cpp
msgid "Navigation Mode"
-msgstr "Navigatie Modus"
+msgstr "Navigatiemodus"
#: editor/plugins/tile_set_editor_plugin.cpp
msgid "Bitmask Mode"
@@ -8156,15 +8147,15 @@ msgstr "Bitmaskermodus"
#: editor/plugins/tile_set_editor_plugin.cpp
msgid "Priority Mode"
-msgstr "Prioriteit Modus"
+msgstr "Prioriteitmodus"
#: editor/plugins/tile_set_editor_plugin.cpp
msgid "Icon Mode"
-msgstr "Icoon Modus"
+msgstr "Icoonmodus"
#: editor/plugins/tile_set_editor_plugin.cpp
msgid "Z Index Mode"
-msgstr "Z Index Modus"
+msgstr "Z-Indexmodus"
#: editor/plugins/tile_set_editor_plugin.cpp
msgid "Copy bitmask."
@@ -9457,7 +9448,7 @@ msgstr "Exporteer geselecteerde bronnen (en afhankelijkheden)"
#: editor/project_export.cpp
msgid "Export Mode:"
-msgstr "Exporteer Modus:"
+msgstr "Exporteermodus:"
#: editor/project_export.cpp
msgid "Resources to export:"
@@ -9509,7 +9500,7 @@ msgstr "Script"
#: editor/project_export.cpp
msgid "Script Export Mode:"
-msgstr "Script Exporteer modus:"
+msgstr "Script-exporteermodus:"
#: editor/project_export.cpp
msgid "Text"
@@ -9541,7 +9532,7 @@ msgstr "Project Exporteren"
#: editor/project_export.cpp
msgid "Export mode?"
-msgstr "Exporteer modus?"
+msgstr "Exporteermodus?"
#: editor/project_export.cpp
msgid "Export All"
@@ -9719,7 +9710,7 @@ msgstr "Naamloos Project"
#: editor/project_manager.cpp
msgid "Missing Project"
-msgstr "Ontbrekend project"
+msgstr "Bestanden ontbreken"
#: editor/project_manager.cpp
msgid "Error: Project is missing on the filesystem."
@@ -9827,7 +9818,7 @@ msgid ""
"The project folders' contents won't be modified."
msgstr ""
"Alle ontbrekende projecten uit de lijst verwijderen?\n"
-"De inhoud van de projectmap wordt niet geraakt."
+"De inhoud van de projectmap wordt niet veranderd."
#: editor/project_manager.cpp
msgid ""
@@ -9872,7 +9863,7 @@ msgstr "Nieuw Project"
#: editor/project_manager.cpp
msgid "Remove Missing"
-msgstr "Ontbrekende verwijderen"
+msgstr "Lijst opruimen"
#: editor/project_manager.cpp
msgid "Templates"
@@ -10116,7 +10107,7 @@ msgstr "Lokale Filter Gewijzigd"
#: editor/project_settings_editor.cpp
msgid "Changed Locale Filter Mode"
-msgstr "Lokale Filtermodus Gewijzigd"
+msgstr "Taalfiltermodus gewijzigd"
#: editor/project_settings_editor.cpp
msgid "Project Settings (project.godot)"
@@ -10200,7 +10191,7 @@ msgstr "Alleen geselecteerde talen tonen"
#: editor/project_settings_editor.cpp
msgid "Filter mode:"
-msgstr "Filter modus:"
+msgstr "Filtermodus:"
#: editor/project_settings_editor.cpp
msgid "Locales:"
@@ -10394,7 +10385,7 @@ msgstr "Knoopouder wijzigen"
#: editor/reparent_dialog.cpp
msgid "Reparent Location (Select new Parent):"
-msgstr "Reparent Locatie (Selecteer nieuwe Ouder):"
+msgstr "Plaats instellen (selecteer nieuwe ouder):"
#: editor/reparent_dialog.cpp
msgid "Keep Global Transform"
@@ -10402,7 +10393,7 @@ msgstr "Houd Globale Transformatie"
#: editor/reparent_dialog.cpp editor/scene_tree_dock.cpp
msgid "Reparent"
-msgstr "Reparent"
+msgstr "Ouder veranderen"
#: editor/run_settings_dialog.cpp
msgid "Run Mode:"
@@ -10625,11 +10616,11 @@ msgstr "Knoop hieronder toevoegen"
#: editor/scene_tree_dock.cpp
msgid "Expand/Collapse All"
-msgstr "Alles Uitklappen/Inklappen"
+msgstr "Alles uit-/inklappen"
#: editor/scene_tree_dock.cpp
msgid "Change Type"
-msgstr "Verander het type"
+msgstr "Type veranderen"
#: editor/scene_tree_dock.cpp
msgid "Reparent to New Node"
@@ -10740,7 +10731,7 @@ msgid ""
"Node is locked.\n"
"Click to unlock it."
msgstr ""
-"Knooppund vergrendeld.\n"
+"Knoop is vergrendeld.\n"
"Klik om te ontgrendelen."
#: editor/scene_tree_editor.cpp
@@ -12682,6 +12673,15 @@ msgstr "Varyings kunnen alleen worden toegewezenin vertex functies."
msgid "Constants cannot be modified."
msgstr "Constanten kunnen niet worden aangepast."
+#~ msgid ""
+#~ "There are currently no tutorials for this class, you can [color=$color]"
+#~ "[url=$url]contribute one[/url][/color] or [color=$color][url="
+#~ "$url2]request one[/url][/color]."
+#~ msgstr ""
+#~ "Er is momenteel geen handleiding voor deze methode. Help ons alsjeblieft "
+#~ "door [color=$color][url=$url]een toe te voegen[/url][/color] of [color="
+#~ "$color][url=$url2]een aan te vragen[/url][/color]."
+
#~ msgid "enum "
#~ msgstr "enum "
diff --git a/editor/translations/or.po b/editor/translations/or.po
index ce0cb50f1b..5cddf8dee7 100644
--- a/editor/translations/or.po
+++ b/editor/translations/or.po
@@ -1892,13 +1892,6 @@ msgid "Online Tutorials"
msgstr ""
#: editor/editor_help.cpp
-msgid ""
-"There are currently no tutorials for this class, you can [color=$color][url="
-"$url]contribute one[/url][/color] or [color=$color][url=$url2]request one[/"
-"url][/color]."
-msgstr ""
-
-#: editor/editor_help.cpp
msgid "Properties"
msgstr ""
@@ -4359,7 +4352,6 @@ msgid "Animation Tools"
msgstr ""
#: editor/plugins/animation_player_editor_plugin.cpp
-#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Animation"
msgstr ""
@@ -5402,6 +5394,10 @@ msgid "Auto Insert Key"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Animation Key and Pose Options"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Insert Key (Existing Tracks)"
msgstr ""
@@ -5682,7 +5678,6 @@ msgid "No mesh to debug."
msgstr ""
#: editor/plugins/mesh_instance_editor_plugin.cpp
-#: editor/plugins/sprite_editor_plugin.cpp
msgid "Model has no UV in this layer"
msgstr ""
diff --git a/editor/translations/pl.po b/editor/translations/pl.po
index fbb866b003..e5e5e91d65 100644
--- a/editor/translations/pl.po
+++ b/editor/translations/pl.po
@@ -42,7 +42,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Godot Engine editor\n"
"POT-Creation-Date: \n"
-"PO-Revision-Date: 2020-01-19 11:03+0000\n"
+"PO-Revision-Date: 2020-01-27 07:10+0000\n"
"Last-Translator: Tomek <kobewi4e@gmail.com>\n"
"Language-Team: Polish <https://hosted.weblate.org/projects/godot-engine/"
"godot/pl/>\n"
@@ -52,7 +52,7 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 "
"|| n%100>=20) ? 1 : 2;\n"
-"X-Generator: Weblate 3.10.2\n"
+"X-Generator: Weblate 3.11-dev\n"
#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
#: modules/visual_script/visual_script_builtin_funcs.cpp
@@ -1970,22 +1970,12 @@ msgid "Online Tutorials"
msgstr "Poradniki online"
#: editor/editor_help.cpp
-msgid ""
-"There are currently no tutorials for this class, you can [color=$color][url="
-"$url]contribute one[/url][/color] or [color=$color][url=$url2]request one[/"
-"url][/color]."
-msgstr ""
-"Obecnie nie ma żadnych samouczków dla tej klasy, możesz [color=$color][url="
-"$url]dodać jeden[/url][/color] lub [color=$color][url=$url2]poprosić o "
-"jakiÅ›[/url][/color]."
-
-#: editor/editor_help.cpp
msgid "Properties"
msgstr "Właściwości"
#: editor/editor_help.cpp
msgid "override:"
-msgstr "przeciążenie:"
+msgstr "nadpisanie:"
#: editor/editor_help.cpp
msgid "default:"
@@ -4556,7 +4546,6 @@ msgid "Animation Tools"
msgstr "Narzędzia do animacji"
#: editor/plugins/animation_player_editor_plugin.cpp
-#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Animation"
msgstr "Animacja"
@@ -5633,6 +5622,10 @@ msgid "Auto Insert Key"
msgstr "Automatycznie wstaw klucz"
#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Animation Key and Pose Options"
+msgstr "Opcje kluczy animacji i pozy"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Insert Key (Existing Tracks)"
msgstr "Wstaw klucz (istniejące ścieżki)"
@@ -5915,7 +5908,6 @@ msgid "No mesh to debug."
msgstr "Brak siatki do debugowania."
#: editor/plugins/mesh_instance_editor_plugin.cpp
-#: editor/plugins/sprite_editor_plugin.cpp
msgid "Model has no UV in this layer"
msgstr "Model nie posiada UV w tej warstwie"
@@ -7303,7 +7295,7 @@ msgstr "PodglÄ…d kinowy"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Not available when using the GLES2 renderer."
-msgstr ""
+msgstr "Niedostępne dla renderera GLES2."
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Freelook Left"
@@ -8015,8 +8007,8 @@ msgid ""
"Shift+LMB: Line Draw\n"
"Shift+Ctrl+LMB: Rectangle Paint"
msgstr ""
-"Shift+PPM: Rysowanie linii\n"
-"Shift+Ctrl+PPM: Malowanie prostokÄ…ta"
+"Shift+LPM: Rysowanie linii\n"
+"Shift+Ctrl+LPM: Malowanie prostokÄ…ta"
#: editor/plugins/tile_map_editor_plugin.cpp
msgid "Pick Tile"
@@ -12644,6 +12636,15 @@ msgstr "Varying może być przypisane tylko w funkcji wierzchołków."
msgid "Constants cannot be modified."
msgstr "Stałe nie mogą być modyfikowane."
+#~ msgid ""
+#~ "There are currently no tutorials for this class, you can [color=$color]"
+#~ "[url=$url]contribute one[/url][/color] or [color=$color][url="
+#~ "$url2]request one[/url][/color]."
+#~ msgstr ""
+#~ "Obecnie nie ma żadnych samouczków dla tej klasy, możesz [color=$color]"
+#~ "[url=$url]dodać jeden[/url][/color] lub [color=$color][url=$url2]poprosić "
+#~ "o jakiÅ›[/url][/color]."
+
#~ msgid "enum "
#~ msgstr "enum "
diff --git a/editor/translations/pr.po b/editor/translations/pr.po
index 5ea27369e9..e77bf47b81 100644
--- a/editor/translations/pr.po
+++ b/editor/translations/pr.po
@@ -1962,13 +1962,6 @@ msgid "Online Tutorials"
msgstr ""
#: editor/editor_help.cpp
-msgid ""
-"There are currently no tutorials for this class, you can [color=$color][url="
-"$url]contribute one[/url][/color] or [color=$color][url=$url2]request one[/"
-"url][/color]."
-msgstr ""
-
-#: editor/editor_help.cpp
msgid "Properties"
msgstr ""
@@ -4513,7 +4506,6 @@ msgid "Animation Tools"
msgstr ""
#: editor/plugins/animation_player_editor_plugin.cpp
-#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Animation"
msgstr ""
@@ -5584,6 +5576,10 @@ msgid "Auto Insert Key"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Animation Key and Pose Options"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Insert Key (Existing Tracks)"
msgstr ""
@@ -5870,7 +5866,6 @@ msgid "No mesh to debug."
msgstr ""
#: editor/plugins/mesh_instance_editor_plugin.cpp
-#: editor/plugins/sprite_editor_plugin.cpp
msgid "Model has no UV in this layer"
msgstr ""
diff --git a/editor/translations/pt_BR.po b/editor/translations/pt_BR.po
index 9bbb6be911..a7d921b78e 100644
--- a/editor/translations/pt_BR.po
+++ b/editor/translations/pt_BR.po
@@ -79,12 +79,13 @@
# Gian Penna <gianfrancopen@gmail.com>, 2020.
# sribgui <sribgui@gmail.com>, 2020.
# patrickvob <patrickvob@gmail.com>, 2020.
+# Michael Leocádio <aeronmike@gmail.com>, 2020.
msgid ""
msgstr ""
"Project-Id-Version: Godot Engine editor\n"
"POT-Creation-Date: 2016-05-30\n"
-"PO-Revision-Date: 2020-01-16 22:23+0000\n"
-"Last-Translator: patrickvob <patrickvob@gmail.com>\n"
+"PO-Revision-Date: 2020-01-27 07:10+0000\n"
+"Last-Translator: Michael Leocádio <aeronmike@gmail.com>\n"
"Language-Team: Portuguese (Brazil) <https://hosted.weblate.org/projects/"
"godot-engine/godot/pt_BR/>\n"
"Language: pt_BR\n"
@@ -92,7 +93,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n > 1;\n"
-"X-Generator: Weblate 3.10.2-dev\n"
+"X-Generator: Weblate 3.11-dev\n"
#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
#: modules/visual_script/visual_script_builtin_funcs.cpp
@@ -2004,37 +2005,24 @@ msgid "Inherited by:"
msgstr "Herdado por:"
#: editor/editor_help.cpp
-#, fuzzy
msgid "Description"
-msgstr "Descrição:"
+msgstr "Descrição"
#: editor/editor_help.cpp
msgid "Online Tutorials"
msgstr "Tutoriais Online"
#: editor/editor_help.cpp
-msgid ""
-"There are currently no tutorials for this class, you can [color=$color][url="
-"$url]contribute one[/url][/color] or [color=$color][url=$url2]request one[/"
-"url][/color]."
-msgstr ""
-"Atualmente não há tutoriais para essa classe. Você pode [color=$color][url="
-"$url]contribuir criando um[/url][/color] ou [color=$color][url="
-"$url2]solicitar[/url][/color]."
-
-#: editor/editor_help.cpp
msgid "Properties"
msgstr "Propriedades"
#: editor/editor_help.cpp
-#, fuzzy
msgid "override:"
-msgstr "Sobrescreve"
+msgstr "sobrescrever:"
#: editor/editor_help.cpp
-#, fuzzy
msgid "default:"
-msgstr "Padrão"
+msgstr "padrão:"
#: editor/editor_help.cpp
msgid "Methods"
@@ -2057,9 +2045,8 @@ msgid "Property Descriptions"
msgstr "Descrições da Propriedade"
#: editor/editor_help.cpp
-#, fuzzy
msgid "(value)"
-msgstr "Valor"
+msgstr "(valor)"
#: editor/editor_help.cpp
msgid ""
@@ -4617,7 +4604,6 @@ msgid "Animation Tools"
msgstr "Ferramentas de Animação"
#: editor/plugins/animation_player_editor_plugin.cpp
-#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Animation"
msgstr "Animação"
@@ -5692,6 +5678,10 @@ msgid "Auto Insert Key"
msgstr "Inserir Chave Automaticamente"
#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Animation Key and Pose Options"
+msgstr "Opções de Chave e Pose de Animação"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Insert Key (Existing Tracks)"
msgstr "Inserir Chave (Trilhas Existentes)"
@@ -5974,7 +5964,6 @@ msgid "No mesh to debug."
msgstr "Nenhuma malha para depurar."
#: editor/plugins/mesh_instance_editor_plugin.cpp
-#: editor/plugins/sprite_editor_plugin.cpp
msgid "Model has no UV in this layer"
msgstr "Modelo não tem uma UV nesta camada"
@@ -7365,7 +7354,7 @@ msgstr "Pré-visualização Cinemática"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Not available when using the GLES2 renderer."
-msgstr ""
+msgstr "Não disponível ao usar o renderizador GLES2."
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Freelook Left"
@@ -12704,6 +12693,15 @@ msgstr "Variáveis só podem ser atribuídas na função de vértice."
msgid "Constants cannot be modified."
msgstr "Constantes não podem serem modificadas."
+#~ msgid ""
+#~ "There are currently no tutorials for this class, you can [color=$color]"
+#~ "[url=$url]contribute one[/url][/color] or [color=$color][url="
+#~ "$url2]request one[/url][/color]."
+#~ msgstr ""
+#~ "Atualmente não há tutoriais para essa classe. Você pode [color=$color]"
+#~ "[url=$url]contribuir criando um[/url][/color] ou [color=$color][url="
+#~ "$url2]solicitar[/url][/color]."
+
#~ msgid "enum "
#~ msgstr "enum "
diff --git a/editor/translations/pt_PT.po b/editor/translations/pt_PT.po
index 5c8f792b4f..d293860dec 100644
--- a/editor/translations/pt_PT.po
+++ b/editor/translations/pt_PT.po
@@ -19,7 +19,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Godot Engine editor\n"
"POT-Creation-Date: \n"
-"PO-Revision-Date: 2020-01-19 11:03+0000\n"
+"PO-Revision-Date: 2020-01-27 07:10+0000\n"
"Last-Translator: João Lopes <linux-man@hotmail.com>\n"
"Language-Team: Portuguese (Portugal) <https://hosted.weblate.org/projects/"
"godot-engine/godot/pt_PT/>\n"
@@ -28,7 +28,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Generator: Weblate 3.10.2\n"
+"X-Generator: Weblate 3.11-dev\n"
#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
#: modules/visual_script/visual_script_builtin_funcs.cpp
@@ -1953,16 +1953,6 @@ msgid "Online Tutorials"
msgstr "Tutoriais Online"
#: editor/editor_help.cpp
-msgid ""
-"There are currently no tutorials for this class, you can [color=$color][url="
-"$url]contribute one[/url][/color] or [color=$color][url=$url2]request one[/"
-"url][/color]."
-msgstr ""
-"Atualmente não existem tutoriais para esta classe, pode [color=$color][url="
-"$url]contribuir com um[/url][/color] ou [color=$color][url=$url2]solicitar "
-"um[/url][/color]."
-
-#: editor/editor_help.cpp
msgid "Properties"
msgstr "Propriedades"
@@ -4543,7 +4533,6 @@ msgid "Animation Tools"
msgstr "Ferramentas de Animação"
#: editor/plugins/animation_player_editor_plugin.cpp
-#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Animation"
msgstr "Animação"
@@ -5613,6 +5602,10 @@ msgid "Auto Insert Key"
msgstr "Inserir Chave automaticamente"
#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Animation Key and Pose Options"
+msgstr "Chave de Animação e Opções de Pose"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Insert Key (Existing Tracks)"
msgstr "Inserir Chave (Pistas existentes)"
@@ -5895,7 +5888,6 @@ msgid "No mesh to debug."
msgstr "Nenhuma malha para depurar."
#: editor/plugins/mesh_instance_editor_plugin.cpp
-#: editor/plugins/sprite_editor_plugin.cpp
msgid "Model has no UV in this layer"
msgstr "O Modelo não tem UV nesta camada"
@@ -7280,7 +7272,7 @@ msgstr "Pré-visualização Cinemática"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Not available when using the GLES2 renderer."
-msgstr ""
+msgstr "Não disponível para o renderizador GLES2."
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Freelook Left"
@@ -12608,6 +12600,15 @@ msgstr "Variações só podem ser atribuídas na função vértice."
msgid "Constants cannot be modified."
msgstr "Constantes não podem ser modificadas."
+#~ msgid ""
+#~ "There are currently no tutorials for this class, you can [color=$color]"
+#~ "[url=$url]contribute one[/url][/color] or [color=$color][url="
+#~ "$url2]request one[/url][/color]."
+#~ msgstr ""
+#~ "Atualmente não existem tutoriais para esta classe, pode [color=$color]"
+#~ "[url=$url]contribuir com um[/url][/color] ou [color=$color][url="
+#~ "$url2]solicitar um[/url][/color]."
+
#~ msgid "enum "
#~ msgstr "enum "
diff --git a/editor/translations/ro.po b/editor/translations/ro.po
index a71fc3e5f1..e73e0c1703 100644
--- a/editor/translations/ro.po
+++ b/editor/translations/ro.po
@@ -15,7 +15,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Godot Engine editor\n"
"POT-Creation-Date: \n"
-"PO-Revision-Date: 2020-01-19 13:12+0000\n"
+"PO-Revision-Date: 2020-01-23 15:05+0000\n"
"Last-Translator: Marincia Cătălin <catalinmarincia@gmail.com>\n"
"Language-Team: Romanian <https://hosted.weblate.org/projects/godot-engine/"
"godot/ro/>\n"
@@ -25,12 +25,12 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=n==1 ? 0 : (n==0 || (n%100 > 0 && n%100 < "
"20)) ? 1 : 2;\n"
-"X-Generator: Weblate 3.10.2\n"
+"X-Generator: Weblate 3.11-dev\n"
#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
#: modules/visual_script/visual_script_builtin_funcs.cpp
msgid "Invalid type argument to convert(), use TYPE_* constants."
-msgstr "Argument de tip invalid pentru convert(), folosiți constante TYPE_*"
+msgstr "Argument de tip invalid pentru convert(), folosiți constante TYPE_*."
#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
msgid "Expected a string of length 1 (a character)."
@@ -40,7 +40,7 @@ msgstr "Se așteaptă un șir de lungime 1 (un caracter)."
#: modules/mono/glue/gd_glue.cpp
#: modules/visual_script/visual_script_builtin_funcs.cpp
msgid "Not enough bytes for decoding bytes, or invalid format."
-msgstr "Bytes insuficienti pentru decodare bytes, sau format invalid"
+msgstr "Bytes insuficienti pentru decodare bytes, sau format invalid."
#: core/math/expression.cpp
msgid "Invalid input %i (not passed) in expression"
@@ -52,7 +52,7 @@ msgstr "self nu poate fi folosit deoarece instanța este nulă (nefurnizat)"
#: core/math/expression.cpp
msgid "Invalid operands to operator %s, %s and %s."
-msgstr "Operanzi invalizi la operatorii %s, %s și %s"
+msgstr "Operanzi invalizi la operatorii %s, %s și %s."
#: core/math/expression.cpp
msgid "Invalid index of type %s for base type %s"
@@ -184,11 +184,11 @@ msgstr "Anim Schimbare valoare cadre cheie"
#: editor/animation_track_editor.cpp
msgid "Anim Multi Change Call"
-msgstr "Anim executa schimbari multiple"
+msgstr "Anim Apel multi-schimbare"
#: editor/animation_track_editor.cpp
msgid "Change Animation Length"
-msgstr "Schimbă Lungimea Animației"
+msgstr "Schimbă Durata Animației"
#: editor/animation_track_editor.cpp
#: editor/plugins/sprite_frames_editor_plugin.cpp
@@ -221,16 +221,15 @@ msgstr "Oprește rularea animației"
#: editor/animation_track_editor.cpp
msgid "Animation length (frames)"
-msgstr "Lungime Animație (în frame-uri)."
+msgstr "Lungime Animație (în frame-uri)"
#: editor/animation_track_editor.cpp
msgid "Animation length (seconds)"
msgstr "Lungime Animație (în secunde)"
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "Add Track"
-msgstr "Anim Adăugați Pistă"
+msgstr "Adăugați Pistă"
#: editor/animation_track_editor.cpp
msgid "Animation Looping"
@@ -250,9 +249,8 @@ msgid "Anim Clips:"
msgstr "Secvențe Anim:"
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "Change Track Path"
-msgstr "Schimbați Valoarea Array-ului"
+msgstr "Schimbați Valoarea Pistei"
#: editor/animation_track_editor.cpp
msgid "Toggle this track on/off."
@@ -279,9 +277,8 @@ msgid "Time (s): "
msgstr "Timp (s): "
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "Toggle Track Enabled"
-msgstr "Activare mod Doppler"
+msgstr "Comută Pista Activată"
#: editor/animation_track_editor.cpp
msgid "Continuous"
@@ -399,7 +396,7 @@ msgstr "Rearanjați Autoload-urile"
#: editor/animation_track_editor.cpp
msgid "Transform tracks only apply to Spatial-based nodes."
-msgstr ""
+msgstr "Transformă pistele se aplică numai nodurile Spațial-bazate."
#: editor/animation_track_editor.cpp
msgid ""
@@ -411,7 +408,7 @@ msgstr ""
#: editor/animation_track_editor.cpp
msgid "Animation tracks can only point to AnimationPlayer nodes."
-msgstr ""
+msgstr "Pistele de animație pot direcționa numai nodurilor AnimațieJucător."
#: editor/animation_track_editor.cpp
msgid "An animation player can't animate itself, only other players."
@@ -498,9 +495,8 @@ msgid "Warning: Editing imported animation"
msgstr "Avertisment: Se editează animația încărcată"
#: editor/animation_track_editor.cpp
-#, fuzzy
msgid "Select an AnimationPlayer node to create and edit animations."
-msgstr "Selectați un Animator din Copacul Scenă să editați animații."
+msgstr "Selectați un nod Animator pentru a crea și edita animații."
#: editor/animation_track_editor.cpp
msgid "Only show tracks from nodes selected in tree."
@@ -651,9 +647,8 @@ msgid "Select All/None"
msgstr "Selectează Tot/Nimic"
#: editor/animation_track_editor_plugins.cpp
-#, fuzzy
msgid "Add Audio Track Clip"
-msgstr "Anim Adăugați Pistă"
+msgstr "Anim Adăugați Pistă Audio"
#: editor/animation_track_editor_plugins.cpp
msgid "Change Audio Track Clip Start Offset"
@@ -1360,9 +1355,8 @@ msgid "Add Bus"
msgstr "Adaugați Pistă Audio"
#: editor/editor_audio_buses.cpp
-#, fuzzy
msgid "Add a new Audio Bus to this layout."
-msgstr "Salvați Schema Pistei Audio Ca..."
+msgstr "Adăgați un nou Audio Bus acestei așezări."
#: editor/editor_audio_buses.cpp editor/editor_properties.cpp
#: editor/plugins/animation_player_editor_plugin.cpp editor/property_editor.cpp
@@ -1403,24 +1397,20 @@ msgid "Valid characters:"
msgstr "Caractere valide:"
#: editor/editor_autoload_settings.cpp
-#, fuzzy
msgid "Must not collide with an existing engine class name."
msgstr ""
-"Nume nevalid. Nu trebuie să se lovească cu un nume de clasa deja existent în "
-"motor."
+"Nume nevalid. Nu trebuie să se lovească cu un nume de clasa deja existent."
#: editor/editor_autoload_settings.cpp
-#, fuzzy
msgid "Must not collide with an existing built-in type name."
msgstr ""
-"Nume nevalid. Nu trebuie să se lovească cu un nume de tip deja existent în "
-"motor tip."
+"Nume nevalid. Nu trebuie să se lovească cu un nume de tip rezervat al "
+"motorului."
#: editor/editor_autoload_settings.cpp
-#, fuzzy
msgid "Must not collide with an existing global constant name."
msgstr ""
-"Nume nevalid. Nu trebuie să se lovească cu un nume ce constante globale."
+"Nume nevalid. Nu trebuie să se lovească cu un nume de constantă globală."
#: editor/editor_autoload_settings.cpp
msgid "Keyword cannot be used as an autoload name."
@@ -1455,7 +1445,6 @@ msgid "Rearrange Autoloads"
msgstr "Rearanjați Autoload-urile"
#: editor/editor_autoload_settings.cpp editor/script_create_dialog.cpp
-#, fuzzy
msgid "Invalid path."
msgstr "Cale nevalidă."
@@ -1513,9 +1502,8 @@ msgid "[unsaved]"
msgstr "[nesalvat]"
#: editor/editor_dir_dialog.cpp
-#, fuzzy
msgid "Please select a base directory first."
-msgstr "Vă rugăm să selectaţi mai întâi un director de baza"
+msgstr "Vă rugăm să selectaţi mai întâi un director de bază."
#: editor/editor_dir_dialog.cpp
msgid "Choose a Directory"
@@ -1578,9 +1566,8 @@ msgstr ""
#: editor/editor_export.cpp platform/android/export/export.cpp
#: platform/iphone/export/export.cpp platform/javascript/export/export.cpp
#: platform/osx/export/export.cpp platform/uwp/export/export.cpp
-#, fuzzy
msgid "Custom debug template not found."
-msgstr "Fișierul șablon nu a fost găsit:"
+msgstr "Fișierul șablon de depanare personalizat nu a fost găsit."
#: editor/editor_export.cpp platform/android/export/export.cpp
#: platform/iphone/export/export.cpp platform/javascript/export/export.cpp
@@ -1597,91 +1584,76 @@ msgid "On 32-bit exports the embedded PCK cannot be bigger than 4 GiB."
msgstr ""
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "3D Editor"
-msgstr "Editor"
+msgstr "Editor 3D"
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "Script Editor"
-msgstr "Deschide Editorul de Scripturi"
+msgstr "Editorul de Scripturi"
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "Asset Library"
-msgstr "Deschide Librăria de Asseturi"
+msgstr "Librăria de Resurse"
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "Scene Tree Editing"
-msgstr "Setările de Execuție ale Scenei"
+msgstr "Editează Arborele Scenei"
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "Import Dock"
-msgstr "Importă"
+msgstr "Importă Bară"
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "Node Dock"
-msgstr "Mod Mutare"
+msgstr "Nod Bară"
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "FileSystem and Import Docks"
-msgstr "Sistemul De Fișiere"
+msgstr "Sistemul De Fișiere și încărcare Bare"
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "Erase profile '%s'? (no undo)"
-msgstr "Înlocuiți Tot"
+msgstr "Ștergeți profilul '%s'?(ireversibil)"
#: editor/editor_feature_profile.cpp
msgid "Profile must be a valid filename and must not contain '.'"
msgstr ""
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "Profile with this name already exists."
-msgstr "Un fișier sau un director cu acest nume există deja."
+msgstr "Un profil cu acest nume există deja."
#: editor/editor_feature_profile.cpp
msgid "(Editor Disabled, Properties Disabled)"
msgstr ""
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "(Properties Disabled)"
-msgstr "Proprietăți"
+msgstr "(Proprietăți Dezactivate)"
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "(Editor Disabled)"
-msgstr "Dezactivat"
+msgstr "(Editor Dezactivat)"
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "Class Options:"
-msgstr "Descriere:"
+msgstr "Opțiuni Clasă:"
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "Enable Contextual Editor"
-msgstr "Deschide Editorul următor"
+msgstr "Activează Editorul Contextual"
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "Enabled Properties:"
-msgstr "Proprietăți"
+msgstr "Proprietăți Activate:"
#: editor/editor_feature_profile.cpp
msgid "Enabled Features:"
msgstr ""
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "Enabled Classes:"
-msgstr "Căutare Clase"
+msgstr "Clase Activate:"
#: editor/editor_feature_profile.cpp
msgid "File '%s' format is invalid, import aborted."
@@ -1694,23 +1666,20 @@ msgid ""
msgstr ""
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "Error saving profile to path: '%s'."
-msgstr "Eroare la salvarea TileSet!"
+msgstr "Eroare la salvarea profilului la calea: '%s'."
#: editor/editor_feature_profile.cpp
msgid "Unset"
msgstr ""
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "Current Profile:"
-msgstr "Versiune Curentă:"
+msgstr "Profil Curent:"
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "Make Current"
-msgstr "Curent:"
+msgstr "Faceți Curent"
#: editor/editor_feature_profile.cpp
#: editor/plugins/animation_player_editor_plugin.cpp
@@ -1728,44 +1697,36 @@ msgid "Export"
msgstr "Exportare"
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "Available Profiles:"
-msgstr "Proprietăți"
+msgstr "Profile Disponibile:"
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "Class Options"
-msgstr "Descriere"
+msgstr "Opțiuni Clase"
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "New profile name:"
-msgstr "Nume nou:"
+msgstr "Nume de profil nou:"
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "Erase Profile"
-msgstr "RMB: Șterge Punctul."
+msgstr "Ștergere Profil"
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "Godot Feature Profile"
msgstr "Administrează Șabloanele de Export"
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "Import Profile(s)"
-msgstr "%d mai multe fișiere"
+msgstr "Încarcă Profil(e)"
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "Export Profile"
-msgstr "Exportă Proiectul"
+msgstr "Exportă Profil"
#: editor/editor_feature_profile.cpp
-#, fuzzy
msgid "Manage Editor Feature Profiles"
-msgstr "Administrează Șabloanele de Export"
+msgstr "Administrează Profilele Ferestrei de Editare"
#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
msgid "Select Current Folder"
@@ -1776,7 +1737,6 @@ msgid "File Exists, Overwrite?"
msgstr "Fișierul există, suprascrieţi?"
#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
-#, fuzzy
msgid "Select This Folder"
msgstr "Selectaţi directorul curent"
@@ -1785,13 +1745,11 @@ msgid "Copy Path"
msgstr "Copiaţi Calea"
#: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp
-#, fuzzy
msgid "Open in File Manager"
-msgstr "Arătați în Administratorul de Fișiere"
+msgstr "Deschideți în Administratorul de Fișiere"
#: editor/editor_file_dialog.cpp editor/editor_node.cpp
#: editor/filesystem_dock.cpp editor/project_manager.cpp
-#, fuzzy
msgid "Show in File Manager"
msgstr "Arătați în Administratorul de Fișiere"
@@ -1876,44 +1834,36 @@ msgid "Move Favorite Down"
msgstr "Deplasați Favorit Jos"
#: editor/editor_file_dialog.cpp
-#, fuzzy
msgid "Go to previous folder."
-msgstr "Accesați Directorul Părinte"
+msgstr "Accesați Directorul Precedent."
#: editor/editor_file_dialog.cpp
-#, fuzzy
msgid "Go to next folder."
-msgstr "Accesați Directorul Părinte"
+msgstr "Mergi la următorul director."
#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
-#, fuzzy
msgid "Go to parent folder."
-msgstr "Accesați Directorul Părinte"
+msgstr "Mergi la Directorul Părinte."
#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
-#, fuzzy
msgid "Refresh files."
-msgstr "Căutare Clase"
+msgstr "Reîmprospătează filele."
#: editor/editor_file_dialog.cpp
-#, fuzzy
msgid "(Un)favorite current folder."
-msgstr "Directorul nu a putut fi creat."
+msgstr "(Șterge)Adaugă directorul curent la favorite."
#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
-#, fuzzy
msgid "Toggle the visibility of hidden files."
-msgstr "Comutați Fișiere Ascunse"
+msgstr "Comutați Vizibilitatea Fișierelor Ascunse."
#: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp
-#, fuzzy
msgid "View items as a grid of thumbnails."
-msgstr "Vizualizează articolele ca și o grilă de miniaturi"
+msgstr "Vizualizează articolele ca o grilă de miniaturi."
#: editor/editor_file_dialog.cpp editor/filesystem_dock.cpp
-#, fuzzy
msgid "View items as a list."
-msgstr "Vizualizează articolele ca și o listă"
+msgstr "Vizualizează articolele sub forma unei liste."
#: editor/editor_file_dialog.cpp scene/gui/file_dialog.cpp
msgid "Directories & Files:"
@@ -1965,24 +1915,12 @@ msgid "Inherited by:"
msgstr "MoÅŸtenit de:"
#: editor/editor_help.cpp
-#, fuzzy
msgid "Description"
-msgstr "Descriere:"
+msgstr "Descriere"
#: editor/editor_help.cpp
-#, fuzzy
msgid "Online Tutorials"
-msgstr "Tutoriale Internet:"
-
-#: editor/editor_help.cpp
-msgid ""
-"There are currently no tutorials for this class, you can [color=$color][url="
-"$url]contribute one[/url][/color] or [color=$color][url=$url2]request one[/"
-"url][/color]."
-msgstr ""
-"Nu există în prezent nici un tutorial pentru această clasă, puteţi [culoare "
-"= $color] [url = $url] contribui unul [/ URL] [/ color] sau [culoare = "
-"$color] [url = $url2] cerere unul[/ URL] [/ color]."
+msgstr "Tutoriale Online"
#: editor/editor_help.cpp
msgid "Properties"
@@ -1993,18 +1931,16 @@ msgid "override:"
msgstr ""
#: editor/editor_help.cpp
-#, fuzzy
msgid "default:"
-msgstr "Implicit"
+msgstr "implicit:"
#: editor/editor_help.cpp
msgid "Methods"
msgstr "Metode"
#: editor/editor_help.cpp
-#, fuzzy
msgid "Theme Properties"
-msgstr "Proprietăți"
+msgstr "Proprietățile Temei"
#: editor/editor_help.cpp
msgid "Enumerations"
@@ -2015,14 +1951,12 @@ msgid "Constants"
msgstr "Constante"
#: editor/editor_help.cpp
-#, fuzzy
msgid "Property Descriptions"
-msgstr "Descriere Proprietate:"
+msgstr "Descriere Proprietate"
#: editor/editor_help.cpp
-#, fuzzy
msgid "(value)"
-msgstr "Valoare:"
+msgstr "(valoare)"
#: editor/editor_help.cpp
msgid ""
@@ -2034,9 +1968,8 @@ msgstr ""
"color]!"
#: editor/editor_help.cpp
-#, fuzzy
msgid "Method Descriptions"
-msgstr "Descrierea metodei:"
+msgstr "Descrierile Metodei"
#: editor/editor_help.cpp
msgid ""
@@ -2052,83 +1985,68 @@ msgid "Search Help"
msgstr "Căutați în Ajutor"
#: editor/editor_help_search.cpp
-#, fuzzy
msgid "Case Sensitive"
-msgstr "ÃŽnchide Scena"
+msgstr "Sensibil la Majuscule"
#: editor/editor_help_search.cpp
-#, fuzzy
msgid "Show Hierarchy"
-msgstr "Arată Asistenții"
+msgstr "Arată Ierarhie"
#: editor/editor_help_search.cpp
-#, fuzzy
msgid "Display All"
-msgstr "Înlocuiți Tot"
+msgstr "Afișează Tot"
#: editor/editor_help_search.cpp
-#, fuzzy
msgid "Classes Only"
-msgstr "Clase"
+msgstr "Doar Clase"
#: editor/editor_help_search.cpp
-#, fuzzy
msgid "Methods Only"
-msgstr "Metode"
+msgstr "Doar Metode"
#: editor/editor_help_search.cpp
-#, fuzzy
msgid "Signals Only"
-msgstr "Semnale"
+msgstr "Doar Semnale"
#: editor/editor_help_search.cpp
-#, fuzzy
msgid "Constants Only"
-msgstr "Constante"
+msgstr "Doar Constante"
#: editor/editor_help_search.cpp
-#, fuzzy
msgid "Properties Only"
-msgstr "Proprietăți"
+msgstr "Doar Proprietăți"
#: editor/editor_help_search.cpp
-#, fuzzy
msgid "Theme Properties Only"
-msgstr "Proprietăți"
+msgstr "Doar Proprietăți ale Temei"
#: editor/editor_help_search.cpp
-#, fuzzy
msgid "Member Type"
-msgstr "Membri"
+msgstr "Tip Membru"
#: editor/editor_help_search.cpp
-#, fuzzy
msgid "Class"
-msgstr "Clasă:"
+msgstr "Clasă"
#: editor/editor_help_search.cpp
-#, fuzzy
msgid "Method"
-msgstr "Metode"
+msgstr "Metodă"
#: editor/editor_help_search.cpp editor/plugins/script_text_editor.cpp
-#, fuzzy
msgid "Signal"
-msgstr "Semnale"
+msgstr "Semnal"
#: editor/editor_help_search.cpp editor/plugins/theme_editor_plugin.cpp
msgid "Constant"
msgstr "Permanent"
#: editor/editor_help_search.cpp
-#, fuzzy
msgid "Property"
-msgstr "Proprietăți"
+msgstr "Proprietate"
#: editor/editor_help_search.cpp
-#, fuzzy
msgid "Theme Property"
-msgstr "Proprietăți"
+msgstr "Proprietate Temă"
#: editor/editor_inspector.cpp editor/project_settings_editor.cpp
msgid "Property:"
@@ -2147,9 +2065,8 @@ msgid "Output:"
msgstr "Afișare:"
#: editor/editor_log.cpp editor/plugins/tile_map_editor_plugin.cpp
-#, fuzzy
msgid "Copy Selection"
-msgstr "Elminați Selecția"
+msgstr "Copiază Selecția"
#: editor/editor_log.cpp editor/editor_network_profiler.cpp
#: editor/editor_profiler.cpp editor/editor_properties.cpp
@@ -2172,16 +2089,14 @@ msgstr "Oprește"
#: editor/editor_network_profiler.cpp editor/editor_profiler.cpp
#: editor/plugins/animation_state_machine_editor.cpp editor/rename_dialog.cpp
-#, fuzzy
msgid "Start"
-msgstr "Start!"
+msgstr "Start"
#: editor/editor_network_profiler.cpp
msgid "%s/s"
msgstr ""
#: editor/editor_network_profiler.cpp
-#, fuzzy
msgid "Down"
msgstr "Descarcă"
@@ -4547,9 +4462,8 @@ msgid "Audio Clips"
msgstr "Anim Adăugați Pistă"
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
-#, fuzzy
msgid "Functions"
-msgstr "Faceți Funcția"
+msgstr "Funcții"
#: editor/plugins/animation_blend_tree_editor_plugin.cpp
#: editor/plugins/animation_state_machine_editor.cpp
@@ -4686,7 +4600,6 @@ msgid "Animation Tools"
msgstr "Unelte Animație"
#: editor/plugins/animation_player_editor_plugin.cpp
-#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Animation"
msgstr "Animație"
@@ -5825,6 +5738,11 @@ msgid "Auto Insert Key"
msgstr "Anim Inserați Cheie"
#: editor/plugins/canvas_item_editor_plugin.cpp
+#, fuzzy
+msgid "Animation Key and Pose Options"
+msgstr "Lungime Animație (în secunde)"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Insert Key (Existing Tracks)"
msgstr "Inserează Notă (Melodii existente)"
@@ -6123,7 +6041,6 @@ msgid "No mesh to debug."
msgstr "Niciun mesh de depanat."
#: editor/plugins/mesh_instance_editor_plugin.cpp
-#: editor/plugins/sprite_editor_plugin.cpp
msgid "Model has no UV in this layer"
msgstr "Modelul nu are UV în acest strat"
@@ -6514,7 +6431,7 @@ msgstr "Setare poziție punct de curbă"
#: editor/plugins/path_editor_plugin.cpp
msgid "Set Curve In Position"
-msgstr "Setare poziție de intrare a curbei"
+msgstr "Setare Curbă În Poziție"
#: editor/plugins/path_editor_plugin.cpp
msgid "Set Curve Out Position"
@@ -7360,7 +7277,6 @@ msgid "Create physical bones"
msgstr "Creează un Mesh de Navigare"
#: editor/plugins/skeleton_editor_plugin.cpp
-#, fuzzy
msgid "Skeleton"
msgstr "Singleton (Unicat)"
@@ -8811,9 +8727,8 @@ msgid "Scalar"
msgstr "Dimensiune:"
#: editor/plugins/visual_shader_editor_plugin.cpp
-#, fuzzy
msgid "Vector"
-msgstr "Inspector"
+msgstr "Vector"
#: editor/plugins/visual_shader_editor_plugin.cpp
msgid "Boolean"
@@ -10371,9 +10286,8 @@ msgid "Action:"
msgstr ""
#: editor/project_settings_editor.cpp
-#, fuzzy
msgid "Action"
-msgstr "Acțiune de Mutare"
+msgstr "Acțiune"
#: editor/project_settings_editor.cpp
msgid "Deadzone"
@@ -11216,9 +11130,8 @@ msgid "Profiler"
msgstr ""
#: editor/script_editor_debugger.cpp
-#, fuzzy
msgid "Network Profiler"
-msgstr "Exportă Proiectul"
+msgstr "Analizator Network"
#: editor/script_editor_debugger.cpp
msgid "Monitor"
@@ -12813,6 +12726,15 @@ msgstr ""
msgid "Constants cannot be modified."
msgstr ""
+#~ msgid ""
+#~ "There are currently no tutorials for this class, you can [color=$color]"
+#~ "[url=$url]contribute one[/url][/color] or [color=$color][url="
+#~ "$url2]request one[/url][/color]."
+#~ msgstr ""
+#~ "Nu există în prezent nici un tutorial pentru această clasă, puteţi "
+#~ "[culoare = $color] [url = $url] contribui unul [/ URL] [/ color] sau "
+#~ "[culoare = $color] [url = $url2] cerere unul[/ URL] [/ color]."
+
#~ msgid "enum "
#~ msgstr "enum "
diff --git a/editor/translations/ru.po b/editor/translations/ru.po
index 177883732e..9c56393ae8 100644
--- a/editor/translations/ru.po
+++ b/editor/translations/ru.po
@@ -66,7 +66,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Godot Engine editor\n"
"POT-Creation-Date: \n"
-"PO-Revision-Date: 2020-01-19 11:03+0000\n"
+"PO-Revision-Date: 2020-01-27 07:10+0000\n"
"Last-Translator: Danil Alexeev <danil@alexeev.xyz>\n"
"Language-Team: Russian <https://hosted.weblate.org/projects/godot-engine/"
"godot/ru/>\n"
@@ -76,7 +76,7 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
-"X-Generator: Weblate 3.10.2\n"
+"X-Generator: Weblate 3.11-dev\n"
#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
#: modules/visual_script/visual_script_builtin_funcs.cpp
@@ -2003,16 +2003,6 @@ msgid "Online Tutorials"
msgstr "Онлайн-уроки"
#: editor/editor_help.cpp
-msgid ""
-"There are currently no tutorials for this class, you can [color=$color][url="
-"$url]contribute one[/url][/color] or [color=$color][url=$url2]request one[/"
-"url][/color]."
-msgstr ""
-"Ð’ наÑтоÑщее Ð²Ñ€ÐµÐ¼Ñ Ð¾Ñ‚ÑутÑтвуют учебники Ð´Ð»Ñ Ñтого клаÑÑа, вы можете его "
-"[color=$color][url=$url]добавить[/url][/color] или [color=$color][url="
-"$url2]запроÑить[/url][/color]."
-
-#: editor/editor_help.cpp
msgid "Properties"
msgstr "СвойÑтва"
@@ -4592,7 +4582,6 @@ msgid "Animation Tools"
msgstr "ИнÑтрументы анимации"
#: editor/plugins/animation_player_editor_plugin.cpp
-#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Animation"
msgstr "ÐнимациÑ"
@@ -5662,6 +5651,11 @@ msgid "Auto Insert Key"
msgstr "ÐвтовÑтавка ключа"
#: editor/plugins/canvas_item_editor_plugin.cpp
+#, fuzzy
+msgid "Animation Key and Pose Options"
+msgstr "Ключ анимации вÑтавлен."
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Insert Key (Existing Tracks)"
msgstr "Ð’Ñтавить ключ (ÑущеÑтвующие треки)"
@@ -5948,7 +5942,6 @@ msgid "No mesh to debug."
msgstr "Ðет полиÑетки Ð´Ð»Ñ Ð¾Ñ‚Ð»Ð°Ð´ÐºÐ¸."
#: editor/plugins/mesh_instance_editor_plugin.cpp
-#: editor/plugins/sprite_editor_plugin.cpp
msgid "Model has no UV in this layer"
msgstr "У модели нет UV в Ñтом Ñлое"
@@ -6703,7 +6696,7 @@ msgstr "Сохранить тему как..."
#: editor/plugins/script_editor_plugin.cpp
msgid "%s Class Reference"
-msgstr "%s Справка по клаÑÑу"
+msgstr "Справка по клаÑÑу %s"
#: editor/plugins/script_editor_plugin.cpp
#: editor/plugins/script_text_editor.cpp
@@ -7323,7 +7316,7 @@ msgstr "Показывать FPS"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Half Resolution"
-msgstr "Половинчатое разрешение"
+msgstr "Половинное разрешение"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Audio Listener"
@@ -7339,7 +7332,7 @@ msgstr "КинематографичеÑкий предварительный п
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Not available when using the GLES2 renderer."
-msgstr ""
+msgstr "ÐедоÑтупно при иÑпользовании рендерера GLES2."
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Freelook Left"
@@ -12694,6 +12687,15 @@ msgstr "Ð˜Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð¼Ð¾Ð³ÑƒÑ‚ быть назначены только Ð
msgid "Constants cannot be modified."
msgstr "КонÑтанты не могут быть изменены."
+#~ msgid ""
+#~ "There are currently no tutorials for this class, you can [color=$color]"
+#~ "[url=$url]contribute one[/url][/color] or [color=$color][url="
+#~ "$url2]request one[/url][/color]."
+#~ msgstr ""
+#~ "Ð’ наÑтоÑщее Ð²Ñ€ÐµÐ¼Ñ Ð¾Ñ‚ÑутÑтвуют учебники Ð´Ð»Ñ Ñтого клаÑÑа, вы можете его "
+#~ "[color=$color][url=$url]добавить[/url][/color] или [color=$color][url="
+#~ "$url2]запроÑить[/url][/color]."
+
#~ msgid "enum "
#~ msgstr "перечиÑление "
diff --git a/editor/translations/si.po b/editor/translations/si.po
index a7779c0ff9..bd57c6a782 100644
--- a/editor/translations/si.po
+++ b/editor/translations/si.po
@@ -1915,13 +1915,6 @@ msgid "Online Tutorials"
msgstr ""
#: editor/editor_help.cpp
-msgid ""
-"There are currently no tutorials for this class, you can [color=$color][url="
-"$url]contribute one[/url][/color] or [color=$color][url=$url2]request one[/"
-"url][/color]."
-msgstr ""
-
-#: editor/editor_help.cpp
msgid "Properties"
msgstr ""
@@ -4394,7 +4387,6 @@ msgid "Animation Tools"
msgstr ""
#: editor/plugins/animation_player_editor_plugin.cpp
-#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Animation"
msgstr ""
@@ -5448,6 +5440,11 @@ msgid "Auto Insert Key"
msgstr "Anim යතුරක් ඇතුලත් කරන්න"
#: editor/plugins/canvas_item_editor_plugin.cpp
+#, fuzzy
+msgid "Animation Key and Pose Options"
+msgstr "සජීවීකරණ කà·à¶½à¶º (තප්පර)"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Insert Key (Existing Tracks)"
msgstr ""
@@ -5732,7 +5729,6 @@ msgid "No mesh to debug."
msgstr ""
#: editor/plugins/mesh_instance_editor_plugin.cpp
-#: editor/plugins/sprite_editor_plugin.cpp
msgid "Model has no UV in this layer"
msgstr ""
diff --git a/editor/translations/sk.po b/editor/translations/sk.po
index 006b0bf6a6..a81d842616 100644
--- a/editor/translations/sk.po
+++ b/editor/translations/sk.po
@@ -1971,13 +1971,6 @@ msgid "Online Tutorials"
msgstr ""
#: editor/editor_help.cpp
-msgid ""
-"There are currently no tutorials for this class, you can [color=$color][url="
-"$url]contribute one[/url][/color] or [color=$color][url=$url2]request one[/"
-"url][/color]."
-msgstr ""
-
-#: editor/editor_help.cpp
msgid "Properties"
msgstr ""
@@ -4524,7 +4517,6 @@ msgid "Animation Tools"
msgstr ""
#: editor/plugins/animation_player_editor_plugin.cpp
-#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Animation"
msgstr ""
@@ -5607,6 +5599,11 @@ msgid "Auto Insert Key"
msgstr "Animácia VložiÅ¥ KľúÄ"
#: editor/plugins/canvas_item_editor_plugin.cpp
+#, fuzzy
+msgid "Animation Key and Pose Options"
+msgstr "Dĺžka Času Animácie (v sekundách)"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Insert Key (Existing Tracks)"
msgstr ""
@@ -5898,7 +5895,6 @@ msgid "No mesh to debug."
msgstr ""
#: editor/plugins/mesh_instance_editor_plugin.cpp
-#: editor/plugins/sprite_editor_plugin.cpp
msgid "Model has no UV in this layer"
msgstr ""
diff --git a/editor/translations/sl.po b/editor/translations/sl.po
index e2659207e9..6f63bb7483 100644
--- a/editor/translations/sl.po
+++ b/editor/translations/sl.po
@@ -2042,15 +2042,6 @@ msgid "Online Tutorials"
msgstr "Spletne Vaje:"
#: editor/editor_help.cpp
-msgid ""
-"There are currently no tutorials for this class, you can [color=$color][url="
-"$url]contribute one[/url][/color] or [color=$color][url=$url2]request one[/"
-"url][/color]."
-msgstr ""
-"Trenutno ni vaj za ta razred, lahko ga [color=$color][url=$url]prispevate[/"
-"url][/color] ali [color=$color][url=$url2]zahtevate enega[/url][/color]."
-
-#: editor/editor_help.cpp
msgid "Properties"
msgstr "Lastnosti"
@@ -4741,7 +4732,6 @@ msgid "Animation Tools"
msgstr "Animacijska Orodja"
#: editor/plugins/animation_player_editor_plugin.cpp
-#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Animation"
msgstr "Animacija"
@@ -5877,6 +5867,11 @@ msgid "Auto Insert Key"
msgstr "V Animacijo Vstavi KljuÄ"
#: editor/plugins/canvas_item_editor_plugin.cpp
+#, fuzzy
+msgid "Animation Key and Pose Options"
+msgstr "Dolžina animacije (v sekundah)."
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Insert Key (Existing Tracks)"
msgstr ""
@@ -6168,7 +6163,6 @@ msgid "No mesh to debug."
msgstr ""
#: editor/plugins/mesh_instance_editor_plugin.cpp
-#: editor/plugins/sprite_editor_plugin.cpp
msgid "Model has no UV in this layer"
msgstr ""
@@ -12882,6 +12876,15 @@ msgstr ""
msgid "Constants cannot be modified."
msgstr "Konstante ni možno spreminjati."
+#~ msgid ""
+#~ "There are currently no tutorials for this class, you can [color=$color]"
+#~ "[url=$url]contribute one[/url][/color] or [color=$color][url="
+#~ "$url2]request one[/url][/color]."
+#~ msgstr ""
+#~ "Trenutno ni vaj za ta razred, lahko ga [color=$color][url="
+#~ "$url]prispevate[/url][/color] ali [color=$color][url=$url2]zahtevate "
+#~ "enega[/url][/color]."
+
#~ msgid "enum "
#~ msgstr "oštevil "
diff --git a/editor/translations/sq.po b/editor/translations/sq.po
index d97ef32da2..3c55191a34 100644
--- a/editor/translations/sq.po
+++ b/editor/translations/sq.po
@@ -1976,16 +1976,6 @@ msgid "Online Tutorials"
msgstr "Tutorialet Online:"
#: editor/editor_help.cpp
-msgid ""
-"There are currently no tutorials for this class, you can [color=$color][url="
-"$url]contribute one[/url][/color] or [color=$color][url=$url2]request one[/"
-"url][/color]."
-msgstr ""
-"Nuk ka për momentin tutoriale për këtë klas, ti mund të [color=$color][url="
-"$url]contribute one[/url][/color] ose [color=$color][url=$url2]request one[/"
-"url][/color]."
-
-#: editor/editor_help.cpp
msgid "Properties"
msgstr "Vetitë"
@@ -4606,7 +4596,6 @@ msgid "Animation Tools"
msgstr ""
#: editor/plugins/animation_player_editor_plugin.cpp
-#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Animation"
msgstr ""
@@ -5671,6 +5660,11 @@ msgid "Auto Insert Key"
msgstr "Vendos Key"
#: editor/plugins/canvas_item_editor_plugin.cpp
+#, fuzzy
+msgid "Animation Key and Pose Options"
+msgstr "Kohëzgjatja e Animacionit (sekonda)"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Insert Key (Existing Tracks)"
msgstr ""
@@ -5958,7 +5952,6 @@ msgid "No mesh to debug."
msgstr ""
#: editor/plugins/mesh_instance_editor_plugin.cpp
-#: editor/plugins/sprite_editor_plugin.cpp
msgid "Model has no UV in this layer"
msgstr ""
@@ -12437,6 +12430,15 @@ msgstr ""
msgid "Constants cannot be modified."
msgstr ""
+#~ msgid ""
+#~ "There are currently no tutorials for this class, you can [color=$color]"
+#~ "[url=$url]contribute one[/url][/color] or [color=$color][url="
+#~ "$url2]request one[/url][/color]."
+#~ msgstr ""
+#~ "Nuk ka për momentin tutoriale për këtë klas, ti mund të [color=$color]"
+#~ "[url=$url]contribute one[/url][/color] ose [color=$color][url="
+#~ "$url2]request one[/url][/color]."
+
#, fuzzy
#~ msgid "Brief Description"
#~ msgstr "Përshkrim i Shkurtër:"
diff --git a/editor/translations/sr_Cyrl.po b/editor/translations/sr_Cyrl.po
index a22771c9b4..366c12b77c 100644
--- a/editor/translations/sr_Cyrl.po
+++ b/editor/translations/sr_Cyrl.po
@@ -2046,16 +2046,6 @@ msgid "Online Tutorials"
msgstr "Онлајн документација"
#: editor/editor_help.cpp
-#, fuzzy
-msgid ""
-"There are currently no tutorials for this class, you can [color=$color][url="
-"$url]contribute one[/url][/color] or [color=$color][url=$url2]request one[/"
-"url][/color]."
-msgstr ""
-"Тренутно нема опиÑа ове методе. Молимо помозите нама тако што ћете [color="
-"$color][url=$url]напиÑати једну[/url][/color]!"
-
-#: editor/editor_help.cpp
msgid "Properties"
msgstr "ОÑобине"
@@ -4766,7 +4756,6 @@ msgid "Animation Tools"
msgstr "Ðнимационе алатке"
#: editor/plugins/animation_player_editor_plugin.cpp
-#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Animation"
msgstr "Ðнимација"
@@ -5902,6 +5891,11 @@ msgid "Auto Insert Key"
msgstr "Уметни кључ"
#: editor/plugins/canvas_item_editor_plugin.cpp
+#, fuzzy
+msgid "Animation Key and Pose Options"
+msgstr "Ðнимациони кључ убачен."
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Insert Key (Existing Tracks)"
msgstr "Убаци кључ (поÑтојеће траке)"
@@ -6200,7 +6194,6 @@ msgid "No mesh to debug."
msgstr ""
#: editor/plugins/mesh_instance_editor_plugin.cpp
-#: editor/plugins/sprite_editor_plugin.cpp
msgid "Model has no UV in this layer"
msgstr ""
@@ -12988,6 +12981,15 @@ msgstr ""
msgid "Constants cannot be modified."
msgstr ""
+#, fuzzy
+#~ msgid ""
+#~ "There are currently no tutorials for this class, you can [color=$color]"
+#~ "[url=$url]contribute one[/url][/color] or [color=$color][url="
+#~ "$url2]request one[/url][/color]."
+#~ msgstr ""
+#~ "Тренутно нема опиÑа ове методе. Молимо помозите нама тако што ћете [color="
+#~ "$color][url=$url]напиÑати једну[/url][/color]!"
+
#~ msgid "enum "
#~ msgstr "enum "
diff --git a/editor/translations/sr_Latn.po b/editor/translations/sr_Latn.po
index 8a743d0ccf..e55a90f6f8 100644
--- a/editor/translations/sr_Latn.po
+++ b/editor/translations/sr_Latn.po
@@ -1927,13 +1927,6 @@ msgid "Online Tutorials"
msgstr ""
#: editor/editor_help.cpp
-msgid ""
-"There are currently no tutorials for this class, you can [color=$color][url="
-"$url]contribute one[/url][/color] or [color=$color][url=$url2]request one[/"
-"url][/color]."
-msgstr ""
-
-#: editor/editor_help.cpp
msgid "Properties"
msgstr ""
@@ -4414,7 +4407,6 @@ msgid "Animation Tools"
msgstr ""
#: editor/plugins/animation_player_editor_plugin.cpp
-#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Animation"
msgstr ""
@@ -5476,6 +5468,11 @@ msgid "Auto Insert Key"
msgstr "Animacija dodaj kljuÄ"
#: editor/plugins/canvas_item_editor_plugin.cpp
+#, fuzzy
+msgid "Animation Key and Pose Options"
+msgstr "Dužina Animacije (secunde)"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Insert Key (Existing Tracks)"
msgstr ""
@@ -5761,7 +5758,6 @@ msgid "No mesh to debug."
msgstr ""
#: editor/plugins/mesh_instance_editor_plugin.cpp
-#: editor/plugins/sprite_editor_plugin.cpp
msgid "Model has no UV in this layer"
msgstr ""
diff --git a/editor/translations/sv.po b/editor/translations/sv.po
index 390082dd3e..0da6531121 100644
--- a/editor/translations/sv.po
+++ b/editor/translations/sv.po
@@ -2032,16 +2032,6 @@ msgid "Online Tutorials"
msgstr "Dokumentation Online"
#: editor/editor_help.cpp
-#, fuzzy
-msgid ""
-"There are currently no tutorials for this class, you can [color=$color][url="
-"$url]contribute one[/url][/color] or [color=$color][url=$url2]request one[/"
-"url][/color]."
-msgstr ""
-"Det finns för närvarande ingen beskrivning för denna metod. Snälla hjälp oss "
-"genom att [color=$color][url=$url]bidra med en[/url][/color]!"
-
-#: editor/editor_help.cpp
msgid "Properties"
msgstr "Egenskaper"
@@ -4718,7 +4708,6 @@ msgid "Animation Tools"
msgstr "Animeringsverktyg"
#: editor/plugins/animation_player_editor_plugin.cpp
-#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Animation"
msgstr "Animering"
@@ -5822,6 +5811,11 @@ msgid "Auto Insert Key"
msgstr "Anim Infoga Nyckel"
#: editor/plugins/canvas_item_editor_plugin.cpp
+#, fuzzy
+msgid "Animation Key and Pose Options"
+msgstr "Animation längd (i sekunder)."
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Insert Key (Existing Tracks)"
msgstr ""
@@ -6116,7 +6110,6 @@ msgid "No mesh to debug."
msgstr ""
#: editor/plugins/mesh_instance_editor_plugin.cpp
-#: editor/plugins/sprite_editor_plugin.cpp
msgid "Model has no UV in this layer"
msgstr ""
@@ -12829,6 +12822,15 @@ msgstr ""
msgid "Constants cannot be modified."
msgstr ""
+#, fuzzy
+#~ msgid ""
+#~ "There are currently no tutorials for this class, you can [color=$color]"
+#~ "[url=$url]contribute one[/url][/color] or [color=$color][url="
+#~ "$url2]request one[/url][/color]."
+#~ msgstr ""
+#~ "Det finns för närvarande ingen beskrivning för denna metod. Snälla hjälp "
+#~ "oss genom att [color=$color][url=$url]bidra med en[/url][/color]!"
+
#~ msgid "enum "
#~ msgstr "enum "
diff --git a/editor/translations/ta.po b/editor/translations/ta.po
index d4ee4376a1..0c08e2f565 100644
--- a/editor/translations/ta.po
+++ b/editor/translations/ta.po
@@ -1917,13 +1917,6 @@ msgid "Online Tutorials"
msgstr ""
#: editor/editor_help.cpp
-msgid ""
-"There are currently no tutorials for this class, you can [color=$color][url="
-"$url]contribute one[/url][/color] or [color=$color][url=$url2]request one[/"
-"url][/color]."
-msgstr ""
-
-#: editor/editor_help.cpp
msgid "Properties"
msgstr ""
@@ -4396,7 +4389,6 @@ msgid "Animation Tools"
msgstr ""
#: editor/plugins/animation_player_editor_plugin.cpp
-#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Animation"
msgstr ""
@@ -5450,6 +5442,10 @@ msgid "Auto Insert Key"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Animation Key and Pose Options"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Insert Key (Existing Tracks)"
msgstr ""
@@ -5732,7 +5728,6 @@ msgid "No mesh to debug."
msgstr ""
#: editor/plugins/mesh_instance_editor_plugin.cpp
-#: editor/plugins/sprite_editor_plugin.cpp
msgid "Model has no UV in this layer"
msgstr ""
diff --git a/editor/translations/te.po b/editor/translations/te.po
index cc40ba3888..2efe179ce6 100644
--- a/editor/translations/te.po
+++ b/editor/translations/te.po
@@ -1894,13 +1894,6 @@ msgid "Online Tutorials"
msgstr ""
#: editor/editor_help.cpp
-msgid ""
-"There are currently no tutorials for this class, you can [color=$color][url="
-"$url]contribute one[/url][/color] or [color=$color][url=$url2]request one[/"
-"url][/color]."
-msgstr ""
-
-#: editor/editor_help.cpp
msgid "Properties"
msgstr ""
@@ -4361,7 +4354,6 @@ msgid "Animation Tools"
msgstr ""
#: editor/plugins/animation_player_editor_plugin.cpp
-#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Animation"
msgstr ""
@@ -5404,6 +5396,10 @@ msgid "Auto Insert Key"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Animation Key and Pose Options"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Insert Key (Existing Tracks)"
msgstr ""
@@ -5684,7 +5680,6 @@ msgid "No mesh to debug."
msgstr ""
#: editor/plugins/mesh_instance_editor_plugin.cpp
-#: editor/plugins/sprite_editor_plugin.cpp
msgid "Model has no UV in this layer"
msgstr ""
diff --git a/editor/translations/th.po b/editor/translations/th.po
index 58c78d82a9..73a18a006d 100644
--- a/editor/translations/th.po
+++ b/editor/translations/th.po
@@ -2044,15 +2044,6 @@ msgid "Online Tutorials"
msgstr "สอนใช้งานออนไลน์:"
#: editor/editor_help.cpp
-msgid ""
-"There are currently no tutorials for this class, you can [color=$color][url="
-"$url]contribute one[/url][/color] or [color=$color][url=$url2]request one[/"
-"url][/color]."
-msgstr ""
-"คลาสนี้ยังไม่มีà¸à¸²à¸£à¸ªà¸­à¸™à¸à¸²à¸£à¹ƒà¸Šà¹‰à¸‡à¸²à¸™ ท่านสามารถ[color=$color][url=$url]ช่วยเขียน[/url][/"
-"color] หรือ [color=$color][url=$url2]ขอให้จัดทำ[/url][/color]"
-
-#: editor/editor_help.cpp
msgid "Properties"
msgstr "คุณสมบัติ"
@@ -4689,7 +4680,6 @@ msgid "Animation Tools"
msgstr "เครื่องมือà¹à¸­à¸™à¸´à¹€à¸¡à¸Šà¸±à¸™"
#: editor/plugins/animation_player_editor_plugin.cpp
-#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Animation"
msgstr "à¹à¸­à¸™à¸´à¹€à¸¡à¸Šà¸±à¸™"
@@ -5822,6 +5812,11 @@ msgid "Auto Insert Key"
msgstr "à¹à¸—รà¸à¸„ีย์à¹à¸­à¸™à¸´à¹€à¸¡à¸Šà¸±à¸™"
#: editor/plugins/canvas_item_editor_plugin.cpp
+#, fuzzy
+msgid "Animation Key and Pose Options"
+msgstr "à¹à¸—รà¸à¸„ีย์à¹à¸­à¸™à¸´à¹€à¸¡à¸Šà¸±à¸™"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Insert Key (Existing Tracks)"
msgstr "เพิ่มคีย์ (à¹à¸—ร็à¸à¸—ี่มีอยู่à¹à¸¥à¹‰à¸§)"
@@ -6121,7 +6116,6 @@ msgid "No mesh to debug."
msgstr "ไม่มีพื้นผิวให้à¹à¸à¹‰à¹„ขจุดบà¸à¸žà¸£à¹ˆà¸­à¸‡"
#: editor/plugins/mesh_instance_editor_plugin.cpp
-#: editor/plugins/sprite_editor_plugin.cpp
msgid "Model has no UV in this layer"
msgstr "โมเดลไม่มี UV ในชั้นนี้"
@@ -12989,6 +12983,14 @@ msgstr ""
msgid "Constants cannot be modified."
msgstr ""
+#~ msgid ""
+#~ "There are currently no tutorials for this class, you can [color=$color]"
+#~ "[url=$url]contribute one[/url][/color] or [color=$color][url="
+#~ "$url2]request one[/url][/color]."
+#~ msgstr ""
+#~ "คลาสนี้ยังไม่มีà¸à¸²à¸£à¸ªà¸­à¸™à¸à¸²à¸£à¹ƒà¸Šà¹‰à¸‡à¸²à¸™ ท่านสามารถ[color=$color][url=$url]ช่วยเขียน[/url][/"
+#~ "color] หรือ [color=$color][url=$url2]ขอให้จัดทำ[/url][/color]"
+
#~ msgid "enum "
#~ msgstr "à¸à¸¥à¸¸à¹ˆà¸¡à¸„่าคงที่ "
diff --git a/editor/translations/tr.po b/editor/translations/tr.po
index 4a58570f66..192364f0c6 100644
--- a/editor/translations/tr.po
+++ b/editor/translations/tr.po
@@ -1983,16 +1983,6 @@ msgid "Online Tutorials"
msgstr "Çevrimiçi Rehberler"
#: editor/editor_help.cpp
-msgid ""
-"There are currently no tutorials for this class, you can [color=$color][url="
-"$url]contribute one[/url][/color] or [color=$color][url=$url2]request one[/"
-"url][/color]."
-msgstr ""
-"Bu metot için henüz bir rehber yok. Siz de\n"
-"[color=$color][url=$url]hazırlayabilir[/url][/color] ya da \n"
-"[color=$color][url=$url2]öneride bulunabilirsiniz[/url][/color]."
-
-#: editor/editor_help.cpp
msgid "Properties"
msgstr "Özellikler"
@@ -4578,7 +4568,6 @@ msgid "Animation Tools"
msgstr "Animasyon Araçları"
#: editor/plugins/animation_player_editor_plugin.cpp
-#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Animation"
msgstr "Animasyon"
@@ -5671,6 +5660,11 @@ msgid "Auto Insert Key"
msgstr "Otomatik Anahtar Gir"
#: editor/plugins/canvas_item_editor_plugin.cpp
+#, fuzzy
+msgid "Animation Key and Pose Options"
+msgstr "Animasyon Anahtarı Eklendi."
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Insert Key (Existing Tracks)"
msgstr "Anahtar Gir (Var Olan Ä°zler)"
@@ -5955,7 +5949,6 @@ msgid "No mesh to debug."
msgstr "Hata ayıklaöma için örüntü yok."
#: editor/plugins/mesh_instance_editor_plugin.cpp
-#: editor/plugins/sprite_editor_plugin.cpp
msgid "Model has no UV in this layer"
msgstr "Model bu katmanda UV'ye sahip deÄŸil"
@@ -12744,6 +12737,15 @@ msgstr "Değişkenler yalnızca tepe işlevinde atanabilir."
msgid "Constants cannot be modified."
msgstr "Sabit deÄŸerler deÄŸiÅŸtirilemez."
+#~ msgid ""
+#~ "There are currently no tutorials for this class, you can [color=$color]"
+#~ "[url=$url]contribute one[/url][/color] or [color=$color][url="
+#~ "$url2]request one[/url][/color]."
+#~ msgstr ""
+#~ "Bu metot için henüz bir rehber yok. Siz de\n"
+#~ "[color=$color][url=$url]hazırlayabilir[/url][/color] ya da \n"
+#~ "[color=$color][url=$url2]öneride bulunabilirsiniz[/url][/color]."
+
#~ msgid "enum "
#~ msgstr "enum… "
diff --git a/editor/translations/uk.po b/editor/translations/uk.po
index fefe38de7d..aca5040517 100644
--- a/editor/translations/uk.po
+++ b/editor/translations/uk.po
@@ -17,7 +17,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Ukrainian (Godot Engine)\n"
"POT-Creation-Date: \n"
-"PO-Revision-Date: 2020-01-19 11:04+0000\n"
+"PO-Revision-Date: 2020-01-27 07:10+0000\n"
"Last-Translator: Yuri Chornoivan <yurchor@ukr.net>\n"
"Language-Team: Ukrainian <https://hosted.weblate.org/projects/godot-engine/"
"godot/uk/>\n"
@@ -27,7 +27,7 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
-"X-Generator: Weblate 3.10.2\n"
+"X-Generator: Weblate 3.11-dev\n"
#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
#: modules/visual_script/visual_script_builtin_funcs.cpp
@@ -1958,16 +1958,6 @@ msgid "Online Tutorials"
msgstr "Підручники в інтернеті"
#: editor/editor_help.cpp
-msgid ""
-"There are currently no tutorials for this class, you can [color=$color][url="
-"$url]contribute one[/url][/color] or [color=$color][url=$url2]request one[/"
-"url][/color]."
-msgstr ""
-"ÐаÑтанов щодо цього клаÑу ще немає. Ви можете [color=$color][url="
-"$url]Ñтворити Ñ—Ñ…[/url][/color] або [color=$color][url=$url2]надіÑлати запит "
-"щодо їхнього ÑтвореннÑ[/url][/color]."
-
-#: editor/editor_help.cpp
msgid "Properties"
msgstr "ВлаÑтивоÑÑ‚Ñ–"
@@ -4554,7 +4544,6 @@ msgid "Animation Tools"
msgstr "ІнÑтрументи анімації"
#: editor/plugins/animation_player_editor_plugin.cpp
-#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Animation"
msgstr "ÐнімаціÑ"
@@ -5628,6 +5617,10 @@ msgid "Auto Insert Key"
msgstr "ÐвтовÑÑ‚Ð°Ð²Ð»ÐµÐ½Ð½Ñ ÐºÐ»ÑŽÑ‡Ð¾Ð²Ð¾Ð³Ð¾ кадру"
#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Animation Key and Pose Options"
+msgstr "Параметри ключового кадру та пози анімації"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Insert Key (Existing Tracks)"
msgstr "Ð’Ñтавити ключ (Ñ–Ñнуючі доріжки)"
@@ -5911,7 +5904,6 @@ msgid "No mesh to debug."
msgstr "Ðемає Ñітки Ð´Ð»Ñ Ð½Ð°Ð»Ð°Ð³Ð¾Ð´Ð¶ÐµÐ½Ð½Ñ."
#: editor/plugins/mesh_instance_editor_plugin.cpp
-#: editor/plugins/sprite_editor_plugin.cpp
msgid "Model has no UV in this layer"
msgstr "Модель не має UV на цьому шарі"
@@ -7304,7 +7296,7 @@ msgstr "Кінематичний переглÑд"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Not available when using the GLES2 renderer."
-msgstr ""
+msgstr "Є недоÑтупним, Ñкщо викориÑтовуєтьÑÑ Ð¾Ð±Ñ€Ð¾Ð±Ð½Ð¸Ðº GLES2."
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Freelook Left"
@@ -12666,6 +12658,15 @@ msgstr "Змінні величини можна пов'Ñзувати лише
msgid "Constants cannot be modified."
msgstr "Сталі не можна змінювати."
+#~ msgid ""
+#~ "There are currently no tutorials for this class, you can [color=$color]"
+#~ "[url=$url]contribute one[/url][/color] or [color=$color][url="
+#~ "$url2]request one[/url][/color]."
+#~ msgstr ""
+#~ "ÐаÑтанов щодо цього клаÑу ще немає. Ви можете [color=$color][url="
+#~ "$url]Ñтворити Ñ—Ñ…[/url][/color] або [color=$color][url=$url2]надіÑлати "
+#~ "запит щодо їхнього ÑтвореннÑ[/url][/color]."
+
#~ msgid "enum "
#~ msgstr "перелічуваний "
diff --git a/editor/translations/ur_PK.po b/editor/translations/ur_PK.po
index 06d553b158..5cbc202847 100644
--- a/editor/translations/ur_PK.po
+++ b/editor/translations/ur_PK.po
@@ -1933,13 +1933,6 @@ msgid "Online Tutorials"
msgstr ""
#: editor/editor_help.cpp
-msgid ""
-"There are currently no tutorials for this class, you can [color=$color][url="
-"$url]contribute one[/url][/color] or [color=$color][url=$url2]request one[/"
-"url][/color]."
-msgstr ""
-
-#: editor/editor_help.cpp
msgid "Properties"
msgstr ""
@@ -4453,7 +4446,6 @@ msgid "Animation Tools"
msgstr ""
#: editor/plugins/animation_player_editor_plugin.cpp
-#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Animation"
msgstr ""
@@ -5524,6 +5516,10 @@ msgid "Auto Insert Key"
msgstr ""
#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Animation Key and Pose Options"
+msgstr ""
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Insert Key (Existing Tracks)"
msgstr ""
@@ -5810,7 +5806,6 @@ msgid "No mesh to debug."
msgstr ""
#: editor/plugins/mesh_instance_editor_plugin.cpp
-#: editor/plugins/sprite_editor_plugin.cpp
msgid "Model has no UV in this layer"
msgstr ""
diff --git a/editor/translations/vi.po b/editor/translations/vi.po
index e670590750..d6f5114a98 100644
--- a/editor/translations/vi.po
+++ b/editor/translations/vi.po
@@ -1956,13 +1956,6 @@ msgid "Online Tutorials"
msgstr "Hướng dẫn trực tuyến:"
#: editor/editor_help.cpp
-msgid ""
-"There are currently no tutorials for this class, you can [color=$color][url="
-"$url]contribute one[/url][/color] or [color=$color][url=$url2]request one[/"
-"url][/color]."
-msgstr ""
-
-#: editor/editor_help.cpp
msgid "Properties"
msgstr "Thuộc tính"
@@ -4521,7 +4514,6 @@ msgid "Animation Tools"
msgstr "Công cụ Hoạt ảnh"
#: editor/plugins/animation_player_editor_plugin.cpp
-#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Animation"
msgstr "Hoạt ảnh"
@@ -5607,6 +5599,11 @@ msgid "Auto Insert Key"
msgstr "Chèn Key Anim"
#: editor/plugins/canvas_item_editor_plugin.cpp
+#, fuzzy
+msgid "Animation Key and Pose Options"
+msgstr "Äá»™ dài hoạt ảnh (giây)"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Insert Key (Existing Tracks)"
msgstr ""
@@ -5893,7 +5890,6 @@ msgid "No mesh to debug."
msgstr ""
#: editor/plugins/mesh_instance_editor_plugin.cpp
-#: editor/plugins/sprite_editor_plugin.cpp
msgid "Model has no UV in this layer"
msgstr ""
diff --git a/editor/translations/zh_CN.po b/editor/translations/zh_CN.po
index afec9c9187..67f2738f86 100644
--- a/editor/translations/zh_CN.po
+++ b/editor/translations/zh_CN.po
@@ -63,7 +63,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Chinese (Simplified) (Godot Engine)\n"
"POT-Creation-Date: 2018-01-20 12:15+0200\n"
-"PO-Revision-Date: 2020-01-19 11:03+0000\n"
+"PO-Revision-Date: 2020-01-27 07:10+0000\n"
"Last-Translator: Haoyu Qiu <timothyqiu32@gmail.com>\n"
"Language-Team: Chinese (Simplified) <https://hosted.weblate.org/projects/"
"godot-engine/godot/zh_Hans/>\n"
@@ -72,7 +72,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
-"X-Generator: Weblate 3.10.2\n"
+"X-Generator: Weblate 3.11-dev\n"
#: core/math/expression.cpp modules/gdscript/gdscript_functions.cpp
#: modules/visual_script/visual_script_builtin_funcs.cpp
@@ -1969,15 +1969,6 @@ msgid "Online Tutorials"
msgstr "在线教程"
#: editor/editor_help.cpp
-msgid ""
-"There are currently no tutorials for this class, you can [color=$color][url="
-"$url]contribute one[/url][/color] or [color=$color][url=$url2]request one[/"
-"url][/color]."
-msgstr ""
-"当å‰æ²¡æœ‰æ­¤ç±»åž‹çš„教程,你å¯ä»¥[color=$color][url=$url]贡献一个[/url][/color]或"
-"[color=$color][url=$url2]请求一个[/url][/color]。"
-
-#: editor/editor_help.cpp
msgid "Properties"
msgstr "属性"
@@ -4491,7 +4482,6 @@ msgid "Animation Tools"
msgstr "动画工具"
#: editor/plugins/animation_player_editor_plugin.cpp
-#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Animation"
msgstr "动画"
@@ -5549,6 +5539,10 @@ msgid "Auto Insert Key"
msgstr "自动æ’入关键帧"
#: editor/plugins/canvas_item_editor_plugin.cpp
+msgid "Animation Key and Pose Options"
+msgstr "动画关键帧与姿势选项"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Insert Key (Existing Tracks)"
msgstr "æ’入关键帧(已有轨é“)"
@@ -5831,7 +5825,6 @@ msgid "No mesh to debug."
msgstr "没有è¦è°ƒè¯•çš„网格。"
#: editor/plugins/mesh_instance_editor_plugin.cpp
-#: editor/plugins/sprite_editor_plugin.cpp
msgid "Model has no UV in this layer"
msgstr "模型在此层上没有UV图"
@@ -7208,7 +7201,7 @@ msgstr "效果预览"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Not available when using the GLES2 renderer."
-msgstr ""
+msgstr "使用GLES2渲染器时ä¸å¯ç”¨ã€‚"
#: editor/plugins/spatial_editor_plugin.cpp
msgid "Freelook Left"
@@ -12378,6 +12371,14 @@ msgstr "å˜é‡åªèƒ½åœ¨é¡¶ç‚¹å‡½æ•°ä¸­æŒ‡å®šã€‚"
msgid "Constants cannot be modified."
msgstr "ä¸å…许修改常é‡ã€‚"
+#~ msgid ""
+#~ "There are currently no tutorials for this class, you can [color=$color]"
+#~ "[url=$url]contribute one[/url][/color] or [color=$color][url="
+#~ "$url2]request one[/url][/color]."
+#~ msgstr ""
+#~ "当å‰æ²¡æœ‰æ­¤ç±»åž‹çš„教程,你å¯ä»¥[color=$color][url=$url]贡献一个[/url][/color]"
+#~ "或[color=$color][url=$url2]请求一个[/url][/color]。"
+
#~ msgid "enum "
#~ msgstr "枚举 "
diff --git a/editor/translations/zh_HK.po b/editor/translations/zh_HK.po
index 657567e0f6..e57c2c0303 100644
--- a/editor/translations/zh_HK.po
+++ b/editor/translations/zh_HK.po
@@ -2069,13 +2069,6 @@ msgid "Online Tutorials"
msgstr "關閉場景"
#: editor/editor_help.cpp
-msgid ""
-"There are currently no tutorials for this class, you can [color=$color][url="
-"$url]contribute one[/url][/color] or [color=$color][url=$url2]request one[/"
-"url][/color]."
-msgstr ""
-
-#: editor/editor_help.cpp
msgid "Properties"
msgstr ""
@@ -4763,7 +4756,6 @@ msgid "Animation Tools"
msgstr ""
#: editor/plugins/animation_player_editor_plugin.cpp
-#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Animation"
msgstr ""
@@ -5874,6 +5866,11 @@ msgid "Auto Insert Key"
msgstr "å‹•æ™æ’入關éµå¹€ï¼Ÿ"
#: editor/plugins/canvas_item_editor_plugin.cpp
+#, fuzzy
+msgid "Animation Key and Pose Options"
+msgstr "時長(秒)。"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Insert Key (Existing Tracks)"
msgstr ""
@@ -6165,7 +6162,6 @@ msgid "No mesh to debug."
msgstr ""
#: editor/plugins/mesh_instance_editor_plugin.cpp
-#: editor/plugins/sprite_editor_plugin.cpp
msgid "Model has no UV in this layer"
msgstr ""
diff --git a/editor/translations/zh_TW.po b/editor/translations/zh_TW.po
index 429406e820..6dfb9304f9 100644
--- a/editor/translations/zh_TW.po
+++ b/editor/translations/zh_TW.po
@@ -2069,15 +2069,6 @@ msgid "Online Tutorials"
msgstr "線上教學:"
#: editor/editor_help.cpp
-msgid ""
-"There are currently no tutorials for this class, you can [color=$color][url="
-"$url]contribute one[/url][/color] or [color=$color][url=$url2]request one[/"
-"url][/color]."
-msgstr ""
-"ç›®å‰æ²’有這個 class 的教學,你å¯ä»¥[color=$color][url=$url]è²¢ç»ä¸€å€‹[/url][/"
-"color]或[color=$color][url=$url2]è¦æ±‚一個[/url][/color]。"
-
-#: editor/editor_help.cpp
msgid "Properties"
msgstr "性質"
@@ -4730,7 +4721,6 @@ msgid "Animation Tools"
msgstr "動畫工具"
#: editor/plugins/animation_player_editor_plugin.cpp
-#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Animation"
msgstr "å‹•ç•«"
@@ -5856,6 +5846,11 @@ msgid "Auto Insert Key"
msgstr "新增關éµç•«æ ¼"
#: editor/plugins/canvas_item_editor_plugin.cpp
+#, fuzzy
+msgid "Animation Key and Pose Options"
+msgstr "動畫長度(秒)"
+
+#: editor/plugins/canvas_item_editor_plugin.cpp
msgid "Insert Key (Existing Tracks)"
msgstr "æ’入幀 (ç¾æœ‰è»Œé“)"
@@ -6151,7 +6146,6 @@ msgid "No mesh to debug."
msgstr "沒有è¦èª¿è©¦çš„網格。"
#: editor/plugins/mesh_instance_editor_plugin.cpp
-#: editor/plugins/sprite_editor_plugin.cpp
msgid "Model has no UV in this layer"
msgstr ""
@@ -12910,6 +12904,14 @@ msgstr ""
msgid "Constants cannot be modified."
msgstr ""
+#~ msgid ""
+#~ "There are currently no tutorials for this class, you can [color=$color]"
+#~ "[url=$url]contribute one[/url][/color] or [color=$color][url="
+#~ "$url2]request one[/url][/color]."
+#~ msgstr ""
+#~ "ç›®å‰æ²’有這個 class 的教學,你å¯ä»¥[color=$color][url=$url]è²¢ç»ä¸€å€‹[/url][/"
+#~ "color]或[color=$color][url=$url2]è¦æ±‚一個[/url][/color]。"
+
#~ msgid "enum "
#~ msgstr "枚舉 "
diff --git a/main/gamecontrollerdb.txt b/main/gamecontrollerdb.txt
index 9f7cd83641..90d309c1c8 100644
--- a/main/gamecontrollerdb.txt
+++ b/main/gamecontrollerdb.txt
@@ -32,8 +32,8 @@
03000000c82d00006228000000000000,8BitDo SN30 GP,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b2,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a5,start:b11,x:b4,y:b3,platform:Windows,
03000000c82d00000160000000000000,8BitDo SN30 Pro,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b2,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a5,start:b11,x:b4,y:b3,platform:Windows,
03000000c82d00000161000000000000,8BitDo SN30 Pro,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b2,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a5,start:b11,x:b4,y:b3,platform:Windows,
-03000000c82d00000260000000000000,8BitDo SN30 Pro+,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Windows,
-03000000c82d00000261000000000000,8BitDo SN30 Pro+,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b2,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a5,start:b11,x:b4,y:b3,platform:Windows,
+03000000c82d00000260000000000000,8BitDo SN30 Pro+,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b2,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Windows,
+03000000c82d00000261000000000000,8BitDo SN30 Pro+,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b2,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Windows,
03000000c82d00000031000000000000,8BitDo Wireless Adapter,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b4,y:b3,platform:Windows,
03000000a00500003232000000000000,8Bitdo Zero GamePad,a:b0,b:b1,back:b10,dpdown:+a2,dpleft:-a0,dpright:+a0,dpup:-a2,leftshoulder:b6,rightshoulder:b7,start:b11,x:b3,y:b4,platform:Windows,
030000008f0e00001200000000000000,Acme GA-02,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b5,leftx:a0,lefty:a1,rightshoulder:b6,rightstick:b11,righttrigger:b7,rightx:a3,righty:a2,start:b9,x:b2,y:b3,platform:Windows,
@@ -310,6 +310,7 @@
03000000786901006e70000000000000,XInput Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b10,leftshoulder:b4,leftstick:b8,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows,
xinput,XInput Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b10,leftshoulder:b4,leftstick:b8,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows,
03000000790000004f18000000000000,ZD-T Android,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b3,y:b4,platform:Windows,
+03000000c82d00003032000000000000,8BitDo Zero 2,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftx:a0,lefty:a1,rightshoulder:b7,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Windows,
# Mac OS X
030000008f0e00000300000009010000,2In1 USB Joystick,+leftx:h0.2,+lefty:h0.4,-leftx:h0.8,-lefty:h0.1,a:b2,b:b1,back:b8,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Mac OS X,
@@ -319,9 +320,10 @@ xinput,XInput Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,
03000000c82d00000190000001000000,8Bitdo NES30 Pro,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Mac OS X,
03000000102800000900000000000000,8Bitdo SFC30 GamePad Joystick,a:b1,b:b0,back:b10,leftshoulder:b6,leftx:a0,lefty:a1,rightshoulder:b7,start:b11,x:b4,y:b3,platform:Mac OS X,
03000000c82d00000161000000010000,8BitDo SN30 Pro,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b2,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a5,start:b11,x:b4,y:b3,platform:Mac OS X,
-03000000c82d00000260000001000000,8BitDo SN30 Pro+,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b2,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b4,y:b3,platform:Mac OS X,
-03000000c82d00000261000000010000,8BitDo SN30 Pro+,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b2,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b4,y:b3,platform:Mac OS X,
+03000000c82d00000260000001000000,8BitDo SN30 Pro+,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b2,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Mac OS X,
+03000000c82d00000261000000010000,8BitDo SN30 Pro+,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b2,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Mac OS X,
03000000c82d00000031000001000000,8BitDo Wireless Adapter,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Mac OS X,
+03000000c82d00003032000000010000,8BitDo Zero 2,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftx:a0,lefty:a1,rightshoulder:b7,rightx:a2,righty:a31,start:b11,x:b4,y:b3,platform:Mac OS X,
03000000a00500003232000008010000,8Bitdo Zero GamePad,a:b0,b:b1,back:b10,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b6,rightshoulder:b7,start:b11,x:b3,y:b4,platform:Mac OS X,
03000000a00500003232000009010000,8Bitdo Zero GamePad,a:b0,b:b1,back:b10,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b6,rightshoulder:b7,start:b11,x:b3,y:b4,platform:Mac OS X,
03000000050b00000045000031000000,ASUS Gamepad,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b7,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b8,righttrigger:a4,rightx:a2,righty:a3,start:b9,x:b2,y:b3,platform:Mac OS X,
@@ -719,6 +721,7 @@ xinput,XInput Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,
05000000172700004431000029010000,XiaoMi Game Controller,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b20,leftshoulder:b6,leftstick:b13,lefttrigger:a7,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a6,rightx:a2,righty:a5,start:b11,x:b3,y:b4,platform:Linux,
03000000c0160000e105000001010000,Xin-Mo Xin-Mo Dual Arcade,a:b4,b:b3,back:b6,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b9,leftshoulder:b2,leftx:a0,lefty:a1,rightshoulder:b5,start:b7,x:b1,y:b0,platform:Linux,
xinput,XInput Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux,
+05000000c82d00003032000000010000,8BitDo Zero 2,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftx:a0,lefty:a1,rightshoulder:b7,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Linux,
03000000120c0000100e000011010000,ZEROPLUS P4 Gamepad,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Linux,
# Android
diff --git a/main/main.cpp b/main/main.cpp
index 0ff392978a..3cc809b813 100644
--- a/main/main.cpp
+++ b/main/main.cpp
@@ -854,7 +854,7 @@ Error Main::setup(const char *execpath, int argc, char *argv[], bool p_second_ph
#ifdef TOOLS_ENABLED
editor = false;
#else
- String error_msg = "Error: Could not load game data at path '" + project_path + "'. Is the .pck file missing?\n";
+ const String error_msg = "Error: Couldn't load project data at path \"" + project_path + "\". Is the .pck file missing?\nIf you've renamed the executable, the associated .pck file should also be renamed to match the executable's name (without the extension).\n";
OS::get_singleton()->print("%s", error_msg.ascii().get_data());
OS::get_singleton()->alert(error_msg);
@@ -1900,6 +1900,8 @@ bool Main::start() {
ProgressDialog *progress_dialog = memnew(ProgressDialog);
pmanager->add_child(progress_dialog);
sml->get_root()->add_child(pmanager);
+ // Speed up rendering slightly by disabling 3D features while in the project manager.
+ sml->get_root()->set_usage(Viewport::USAGE_2D_NO_SAMPLING);
OS::get_singleton()->set_context(OS::CONTEXT_PROJECTMAN);
project_manager = true;
}
diff --git a/misc/dist/linux/godot.6 b/misc/dist/linux/godot.6
index 4860c7b5a8..00d19c5178 100644
--- a/misc/dist/linux/godot.6
+++ b/misc/dist/linux/godot.6
@@ -1,4 +1,4 @@
-.TH GODOT "6" "March 2019" "godot 3.2" "Games"
+.TH GODOT "6" "January 2020" "godot 4.0" "Games"
.SH NAME
godot \- multi\-platform 2D and 3D game engine with a feature\-rich editor
.SH SYNOPSIS
@@ -85,6 +85,12 @@ Force low\-DPI mode (macOS and Windows only).
.TP
\fB\-\-no\-window\fR
Disable window creation (Windows only). Useful together with \fB\-\-script\fR.
+.TP
+\fB\-\-enable\-vsync\-via\-compositor\fR
+When vsync is enabled, vsync via the OS' window compositor (Windows only).
+.TP
+\fB\-\-disable\-vsync\-via\-compositor\fR
+Disable vsync via the OS' window compositor (Windows only).
.SS "Debug options:"
.TP
\fB\-d\fR, \fB\-\-debug\fR
@@ -130,11 +136,16 @@ Run a script.
\fB\-\-check\-only\fR
Only parse for errors and quit (use with --script).
.TP
-\fB\-\-export\fR <target>
-Export the project using the given export target. Export only main pack if path ends with .pck or .zip.
+\fB\-\-export\fR <preset> <path>
+Export the project using the given preset and matching release template. The preset name should match one defined in export_presets.cfg.
+.br
+<path> should be absolute or relative to the project directory, and include the filename for the binary (e.g. 'builds/game.exe'). The target directory should exist.
+.TP
+\fB\-\-export\-debug\fR <preset> <path>
+Same as \-\-export, but using the debug template.
.TP
-\fB\-\-export\-debug\fR <target>
-Like \-\-export, but use debug template.
+\fB\-\-export\-pack\fR <preset> <path>
+Same as \-\-export, but only export the game pack for the given preset. The <path> extension determines whether it will be in PCK or ZIP format.
.TP
\fB\-\-doctool\fR <path>
Dump the engine API reference to the given <path> in XML format, merging if existing files are found.
@@ -143,7 +154,7 @@ Dump the engine API reference to the given <path> in XML format, merging if exis
Disallow dumping the base types (used with \fB\-\-doctool\fR).
.TP
\fB\-\-build\-solutions\fR
-Build the scripting solutions (e.g. for C# projects).
+Build the scripting solutions (e.g. for C# projects). Implies \-\-editor and requires a valid project to edit.
.TP
\fB\-\-gdnative\-generate\-json\-api\fR
Generate JSON dump of the Godot API for GDNative bindings.
@@ -179,5 +190,5 @@ Godot Engine is a free and open source project and welcomes any kind of
contributions. In particular, you can report issues or make suggestions on
Godot's issue tracker at \fIhttps://github.com/godotengine/godot/issues\fR.
.SH AUTHOR
-Man page written by Rémi Verschelde <akien@godotengine.org> on behalf of the
+Man page written by Rémi Verschelde <remi@godotengine.org> on behalf of the
Godot Engine development team.
diff --git a/misc/dist/linux/org.godotengine.Godot.appdata.xml b/misc/dist/linux/org.godotengine.Godot.appdata.xml
index 45a4bbdd9e..2b30036006 100644
--- a/misc/dist/linux/org.godotengine.Godot.appdata.xml
+++ b/misc/dist/linux/org.godotengine.Godot.appdata.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!-- Copyright 2017-2020 Rémi Verschelde <akien@godotengine.org> -->
+<!-- Copyright 2017-2020 Rémi Verschelde <remi@godotengine.org> -->
<component type="desktop">
<id>org.godotengine.Godot</id>
<metadata_license>CC0-1.0</metadata_license>
diff --git a/misc/dist/osx_tools.app/Contents/Info.plist b/misc/dist/osx_tools.app/Contents/Info.plist
index 46d2d4cb6e..46550ba6c7 100755
--- a/misc/dist/osx_tools.app/Contents/Info.plist
+++ b/misc/dist/osx_tools.app/Contents/Info.plist
@@ -19,11 +19,11 @@
<key>CFBundlePackageType</key>
<string>APPL</string>
<key>CFBundleShortVersionString</key>
- <string>3.2</string>
+ <string>4.0</string>
<key>CFBundleSignature</key>
<string>godot</string>
<key>CFBundleVersion</key>
- <string>3.2</string>
+ <string>4.0</string>
<key>NSMicrophoneUsageDescription</key>
<string>Microphone access is required to capture audio.</string>
<key>NSCameraUsageDescription</key>
diff --git a/misc/dist/shell/godot.bash-completion b/misc/dist/shell/godot.bash-completion
new file mode 100644
index 0000000000..714b6758e3
--- /dev/null
+++ b/misc/dist/shell/godot.bash-completion
@@ -0,0 +1,124 @@
+#!/usr/bin/env bash
+
+# Bash completion for the Godot editor
+# To use it, install this file in `/etc/bash_completion.d` then restart your shell.
+# You can also `source` this file directly in your shell startup file.
+#
+# Copyright (c) 2007-2020 Juan Linietsky, Ariel Manzur.
+# Copyright (c) 2014-2020 Godot Engine contributors (cf. AUTHORS.md).
+#
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to deal
+# in the Software without restriction, including without limitation the rights
+# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+# copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice shall be included in all
+# copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+# SOFTWARE.
+
+_complete_godot_options() {
+ # Since Bash doesn't support option descriptions in autocompletion,
+ # only display long options to be more descriptive.
+ # shellcheck disable=SC2207
+ COMPREPLY=($(compgen -W " \
+--help
+--version
+--verbose
+--quiet
+--editor
+--project-manager
+--quit
+--language
+--path
+--upwards
+--main-pack
+--render-thread
+--remote-fs
+--remote-fs-password
+--audio-driver
+--video-driver
+--fullscreen
+--maximized
+--windowed
+--always-on-top
+--resolution
+--position
+--low-dpi
+--no-window
+--enable-vsync-via-compositor
+--disable-vsync-via-compositor
+--debug
+--breakpoints
+--profiling
+--remote-debug
+--debug-collisions
+--debug-navigation
+--frame-delay
+--time-scale
+--disable-render-loop
+--disable-crash-handler
+--fixed-fps
+--print-fps
+--script
+--check-only
+--export
+--export-debug
+--export-pack
+--doctool
+--no-docbase
+--build-solutions
+--gdnative-generate-json-api
+--test
+" -- "$1"))
+}
+
+_complete_godot_bash() {
+ local cur="${COMP_WORDS[$COMP_CWORD]}" prev
+
+ # Complete options or the positional argument.
+ if [[ $cur == -* ]]; then
+ _complete_godot_options "$cur"
+ else
+ local IFS=$'\n\t'
+ # shellcheck disable=SC2207
+ COMPREPLY=($(compgen -f -X "!*.@(scn|tscn|escn|godot)" -- "$cur"))
+ fi
+
+ # If the array is accessed out of bounds (which will happen for the first argument),
+ # `$prev` will be an empty string and won't match any of the conditions below.
+ prev="${COMP_WORDS[$((COMP_CWORD-1))]}"
+
+ # Complete option values.
+ if [[ $prev == "--render-thread" ]]; then
+ local IFS=$' \n\t'
+ # shellcheck disable=SC2207
+ COMPREPLY=($(compgen -W "unsafe safe separate" -- "$cur"))
+ elif [[ $prev == "--video-driver" ]]; then
+ local IFS=$' \n\t'
+ # shellcheck disable=SC2207
+ COMPREPLY=($(compgen -W "GLES3 GLES2" -- "$cur"))
+ elif [[ $prev == "--path" || $prev == "--doctool" ]]; then
+ local IFS=$'\n\t'
+ # shellcheck disable=SC2207
+ COMPREPLY=($(compgen -d -- "$cur"))
+ elif [[ $prev == "--main-pack" ]]; then
+ local IFS=$'\n\t'
+ # shellcheck disable=SC2207
+ COMPREPLY=($(compgen -f -X "!*.@(pck|zip)" -- "$cur"))
+ elif [[ $prev == "-s" || $prev == "--script" ]]; then
+ local IFS=$'\n\t'
+ # shellcheck disable=SC2207
+ COMPREPLY=($(compgen -f -X "!*.gd" -- "$cur"))
+ fi
+}
+
+complete -o filenames -F _complete_godot_bash godot
diff --git a/modules/assimp/editor_scene_importer_assimp.cpp b/modules/assimp/editor_scene_importer_assimp.cpp
index 726f4c1ed0..a547dabb60 100644
--- a/modules/assimp/editor_scene_importer_assimp.cpp
+++ b/modules/assimp/editor_scene_importer_assimp.cpp
@@ -188,22 +188,22 @@ template <>
struct EditorSceneImporterAssetImportInterpolate<Quat> {
Quat lerp(const Quat &a, const Quat &b, float c) const {
- ERR_FAIL_COND_V(!a.is_normalized(), Quat());
- ERR_FAIL_COND_V(!b.is_normalized(), Quat());
+ ERR_FAIL_COND_V_MSG(!a.is_normalized(), Quat(), "The quaternion \"a\" must be normalized.");
+ ERR_FAIL_COND_V_MSG(!b.is_normalized(), Quat(), "The quaternion \"b\" must be normalized.");
return a.slerp(b, c).normalized();
}
Quat catmull_rom(const Quat &p0, const Quat &p1, const Quat &p2, const Quat &p3, float c) {
- ERR_FAIL_COND_V(!p1.is_normalized(), Quat());
- ERR_FAIL_COND_V(!p2.is_normalized(), Quat());
+ ERR_FAIL_COND_V_MSG(!p1.is_normalized(), Quat(), "The quaternion \"p1\" must be normalized.");
+ ERR_FAIL_COND_V_MSG(!p2.is_normalized(), Quat(), "The quaternion \"p2\" must be normalized.");
return p1.slerp(p2, c).normalized();
}
Quat bezier(Quat start, Quat control_1, Quat control_2, Quat end, float t) {
- ERR_FAIL_COND_V(!start.is_normalized(), Quat());
- ERR_FAIL_COND_V(!end.is_normalized(), Quat());
+ ERR_FAIL_COND_V_MSG(!start.is_normalized(), Quat(), "The start quaternion must be normalized.");
+ ERR_FAIL_COND_V_MSG(!end.is_normalized(), Quat(), "The end quaternion must be normalized.");
return start.slerp(end, t).normalized();
}
diff --git a/modules/bullet/doc_classes/BulletPhysicsDirectBodyState.xml b/modules/bullet/doc_classes/BulletPhysicsDirectBodyState.xml
index 078bcc45a8..f8bfb125fe 100644
--- a/modules/bullet/doc_classes/BulletPhysicsDirectBodyState.xml
+++ b/modules/bullet/doc_classes/BulletPhysicsDirectBodyState.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="BulletPhysicsDirectBodyState" inherits="PhysicsDirectBodyState" category="Core" version="3.2">
+<class name="BulletPhysicsDirectBodyState" inherits="PhysicsDirectBodyState" version="3.2">
<brief_description>
</brief_description>
<description>
diff --git a/modules/bullet/doc_classes/BulletPhysicsServer.xml b/modules/bullet/doc_classes/BulletPhysicsServer.xml
index 2a37f6af5e..aba88c3421 100644
--- a/modules/bullet/doc_classes/BulletPhysicsServer.xml
+++ b/modules/bullet/doc_classes/BulletPhysicsServer.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="BulletPhysicsServer" inherits="PhysicsServer" category="Core" version="3.2">
+<class name="BulletPhysicsServer" inherits="PhysicsServer" version="3.2">
<brief_description>
</brief_description>
<description>
diff --git a/modules/csg/doc_classes/CSGBox.xml b/modules/csg/doc_classes/CSGBox.xml
index 14f5a1952e..df3ff7f8d1 100644
--- a/modules/csg/doc_classes/CSGBox.xml
+++ b/modules/csg/doc_classes/CSGBox.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="CSGBox" inherits="CSGPrimitive" category="Core" version="3.2">
+<class name="CSGBox" inherits="CSGPrimitive" version="3.2">
<brief_description>
A CSG Box shape.
</brief_description>
diff --git a/modules/csg/doc_classes/CSGCombiner.xml b/modules/csg/doc_classes/CSGCombiner.xml
index 51428b25f8..ca79c348fe 100644
--- a/modules/csg/doc_classes/CSGCombiner.xml
+++ b/modules/csg/doc_classes/CSGCombiner.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="CSGCombiner" inherits="CSGShape" category="Core" version="3.2">
+<class name="CSGCombiner" inherits="CSGShape" version="3.2">
<brief_description>
A CSG node that allows you to combine other CSG modifiers.
</brief_description>
diff --git a/modules/csg/doc_classes/CSGCylinder.xml b/modules/csg/doc_classes/CSGCylinder.xml
index 9fc0281887..f7b3d53961 100644
--- a/modules/csg/doc_classes/CSGCylinder.xml
+++ b/modules/csg/doc_classes/CSGCylinder.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="CSGCylinder" inherits="CSGPrimitive" category="Core" version="3.2">
+<class name="CSGCylinder" inherits="CSGPrimitive" version="3.2">
<brief_description>
A CSG Cylinder shape.
</brief_description>
diff --git a/modules/csg/doc_classes/CSGMesh.xml b/modules/csg/doc_classes/CSGMesh.xml
index afe0bc262d..5dc32983fc 100644
--- a/modules/csg/doc_classes/CSGMesh.xml
+++ b/modules/csg/doc_classes/CSGMesh.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="CSGMesh" inherits="CSGPrimitive" category="Core" version="3.2">
+<class name="CSGMesh" inherits="CSGPrimitive" version="3.2">
<brief_description>
A CSG Mesh shape that uses a mesh resource.
</brief_description>
@@ -12,9 +12,10 @@
</methods>
<members>
<member name="material" type="Material" setter="set_material" getter="get_material">
+ The [Material] used in drawing the CSG shape.
</member>
<member name="mesh" type="Mesh" setter="set_mesh" getter="get_mesh">
- The mesh resource to use as a CSG shape.
+ The [Mesh] resource to use as a CSG shape.
</member>
</members>
<constants>
diff --git a/modules/csg/doc_classes/CSGPolygon.xml b/modules/csg/doc_classes/CSGPolygon.xml
index 0ecee92cd5..4aae19eb00 100644
--- a/modules/csg/doc_classes/CSGPolygon.xml
+++ b/modules/csg/doc_classes/CSGPolygon.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="CSGPolygon" inherits="CSGPrimitive" category="Core" version="3.2">
+<class name="CSGPolygon" inherits="CSGPrimitive" version="3.2">
<brief_description>
Extrudes a 2D polygon shape to create a 3D mesh.
</brief_description>
diff --git a/modules/csg/doc_classes/CSGPrimitive.xml b/modules/csg/doc_classes/CSGPrimitive.xml
index 6c2f837637..fe323ca80b 100644
--- a/modules/csg/doc_classes/CSGPrimitive.xml
+++ b/modules/csg/doc_classes/CSGPrimitive.xml
@@ -1,9 +1,10 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="CSGPrimitive" inherits="CSGShape" category="Core" version="3.2">
+<class name="CSGPrimitive" inherits="CSGShape" version="3.2">
<brief_description>
Base class for CSG primitives.
</brief_description>
<description>
+ Parent class for various CSG primitives. It contains code and functionality that is common between them. It cannot be used directly. Instead use one of the various classes that inherit from it.
</description>
<tutorials>
</tutorials>
diff --git a/modules/csg/doc_classes/CSGShape.xml b/modules/csg/doc_classes/CSGShape.xml
index 755d8df67e..e7048f21a7 100644
--- a/modules/csg/doc_classes/CSGShape.xml
+++ b/modules/csg/doc_classes/CSGShape.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="CSGShape" inherits="GeometryInstance" category="Core" version="3.2">
+<class name="CSGShape" inherits="GeometryInstance" version="3.2">
<brief_description>
The CSG base class.
</brief_description>
@@ -31,6 +31,7 @@
<return type="Array">
</return>
<description>
+ Returns an [Array] with two elements, the first is the [Transform] of this node and the second is the root [Mesh] of this node. Only works when this node is the root shape.
</description>
</method>
<method name="is_root_shape" qualifiers="const">
@@ -79,6 +80,7 @@
The operation that is performed on this shape. This is ignored for the first CSG child node as the operation is between this node and the previous child of this nodes parent.
</member>
<member name="snap" type="float" setter="set_snap" getter="get_snap" default="0.001">
+ Snap makes the mesh snap to a given distance so that the faces of two meshes can be perfectly aligned. A lower value results in greater precision but may be harder to adjust.
</member>
<member name="use_collision" type="bool" setter="set_use_collision" getter="is_using_collision" default="false">
Adds a collision shape to the physics engine for our CSG shape. This will always act like a static body. Note that the collision shape is still active even if the CSG shape itself is hidden.
diff --git a/modules/csg/doc_classes/CSGSphere.xml b/modules/csg/doc_classes/CSGSphere.xml
index 714e725acb..90417c9c9a 100644
--- a/modules/csg/doc_classes/CSGSphere.xml
+++ b/modules/csg/doc_classes/CSGSphere.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="CSGSphere" inherits="CSGPrimitive" category="Core" version="3.2">
+<class name="CSGSphere" inherits="CSGPrimitive" version="3.2">
<brief_description>
A CSG Sphere shape.
</brief_description>
diff --git a/modules/csg/doc_classes/CSGTorus.xml b/modules/csg/doc_classes/CSGTorus.xml
index 5dc6bb8380..b0f14cd468 100644
--- a/modules/csg/doc_classes/CSGTorus.xml
+++ b/modules/csg/doc_classes/CSGTorus.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="CSGTorus" inherits="CSGPrimitive" category="Core" version="3.2">
+<class name="CSGTorus" inherits="CSGPrimitive" version="3.2">
<brief_description>
A CSG Torus shape.
</brief_description>
diff --git a/modules/enet/doc_classes/NetworkedMultiplayerENet.xml b/modules/enet/doc_classes/NetworkedMultiplayerENet.xml
index 9509adfb18..1ba0ee659f 100644
--- a/modules/enet/doc_classes/NetworkedMultiplayerENet.xml
+++ b/modules/enet/doc_classes/NetworkedMultiplayerENet.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="NetworkedMultiplayerENet" inherits="NetworkedMultiplayerPeer" category="Core" version="3.2">
+<class name="NetworkedMultiplayerENet" inherits="NetworkedMultiplayerPeer" version="3.2">
<brief_description>
PacketPeer implementation using the [url=http://enet.bespin.org/index.html]ENet[/url] library.
</brief_description>
@@ -67,14 +67,14 @@
<return type="int">
</return>
<description>
- Returns the channel of the last packet fetched via [method PacketPeer.get_packet]
+ Returns the channel of the last packet fetched via [method PacketPeer.get_packet].
</description>
</method>
<method name="get_packet_channel" qualifiers="const">
<return type="int">
</return>
<description>
- Returns the channel of the next packet that will be retrieved via [method PacketPeer.get_packet]
+ Returns the channel of the next packet that will be retrieved via [method PacketPeer.get_packet].
</description>
</method>
<method name="get_peer_address" qualifiers="const">
diff --git a/modules/gdnative/SCsub b/modules/gdnative/SCsub
index 0cdd585558..a18c75fa27 100644
--- a/modules/gdnative/SCsub
+++ b/modules/gdnative/SCsub
@@ -30,23 +30,3 @@ _, gensource = env_gdnative.CommandNoCache(['include/gdnative_api_struct.gen.h',
env_gdnative.add_source_files(env.modules_sources, [gensource])
env.use_ptrcall = True
-
-
-if ARGUMENTS.get('gdnative_wrapper', False):
- gensource, = env_gdnative.CommandNoCache('gdnative_wrapper_code.gen.cpp', 'gdnative_api.json', run_in_subprocess(gdnative_builders.build_gdnative_wrapper_code))
-
- gd_wrapper_env = env.Clone()
- gd_wrapper_env.Prepend(CPPPATH=['#modules/gdnative/include/'])
-
- if gd_wrapper_env['use_lto']:
- if not env.msvc:
- gd_wrapper_env.Append(CCFLAGS=['-fno-lto'])
- gd_wrapper_env.Append(LINKFLAGS=['-fno-lto'])
- else:
- gd_wrapper_env.Append(CCFLAGS=['/GL-'])
- gd_wrapper_env.Append(LINKFLAGS=['/LTCG:OFF'])
-
- if not env.msvc:
- gd_wrapper_env.Append(CCFLAGS=['-fPIC'])
-
- lib = gd_wrapper_env.add_library("#bin/gdnative_wrapper_code", [gensource])
diff --git a/modules/gdnative/doc_classes/@NativeScript.xml b/modules/gdnative/doc_classes/@NativeScript.xml
index cb5de198ac..7c881c689d 100644
--- a/modules/gdnative/doc_classes/@NativeScript.xml
+++ b/modules/gdnative/doc_classes/@NativeScript.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="@NativeScript" category="Core" version="3.2">
+<class name="@NativeScript" version="3.2">
<brief_description>
</brief_description>
<description>
diff --git a/modules/gdnative/doc_classes/ARVRInterfaceGDNative.xml b/modules/gdnative/doc_classes/ARVRInterfaceGDNative.xml
index 47c2ee3358..881bb87685 100644
--- a/modules/gdnative/doc_classes/ARVRInterfaceGDNative.xml
+++ b/modules/gdnative/doc_classes/ARVRInterfaceGDNative.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="ARVRInterfaceGDNative" inherits="ARVRInterface" category="Core" version="3.2">
+<class name="ARVRInterfaceGDNative" inherits="ARVRInterface" version="3.2">
<brief_description>
GDNative wrapper for an ARVR interface.
</brief_description>
diff --git a/modules/gdnative/doc_classes/GDNative.xml b/modules/gdnative/doc_classes/GDNative.xml
index 8750ddc56d..ca71992f75 100644
--- a/modules/gdnative/doc_classes/GDNative.xml
+++ b/modules/gdnative/doc_classes/GDNative.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="GDNative" inherits="Reference" category="Core" version="3.2">
+<class name="GDNative" inherits="Reference" version="3.2">
<brief_description>
</brief_description>
<description>
diff --git a/modules/gdnative/doc_classes/GDNativeLibrary.xml b/modules/gdnative/doc_classes/GDNativeLibrary.xml
index aa48ab44f2..1b8173a816 100644
--- a/modules/gdnative/doc_classes/GDNativeLibrary.xml
+++ b/modules/gdnative/doc_classes/GDNativeLibrary.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="GDNativeLibrary" inherits="Resource" category="Core" version="3.2">
+<class name="GDNativeLibrary" inherits="Resource" version="3.2">
<brief_description>
An external library containing functions or script classes to use in Godot.
</brief_description>
diff --git a/modules/gdnative/doc_classes/MultiplayerPeerGDNative.xml b/modules/gdnative/doc_classes/MultiplayerPeerGDNative.xml
index b9a01672a6..76fa4bd027 100644
--- a/modules/gdnative/doc_classes/MultiplayerPeerGDNative.xml
+++ b/modules/gdnative/doc_classes/MultiplayerPeerGDNative.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="MultiplayerPeerGDNative" inherits="NetworkedMultiplayerPeer" category="Core" version="3.2">
+<class name="MultiplayerPeerGDNative" inherits="NetworkedMultiplayerPeer" version="3.2">
<brief_description>
</brief_description>
<description>
diff --git a/modules/gdnative/doc_classes/NativeScript.xml b/modules/gdnative/doc_classes/NativeScript.xml
index dc735546e3..f73d7b91b2 100644
--- a/modules/gdnative/doc_classes/NativeScript.xml
+++ b/modules/gdnative/doc_classes/NativeScript.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="NativeScript" inherits="Script" category="Core" version="3.2">
+<class name="NativeScript" inherits="Script" version="3.2">
<brief_description>
</brief_description>
<description>
diff --git a/modules/gdnative/doc_classes/PacketPeerGDNative.xml b/modules/gdnative/doc_classes/PacketPeerGDNative.xml
index acfb597cff..7e017d991b 100644
--- a/modules/gdnative/doc_classes/PacketPeerGDNative.xml
+++ b/modules/gdnative/doc_classes/PacketPeerGDNative.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="PacketPeerGDNative" inherits="PacketPeer" category="Core" version="3.2">
+<class name="PacketPeerGDNative" inherits="PacketPeer" version="3.2">
<brief_description>
</brief_description>
<description>
diff --git a/modules/gdnative/doc_classes/PluginScript.xml b/modules/gdnative/doc_classes/PluginScript.xml
index 33b5f02bd4..7f3d401bdd 100644
--- a/modules/gdnative/doc_classes/PluginScript.xml
+++ b/modules/gdnative/doc_classes/PluginScript.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="PluginScript" inherits="Script" category="Core" version="3.2">
+<class name="PluginScript" inherits="Script" version="3.2">
<brief_description>
</brief_description>
<description>
diff --git a/modules/gdnative/doc_classes/StreamPeerGDNative.xml b/modules/gdnative/doc_classes/StreamPeerGDNative.xml
index f7e0d76fdb..cc4355f15e 100644
--- a/modules/gdnative/doc_classes/StreamPeerGDNative.xml
+++ b/modules/gdnative/doc_classes/StreamPeerGDNative.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="StreamPeerGDNative" inherits="StreamPeer" category="Core" version="3.2">
+<class name="StreamPeerGDNative" inherits="StreamPeer" version="3.2">
<brief_description>
</brief_description>
<description>
diff --git a/modules/gdnative/doc_classes/VideoStreamGDNative.xml b/modules/gdnative/doc_classes/VideoStreamGDNative.xml
index ed7678b7be..a2fcb08f9e 100644
--- a/modules/gdnative/doc_classes/VideoStreamGDNative.xml
+++ b/modules/gdnative/doc_classes/VideoStreamGDNative.xml
@@ -1,8 +1,11 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="VideoStreamGDNative" inherits="VideoStream" category="Core" version="3.2">
+<class name="VideoStreamGDNative" inherits="VideoStream" version="3.2">
<brief_description>
+ [VideoStream] resource for for video formats implemented via GDNative.
</brief_description>
<description>
+ [VideoStream] resource for for video formats implemented via GDNative.
+ It can be used via [url=https://github.com/KidRigger/godot-videodecoder]godot-videodecoder[/url] which uses the [url=https://ffmpeg.org]FFmpeg[/url] library.
</description>
<tutorials>
</tutorials>
@@ -11,6 +14,7 @@
<return type="String">
</return>
<description>
+ Returns the video file handled by this [VideoStreamGDNative].
</description>
</method>
<method name="set_file">
@@ -19,6 +23,7 @@
<argument index="0" name="file" type="String">
</argument>
<description>
+ Sets the video file that this [VideoStreamGDNative] resource handles. The supported extensions depend on the GDNative plugins used to expose video formats.
</description>
</method>
</methods>
diff --git a/modules/gdnative/doc_classes/WebRTCDataChannelGDNative.xml b/modules/gdnative/doc_classes/WebRTCDataChannelGDNative.xml
index ac18ec6020..be67835399 100644
--- a/modules/gdnative/doc_classes/WebRTCDataChannelGDNative.xml
+++ b/modules/gdnative/doc_classes/WebRTCDataChannelGDNative.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="WebRTCDataChannelGDNative" inherits="WebRTCDataChannel" category="Core" version="3.2">
+<class name="WebRTCDataChannelGDNative" inherits="WebRTCDataChannel" version="3.2">
<brief_description>
</brief_description>
<description>
diff --git a/modules/gdnative/doc_classes/WebRTCPeerConnectionGDNative.xml b/modules/gdnative/doc_classes/WebRTCPeerConnectionGDNative.xml
index 44cb8e5db8..295fb9c5e8 100644
--- a/modules/gdnative/doc_classes/WebRTCPeerConnectionGDNative.xml
+++ b/modules/gdnative/doc_classes/WebRTCPeerConnectionGDNative.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="WebRTCPeerConnectionGDNative" inherits="WebRTCPeerConnection" category="Core" version="3.2">
+<class name="WebRTCPeerConnectionGDNative" inherits="WebRTCPeerConnection" version="3.2">
<brief_description>
</brief_description>
<description>
diff --git a/modules/gdnative/gdnative_builders.py b/modules/gdnative/gdnative_builders.py
index 20c1a2233c..0d95a65b7e 100644
--- a/modules/gdnative/gdnative_builders.py
+++ b/modules/gdnative/gdnative_builders.py
@@ -12,30 +12,6 @@ def _spaced(e):
def _build_gdnative_api_struct_header(api):
- gdnative_api_init_macro = [
- '\textern const godot_gdnative_core_api_struct *_gdnative_wrapper_api_struct;'
- ]
-
- for ext in api['extensions']:
- name = ext['name']
- gdnative_api_init_macro.append(
- '\textern const godot_gdnative_ext_{0}_api_struct *_gdnative_wrapper_{0}_api_struct;'.format(name))
-
- gdnative_api_init_macro.append('\t_gdnative_wrapper_api_struct = options->api_struct;')
- gdnative_api_init_macro.append('\tfor (unsigned int i = 0; i < _gdnative_wrapper_api_struct->num_extensions; i++) { ')
- gdnative_api_init_macro.append('\t\tswitch (_gdnative_wrapper_api_struct->extensions[i]->type) {')
-
- for ext in api['extensions']:
- name = ext['name']
- gdnative_api_init_macro.append(
- '\t\t\tcase GDNATIVE_EXT_%s:' % ext['type'])
- gdnative_api_init_macro.append(
- '\t\t\t\t_gdnative_wrapper_{0}_api_struct = (godot_gdnative_ext_{0}_api_struct *)'
- ' _gdnative_wrapper_api_struct->extensions[i];'.format(name))
- gdnative_api_init_macro.append('\t\t\t\tbreak;')
- gdnative_api_init_macro.append('\t\t}')
- gdnative_api_init_macro.append('\t}')
-
out = [
'/* THIS FILE IS GENERATED DO NOT EDIT */',
'#ifndef GODOT_GDNATIVE_API_STRUCT_H',
@@ -49,8 +25,6 @@ def _build_gdnative_api_struct_header(api):
'#include <pluginscript/godot_pluginscript.h>',
'#include <videodecoder/godot_videodecoder.h>',
'',
- '#define GDNATIVE_API_INIT(options) do { \\\n' + ' \\\n'.join(gdnative_api_init_macro) + ' \\\n } while (0)',
- '',
'#ifdef __cplusplus',
'extern "C" {',
'#endif',
@@ -238,76 +212,5 @@ def build_gdnative_api_struct(target, source, env):
fd.write(_build_gdnative_api_struct_source(api))
-def _build_gdnative_wrapper_code(api):
- out = [
- '/* THIS FILE IS GENERATED DO NOT EDIT */',
- '',
- '#include <gdnative/gdnative.h>',
- '#include <nativescript/godot_nativescript.h>',
- '#include <pluginscript/godot_pluginscript.h>',
- '#include <arvr/godot_arvr.h>',
- '#include <videodecoder/godot_videodecoder.h>',
- '',
- '#include <gdnative_api_struct.gen.h>',
- '',
- '#ifdef __cplusplus',
- 'extern "C" {',
- '#endif',
- '',
- 'godot_gdnative_core_api_struct *_gdnative_wrapper_api_struct = 0;',
- ]
-
- for ext in api['extensions']:
- name = ext['name']
- out.append('godot_gdnative_ext_' + name + '_api_struct *_gdnative_wrapper_' + name + '_api_struct = 0;')
-
- out += ['']
-
- for funcdef in api['core']['api']:
- args = ', '.join(['%s%s' % (_spaced(t), n) for t, n in funcdef['arguments']])
- out.append('%s%s(%s) {' % (_spaced(funcdef['return_type']), funcdef['name'], args))
-
- args = ', '.join(['%s' % n for t, n in funcdef['arguments']])
-
- return_line = '\treturn ' if funcdef['return_type'] != 'void' else '\t'
- return_line += '_gdnative_wrapper_api_struct->' + funcdef['name'] + '(' + args + ');'
-
- out.append(return_line)
- out.append('}')
- out.append('')
-
- for ext in api['extensions']:
- name = ext['name']
- for funcdef in ext['api']:
- args = ', '.join(['%s%s' % (_spaced(t), n) for t, n in funcdef['arguments']])
- out.append('%s%s(%s) {' % (_spaced(funcdef['return_type']), funcdef['name'], args))
-
- args = ', '.join(['%s' % n for t, n in funcdef['arguments']])
-
- return_line = '\treturn ' if funcdef['return_type'] != 'void' else '\t'
- return_line += '_gdnative_wrapper_' + name + '_api_struct->' + funcdef['name'] + '(' + args + ');'
-
- out.append(return_line)
- out.append('}')
- out.append('')
-
- out += [
- '#ifdef __cplusplus',
- '}',
- '#endif'
- ]
-
- return '\n'.join(out)
-
-
-def build_gdnative_wrapper_code(target, source, env):
- with open(source[0], 'r') as fd:
- api = json.load(fd)
-
- wrapper_file = target[0]
- with open(wrapper_file, 'w') as fd:
- fd.write(_build_gdnative_wrapper_code(api))
-
-
if __name__ == '__main__':
subprocess_main(globals())
diff --git a/modules/gdscript/doc_classes/@GDScript.xml b/modules/gdscript/doc_classes/@GDScript.xml
index c4b7e4887e..258e94f909 100644
--- a/modules/gdscript/doc_classes/@GDScript.xml
+++ b/modules/gdscript/doc_classes/@GDScript.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="@GDScript" category="Core" version="3.2">
+<class name="@GDScript" version="3.2">
<brief_description>
Built-in GDScript functions.
</brief_description>
@@ -39,12 +39,11 @@
<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.
+ Returns a color according to the standardized [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".
+ Supported color names are the same as the constants defined in [Color].
</description>
</method>
<method name="abs">
diff --git a/modules/gdscript/doc_classes/GDScript.xml b/modules/gdscript/doc_classes/GDScript.xml
index 8e175a7ab8..acd153f0cc 100644
--- a/modules/gdscript/doc_classes/GDScript.xml
+++ b/modules/gdscript/doc_classes/GDScript.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="GDScript" inherits="Script" category="Core" version="3.2">
+<class name="GDScript" inherits="Script" version="3.2">
<brief_description>
A script implemented in the GDScript programming language.
</brief_description>
diff --git a/modules/gdscript/doc_classes/GDScriptFunctionState.xml b/modules/gdscript/doc_classes/GDScriptFunctionState.xml
index 690953108f..be8267c243 100644
--- a/modules/gdscript/doc_classes/GDScriptFunctionState.xml
+++ b/modules/gdscript/doc_classes/GDScriptFunctionState.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="GDScriptFunctionState" inherits="Reference" category="Core" version="3.2">
+<class name="GDScriptFunctionState" inherits="Reference" version="3.2">
<brief_description>
State of a function call after yielding.
</brief_description>
@@ -33,7 +33,7 @@
</methods>
<signals>
<signal name="completed">
- <argument index="0" name="result" type="Nil">
+ <argument index="0" name="result" type="Variant">
</argument>
<description>
</description>
diff --git a/modules/gdscript/doc_classes/GDScriptNativeClass.xml b/modules/gdscript/doc_classes/GDScriptNativeClass.xml
index 70583d47a7..d4a0ce33aa 100644
--- a/modules/gdscript/doc_classes/GDScriptNativeClass.xml
+++ b/modules/gdscript/doc_classes/GDScriptNativeClass.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="GDScriptNativeClass" inherits="Reference" category="Core" version="3.2">
+<class name="GDScriptNativeClass" inherits="Reference" version="3.2">
<brief_description>
</brief_description>
<description>
diff --git a/modules/gdscript/language_server/gdscript_extend_parser.cpp b/modules/gdscript/language_server/gdscript_extend_parser.cpp
index 701809e755..0f6f13944b 100644
--- a/modules/gdscript/language_server/gdscript_extend_parser.cpp
+++ b/modules/gdscript/language_server/gdscript_extend_parser.cpp
@@ -757,7 +757,7 @@ Dictionary ExtendGDScriptParser::dump_class_api(const GDScriptParser::ClassNode
Array static_functions;
for (int i = 0; i < p_class->static_functions.size(); ++i) {
- static_functions.append(dump_function_api(p_class->functions[i]));
+ static_functions.append(dump_function_api(p_class->static_functions[i]));
}
class_api["static_functions"] = static_functions;
diff --git a/modules/gridmap/doc_classes/GridMap.xml b/modules/gridmap/doc_classes/GridMap.xml
index 3de971db6d..1e34ebc2f6 100644
--- a/modules/gridmap/doc_classes/GridMap.xml
+++ b/modules/gridmap/doc_classes/GridMap.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="GridMap" inherits="Spatial" category="Core" version="3.2">
+<class name="GridMap" inherits="Spatial" version="3.2">
<brief_description>
Node for 3D tile-based maps.
</brief_description>
diff --git a/modules/mobile_vr/doc_classes/MobileVRInterface.xml b/modules/mobile_vr/doc_classes/MobileVRInterface.xml
index a132333a87..e6e6b0d608 100644
--- a/modules/mobile_vr/doc_classes/MobileVRInterface.xml
+++ b/modules/mobile_vr/doc_classes/MobileVRInterface.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="MobileVRInterface" inherits="ARVRInterface" category="Core" version="3.2">
+<class name="MobileVRInterface" inherits="ARVRInterface" version="3.2">
<brief_description>
Generic mobile VR implementation.
</brief_description>
diff --git a/modules/mono/csharp_script.cpp b/modules/mono/csharp_script.cpp
index 210267e681..9e19e5f8c4 100644
--- a/modules/mono/csharp_script.cpp
+++ b/modules/mono/csharp_script.cpp
@@ -160,7 +160,7 @@ void CSharpLanguage::finish() {
script_bindings.clear();
#ifdef DEBUG_ENABLED
- for (List<ObjectID>::Element *E = unsafely_referenced_objects.front(); E; E = E->next()) {
+ for (Map<ObjectID, int>::Element *E = unsafe_object_references.front(); E; E = E->next()) {
const ObjectID &id = E->get();
Object *obj = ObjectDB::get_instance(id);
@@ -632,18 +632,20 @@ Vector<ScriptLanguage::StackInfo> CSharpLanguage::stack_trace_get_info(MonoObjec
void CSharpLanguage::post_unsafe_reference(Object *p_obj) {
#ifdef DEBUG_ENABLED
+ SCOPED_MUTEX_LOCK(unsafe_object_references_lock);
ObjectID id = p_obj->get_instance_id();
- ERR_FAIL_COND_MSG(unsafely_referenced_objects.find(id), "Multiple unsafe references for object: " + p_obj->get_class() + ":" + itos(id));
- unsafely_referenced_objects.push_back(id);
+ unsafe_object_references[id]++;
#endif
}
void CSharpLanguage::pre_unsafe_unreference(Object *p_obj) {
#ifdef DEBUG_ENABLED
+ SCOPED_MUTEX_LOCK(unsafe_object_references_lock);
ObjectID id = p_obj->get_instance_id();
- List<ObjectID>::Element *elem = unsafely_referenced_objects.find(id);
+ Map<ObjectID, int>::Element *elem = unsafe_object_references.find(id);
ERR_FAIL_NULL(elem);
- unsafely_referenced_objects.erase(elem);
+ if (--elem->value() == 0)
+ unsafe_object_references.erase(elem);
#endif
}
@@ -1246,6 +1248,14 @@ CSharpLanguage::CSharpLanguage() {
language_bind_mutex = Mutex::create();
#endif
+#ifdef DEBUG_ENABLED
+#ifdef NO_THREADS
+ unsafe_object_references_lock = NULL;
+#else
+ unsafe_object_references_lock = Mutex::create();
+#endif
+#endif
+
lang_idx = -1;
scripts_metadata_invalidated = true;
@@ -1274,6 +1284,13 @@ CSharpLanguage::~CSharpLanguage() {
script_gchandle_release_mutex = NULL;
}
+#ifdef DEBUG_ENABLED
+ if (unsafe_object_references_lock) {
+ memdelete(unsafe_object_references_lock);
+ unsafe_object_references_lock = NULL;
+ }
+#endif
+
singleton = NULL;
}
@@ -2408,6 +2425,9 @@ bool CSharpScript::_update_exports() {
top = top->get_parent_class();
}
+ // Need to check this here, before disposal
+ bool base_ref = Object::cast_to<Reference>(tmp_native) != NULL;
+
// Dispose the temporary managed instance
MonoException *exc = NULL;
@@ -2421,7 +2441,7 @@ bool CSharpScript::_update_exports() {
MonoGCHandle::free_handle(tmp_pinned_gchandle);
tmp_object = NULL;
- if (tmp_native && !Object::cast_to<Reference>(tmp_native)) {
+ if (tmp_native && !base_ref) {
Node *node = Object::cast_to<Node>(tmp_native);
if (node && node->is_inside_tree()) {
ERR_PRINTS("Temporary instance was added to the scene tree.");
diff --git a/modules/mono/csharp_script.h b/modules/mono/csharp_script.h
index 30f56e00bd..f244bc4119 100644
--- a/modules/mono/csharp_script.h
+++ b/modules/mono/csharp_script.h
@@ -308,8 +308,9 @@ class CSharpLanguage : public ScriptLanguage {
Map<Object *, CSharpScriptBinding> script_bindings;
#ifdef DEBUG_ENABLED
- // List of unsafely referenced objects
- List<ObjectID> unsafely_referenced_objects;
+ // List of unsafe object references
+ Map<ObjectID, int> unsafe_object_references;
+ Mutex *unsafe_object_references_lock;
#endif
struct StringNameCache {
diff --git a/modules/mono/editor/GodotTools/GodotTools.BuildLogger/GodotTools.BuildLogger.csproj b/modules/mono/editor/GodotTools/GodotTools.BuildLogger/GodotTools.BuildLogger.csproj
index 1eaa36c1aa..8fdd485209 100644
--- a/modules/mono/editor/GodotTools/GodotTools.BuildLogger/GodotTools.BuildLogger.csproj
+++ b/modules/mono/editor/GodotTools/GodotTools.BuildLogger/GodotTools.BuildLogger.csproj
@@ -9,7 +9,7 @@
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>GodotTools.BuildLogger</RootNamespace>
<AssemblyName>GodotTools.BuildLogger</AssemblyName>
- <TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
+ <TargetFrameworkVersion>v4.7</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
<LangVersion>7</LangVersion>
</PropertyGroup>
@@ -50,11 +50,11 @@
</ProjectReference>
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
- <!-- To modify your build process, add your task inside one of the targets below and uncomment it.
+ <!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.
<Target Name="BeforeBuild">
</Target>
<Target Name="AfterBuild">
</Target>
-->
-</Project> \ No newline at end of file
+</Project>
diff --git a/modules/mono/editor/GodotTools/GodotTools.Core/GodotTools.Core.csproj b/modules/mono/editor/GodotTools/GodotTools.Core/GodotTools.Core.csproj
index 1974220f2f..2c35ef540a 100644
--- a/modules/mono/editor/GodotTools/GodotTools.Core/GodotTools.Core.csproj
+++ b/modules/mono/editor/GodotTools/GodotTools.Core/GodotTools.Core.csproj
@@ -7,7 +7,7 @@
<OutputType>Library</OutputType>
<RootNamespace>GodotTools.Core</RootNamespace>
<AssemblyName>GodotTools.Core</AssemblyName>
- <TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
+ <TargetFrameworkVersion>v4.7</TargetFrameworkVersion>
<LangVersion>7</LangVersion>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
@@ -36,4 +36,4 @@
<Compile Include="StringExtensions.cs" />
</ItemGroup>
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
-</Project> \ No newline at end of file
+</Project>
diff --git a/modules/mono/editor/GodotTools/GodotTools.IdeConnection/GodotTools.IdeConnection.csproj b/modules/mono/editor/GodotTools/GodotTools.IdeConnection/GodotTools.IdeConnection.csproj
index 427a26508f..8454535fba 100644
--- a/modules/mono/editor/GodotTools/GodotTools.IdeConnection/GodotTools.IdeConnection.csproj
+++ b/modules/mono/editor/GodotTools/GodotTools.IdeConnection/GodotTools.IdeConnection.csproj
@@ -9,7 +9,7 @@
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>GodotTools.IdeConnection</RootNamespace>
<AssemblyName>GodotTools.IdeConnection</AssemblyName>
- <TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
+ <TargetFrameworkVersion>v4.7</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
<LangVersion>7</LangVersion>
</PropertyGroup>
@@ -50,4 +50,4 @@
<Compile Include="Properties\AssemblyInfo.cs" />
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
-</Project> \ No newline at end of file
+</Project>
diff --git a/modules/mono/editor/GodotTools/GodotTools.ProjectEditor/GodotTools.ProjectEditor.csproj b/modules/mono/editor/GodotTools/GodotTools.ProjectEditor/GodotTools.ProjectEditor.csproj
index b6bb0aac34..b60e501beb 100644
--- a/modules/mono/editor/GodotTools/GodotTools.ProjectEditor/GodotTools.ProjectEditor.csproj
+++ b/modules/mono/editor/GodotTools/GodotTools.ProjectEditor/GodotTools.ProjectEditor.csproj
@@ -7,7 +7,7 @@
<OutputType>Library</OutputType>
<RootNamespace>GodotTools.ProjectEditor</RootNamespace>
<AssemblyName>GodotTools.ProjectEditor</AssemblyName>
- <TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
+ <TargetFrameworkVersion>v4.7</TargetFrameworkVersion>
<BaseIntermediateOutputPath>obj</BaseIntermediateOutputPath>
<LangVersion>7</LangVersion>
</PropertyGroup>
diff --git a/modules/mono/editor/GodotTools/GodotTools.ProjectEditor/ProjectGenerator.cs b/modules/mono/editor/GodotTools/GodotTools.ProjectEditor/ProjectGenerator.cs
index 82627de01a..28b7832f90 100644
--- a/modules/mono/editor/GodotTools/GodotTools.ProjectEditor/ProjectGenerator.cs
+++ b/modules/mono/editor/GodotTools/GodotTools.ProjectEditor/ProjectGenerator.cs
@@ -100,7 +100,7 @@ namespace GodotTools.ProjectEditor
mainGroup.AddProperty("OutputPath", Path.Combine("bin", "$(Configuration)"));
mainGroup.AddProperty("RootNamespace", IdentifierUtils.SanitizeQualifiedIdentifier(name, allowEmptyIdentifiers: true));
mainGroup.AddProperty("AssemblyName", name);
- mainGroup.AddProperty("TargetFrameworkVersion", "v4.5");
+ mainGroup.AddProperty("TargetFrameworkVersion", "v4.7");
mainGroup.AddProperty("GodotProjectGeneratorVersion", Assembly.GetExecutingAssembly().GetName().Version.ToString());
var debugGroup = root.AddPropertyGroup();
diff --git a/modules/mono/editor/GodotTools/GodotTools/Export/ExportPlugin.cs b/modules/mono/editor/GodotTools/GodotTools/Export/ExportPlugin.cs
index 96cafba87f..3e2a8c22a9 100644
--- a/modules/mono/editor/GodotTools/GodotTools/Export/ExportPlugin.cs
+++ b/modules/mono/editor/GodotTools/GodotTools/Export/ExportPlugin.cs
@@ -17,6 +17,43 @@ namespace GodotTools.Export
{
public class ExportPlugin : EditorExportPlugin
{
+ [Flags]
+ enum I18NCodesets
+ {
+ None = 0,
+ CJK = 1,
+ MidEast = 2,
+ Other = 4,
+ Rare = 8,
+ West = 16,
+ All = CJK | MidEast | Other | Rare | West
+ }
+
+ private void AddI18NAssemblies(Godot.Collections.Dictionary<string, string> assemblies, string platform)
+ {
+ var codesets = (I18NCodesets) ProjectSettings.GetSetting("mono/export/i18n_codesets");
+
+ if (codesets == I18NCodesets.None)
+ return;
+
+ string bclDir = DeterminePlatformBclDir(platform) ?? typeof(object).Assembly.Location.GetBaseDir();
+
+ void AddI18NAssembly(string name) => assemblies.Add(name, Path.Combine(bclDir, $"{name}.dll"));
+
+ AddI18NAssembly("I18N");
+
+ if ((codesets & I18NCodesets.CJK) != 0)
+ AddI18NAssembly("I18N.CJK");
+ if ((codesets & I18NCodesets.MidEast) != 0)
+ AddI18NAssembly("I18N.MidEast");
+ if ((codesets & I18NCodesets.Other) != 0)
+ AddI18NAssembly("I18N.Other");
+ if ((codesets & I18NCodesets.Rare) != 0)
+ AddI18NAssembly("I18N.Rare");
+ if ((codesets & I18NCodesets.West) != 0)
+ AddI18NAssembly("I18N.West");
+ }
+
public void RegisterExportSettings()
{
// TODO: These would be better as export preset options, but that doesn't seem to be supported yet
@@ -24,6 +61,16 @@ namespace GodotTools.Export
GlobalDef("mono/export/include_scripts_content", false);
GlobalDef("mono/export/export_assemblies_inside_pck", true);
+ GlobalDef("mono/export/i18n_codesets", I18NCodesets.All);
+
+ ProjectSettings.AddPropertyInfo(new Godot.Collections.Dictionary
+ {
+ ["type"] = Variant.Type.Int,
+ ["name"] = "mono/export/i18n_codesets",
+ ["hint"] = PropertyHint.Flags,
+ ["hint_string"] = "CJK,MidEast,Other,Rare,West"
+ });
+
GlobalDef("mono/export/aot/enabled", false);
GlobalDef("mono/export/aot/full_aot", false);
@@ -145,6 +192,8 @@ namespace GodotTools.Export
var initialDependencies = dependencies.Duplicate();
internal_GetExportedAssemblyDependencies(initialDependencies, buildConfig, DeterminePlatformBclDir(platform), dependencies);
+ AddI18NAssemblies(dependencies, platform);
+
string outputDataDir = null;
if (PlatformHasTemplateDir(platform))
diff --git a/modules/mono/editor/GodotTools/GodotTools/GodotTools.csproj b/modules/mono/editor/GodotTools/GodotTools/GodotTools.csproj
index 618527f916..379dfd9f7d 100644
--- a/modules/mono/editor/GodotTools/GodotTools/GodotTools.csproj
+++ b/modules/mono/editor/GodotTools/GodotTools/GodotTools.csproj
@@ -7,7 +7,7 @@
<OutputType>Library</OutputType>
<RootNamespace>GodotTools</RootNamespace>
<AssemblyName>GodotTools</AssemblyName>
- <TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
+ <TargetFrameworkVersion>v4.7</TargetFrameworkVersion>
<GodotSourceRootPath>$(SolutionDir)/../../../../</GodotSourceRootPath>
<DataDirToolsOutputPath>$(GodotSourceRootPath)/bin/GodotSharp/Tools</DataDirToolsOutputPath>
<GodotApiConfiguration>Debug</GodotApiConfiguration>
diff --git a/modules/mono/editor/script_class_parser.cpp b/modules/mono/editor/script_class_parser.cpp
index 8ac4df9952..bece23c9a6 100644
--- a/modules/mono/editor/script_class_parser.cpp
+++ b/modules/mono/editor/script_class_parser.cpp
@@ -635,13 +635,14 @@ static String get_preprocessor_directive(const String &p_line, int p_from) {
CRASH_COND(p_line[p_from] != '#');
p_from++;
int i = p_from;
- while (i < p_line.length() && p_line[i] != ' ' && p_line[i] != '\t') {
+ while (i < p_line.length() && (p_line[i] == '_' || (p_line[i] >= 'A' && p_line[i] <= 'Z') ||
+ (p_line[i] >= 'a' && p_line[i] <= 'z') || p_line[i] > 127)) {
i++;
}
return p_line.substr(p_from, i - p_from);
}
-static void run_dummy_preprocessor(String &r_source) {
+static void run_dummy_preprocessor(String &r_source, const String &p_filepath) {
Vector<String> lines = r_source.split("\n", /* p_allow_empty: */ true);
@@ -655,8 +656,8 @@ static void run_dummy_preprocessor(String &r_source) {
const int line_len = line.length();
- int j = 0;
- while (j < line_len) {
+ int j;
+ for (j = 0; j < line_len; j++) {
if (line[j] != ' ' && line[j] != '\t') {
if (line[j] == '#') {
// First non-whitespace char of the line is '#'
@@ -668,13 +669,13 @@ static void run_dummy_preprocessor(String &r_source) {
if_level++;
is_branch_being_compiled.push_back(if_level == 0 || is_branch_being_compiled[if_level - 1]);
} else if (directive == "elif") {
- ERR_CONTINUE_MSG(if_level == -1, "Found unexpected '#elif' directive.");
+ ERR_CONTINUE_MSG(if_level == -1, "Found unexpected '#elif' directive. File: '" + p_filepath + "'.");
is_branch_being_compiled.write[if_level] = false;
} else if (directive == "else") {
- ERR_CONTINUE_MSG(if_level == -1, "Found unexpected '#else' directive.");
+ ERR_CONTINUE_MSG(if_level == -1, "Found unexpected '#else' directive. File: '" + p_filepath + "'.");
is_branch_being_compiled.write[if_level] = false;
} else if (directive == "endif") {
- ERR_CONTINUE_MSG(if_level == -1, "Found unexpected '#endif' directive.");
+ ERR_CONTINUE_MSG(if_level == -1, "Found unexpected '#endif' directive. File: '" + p_filepath + "'.");
is_branch_being_compiled.remove(if_level);
if_level--;
}
@@ -686,8 +687,6 @@ static void run_dummy_preprocessor(String &r_source) {
break;
}
}
-
- j++;
}
if (j == line_len) {
@@ -722,7 +721,7 @@ Error ScriptClassParser::parse_file(const String &p_filepath) {
" Please ensure that scripts are saved in valid UTF-8 unicode." :
"Failed to read file: '" + p_filepath + "'.");
- run_dummy_preprocessor(source);
+ run_dummy_preprocessor(source, p_filepath);
return parse(source);
}
diff --git a/modules/mono/glue/GodotSharp/GodotSharp/Core/Basis.cs b/modules/mono/glue/GodotSharp/GodotSharp/Core/Basis.cs
index c5e62b77c8..d38589013e 100644
--- a/modules/mono/glue/GodotSharp/GodotSharp/Core/Basis.cs
+++ b/modules/mono/glue/GodotSharp/GodotSharp/Core/Basis.cs
@@ -387,6 +387,19 @@ namespace Godot
return b;
}
+ public Basis Slerp(Basis target, real_t t)
+ {
+ var from = new Quat(this);
+ var to = new Quat(target);
+
+ var b = new Basis(from.Slerp(to, t));
+ b.Row0 *= Mathf.Lerp(Row0.Length(), target.Row0.Length(), t);
+ b.Row1 *= Mathf.Lerp(Row1.Length(), target.Row1.Length(), t);
+ b.Row2 *= Mathf.Lerp(Row2.Length(), target.Row2.Length(), t);
+
+ return b;
+ }
+
public real_t Tdotx(Vector3 with)
{
return this.Row0[0] * with[0] + this.Row1[0] * with[1] + this.Row2[0] * with[2];
diff --git a/modules/mono/glue/GodotSharp/GodotSharp/Core/Extensions/NodeExtensions.cs b/modules/mono/glue/GodotSharp/GodotSharp/Core/Extensions/NodeExtensions.cs
index 5023725f17..5d16260f5d 100644
--- a/modules/mono/glue/GodotSharp/GodotSharp/Core/Extensions/NodeExtensions.cs
+++ b/modules/mono/glue/GodotSharp/GodotSharp/Core/Extensions/NodeExtensions.cs
@@ -9,7 +9,7 @@ namespace Godot
public T GetNodeOrNull<T>(NodePath path) where T : class
{
- return GetNode(path) as T;
+ return GetNodeOrNull(path) as T;
}
public T GetChild<T>(int idx) where T : class
diff --git a/modules/mono/glue/GodotSharp/GodotSharp/Core/Quat.cs b/modules/mono/glue/GodotSharp/GodotSharp/Core/Quat.cs
index 8f60867ac3..6702634c51 100644
--- a/modules/mono/glue/GodotSharp/GodotSharp/Core/Quat.cs
+++ b/modules/mono/glue/GodotSharp/GodotSharp/Core/Quat.cs
@@ -82,12 +82,20 @@ namespace Godot
public Vector3 GetEuler()
{
+#if DEBUG
+ if (!IsNormalized())
+ throw new InvalidOperationException("Quat is not normalized");
+#endif
var basis = new Basis(this);
return basis.GetEuler();
}
public Quat Inverse()
{
+#if DEBUG
+ if (!IsNormalized())
+ throw new InvalidOperationException("Quat is not normalized");
+#endif
return new Quat(-x, -y, -z, w);
}
@@ -125,6 +133,13 @@ namespace Godot
public Quat Slerp(Quat b, real_t t)
{
+#if DEBUG
+ if (!IsNormalized())
+ throw new InvalidOperationException("Quat is not normalized");
+ if (!b.IsNormalized())
+ throw new ArgumentException("Argument is not normalized", nameof(b));
+#endif
+
// Calculate cosine
real_t cosom = x * b.x + y * b.y + z * b.z + w * b.w;
@@ -200,9 +215,13 @@ namespace Godot
public Vector3 Xform(Vector3 v)
{
- Quat q = this * v;
- q *= Inverse();
- return new Vector3(q.x, q.y, q.z);
+#if DEBUG
+ if (!IsNormalized())
+ throw new InvalidOperationException("Quat is not normalized");
+#endif
+ var u = new Vector3(x, y, z);
+ Vector3 uv = u.Cross(v);
+ return v + ((uv * w) + u.Cross(uv)) * 2;
}
// Static Readonly Properties
@@ -257,8 +276,12 @@ namespace Godot
public Quat(Vector3 axis, real_t angle)
{
+#if DEBUG
+ if (!axis.IsNormalized())
+ throw new ArgumentException("Argument is not normalized", nameof(axis));
+#endif
+
real_t d = axis.Length();
- real_t angle_t = angle;
if (d == 0f)
{
@@ -269,12 +292,14 @@ namespace Godot
}
else
{
- real_t s = Mathf.Sin(angle_t * 0.5f) / d;
+ real_t sinAngle = Mathf.Sin(angle * 0.5f);
+ real_t cosAngle = Mathf.Cos(angle * 0.5f);
+ real_t s = sinAngle / d;
x = axis.x * s;
y = axis.y * s;
z = axis.z * s;
- w = Mathf.Cos(angle_t * 0.5f);
+ w = cosAngle;
}
}
diff --git a/modules/mono/glue/GodotSharp/GodotSharp/Core/Vector3.cs b/modules/mono/glue/GodotSharp/GodotSharp/Core/Vector3.cs
index 025b09199f..fded34002d 100644
--- a/modules/mono/glue/GodotSharp/GodotSharp/Core/Vector3.cs
+++ b/modules/mono/glue/GodotSharp/GodotSharp/Core/Vector3.cs
@@ -255,7 +255,7 @@ namespace Godot
{
#if DEBUG
if (!n.IsNormalized())
- throw new ArgumentException(String.Format("{0} is not normalized", n), nameof(n));
+ throw new ArgumentException("Argument is not normalized", nameof(n));
#endif
return 2.0f * n * Dot(n) - this;
}
@@ -296,6 +296,10 @@ namespace Godot
public Vector3 Slerp(Vector3 b, real_t t)
{
+#if DEBUG
+ if (!IsNormalized())
+ throw new InvalidOperationException("Vector3 is not normalized");
+#endif
real_t theta = AngleTo(b);
return Rotated(Cross(b), theta * t);
}
diff --git a/modules/opensimplex/doc_classes/NoiseTexture.xml b/modules/opensimplex/doc_classes/NoiseTexture.xml
index 07d5eb27d6..c0cd595629 100644
--- a/modules/opensimplex/doc_classes/NoiseTexture.xml
+++ b/modules/opensimplex/doc_classes/NoiseTexture.xml
@@ -1,11 +1,17 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="NoiseTexture" inherits="Texture" category="Core" version="3.2">
+<class name="NoiseTexture" inherits="Texture" version="3.2">
<brief_description>
[OpenSimplexNoise] filled texture.
</brief_description>
<description>
Uses an [OpenSimplexNoise] to fill the texture data. You can specify the texture size but keep in mind that larger textures will take longer to generate and seamless noise only works with square sized textures.
NoiseTexture can also generate normalmap textures.
+ The class uses [Thread]s to generate the texture data internally, so [method Texture.get_data] may return [code]null[/code] if the generation process has not completed yet. In that case, you need to wait for the texture to be generated before accessing the data:
+ [codeblock]
+ var texture = preload("res://noise.tres")
+ yield(texture, "changed")
+ var image = texture.get_data()
+ [/codeblock]
</description>
<tutorials>
</tutorials>
@@ -16,6 +22,7 @@
If [code]true[/code], the resulting texture contains a normal map created from the original noise interpreted as a bump map.
</member>
<member name="bump_strength" type="float" setter="set_bump_strength" getter="get_bump_strength" default="8.0">
+ Strength of the bump maps used in this texture. A higher value will make the bump maps appear larger while a lower value will make them appear softer.
</member>
<member name="flags" type="int" setter="set_flags" getter="get_flags" override="true" default="7" />
<member name="height" type="int" setter="set_height" getter="get_height" default="512">
diff --git a/modules/opensimplex/doc_classes/OpenSimplexNoise.xml b/modules/opensimplex/doc_classes/OpenSimplexNoise.xml
index f3fbbab3da..f500925f75 100644
--- a/modules/opensimplex/doc_classes/OpenSimplexNoise.xml
+++ b/modules/opensimplex/doc_classes/OpenSimplexNoise.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="OpenSimplexNoise" inherits="Resource" category="Core" version="3.2">
+<class name="OpenSimplexNoise" inherits="Resource" version="3.2">
<brief_description>
Noise generator based on Open Simplex.
</brief_description>
@@ -117,7 +117,8 @@
Difference in period between [member octaves].
</member>
<member name="octaves" type="int" setter="set_octaves" getter="get_octaves" default="3">
- Number of OpenSimplex noise layers that are sampled to get the fractal noise.
+ Number of OpenSimplex noise layers that are sampled to get the fractal noise. Higher values result in more detailed noise but take more time to generate.
+ [b]Note:[/b] The maximum allowed value is 9.
</member>
<member name="period" type="float" setter="set_period" getter="get_period" default="64.0">
Period of the base octave. A lower period results in a higher-frequency noise (more value changes across the same distance).
diff --git a/modules/opensimplex/open_simplex_noise.cpp b/modules/opensimplex/open_simplex_noise.cpp
index c99588aefa..bd187e6b5b 100644
--- a/modules/opensimplex/open_simplex_noise.cpp
+++ b/modules/opensimplex/open_simplex_noise.cpp
@@ -47,7 +47,7 @@ OpenSimplexNoise::~OpenSimplexNoise() {
}
void OpenSimplexNoise::_init_seeds() {
- for (int i = 0; i < 6; ++i) {
+ for (int i = 0; i < MAX_OCTAVES; ++i) {
open_simplex_noise(seed + i * 2, &(contexts[i]));
}
}
@@ -71,7 +71,10 @@ int OpenSimplexNoise::get_seed() {
void OpenSimplexNoise::set_octaves(int p_octaves) {
if (p_octaves == octaves) return;
- octaves = CLAMP(p_octaves, 1, 6);
+
+ ERR_FAIL_COND_MSG(p_octaves > MAX_OCTAVES, vformat("The number of OpenSimplexNoise octaves is limited to %d; ignoring the new value.", MAX_OCTAVES));
+
+ octaves = CLAMP(p_octaves, 1, MAX_OCTAVES);
emit_changed();
}
@@ -182,7 +185,7 @@ void OpenSimplexNoise::_bind_methods() {
ClassDB::bind_method(D_METHOD("get_noise_3dv", "pos"), &OpenSimplexNoise::get_noise_3dv);
ADD_PROPERTY(PropertyInfo(Variant::INT, "seed"), "set_seed", "get_seed");
- ADD_PROPERTY(PropertyInfo(Variant::INT, "octaves", PROPERTY_HINT_RANGE, "1,6,1"), "set_octaves", "get_octaves");
+ ADD_PROPERTY(PropertyInfo(Variant::INT, "octaves", PROPERTY_HINT_RANGE, vformat("1,%d,1", MAX_OCTAVES)), "set_octaves", "get_octaves");
ADD_PROPERTY(PropertyInfo(Variant::REAL, "period", PROPERTY_HINT_RANGE, "0.1,256.0,0.1"), "set_period", "get_period");
ADD_PROPERTY(PropertyInfo(Variant::REAL, "persistence", PROPERTY_HINT_RANGE, "0.0,1.0,0.001"), "set_persistence", "get_persistence");
ADD_PROPERTY(PropertyInfo(Variant::REAL, "lacunarity", PROPERTY_HINT_RANGE, "0.1,4.0,0.01"), "set_lacunarity", "get_lacunarity");
diff --git a/modules/opensimplex/open_simplex_noise.h b/modules/opensimplex/open_simplex_noise.h
index 89b12253b9..dce62bc1f9 100644
--- a/modules/opensimplex/open_simplex_noise.h
+++ b/modules/opensimplex/open_simplex_noise.h
@@ -37,11 +37,16 @@
#include "thirdparty/misc/open-simplex-noise.h"
+// The maximum number of octaves allowed. Note that these are statically allocated.
+// Higher values become exponentially slower, so this shouldn't be set too high
+// to avoid freezing the editor for long periods of time.
+#define MAX_OCTAVES 9
+
class OpenSimplexNoise : public Resource {
GDCLASS(OpenSimplexNoise, Resource);
OBJ_SAVE_TYPE(OpenSimplexNoise);
- osn_context contexts[6];
+ osn_context contexts[MAX_OCTAVES];
int seed;
float persistence; // Controls details, value in [0,1]. Higher increases grain, lower increases smoothness.
diff --git a/modules/regex/doc_classes/RegEx.xml b/modules/regex/doc_classes/RegEx.xml
index 74b06039d4..91987c99b7 100644
--- a/modules/regex/doc_classes/RegEx.xml
+++ b/modules/regex/doc_classes/RegEx.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="RegEx" inherits="Reference" category="Core" version="3.2">
+<class name="RegEx" inherits="Reference" version="3.2">
<brief_description>
Class for searching text for patterns using regular expressions.
</brief_description>
@@ -10,7 +10,7 @@
var regex = RegEx.new()
regex.compile("\\w-(\\d+)")
[/codeblock]
- The search pattern must be escaped first for gdscript before it is escaped for the expression. For example, [code]compile("\\d+")[/code] would be read by RegEx as [code]\d+[/code]. Similarly, [code]compile("\"(?:\\\\.|[^\"])*\"")[/code] would be read as [code]"(?:\\.|[^"])*"[/code]
+ The search pattern must be escaped first for gdscript before it is escaped for the expression. For example, [code]compile("\\d+")[/code] would be read by RegEx as [code]\d+[/code]. Similarly, [code]compile("\"(?:\\\\.|[^\"])*\"")[/code] would be read as [code]"(?:\\.|[^"])*"[/code].
Using [method search] you can find the pattern within the given text. If a pattern is found, [RegExMatch] is returned and you can retrieve details of the results using functions such as [method RegExMatch.get_string] and [method RegExMatch.get_start].
[codeblock]
var regex = RegEx.new()
diff --git a/modules/regex/doc_classes/RegExMatch.xml b/modules/regex/doc_classes/RegExMatch.xml
index 6dec9fc516..7ea5047dc1 100644
--- a/modules/regex/doc_classes/RegExMatch.xml
+++ b/modules/regex/doc_classes/RegExMatch.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="RegExMatch" inherits="Reference" category="Core" version="3.2">
+<class name="RegExMatch" inherits="Reference" version="3.2">
<brief_description>
Contains the results of a [RegEx] search.
</brief_description>
diff --git a/modules/stb_vorbis/audio_stream_ogg_vorbis.h b/modules/stb_vorbis/audio_stream_ogg_vorbis.h
index cfa5e97faa..e909759acb 100644
--- a/modules/stb_vorbis/audio_stream_ogg_vorbis.h
+++ b/modules/stb_vorbis/audio_stream_ogg_vorbis.h
@@ -73,7 +73,7 @@ public:
class AudioStreamOGGVorbis : public AudioStream {
GDCLASS(AudioStreamOGGVorbis, AudioStream);
- OBJ_SAVE_TYPE(AudioStream) //children are all saved as AudioStream, so they can be exchanged
+ OBJ_SAVE_TYPE(AudioStream); // Saves derived classes with common type so they can be interchanged.
RES_BASE_EXTENSION("oggstr");
friend class AudioStreamPlaybackOGGVorbis;
diff --git a/modules/stb_vorbis/doc_classes/AudioStreamOGGVorbis.xml b/modules/stb_vorbis/doc_classes/AudioStreamOGGVorbis.xml
index 102a9b4236..c9e3179a66 100644
--- a/modules/stb_vorbis/doc_classes/AudioStreamOGGVorbis.xml
+++ b/modules/stb_vorbis/doc_classes/AudioStreamOGGVorbis.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="AudioStreamOGGVorbis" inherits="AudioStream" category="Core" version="3.2">
+<class name="AudioStreamOGGVorbis" inherits="AudioStream" version="3.2">
<brief_description>
OGG Vorbis audio stream driver.
</brief_description>
diff --git a/modules/svg/image_loader_svg.cpp b/modules/svg/image_loader_svg.cpp
index 57097aaa06..11ae2f81bf 100644
--- a/modules/svg/image_loader_svg.cpp
+++ b/modules/svg/image_loader_svg.cpp
@@ -103,15 +103,17 @@ Error ImageLoaderSVG::_create_image(Ref<Image> p_image, const PoolVector<uint8_t
ERR_PRINT("SVG Corrupted");
return ERR_FILE_CORRUPT;
}
- if (convert_colors)
+
+ if (convert_colors) {
_convert_colors(svg_image);
+ }
- float upscale = upsample ? 2.0 : 1.0;
+ const float upscale = upsample ? 2.0 : 1.0;
- int w = (int)(svg_image->width * p_scale * upscale);
+ const int w = (int)(svg_image->width * p_scale * upscale);
ERR_FAIL_COND_V_MSG(w > Image::MAX_WIDTH, ERR_PARAMETER_RANGE_ERROR, vformat("Can't create image from SVG with scale %s, the resulting image size exceeds max width.", rtos(p_scale)));
- int h = (int)(svg_image->height * p_scale * upscale);
+ const int h = (int)(svg_image->height * p_scale * upscale);
ERR_FAIL_COND_V_MSG(h > Image::MAX_HEIGHT, ERR_PARAMETER_RANGE_ERROR, vformat("Can't create image from SVG with scale %s, the resulting image size exceeds max height.", rtos(p_scale)));
PoolVector<uint8_t> dst_image;
@@ -123,8 +125,9 @@ Error ImageLoaderSVG::_create_image(Ref<Image> p_image, const PoolVector<uint8_t
dw.release();
p_image->create(w, h, false, Image::FORMAT_RGBA8, dst_image);
- if (upsample)
+ if (upsample) {
p_image->shrink_x2();
+ }
nsvgDelete(svg_image);
diff --git a/modules/theora/doc_classes/VideoStreamTheora.xml b/modules/theora/doc_classes/VideoStreamTheora.xml
index 696101e252..8dea9e4cdb 100644
--- a/modules/theora/doc_classes/VideoStreamTheora.xml
+++ b/modules/theora/doc_classes/VideoStreamTheora.xml
@@ -1,8 +1,10 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="VideoStreamTheora" inherits="VideoStream" category="Core" version="3.2">
+<class name="VideoStreamTheora" inherits="VideoStream" version="3.2">
<brief_description>
+ [VideoStream] resource for Ogg Theora videos.
</brief_description>
<description>
+ [VideoStream] resource handling the [url=https://www.theora.org/]Ogg Theora[/url] video format with [code].ogv[/code] extension.
</description>
<tutorials>
</tutorials>
@@ -11,6 +13,7 @@
<return type="String">
</return>
<description>
+ Returns the Ogg Theora video file handled by this [VideoStreamTheora].
</description>
</method>
<method name="set_file">
@@ -19,6 +22,7 @@
<argument index="0" name="file" type="String">
</argument>
<description>
+ Sets the Ogg Theora video file that this [VideoStreamTheora] resource handles. The [code]file[/code] name should have the [code].o[/code] extension.
</description>
</method>
</methods>
diff --git a/modules/theora/video_stream_theora.cpp b/modules/theora/video_stream_theora.cpp
index 9ba77d3c77..cf1fc3f175 100644
--- a/modules/theora/video_stream_theora.cpp
+++ b/modules/theora/video_stream_theora.cpp
@@ -147,7 +147,6 @@ void VideoStreamPlaybackTheora::clear() {
thread = NULL;
ring_buffer.clear();
#endif
- //file_name = "";
theora_p = 0;
vorbis_p = 0;
diff --git a/modules/upnp/doc_classes/UPNP.xml b/modules/upnp/doc_classes/UPNP.xml
index aac0932995..b66428e123 100644
--- a/modules/upnp/doc_classes/UPNP.xml
+++ b/modules/upnp/doc_classes/UPNP.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="UPNP" inherits="Reference" category="Core" version="3.2">
+<class name="UPNP" inherits="Reference" version="3.2">
<brief_description>
UPNP network functions.
</brief_description>
diff --git a/modules/upnp/doc_classes/UPNPDevice.xml b/modules/upnp/doc_classes/UPNPDevice.xml
index 4d3a0f4f1d..d74912071d 100644
--- a/modules/upnp/doc_classes/UPNPDevice.xml
+++ b/modules/upnp/doc_classes/UPNPDevice.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="UPNPDevice" inherits="Reference" category="Core" version="3.2">
+<class name="UPNPDevice" inherits="Reference" version="3.2">
<brief_description>
UPNP device.
</brief_description>
diff --git a/modules/visual_script/doc_classes/@VisualScript.xml b/modules/visual_script/doc_classes/@VisualScript.xml
index 8d9408e6d4..5acbb80fd5 100644
--- a/modules/visual_script/doc_classes/@VisualScript.xml
+++ b/modules/visual_script/doc_classes/@VisualScript.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="@VisualScript" category="Core" version="3.2">
+<class name="@VisualScript" version="3.2">
<brief_description>
Built-in visual script functions.
</brief_description>
diff --git a/modules/visual_script/doc_classes/VisualScript.xml b/modules/visual_script/doc_classes/VisualScript.xml
index 0d95075152..23da3f2016 100644
--- a/modules/visual_script/doc_classes/VisualScript.xml
+++ b/modules/visual_script/doc_classes/VisualScript.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="VisualScript" inherits="Script" category="Core" version="3.2">
+<class name="VisualScript" inherits="Script" version="3.2">
<brief_description>
A script implemented in the Visual Script programming environment.
</brief_description>
diff --git a/modules/visual_script/doc_classes/VisualScriptBasicTypeConstant.xml b/modules/visual_script/doc_classes/VisualScriptBasicTypeConstant.xml
index 6dc54dbc03..fe20a7213c 100644
--- a/modules/visual_script/doc_classes/VisualScriptBasicTypeConstant.xml
+++ b/modules/visual_script/doc_classes/VisualScriptBasicTypeConstant.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="VisualScriptBasicTypeConstant" inherits="VisualScriptNode" category="Core" version="3.2">
+<class name="VisualScriptBasicTypeConstant" inherits="VisualScriptNode" version="3.2">
<brief_description>
A Visual Script node representing a constant from the base types.
</brief_description>
diff --git a/modules/visual_script/doc_classes/VisualScriptBuiltinFunc.xml b/modules/visual_script/doc_classes/VisualScriptBuiltinFunc.xml
index b5b452ee47..acdb2a08fb 100644
--- a/modules/visual_script/doc_classes/VisualScriptBuiltinFunc.xml
+++ b/modules/visual_script/doc_classes/VisualScriptBuiltinFunc.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="VisualScriptBuiltinFunc" inherits="VisualScriptNode" category="Core" version="3.2">
+<class name="VisualScriptBuiltinFunc" inherits="VisualScriptNode" version="3.2">
<brief_description>
A Visual Script node used to call built-in functions.
</brief_description>
@@ -203,7 +203,7 @@
Deserialize a [Variant] from a [PoolByteArray] serialized using [constant VAR_TO_BYTES].
</constant>
<constant name="COLORN" value="63" enum="BuiltinFunc">
- Return the [Color] with the given name and alpha ranging from 0 to 1
+ Return the [Color] with the given name and alpha ranging from 0 to 1.
[b]Note:[/b] Names are defined in [code]color_names.inc[/code].
</constant>
<constant name="MATH_SMOOTHSTEP" value="64" enum="BuiltinFunc">
diff --git a/modules/visual_script/doc_classes/VisualScriptClassConstant.xml b/modules/visual_script/doc_classes/VisualScriptClassConstant.xml
index 49ea7850ef..ea87d71354 100644
--- a/modules/visual_script/doc_classes/VisualScriptClassConstant.xml
+++ b/modules/visual_script/doc_classes/VisualScriptClassConstant.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="VisualScriptClassConstant" inherits="VisualScriptNode" category="Core" version="3.2">
+<class name="VisualScriptClassConstant" inherits="VisualScriptNode" version="3.2">
<brief_description>
Gets a constant from a given class.
</brief_description>
diff --git a/modules/visual_script/doc_classes/VisualScriptComment.xml b/modules/visual_script/doc_classes/VisualScriptComment.xml
index 2538bc8356..45cf2f8cad 100644
--- a/modules/visual_script/doc_classes/VisualScriptComment.xml
+++ b/modules/visual_script/doc_classes/VisualScriptComment.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="VisualScriptComment" inherits="VisualScriptNode" category="Core" version="3.2">
+<class name="VisualScriptComment" inherits="VisualScriptNode" version="3.2">
<brief_description>
A Visual Script node used to annotate the script.
</brief_description>
diff --git a/modules/visual_script/doc_classes/VisualScriptComposeArray.xml b/modules/visual_script/doc_classes/VisualScriptComposeArray.xml
index 92efbc51d1..72732d44c2 100644
--- a/modules/visual_script/doc_classes/VisualScriptComposeArray.xml
+++ b/modules/visual_script/doc_classes/VisualScriptComposeArray.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="VisualScriptComposeArray" inherits="VisualScriptLists" category="Core" version="3.2">
+<class name="VisualScriptComposeArray" inherits="VisualScriptLists" version="3.2">
<brief_description>
A Visual Script Node used to create array from a list of items.
</brief_description>
diff --git a/modules/visual_script/doc_classes/VisualScriptCondition.xml b/modules/visual_script/doc_classes/VisualScriptCondition.xml
index 12d85429cf..10b3540ec4 100644
--- a/modules/visual_script/doc_classes/VisualScriptCondition.xml
+++ b/modules/visual_script/doc_classes/VisualScriptCondition.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="VisualScriptCondition" inherits="VisualScriptNode" category="Core" version="3.2">
+<class name="VisualScriptCondition" inherits="VisualScriptNode" version="3.2">
<brief_description>
A Visual Script node which branches the flow.
</brief_description>
diff --git a/modules/visual_script/doc_classes/VisualScriptConstant.xml b/modules/visual_script/doc_classes/VisualScriptConstant.xml
index eb12fc3731..4d0685e87e 100644
--- a/modules/visual_script/doc_classes/VisualScriptConstant.xml
+++ b/modules/visual_script/doc_classes/VisualScriptConstant.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="VisualScriptConstant" inherits="VisualScriptNode" category="Core" version="3.2">
+<class name="VisualScriptConstant" inherits="VisualScriptNode" version="3.2">
<brief_description>
Gets a contant's value.
</brief_description>
diff --git a/modules/visual_script/doc_classes/VisualScriptConstructor.xml b/modules/visual_script/doc_classes/VisualScriptConstructor.xml
index 8da5055d83..b1af9c5fa6 100644
--- a/modules/visual_script/doc_classes/VisualScriptConstructor.xml
+++ b/modules/visual_script/doc_classes/VisualScriptConstructor.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="VisualScriptConstructor" inherits="VisualScriptNode" category="Core" version="3.2">
+<class name="VisualScriptConstructor" inherits="VisualScriptNode" version="3.2">
<brief_description>
A Visual Script node which calls a base type constructor.
</brief_description>
diff --git a/modules/visual_script/doc_classes/VisualScriptCustomNode.xml b/modules/visual_script/doc_classes/VisualScriptCustomNode.xml
index f70e22c7d0..2d86649a1c 100644
--- a/modules/visual_script/doc_classes/VisualScriptCustomNode.xml
+++ b/modules/visual_script/doc_classes/VisualScriptCustomNode.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="VisualScriptCustomNode" inherits="VisualScriptNode" category="Core" version="3.2">
+<class name="VisualScriptCustomNode" inherits="VisualScriptNode" version="3.2">
<brief_description>
A scripted Visual Script node.
</brief_description>
diff --git a/modules/visual_script/doc_classes/VisualScriptDeconstruct.xml b/modules/visual_script/doc_classes/VisualScriptDeconstruct.xml
index c8543287b4..84b8ec7686 100644
--- a/modules/visual_script/doc_classes/VisualScriptDeconstruct.xml
+++ b/modules/visual_script/doc_classes/VisualScriptDeconstruct.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="VisualScriptDeconstruct" inherits="VisualScriptNode" category="Core" version="3.2">
+<class name="VisualScriptDeconstruct" inherits="VisualScriptNode" version="3.2">
<brief_description>
A Visual Script node which deconstructs a base type instance into its parts.
</brief_description>
diff --git a/modules/visual_script/doc_classes/VisualScriptEditor.xml b/modules/visual_script/doc_classes/VisualScriptEditor.xml
index add2eb2275..17668af418 100644
--- a/modules/visual_script/doc_classes/VisualScriptEditor.xml
+++ b/modules/visual_script/doc_classes/VisualScriptEditor.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="VisualScriptEditor" inherits="Object" category="Core" version="3.2">
+<class name="VisualScriptEditor" inherits="Object" version="3.2">
<brief_description>
</brief_description>
<description>
diff --git a/modules/visual_script/doc_classes/VisualScriptEmitSignal.xml b/modules/visual_script/doc_classes/VisualScriptEmitSignal.xml
index 1a567905a9..9f6e891872 100644
--- a/modules/visual_script/doc_classes/VisualScriptEmitSignal.xml
+++ b/modules/visual_script/doc_classes/VisualScriptEmitSignal.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="VisualScriptEmitSignal" inherits="VisualScriptNode" category="Core" version="3.2">
+<class name="VisualScriptEmitSignal" inherits="VisualScriptNode" version="3.2">
<brief_description>
Emits a specified signal.
</brief_description>
diff --git a/modules/visual_script/doc_classes/VisualScriptEngineSingleton.xml b/modules/visual_script/doc_classes/VisualScriptEngineSingleton.xml
index 05bd87ec22..080fa54a3b 100644
--- a/modules/visual_script/doc_classes/VisualScriptEngineSingleton.xml
+++ b/modules/visual_script/doc_classes/VisualScriptEngineSingleton.xml
@@ -1,10 +1,10 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="VisualScriptEngineSingleton" inherits="VisualScriptNode" category="Core" version="3.2">
+<class name="VisualScriptEngineSingleton" inherits="VisualScriptNode" version="3.2">
<brief_description>
- A Visual Script node returning a singleton from [@GlobalScope]
+ A Visual Script node returning a singleton from [@GlobalScope].
</brief_description>
<description>
- A Visual Script node returning a singleton from [@GlobalScope]
+ A Visual Script node returning a singleton from [@GlobalScope].
</description>
<tutorials>
</tutorials>
diff --git a/modules/visual_script/doc_classes/VisualScriptExpression.xml b/modules/visual_script/doc_classes/VisualScriptExpression.xml
index eb6cdbb302..3d25cce9e8 100644
--- a/modules/visual_script/doc_classes/VisualScriptExpression.xml
+++ b/modules/visual_script/doc_classes/VisualScriptExpression.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="VisualScriptExpression" inherits="VisualScriptNode" category="Core" version="3.2">
+<class name="VisualScriptExpression" inherits="VisualScriptNode" version="3.2">
<brief_description>
</brief_description>
<description>
diff --git a/modules/visual_script/doc_classes/VisualScriptFunction.xml b/modules/visual_script/doc_classes/VisualScriptFunction.xml
index 152b48ca89..b177d990aa 100644
--- a/modules/visual_script/doc_classes/VisualScriptFunction.xml
+++ b/modules/visual_script/doc_classes/VisualScriptFunction.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="VisualScriptFunction" inherits="VisualScriptNode" category="Core" version="3.2">
+<class name="VisualScriptFunction" inherits="VisualScriptNode" version="3.2">
<brief_description>
</brief_description>
<description>
diff --git a/modules/visual_script/doc_classes/VisualScriptFunctionCall.xml b/modules/visual_script/doc_classes/VisualScriptFunctionCall.xml
index f7f86e8c80..cfbcff2029 100644
--- a/modules/visual_script/doc_classes/VisualScriptFunctionCall.xml
+++ b/modules/visual_script/doc_classes/VisualScriptFunctionCall.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="VisualScriptFunctionCall" inherits="VisualScriptNode" category="Core" version="3.2">
+<class name="VisualScriptFunctionCall" inherits="VisualScriptNode" version="3.2">
<brief_description>
</brief_description>
<description>
diff --git a/modules/visual_script/doc_classes/VisualScriptFunctionState.xml b/modules/visual_script/doc_classes/VisualScriptFunctionState.xml
index a8e820e6ea..fff9b16ec1 100644
--- a/modules/visual_script/doc_classes/VisualScriptFunctionState.xml
+++ b/modules/visual_script/doc_classes/VisualScriptFunctionState.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="VisualScriptFunctionState" inherits="Reference" category="Core" version="3.2">
+<class name="VisualScriptFunctionState" inherits="Reference" version="3.2">
<brief_description>
</brief_description>
<description>
diff --git a/modules/visual_script/doc_classes/VisualScriptGlobalConstant.xml b/modules/visual_script/doc_classes/VisualScriptGlobalConstant.xml
index 6c70dc7dc4..739637ae59 100644
--- a/modules/visual_script/doc_classes/VisualScriptGlobalConstant.xml
+++ b/modules/visual_script/doc_classes/VisualScriptGlobalConstant.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="VisualScriptGlobalConstant" inherits="VisualScriptNode" category="Core" version="3.2">
+<class name="VisualScriptGlobalConstant" inherits="VisualScriptNode" version="3.2">
<brief_description>
</brief_description>
<description>
diff --git a/modules/visual_script/doc_classes/VisualScriptIndexGet.xml b/modules/visual_script/doc_classes/VisualScriptIndexGet.xml
index ba0dc1a3d0..3208113770 100644
--- a/modules/visual_script/doc_classes/VisualScriptIndexGet.xml
+++ b/modules/visual_script/doc_classes/VisualScriptIndexGet.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="VisualScriptIndexGet" inherits="VisualScriptNode" category="Core" version="3.2">
+<class name="VisualScriptIndexGet" inherits="VisualScriptNode" version="3.2">
<brief_description>
</brief_description>
<description>
diff --git a/modules/visual_script/doc_classes/VisualScriptIndexSet.xml b/modules/visual_script/doc_classes/VisualScriptIndexSet.xml
index 09a8f2c8ad..d49eba1639 100644
--- a/modules/visual_script/doc_classes/VisualScriptIndexSet.xml
+++ b/modules/visual_script/doc_classes/VisualScriptIndexSet.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="VisualScriptIndexSet" inherits="VisualScriptNode" category="Core" version="3.2">
+<class name="VisualScriptIndexSet" inherits="VisualScriptNode" version="3.2">
<brief_description>
</brief_description>
<description>
diff --git a/modules/visual_script/doc_classes/VisualScriptInputAction.xml b/modules/visual_script/doc_classes/VisualScriptInputAction.xml
index 8c942813b2..59f61f29f6 100644
--- a/modules/visual_script/doc_classes/VisualScriptInputAction.xml
+++ b/modules/visual_script/doc_classes/VisualScriptInputAction.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="VisualScriptInputAction" inherits="VisualScriptNode" category="Core" version="3.2">
+<class name="VisualScriptInputAction" inherits="VisualScriptNode" version="3.2">
<brief_description>
</brief_description>
<description>
diff --git a/modules/visual_script/doc_classes/VisualScriptIterator.xml b/modules/visual_script/doc_classes/VisualScriptIterator.xml
index 782bbfae20..2e693d18f1 100644
--- a/modules/visual_script/doc_classes/VisualScriptIterator.xml
+++ b/modules/visual_script/doc_classes/VisualScriptIterator.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="VisualScriptIterator" inherits="VisualScriptNode" category="Core" version="3.2">
+<class name="VisualScriptIterator" inherits="VisualScriptNode" version="3.2">
<brief_description>
Steps through items in a given input.
</brief_description>
diff --git a/modules/visual_script/doc_classes/VisualScriptLists.xml b/modules/visual_script/doc_classes/VisualScriptLists.xml
index 8cf3eb1d38..6fe41c388e 100644
--- a/modules/visual_script/doc_classes/VisualScriptLists.xml
+++ b/modules/visual_script/doc_classes/VisualScriptLists.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="VisualScriptLists" inherits="VisualScriptNode" category="Core" version="3.2">
+<class name="VisualScriptLists" inherits="VisualScriptNode" version="3.2">
<brief_description>
A Visual Script virtual class for in-graph editable nodes.
</brief_description>
diff --git a/modules/visual_script/doc_classes/VisualScriptLocalVar.xml b/modules/visual_script/doc_classes/VisualScriptLocalVar.xml
index 8c21c3f0bc..ffe2d53637 100644
--- a/modules/visual_script/doc_classes/VisualScriptLocalVar.xml
+++ b/modules/visual_script/doc_classes/VisualScriptLocalVar.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="VisualScriptLocalVar" inherits="VisualScriptNode" category="Core" version="3.2">
+<class name="VisualScriptLocalVar" inherits="VisualScriptNode" version="3.2">
<brief_description>
Gets a local variable's value.
</brief_description>
diff --git a/modules/visual_script/doc_classes/VisualScriptLocalVarSet.xml b/modules/visual_script/doc_classes/VisualScriptLocalVarSet.xml
index a981432cdb..7a0e5c6263 100644
--- a/modules/visual_script/doc_classes/VisualScriptLocalVarSet.xml
+++ b/modules/visual_script/doc_classes/VisualScriptLocalVarSet.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="VisualScriptLocalVarSet" inherits="VisualScriptNode" category="Core" version="3.2">
+<class name="VisualScriptLocalVarSet" inherits="VisualScriptNode" version="3.2">
<brief_description>
Changes a local variable's value.
</brief_description>
diff --git a/modules/visual_script/doc_classes/VisualScriptMathConstant.xml b/modules/visual_script/doc_classes/VisualScriptMathConstant.xml
index 3be392aef5..22299635c5 100644
--- a/modules/visual_script/doc_classes/VisualScriptMathConstant.xml
+++ b/modules/visual_script/doc_classes/VisualScriptMathConstant.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="VisualScriptMathConstant" inherits="VisualScriptNode" category="Core" version="3.2">
+<class name="VisualScriptMathConstant" inherits="VisualScriptNode" version="3.2">
<brief_description>
Commonly used mathematical constants.
</brief_description>
@@ -21,28 +21,28 @@
</members>
<constants>
<constant name="MATH_CONSTANT_ONE" value="0" enum="MathConstant">
- Unity: [code]1[/code]
+ Unity: [code]1[/code].
</constant>
<constant name="MATH_CONSTANT_PI" value="1" enum="MathConstant">
- Pi: [code]3.141593[/code]
+ Pi: [code]3.141593[/code].
</constant>
<constant name="MATH_CONSTANT_HALF_PI" value="2" enum="MathConstant">
- Pi divided by two: [code]1.570796[/code]
+ Pi divided by two: [code]1.570796[/code].
</constant>
<constant name="MATH_CONSTANT_TAU" value="3" enum="MathConstant">
- Tau: [code]6.283185[/code]
+ Tau: [code]6.283185[/code].
</constant>
<constant name="MATH_CONSTANT_E" value="4" enum="MathConstant">
- Mathematical constant [code]e[/code], the natural log base: [code]2.718282[/code]
+ Mathematical constant [code]e[/code], the natural log base: [code]2.718282[/code].
</constant>
<constant name="MATH_CONSTANT_SQRT2" value="5" enum="MathConstant">
- Square root of two: [code]1.414214[/code]
+ Square root of two: [code]1.414214[/code].
</constant>
<constant name="MATH_CONSTANT_INF" value="6" enum="MathConstant">
- Infinity: [code]inf[/code]
+ Infinity: [code]inf[/code].
</constant>
<constant name="MATH_CONSTANT_NAN" value="7" enum="MathConstant">
- Not a number: [code]nan[/code]
+ Not a number: [code]nan[/code].
</constant>
<constant name="MATH_CONSTANT_MAX" value="8" enum="MathConstant">
Represents the size of the [enum MathConstant] enum.
diff --git a/modules/visual_script/doc_classes/VisualScriptNode.xml b/modules/visual_script/doc_classes/VisualScriptNode.xml
index 89fb5c81f8..63fe5da2f9 100644
--- a/modules/visual_script/doc_classes/VisualScriptNode.xml
+++ b/modules/visual_script/doc_classes/VisualScriptNode.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="VisualScriptNode" inherits="Resource" category="Core" version="3.2">
+<class name="VisualScriptNode" inherits="Resource" version="3.2">
<brief_description>
A node which is part of a [VisualScript].
</brief_description>
diff --git a/modules/visual_script/doc_classes/VisualScriptOperator.xml b/modules/visual_script/doc_classes/VisualScriptOperator.xml
index 80449ac521..ce653c3141 100644
--- a/modules/visual_script/doc_classes/VisualScriptOperator.xml
+++ b/modules/visual_script/doc_classes/VisualScriptOperator.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="VisualScriptOperator" inherits="VisualScriptNode" category="Core" version="3.2">
+<class name="VisualScriptOperator" inherits="VisualScriptNode" version="3.2">
<brief_description>
</brief_description>
<description>
diff --git a/modules/visual_script/doc_classes/VisualScriptPreload.xml b/modules/visual_script/doc_classes/VisualScriptPreload.xml
index b3b39691c9..f44ac5a59e 100644
--- a/modules/visual_script/doc_classes/VisualScriptPreload.xml
+++ b/modules/visual_script/doc_classes/VisualScriptPreload.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="VisualScriptPreload" inherits="VisualScriptNode" category="Core" version="3.2">
+<class name="VisualScriptPreload" inherits="VisualScriptNode" version="3.2">
<brief_description>
Creates a new [Resource] or loads one from the filesystem.
</brief_description>
diff --git a/modules/visual_script/doc_classes/VisualScriptPropertyGet.xml b/modules/visual_script/doc_classes/VisualScriptPropertyGet.xml
index af1e8e68e8..a0b7128e02 100644
--- a/modules/visual_script/doc_classes/VisualScriptPropertyGet.xml
+++ b/modules/visual_script/doc_classes/VisualScriptPropertyGet.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="VisualScriptPropertyGet" inherits="VisualScriptNode" category="Core" version="3.2">
+<class name="VisualScriptPropertyGet" inherits="VisualScriptNode" version="3.2">
<brief_description>
</brief_description>
<description>
diff --git a/modules/visual_script/doc_classes/VisualScriptPropertySet.xml b/modules/visual_script/doc_classes/VisualScriptPropertySet.xml
index 380c196caf..f503c57acd 100644
--- a/modules/visual_script/doc_classes/VisualScriptPropertySet.xml
+++ b/modules/visual_script/doc_classes/VisualScriptPropertySet.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="VisualScriptPropertySet" inherits="VisualScriptNode" category="Core" version="3.2">
+<class name="VisualScriptPropertySet" inherits="VisualScriptNode" version="3.2">
<brief_description>
</brief_description>
<description>
diff --git a/modules/visual_script/doc_classes/VisualScriptResourcePath.xml b/modules/visual_script/doc_classes/VisualScriptResourcePath.xml
index da37bbbb2c..14d18be148 100644
--- a/modules/visual_script/doc_classes/VisualScriptResourcePath.xml
+++ b/modules/visual_script/doc_classes/VisualScriptResourcePath.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="VisualScriptResourcePath" inherits="VisualScriptNode" category="Core" version="3.2">
+<class name="VisualScriptResourcePath" inherits="VisualScriptNode" version="3.2">
<brief_description>
</brief_description>
<description>
diff --git a/modules/visual_script/doc_classes/VisualScriptReturn.xml b/modules/visual_script/doc_classes/VisualScriptReturn.xml
index 9a81c671d4..a8adccdf31 100644
--- a/modules/visual_script/doc_classes/VisualScriptReturn.xml
+++ b/modules/visual_script/doc_classes/VisualScriptReturn.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="VisualScriptReturn" inherits="VisualScriptNode" category="Core" version="3.2">
+<class name="VisualScriptReturn" inherits="VisualScriptNode" version="3.2">
<brief_description>
Exits a function and returns an optional value.
</brief_description>
diff --git a/modules/visual_script/doc_classes/VisualScriptSceneNode.xml b/modules/visual_script/doc_classes/VisualScriptSceneNode.xml
index 99f4acbd27..4661ec41af 100644
--- a/modules/visual_script/doc_classes/VisualScriptSceneNode.xml
+++ b/modules/visual_script/doc_classes/VisualScriptSceneNode.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="VisualScriptSceneNode" inherits="VisualScriptNode" category="Core" version="3.2">
+<class name="VisualScriptSceneNode" inherits="VisualScriptNode" version="3.2">
<brief_description>
Node reference.
</brief_description>
diff --git a/modules/visual_script/doc_classes/VisualScriptSceneTree.xml b/modules/visual_script/doc_classes/VisualScriptSceneTree.xml
index 84718ba119..1bf2f0b30a 100644
--- a/modules/visual_script/doc_classes/VisualScriptSceneTree.xml
+++ b/modules/visual_script/doc_classes/VisualScriptSceneTree.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="VisualScriptSceneTree" inherits="VisualScriptNode" category="Core" version="3.2">
+<class name="VisualScriptSceneTree" inherits="VisualScriptNode" version="3.2">
<brief_description>
</brief_description>
<description>
diff --git a/modules/visual_script/doc_classes/VisualScriptSelect.xml b/modules/visual_script/doc_classes/VisualScriptSelect.xml
index e6a6cd5a48..e7e214561d 100644
--- a/modules/visual_script/doc_classes/VisualScriptSelect.xml
+++ b/modules/visual_script/doc_classes/VisualScriptSelect.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="VisualScriptSelect" inherits="VisualScriptNode" category="Core" version="3.2">
+<class name="VisualScriptSelect" inherits="VisualScriptNode" version="3.2">
<brief_description>
Chooses between two input values.
</brief_description>
diff --git a/modules/visual_script/doc_classes/VisualScriptSelf.xml b/modules/visual_script/doc_classes/VisualScriptSelf.xml
index 231e7d8f0d..3fb1b72cbb 100644
--- a/modules/visual_script/doc_classes/VisualScriptSelf.xml
+++ b/modules/visual_script/doc_classes/VisualScriptSelf.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="VisualScriptSelf" inherits="VisualScriptNode" category="Core" version="3.2">
+<class name="VisualScriptSelf" inherits="VisualScriptNode" version="3.2">
<brief_description>
Outputs a reference to the current instance.
</brief_description>
diff --git a/modules/visual_script/doc_classes/VisualScriptSequence.xml b/modules/visual_script/doc_classes/VisualScriptSequence.xml
index 2ceceb199f..01e7b28fbc 100644
--- a/modules/visual_script/doc_classes/VisualScriptSequence.xml
+++ b/modules/visual_script/doc_classes/VisualScriptSequence.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="VisualScriptSequence" inherits="VisualScriptNode" category="Core" version="3.2">
+<class name="VisualScriptSequence" inherits="VisualScriptNode" version="3.2">
<brief_description>
Executes a series of Sequence ports.
</brief_description>
diff --git a/modules/visual_script/doc_classes/VisualScriptSubCall.xml b/modules/visual_script/doc_classes/VisualScriptSubCall.xml
index 51b0093209..9c6e61d41b 100644
--- a/modules/visual_script/doc_classes/VisualScriptSubCall.xml
+++ b/modules/visual_script/doc_classes/VisualScriptSubCall.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="VisualScriptSubCall" inherits="VisualScriptNode" category="Core" version="3.2">
+<class name="VisualScriptSubCall" inherits="VisualScriptNode" version="3.2">
<brief_description>
</brief_description>
<description>
diff --git a/modules/visual_script/doc_classes/VisualScriptSwitch.xml b/modules/visual_script/doc_classes/VisualScriptSwitch.xml
index 3e3b88ebe0..8e4c21515b 100644
--- a/modules/visual_script/doc_classes/VisualScriptSwitch.xml
+++ b/modules/visual_script/doc_classes/VisualScriptSwitch.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="VisualScriptSwitch" inherits="VisualScriptNode" category="Core" version="3.2">
+<class name="VisualScriptSwitch" inherits="VisualScriptNode" version="3.2">
<brief_description>
Branches program flow based on a given input's value.
</brief_description>
diff --git a/modules/visual_script/doc_classes/VisualScriptTypeCast.xml b/modules/visual_script/doc_classes/VisualScriptTypeCast.xml
index 999a190a9a..6242d214c6 100644
--- a/modules/visual_script/doc_classes/VisualScriptTypeCast.xml
+++ b/modules/visual_script/doc_classes/VisualScriptTypeCast.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="VisualScriptTypeCast" inherits="VisualScriptNode" category="Core" version="3.2">
+<class name="VisualScriptTypeCast" inherits="VisualScriptNode" version="3.2">
<brief_description>
</brief_description>
<description>
diff --git a/modules/visual_script/doc_classes/VisualScriptVariableGet.xml b/modules/visual_script/doc_classes/VisualScriptVariableGet.xml
index 40e461294b..915f3626cd 100644
--- a/modules/visual_script/doc_classes/VisualScriptVariableGet.xml
+++ b/modules/visual_script/doc_classes/VisualScriptVariableGet.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="VisualScriptVariableGet" inherits="VisualScriptNode" category="Core" version="3.2">
+<class name="VisualScriptVariableGet" inherits="VisualScriptNode" version="3.2">
<brief_description>
Gets a variable's value.
</brief_description>
diff --git a/modules/visual_script/doc_classes/VisualScriptVariableSet.xml b/modules/visual_script/doc_classes/VisualScriptVariableSet.xml
index 6c53ad61b4..79c6f2ed59 100644
--- a/modules/visual_script/doc_classes/VisualScriptVariableSet.xml
+++ b/modules/visual_script/doc_classes/VisualScriptVariableSet.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="VisualScriptVariableSet" inherits="VisualScriptNode" category="Core" version="3.2">
+<class name="VisualScriptVariableSet" inherits="VisualScriptNode" version="3.2">
<brief_description>
Changes a variable's value.
</brief_description>
diff --git a/modules/visual_script/doc_classes/VisualScriptWhile.xml b/modules/visual_script/doc_classes/VisualScriptWhile.xml
index 77211fa088..a07a74285d 100644
--- a/modules/visual_script/doc_classes/VisualScriptWhile.xml
+++ b/modules/visual_script/doc_classes/VisualScriptWhile.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="VisualScriptWhile" inherits="VisualScriptNode" category="Core" version="3.2">
+<class name="VisualScriptWhile" inherits="VisualScriptNode" version="3.2">
<brief_description>
Conditional loop.
</brief_description>
diff --git a/modules/visual_script/doc_classes/VisualScriptYield.xml b/modules/visual_script/doc_classes/VisualScriptYield.xml
index c506e6db01..0683cf1dd9 100644
--- a/modules/visual_script/doc_classes/VisualScriptYield.xml
+++ b/modules/visual_script/doc_classes/VisualScriptYield.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="VisualScriptYield" inherits="VisualScriptNode" category="Core" version="3.2">
+<class name="VisualScriptYield" inherits="VisualScriptNode" version="3.2">
<brief_description>
</brief_description>
<description>
diff --git a/modules/visual_script/doc_classes/VisualScriptYieldSignal.xml b/modules/visual_script/doc_classes/VisualScriptYieldSignal.xml
index b9d7aedaab..1fc31a89c8 100644
--- a/modules/visual_script/doc_classes/VisualScriptYieldSignal.xml
+++ b/modules/visual_script/doc_classes/VisualScriptYieldSignal.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="VisualScriptYieldSignal" inherits="VisualScriptNode" category="Core" version="3.2">
+<class name="VisualScriptYieldSignal" inherits="VisualScriptNode" version="3.2">
<brief_description>
</brief_description>
<description>
diff --git a/modules/webm/doc_classes/VideoStreamWebm.xml b/modules/webm/doc_classes/VideoStreamWebm.xml
index ff11bbb37d..66fcf544b8 100644
--- a/modules/webm/doc_classes/VideoStreamWebm.xml
+++ b/modules/webm/doc_classes/VideoStreamWebm.xml
@@ -1,8 +1,10 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="VideoStreamWebm" inherits="VideoStream" category="Core" version="3.2">
+<class name="VideoStreamWebm" inherits="VideoStream" version="3.2">
<brief_description>
+ [VideoStream] resource for WebM videos.
</brief_description>
<description>
+ [VideoStream] resource handling the [url=https://www.webmproject.org/]WebM[/url] video format with [code].webm[/code] extension.
</description>
<tutorials>
</tutorials>
@@ -11,6 +13,7 @@
<return type="String">
</return>
<description>
+ Returns the WebM video file handled by this [VideoStreamWebm].
</description>
</method>
<method name="set_file">
@@ -19,6 +22,7 @@
<argument index="0" name="file" type="String">
</argument>
<description>
+ Sets the WebM video file that this [VideoStreamWebm] resource handles. The [code]file[/code] name should have the [code].webm[/code] extension.
</description>
</method>
</methods>
diff --git a/modules/webm/video_stream_webm.cpp b/modules/webm/video_stream_webm.cpp
index 6e2527595b..41f9e67672 100644
--- a/modules/webm/video_stream_webm.cpp
+++ b/modules/webm/video_stream_webm.cpp
@@ -30,21 +30,22 @@
#include "video_stream_webm.h"
-#include "OpusVorbisDecoder.hpp"
-#include "VPXDecoder.hpp"
-#include <vpx/vpx_image.h>
-
-#include "mkvparser/mkvparser.h"
-
#include "core/os/file_access.h"
#include "core/os/os.h"
#include "core/project_settings.h"
+#include "servers/audio_server.h"
#include "thirdparty/misc/yuv2rgb.h"
-#include "servers/audio_server.h"
+// libsimplewebm
+#include <OpusVorbisDecoder.hpp>
+#include <VPXDecoder.hpp>
+
+// libvpx
+#include <vpx/vpx_image.h>
-#include <string.h>
+// libwebm
+#include <mkvparser/mkvparser.h>
class MkvReader : public mkvparser::IMkvReader {
@@ -335,22 +336,22 @@ void VideoStreamPlaybackWebm::update(float p_delta) {
} else if (image.chromaShiftW == 1 && image.chromaShiftH == 1) {
yuv420_2_rgb8888(w.ptr(), image.planes[0], image.planes[1], image.planes[2], image.w, image.h, image.linesize[0], image.linesize[1], image.w << 2);
- // libyuv::I420ToARGB(image.planes[0], image.linesize[0], image.planes[2], image.linesize[2], image.planes[1], image.linesize[1], w.ptr(), image.w << 2, image.w, image.h);
+ //libyuv::I420ToARGB(image.planes[0], image.linesize[0], image.planes[2], image.linesize[2], image.planes[1], image.linesize[1], w.ptr(), image.w << 2, image.w, image.h);
converted = true;
} else if (image.chromaShiftW == 1 && image.chromaShiftH == 0) {
yuv422_2_rgb8888(w.ptr(), image.planes[0], image.planes[1], image.planes[2], image.w, image.h, image.linesize[0], image.linesize[1], image.w << 2);
- // libyuv::I422ToARGB(image.planes[0], image.linesize[0], image.planes[2], image.linesize[2], image.planes[1], image.linesize[1], w.ptr(), image.w << 2, image.w, image.h);
+ //libyuv::I422ToARGB(image.planes[0], image.linesize[0], image.planes[2], image.linesize[2], image.planes[1], image.linesize[1], w.ptr(), image.w << 2, image.w, image.h);
converted = true;
} else if (image.chromaShiftW == 0 && image.chromaShiftH == 0) {
yuv444_2_rgb8888(w.ptr(), image.planes[0], image.planes[1], image.planes[2], image.w, image.h, image.linesize[0], image.linesize[1], image.w << 2);
- // libyuv::I444ToARGB(image.planes[0], image.linesize[0], image.planes[2], image.linesize[2], image.planes[1], image.linesize[1], w.ptr(), image.w << 2, image.w, image.h);
+ //libyuv::I444ToARGB(image.planes[0], image.linesize[0], image.planes[2], image.linesize[2], image.planes[1], image.linesize[1], w.ptr(), image.w << 2, image.w, image.h);
converted = true;
} else if (image.chromaShiftW == 2 && image.chromaShiftH == 0) {
- // libyuv::I411ToARGB(image.planes[0], image.linesize[0], image.planes[2], image.linesize[2], image.planes[1], image.linesize[1], w.ptr(), image.w << 2, image.w, image.h);
- // converted = true;
+ //libyuv::I411ToARGB(image.planes[0], image.linesize[0], image.planes[2], image.linesize[2] image.planes[1], image.linesize[1], w.ptr(), image.w << 2, image.w, image.h);
+ //converted = true;
}
if (converted) {
diff --git a/modules/webrtc/doc_classes/WebRTCDataChannel.xml b/modules/webrtc/doc_classes/WebRTCDataChannel.xml
index 98715ee99b..23e74e73ad 100644
--- a/modules/webrtc/doc_classes/WebRTCDataChannel.xml
+++ b/modules/webrtc/doc_classes/WebRTCDataChannel.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="WebRTCDataChannel" inherits="PacketPeer" category="Core" version="3.2">
+<class name="WebRTCDataChannel" inherits="PacketPeer" version="3.2">
<brief_description>
</brief_description>
<description>
diff --git a/modules/webrtc/doc_classes/WebRTCMultiplayer.xml b/modules/webrtc/doc_classes/WebRTCMultiplayer.xml
index 605b1ef082..3c13c8842d 100644
--- a/modules/webrtc/doc_classes/WebRTCMultiplayer.xml
+++ b/modules/webrtc/doc_classes/WebRTCMultiplayer.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="WebRTCMultiplayer" inherits="NetworkedMultiplayerPeer" category="Core" version="3.2">
+<class name="WebRTCMultiplayer" inherits="NetworkedMultiplayerPeer" version="3.2">
<brief_description>
A simple interface to create a peer-to-peer mesh network composed of [WebRTCPeerConnection] that is compatible with the [MultiplayerAPI].
</brief_description>
@@ -45,7 +45,7 @@
<return type="Dictionary">
</return>
<description>
- Returns a dictionary which keys are the peer ids and values the peer representation as in [method get_peer]
+ Returns a dictionary which keys are the peer ids and values the peer representation as in [method get_peer].
</description>
</method>
<method name="has_peer">
diff --git a/modules/webrtc/doc_classes/WebRTCPeerConnection.xml b/modules/webrtc/doc_classes/WebRTCPeerConnection.xml
index 26082d73a8..b12c2a10ce 100644
--- a/modules/webrtc/doc_classes/WebRTCPeerConnection.xml
+++ b/modules/webrtc/doc_classes/WebRTCPeerConnection.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="WebRTCPeerConnection" inherits="Reference" category="Core" version="3.2">
+<class name="WebRTCPeerConnection" inherits="Reference" version="3.2">
<brief_description>
Interface to a WebRTC peer connection.
</brief_description>
@@ -143,7 +143,7 @@
</argument>
<description>
Emitted when a new in-band channel is received, i.e. when the channel was created with [code]negotiated: false[/code] (default).
- The object will be an instance of [WebRTCDataChannel]. You must keep a reference of it or it will be closed automatically. See [method create_data_channel]
+ The object will be an instance of [WebRTCDataChannel]. You must keep a reference of it or it will be closed automatically. See [method create_data_channel].
</description>
</signal>
<signal name="ice_candidate_created">
diff --git a/modules/websocket/doc_classes/WebSocketClient.xml b/modules/websocket/doc_classes/WebSocketClient.xml
index 52a98d8c32..59be1cb459 100644
--- a/modules/websocket/doc_classes/WebSocketClient.xml
+++ b/modules/websocket/doc_classes/WebSocketClient.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="WebSocketClient" inherits="WebSocketMultiplayerPeer" category="Core" version="3.2">
+<class name="WebSocketClient" inherits="WebSocketMultiplayerPeer" version="3.2">
<brief_description>
A WebSocket client implementation.
</brief_description>
diff --git a/modules/websocket/doc_classes/WebSocketMultiplayerPeer.xml b/modules/websocket/doc_classes/WebSocketMultiplayerPeer.xml
index 7070cfbdab..74dc59f551 100644
--- a/modules/websocket/doc_classes/WebSocketMultiplayerPeer.xml
+++ b/modules/websocket/doc_classes/WebSocketMultiplayerPeer.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="WebSocketMultiplayerPeer" inherits="NetworkedMultiplayerPeer" category="Core" version="3.2">
+<class name="WebSocketMultiplayerPeer" inherits="NetworkedMultiplayerPeer" version="3.2">
<brief_description>
Base class for WebSocket server and client.
</brief_description>
diff --git a/modules/websocket/doc_classes/WebSocketPeer.xml b/modules/websocket/doc_classes/WebSocketPeer.xml
index dd95f7432e..6293b35fbf 100644
--- a/modules/websocket/doc_classes/WebSocketPeer.xml
+++ b/modules/websocket/doc_classes/WebSocketPeer.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="WebSocketPeer" inherits="PacketPeer" category="Core" version="3.2">
+<class name="WebSocketPeer" inherits="PacketPeer" version="3.2">
<brief_description>
A class representing a specific WebSocket connection.
</brief_description>
@@ -53,6 +53,16 @@
Returns [code]true[/code] if this peer is currently connected.
</description>
</method>
+ <method name="set_no_delay">
+ <return type="void">
+ </return>
+ <argument index="0" name="enabled" type="bool">
+ </argument>
+ <description>
+ Disable Nagle's algorithm on the underling TCP socket (default). See [method StreamPeerTCP.set_no_delay] for more information.
+ [b]Note:[/b] Not available in the HTML5 export.
+ </description>
+ </method>
<method name="set_write_mode">
<return type="void">
</return>
@@ -66,7 +76,7 @@
<return type="bool">
</return>
<description>
- Returns [code]true[/code] if the last received packet was sent as a text payload. See [enum WriteMode]
+ Returns [code]true[/code] if the last received packet was sent as a text payload. See [enum WriteMode].
</description>
</method>
</methods>
diff --git a/modules/websocket/doc_classes/WebSocketServer.xml b/modules/websocket/doc_classes/WebSocketServer.xml
index 2074a10fa9..dd8cd077ef 100644
--- a/modules/websocket/doc_classes/WebSocketServer.xml
+++ b/modules/websocket/doc_classes/WebSocketServer.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
-<class name="WebSocketServer" inherits="WebSocketMultiplayerPeer" category="Core" version="3.2">
+<class name="WebSocketServer" inherits="WebSocketMultiplayerPeer" version="3.2">
<brief_description>
A WebSocket server implementation.
</brief_description>
diff --git a/modules/websocket/emws_peer.cpp b/modules/websocket/emws_peer.cpp
index d07360c525..effed8e4d9 100644
--- a/modules/websocket/emws_peer.cpp
+++ b/modules/websocket/emws_peer.cpp
@@ -139,6 +139,11 @@ uint16_t EMWSPeer::get_connected_port() const {
ERR_FAIL_V_MSG(0, "Not supported in HTML5 export.");
};
+void EMWSPeer::set_no_delay(bool p_enabled) {
+
+ ERR_FAIL_MSG("'set_no_delay' is not supported in HTML5 export.");
+}
+
EMWSPeer::EMWSPeer() {
peer_sock = -1;
write_mode = WRITE_MODE_BINARY;
diff --git a/modules/websocket/emws_peer.h b/modules/websocket/emws_peer.h
index 9fe7fb8edc..43b42f9be6 100644
--- a/modules/websocket/emws_peer.h
+++ b/modules/websocket/emws_peer.h
@@ -68,6 +68,7 @@ public:
virtual WriteMode get_write_mode() const;
virtual void set_write_mode(WriteMode p_mode);
virtual bool was_string_packet() const;
+ virtual void set_no_delay(bool p_enabled);
EMWSPeer();
~EMWSPeer();
diff --git a/modules/websocket/websocket_peer.cpp b/modules/websocket/websocket_peer.cpp
index 474b11f012..30a5972330 100644
--- a/modules/websocket/websocket_peer.cpp
+++ b/modules/websocket/websocket_peer.cpp
@@ -46,6 +46,7 @@ void WebSocketPeer::_bind_methods() {
ClassDB::bind_method(D_METHOD("close", "code", "reason"), &WebSocketPeer::close, DEFVAL(1000), DEFVAL(""));
ClassDB::bind_method(D_METHOD("get_connected_host"), &WebSocketPeer::get_connected_host);
ClassDB::bind_method(D_METHOD("get_connected_port"), &WebSocketPeer::get_connected_port);
+ ClassDB::bind_method(D_METHOD("set_no_delay", "enabled"), &WebSocketPeer::set_no_delay);
BIND_ENUM_CONSTANT(WRITE_MODE_TEXT);
BIND_ENUM_CONSTANT(WRITE_MODE_BINARY);
diff --git a/modules/websocket/websocket_peer.h b/modules/websocket/websocket_peer.h
index c4e1984aa0..d4173600ec 100644
--- a/modules/websocket/websocket_peer.h
+++ b/modules/websocket/websocket_peer.h
@@ -64,6 +64,7 @@ public:
virtual IP_Address get_connected_host() const = 0;
virtual uint16_t get_connected_port() const = 0;
virtual bool was_string_packet() const = 0;
+ virtual void set_no_delay(bool p_enabled) = 0;
WebSocketPeer();
~WebSocketPeer();
diff --git a/modules/websocket/websocket_server.cpp b/modules/websocket/websocket_server.cpp
index 76e88d72b9..a7ced65543 100644
--- a/modules/websocket/websocket_server.cpp
+++ b/modules/websocket/websocket_server.cpp
@@ -114,7 +114,7 @@ NetworkedMultiplayerPeer::ConnectionStatus WebSocketServer::get_connection_statu
return CONNECTION_CONNECTED;
return CONNECTION_DISCONNECTED;
-};
+}
bool WebSocketServer::is_server() const {
diff --git a/modules/websocket/wsl_client.cpp b/modules/websocket/wsl_client.cpp
index 88a306c7f5..088f266f18 100644
--- a/modules/websocket/wsl_client.cpp
+++ b/modules/websocket/wsl_client.cpp
@@ -90,6 +90,7 @@ void WSLClient::_do_handshake() {
data->is_server = false;
data->id = 1;
_peer->make_context(data, _in_buf_size, _in_pkt_size, _out_buf_size, _out_pkt_size);
+ _peer->set_no_delay(true);
_on_connect(protocol);
break;
}
diff --git a/modules/websocket/wsl_peer.cpp b/modules/websocket/wsl_peer.cpp
index 2f7f84c893..08079145e4 100644
--- a/modules/websocket/wsl_peer.cpp
+++ b/modules/websocket/wsl_peer.cpp
@@ -243,6 +243,10 @@ Error WSLPeer::put_packet(const uint8_t *p_buffer, int p_buffer_size) {
msg.msg_length = p_buffer_size;
wslay_event_queue_msg(_data->ctx, &msg);
+ if (wslay_event_send(_data->ctx) < 0) {
+ close_now();
+ return FAILED;
+ }
return OK;
}
@@ -314,6 +318,12 @@ uint16_t WSLPeer::get_connected_port() const {
return _data->tcp->get_connected_port();
}
+void WSLPeer::set_no_delay(bool p_enabled) {
+
+ ERR_FAIL_COND(!is_connected_to_host() || _data->tcp.is_null());
+ _data->tcp->set_no_delay(p_enabled);
+}
+
void WSLPeer::invalidate() {
if (_data)
_data->valid = false;
diff --git a/modules/websocket/wsl_peer.h b/modules/websocket/wsl_peer.h
index 2fbb7aeec3..f1c45ee859 100644
--- a/modules/websocket/wsl_peer.h
+++ b/modules/websocket/wsl_peer.h
@@ -109,6 +109,7 @@ public:
virtual WriteMode get_write_mode() const;
virtual void set_write_mode(WriteMode p_mode);
virtual bool was_string_packet() const;
+ virtual void set_no_delay(bool p_enabled);
void make_context(PeerData *p_data, unsigned int p_in_buf_size, unsigned int p_in_pkt_size, unsigned int p_out_buf_size, unsigned int p_out_pkt_size);
Error parse_message(const wslay_event_on_msg_recv_arg *arg);
diff --git a/modules/websocket/wsl_server.cpp b/modules/websocket/wsl_server.cpp
index c3dd79a89c..4db650a0c1 100644
--- a/modules/websocket/wsl_server.cpp
+++ b/modules/websocket/wsl_server.cpp
@@ -165,9 +165,7 @@ Error WSLServer::listen(int p_port, const Vector<String> p_protocols, bool gd_mp
for (int i = 0; i < p_protocols.size(); i++) {
pw[i] = p_protocols[i].strip_edges();
}
- _server->listen(p_port, bind_ip);
-
- return OK;
+ return _server->listen(p_port, bind_ip);
}
void WSLServer::poll() {
@@ -208,6 +206,7 @@ void WSLServer::poll() {
Ref<WSLPeer> ws_peer = memnew(WSLPeer);
ws_peer->make_context(data, _in_buf_size, _in_pkt_size, _out_buf_size, _out_pkt_size);
+ ws_peer->set_no_delay(true);
_peer_map[id] = ws_peer;
remove_peers.push_back(ppeer);
diff --git a/platform/android/export/export.cpp b/platform/android/export/export.cpp
index 0ebd97d428..b9968c08aa 100644
--- a/platform/android/export/export.cpp
+++ b/platform/android/export/export.cpp
@@ -247,7 +247,6 @@ class EditorExportPlatformAndroid : public EditorExportPlatform {
String name;
String description;
int api_level;
- bool usb;
};
struct APKExportData {
@@ -274,20 +273,17 @@ class EditorExportPlatformAndroid : public EditorExportPlatform {
String devices;
List<String> args;
args.push_back("devices");
- args.push_back("-l");
int ec;
OS::get_singleton()->execute(adb, args, true, NULL, &devices, &ec);
Vector<String> ds = devices.split("\n");
Vector<String> ldevices;
- Vector<bool> ldevices_usbconnection;
for (int i = 1; i < ds.size(); i++) {
String d = ds[i];
- int dpos = d.find(" device ");
+ int dpos = d.find("device");
if (dpos == -1)
continue;
- ldevices_usbconnection.push_back(d.find(" usb:") != -1);
d = d.substr(0, dpos).strip_edges();
ldevices.push_back(d);
}
@@ -318,7 +314,6 @@ class EditorExportPlatformAndroid : public EditorExportPlatform {
Device d;
d.id = ldevices[i];
- d.usb = ldevices_usbconnection[i];
for (int j = 0; j < ea->devices.size(); j++) {
if (ea->devices[j].id == ldevices[i]) {
d.description = ea->devices[j].description;
@@ -373,17 +368,9 @@ class EditorExportPlatformAndroid : public EditorExportPlatform {
} else if (p.begins_with("ro.opengles.version=")) {
uint32_t opengl = p.get_slice("=", 1).to_int();
d.description += "OpenGL: " + itos(opengl >> 16) + "." + itos((opengl >> 8) & 0xFF) + "." + itos((opengl)&0xFF) + "\n";
- } else if (p.begins_with("ro.boot.serialno=")) {
- d.description += "Serial: " + p.get_slice("=", 1).strip_edges() + "\n";
}
}
- if (d.usb) {
- d.description += "Connection: USB\n";
- } else {
- d.description += "Connection: " + d.id + "\n";
- }
-
d.name = vendor + " " + device;
if (device == String()) continue;
}
@@ -1495,17 +1482,19 @@ public:
virtual Error run(const Ref<EditorExportPreset> &p_preset, int p_device, int p_debug_flags) {
ERR_FAIL_INDEX_V(p_device, devices.size(), ERR_INVALID_PARAMETER);
+
+ String can_export_error;
+ bool can_export_missing_templates;
+ if (!can_export(p_preset, can_export_error, can_export_missing_templates)) {
+ EditorNode::add_io_error(can_export_error);
+ return ERR_UNCONFIGURED;
+ }
+
device_lock->lock();
EditorProgress ep("run", "Running on " + devices[p_device].name, 3);
String adb = EditorSettings::get_singleton()->get("export/android/adb");
- if (adb == "") {
-
- EditorNode::add_io_error("ADB executable not configured in settings, can't run.");
- device_lock->unlock();
- return ERR_UNCONFIGURED;
- }
// Export_temp APK.
if (ep.step("Exporting APK", 0)) {
@@ -1514,9 +1503,7 @@ public:
}
const bool use_remote = (p_debug_flags & DEBUG_FLAG_REMOTE_DEBUG) || (p_debug_flags & DEBUG_FLAG_DUMB_CLIENT);
- const bool use_reverse = devices[p_device].api_level >= 21 && devices[p_device].usb;
- // Note: Reverse can still fail if device is connected by both usb and network
- // Ideally we'd know for sure whether adb reverse would work before we build the APK
+ const bool use_reverse = devices[p_device].api_level >= 21;
if (use_reverse)
p_debug_flags |= DEBUG_FLAG_REMOTE_DEBUG_LOCALHOST;
@@ -1621,7 +1608,7 @@ public:
}
} else {
- static const char *const msg = "--- Device API < 21 or no USB connection; debugging over Wi-Fi ---";
+ static const char *const msg = "--- Device API < 21; debugging over Wi-Fi ---";
EditorNode::get_singleton()->get_log()->add_message(msg, EditorLog::MSG_TYPE_EDITOR);
print_line(String(msg).to_upper());
}
diff --git a/platform/android/java/app/build.gradle b/platform/android/java/app/build.gradle
index 258ca9197a..2e4f2ffab0 100644
--- a/platform/android/java/app/build.gradle
+++ b/platform/android/java/app/build.gradle
@@ -33,6 +33,8 @@ allprojects {
}
dependencies {
+ implementation libraries.supportCoreUtils
+
if (rootProject.findProject(":lib")) {
implementation project(":lib")
} else {
diff --git a/platform/android/java/app/config.gradle b/platform/android/java/app/config.gradle
index 862a954fac..5550d3099d 100644
--- a/platform/android/java/app/config.gradle
+++ b/platform/android/java/app/config.gradle
@@ -4,11 +4,13 @@ ext.versions = [
minSdk : 18,
targetSdk : 28,
buildTools : '28.0.3',
+ supportCoreUtils : '28.0.0'
]
ext.libraries = [
- androidGradlePlugin : "com.android.tools.build:gradle:$versions.androidGradlePlugin"
+ androidGradlePlugin : "com.android.tools.build:gradle:$versions.androidGradlePlugin",
+ supportCoreUtils : "com.android.support:support-core-utils:$versions.supportCoreUtils"
]
ext.getExportPackageName = { ->
diff --git a/platform/android/java/lib/build.gradle b/platform/android/java/lib/build.gradle
index 13a14422ed..eb97484b9c 100644
--- a/platform/android/java/lib/build.gradle
+++ b/platform/android/java/lib/build.gradle
@@ -1,7 +1,7 @@
apply plugin: 'com.android.library'
dependencies {
- implementation "com.android.support:support-core-utils:28.0.0"
+ implementation libraries.supportCoreUtils
}
def pathToRootDir = "../../../../"
diff --git a/platform/android/java/lib/src/org/godotengine/godot/GodotIO.java b/platform/android/java/lib/src/org/godotengine/godot/GodotIO.java
index 271d508a4d..68ce40ba10 100644
--- a/platform/android/java/lib/src/org/godotengine/godot/GodotIO.java
+++ b/platform/android/java/lib/src/org/godotengine/godot/GodotIO.java
@@ -491,9 +491,9 @@ public class GodotIO {
return (int)(metrics.density * 160f);
}
- public void showKeyboard(String p_existing_text) {
+ public void showKeyboard(String p_existing_text, int p_max_input_length) {
if (edit != null)
- edit.showKeyboard(p_existing_text);
+ edit.showKeyboard(p_existing_text, p_max_input_length);
//InputMethodManager inputMgr = (InputMethodManager)activity.getSystemService(Context.INPUT_METHOD_SERVICE);
//inputMgr.toggleSoftInput(InputMethodManager.SHOW_FORCED, 0);
diff --git a/platform/android/java/lib/src/org/godotengine/godot/input/GodotEditText.java b/platform/android/java/lib/src/org/godotengine/godot/input/GodotEditText.java
index 0d5521dd87..e901b4b36d 100644
--- a/platform/android/java/lib/src/org/godotengine/godot/input/GodotEditText.java
+++ b/platform/android/java/lib/src/org/godotengine/godot/input/GodotEditText.java
@@ -32,6 +32,7 @@ package org.godotengine.godot.input;
import android.content.Context;
import android.os.Handler;
import android.os.Message;
+import android.text.InputFilter;
import android.util.AttributeSet;
import android.view.KeyEvent;
import android.view.inputmethod.EditorInfo;
@@ -104,6 +105,7 @@ public class GodotEditText extends EditText {
edit.append(text);
edit.mInputWrapper.setOriginText(text);
edit.addTextChangedListener(edit.mInputWrapper);
+ setMaxInputLength(edit, msg.arg1);
final InputMethodManager imm = (InputMethodManager)mView.getContext().getSystemService(Context.INPUT_METHOD_SERVICE);
imm.showSoftInput(edit, 0);
}
@@ -120,6 +122,16 @@ public class GodotEditText extends EditText {
}
}
+ private void setMaxInputLength(EditText p_edit_text, int p_max_input_length) {
+ if (p_max_input_length > 0) {
+ InputFilter[] filters = new InputFilter[1];
+ filters[0] = new InputFilter.LengthFilter(p_max_input_length);
+ p_edit_text.setFilters(filters);
+ } else {
+ p_edit_text.setFilters(new InputFilter[] {});
+ }
+ }
+
// ===========================================================
// Getter & Setter
// ===========================================================
@@ -149,12 +161,13 @@ public class GodotEditText extends EditText {
// ===========================================================
// Methods
// ===========================================================
- public void showKeyboard(String p_existing_text) {
+ public void showKeyboard(String p_existing_text, int p_max_input_length) {
this.mOriginText = p_existing_text;
final Message msg = new Message();
msg.what = HANDLER_OPEN_IME_KEYBOARD;
msg.obj = this;
+ msg.arg1 = p_max_input_length;
sHandler.sendMessage(msg);
}
diff --git a/platform/android/java_godot_io_wrapper.cpp b/platform/android/java_godot_io_wrapper.cpp
index 671d1072ea..8d075f8e97 100644
--- a/platform/android/java_godot_io_wrapper.cpp
+++ b/platform/android/java_godot_io_wrapper.cpp
@@ -53,7 +53,7 @@ GodotIOJavaWrapper::GodotIOJavaWrapper(JNIEnv *p_env, jobject p_godot_io_instanc
_get_model = p_env->GetMethodID(cls, "getModel", "()Ljava/lang/String;");
_get_screen_DPI = p_env->GetMethodID(cls, "getScreenDPI", "()I");
_get_unique_id = p_env->GetMethodID(cls, "getUniqueID", "()Ljava/lang/String;");
- _show_keyboard = p_env->GetMethodID(cls, "showKeyboard", "(Ljava/lang/String;)V");
+ _show_keyboard = p_env->GetMethodID(cls, "showKeyboard", "(Ljava/lang/String;I)V");
_hide_keyboard = p_env->GetMethodID(cls, "hideKeyboard", "()V");
_set_screen_orientation = p_env->GetMethodID(cls, "setScreenOrientation", "(I)V");
_get_system_dir = p_env->GetMethodID(cls, "getSystemDir", "(I)Ljava/lang/String;");
@@ -135,11 +135,11 @@ bool GodotIOJavaWrapper::has_vk() {
return (_show_keyboard != 0) && (_hide_keyboard != 0);
}
-void GodotIOJavaWrapper::show_vk(const String &p_existing) {
+void GodotIOJavaWrapper::show_vk(const String &p_existing, int p_max_input_length) {
if (_show_keyboard) {
JNIEnv *env = ThreadAndroid::get_env();
jstring jStr = env->NewStringUTF(p_existing.utf8().get_data());
- env->CallVoidMethod(godot_io_instance, _show_keyboard, jStr);
+ env->CallVoidMethod(godot_io_instance, _show_keyboard, jStr, p_max_input_length);
}
}
diff --git a/platform/android/java_godot_io_wrapper.h b/platform/android/java_godot_io_wrapper.h
index 9fa6f2e469..7dfed52187 100644
--- a/platform/android/java_godot_io_wrapper.h
+++ b/platform/android/java_godot_io_wrapper.h
@@ -73,7 +73,7 @@ public:
int get_screen_dpi();
String get_unique_id();
bool has_vk();
- void show_vk(const String &p_existing);
+ void show_vk(const String &p_existing, int p_max_input_length);
void hide_vk();
int get_vk_height();
void set_vk_height(int p_height);
diff --git a/platform/android/os_android.cpp b/platform/android/os_android.cpp
index bbea5e3699..44c5b5d6b4 100644
--- a/platform/android/os_android.cpp
+++ b/platform/android/os_android.cpp
@@ -559,10 +559,10 @@ int OS_Android::get_virtual_keyboard_height() const {
// return 0;
}
-void OS_Android::show_virtual_keyboard(const String &p_existing_text, const Rect2 &p_screen_rect) {
+void OS_Android::show_virtual_keyboard(const String &p_existing_text, const Rect2 &p_screen_rect, int p_max_input_length) {
if (godot_io_java->has_vk()) {
- godot_io_java->show_vk(p_existing_text);
+ godot_io_java->show_vk(p_existing_text, p_max_input_length);
} else {
ERR_PRINT("Virtual keyboard not available");
diff --git a/platform/android/os_android.h b/platform/android/os_android.h
index 1cf64a2e84..c2f9a0992f 100644
--- a/platform/android/os_android.h
+++ b/platform/android/os_android.h
@@ -158,7 +158,7 @@ public:
virtual bool has_touchscreen_ui_hint() const;
virtual bool has_virtual_keyboard() const;
- virtual void show_virtual_keyboard(const String &p_existing_text, const Rect2 &p_screen_rect = Rect2());
+ virtual void show_virtual_keyboard(const String &p_existing_text, const Rect2 &p_screen_rect = Rect2(), int p_max_input_length = -1);
virtual void hide_virtual_keyboard();
virtual int get_virtual_keyboard_height() const;
diff --git a/platform/iphone/os_iphone.cpp b/platform/iphone/os_iphone.cpp
index 3e5ab7b886..7a699f9b50 100644
--- a/platform/iphone/os_iphone.cpp
+++ b/platform/iphone/os_iphone.cpp
@@ -482,7 +482,7 @@ extern Error _shell_open(String p_uri);
extern void _set_keep_screen_on(bool p_enabled);
extern void _vibrate();
-void OSIPhone::show_virtual_keyboard(const String &p_existing_text, const Rect2 &p_screen_rect) {
+void OSIPhone::show_virtual_keyboard(const String &p_existing_text, const Rect2 &p_screen_rect, int p_max_input_length) {
_show_keyboard(p_existing_text);
};
diff --git a/platform/iphone/os_iphone.h b/platform/iphone/os_iphone.h
index 4668471aa9..d2d96181f5 100644
--- a/platform/iphone/os_iphone.h
+++ b/platform/iphone/os_iphone.h
@@ -165,7 +165,7 @@ public:
virtual bool can_draw() const;
virtual bool has_virtual_keyboard() const;
- virtual void show_virtual_keyboard(const String &p_existing_text, const Rect2 &p_screen_rect = Rect2());
+ virtual void show_virtual_keyboard(const String &p_existing_text, const Rect2 &p_screen_rect = Rect2(), int p_max_input_length = -1);
virtual void hide_virtual_keyboard();
virtual int get_virtual_keyboard_height() const;
diff --git a/platform/javascript/http_request.js b/platform/javascript/http_request.js
index c112039d0b..f621689f9d 100644
--- a/platform/javascript/http_request.js
+++ b/platform/javascript/http_request.js
@@ -3,9 +3,10 @@
/*************************************************************************/
/* This file is part of: */
/* GODOT ENGINE */
-/* http://www.godotengine.org */
+/* https://godotengine.org */
/*************************************************************************/
/* Copyright (c) 2007-2020 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2020 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/platform/javascript/id_handler.js b/platform/javascript/id_handler.js
index 36ef5aa8ef..3851123ed1 100644
--- a/platform/javascript/id_handler.js
+++ b/platform/javascript/id_handler.js
@@ -3,9 +3,10 @@
/*************************************************************************/
/* This file is part of: */
/* GODOT ENGINE */
-/* http://www.godotengine.org */
+/* https://godotengine.org */
/*************************************************************************/
-/* Copyright (c) 2007-2018 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2007-2020 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2020 Godot Engine contributors (cf. AUTHORS.md). */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
diff --git a/platform/javascript/os_javascript.h b/platform/javascript/os_javascript.h
index 2d1c765e76..5c02a292ee 100644
--- a/platform/javascript/os_javascript.h
+++ b/platform/javascript/os_javascript.h
@@ -141,7 +141,7 @@ public:
void run_async();
bool main_loop_iterate();
- virtual Error execute(const String &p_path, const List<String> &p_arguments, bool p_blocking, ProcessID *r_child_id = NULL, String *r_pipe = NULL, int *r_exitcode = NULL, bool read_stderr = false, Mutex *p_pipe_mutex = NULL);
+ virtual Error execute(const String &p_path, const List<String> &p_arguments, bool p_blocking = true, ProcessID *r_child_id = NULL, String *r_pipe = NULL, int *r_exitcode = NULL, bool read_stderr = false, Mutex *p_pipe_mutex = NULL);
virtual Error kill(const ProcessID &p_pid);
virtual int get_process_id() const;
diff --git a/platform/osx/detect.py b/platform/osx/detect.py
index 7882253e7a..fe839199e8 100644
--- a/platform/osx/detect.py
+++ b/platform/osx/detect.py
@@ -27,6 +27,9 @@ def get_opts():
('MACOS_SDK_PATH', 'Path to the macOS SDK', ''),
EnumVariable('debug_symbols', 'Add debugging symbols to release builds', 'yes', ('yes', 'no', 'full')),
BoolVariable('separate_debug_symbols', 'Create a separate file containing debugging symbols', False),
+ BoolVariable('use_ubsan', 'Use LLVM/GCC compiler undefined behavior sanitizer (UBSAN)', False),
+ BoolVariable('use_asan', 'Use LLVM/GCC compiler address sanitizer (ASAN))', False),
+ BoolVariable('use_tsan', 'Use LLVM/GCC compiler thread sanitizer (TSAN))', False),
]
@@ -122,6 +125,21 @@ def configure(env):
env["CC"] = "clang"
env["LINK"] = "clang++"
+ if env['use_ubsan'] or env['use_asan'] or env['use_tsan']:
+ env.extra_suffix += "s"
+
+ if env['use_ubsan']:
+ env.Append(CCFLAGS=['-fsanitize=undefined'])
+ env.Append(LINKFLAGS=['-fsanitize=undefined'])
+
+ if env['use_asan']:
+ env.Append(CCFLAGS=['-fsanitize=address'])
+ env.Append(LINKFLAGS=['-fsanitize=address'])
+
+ if env['use_tsan']:
+ env.Append(CCFLAGS=['-fsanitize=thread'])
+ env.Append(LINKFLAGS=['-fsanitize=thread'])
+
## Dependencies
if env['builtin_libtheora']:
diff --git a/platform/osx/os_osx.mm b/platform/osx/os_osx.mm
index 6a214b8669..53fe11b3bb 100644
--- a/platform/osx/os_osx.mm
+++ b/platform/osx/os_osx.mm
@@ -115,6 +115,20 @@ static Vector2 get_mouse_pos(NSPoint locationInWindow, CGFloat backingScaleFacto
return Vector2(mouse_x, mouse_y);
}
+static NSCursor *cursorFromSelector(SEL selector, SEL fallback = nil) {
+ if ([NSCursor respondsToSelector:selector]) {
+ id object = [NSCursor performSelector:selector];
+ if ([object isKindOfClass:[NSCursor class]]) {
+ return object;
+ }
+ }
+ if (fallback) {
+ // Fallback should be a reasonable default, no need to check.
+ return [NSCursor performSelector:fallback];
+ }
+ return [NSCursor arrowCursor];
+}
+
@interface GodotApplication : NSApplication
@end
@@ -1813,15 +1827,15 @@ void OS_OSX::set_cursor_shape(CursorShape p_shape) {
case CURSOR_BUSY: [[NSCursor arrowCursor] set]; break;
case CURSOR_DRAG: [[NSCursor closedHandCursor] set]; break;
case CURSOR_CAN_DROP: [[NSCursor openHandCursor] set]; break;
- case CURSOR_FORBIDDEN: [[NSCursor arrowCursor] set]; break;
- case CURSOR_VSIZE: [[NSCursor resizeUpDownCursor] set]; break;
- case CURSOR_HSIZE: [[NSCursor resizeLeftRightCursor] set]; break;
- case CURSOR_BDIAGSIZE: [[NSCursor arrowCursor] set]; break;
- case CURSOR_FDIAGSIZE: [[NSCursor arrowCursor] set]; break;
+ case CURSOR_FORBIDDEN: [[NSCursor operationNotAllowedCursor] set]; break;
+ case CURSOR_VSIZE: [cursorFromSelector(@selector(_windowResizeNorthSouthCursor), @selector(resizeUpDownCursor)) set]; break;
+ case CURSOR_HSIZE: [cursorFromSelector(@selector(_windowResizeEastWestCursor), @selector(resizeLeftRightCursor)) set]; break;
+ case CURSOR_BDIAGSIZE: [cursorFromSelector(@selector(_windowResizeNorthEastSouthWestCursor)) set]; break;
+ case CURSOR_FDIAGSIZE: [cursorFromSelector(@selector(_windowResizeNorthWestSouthEastCursor)) set]; break;
case CURSOR_MOVE: [[NSCursor arrowCursor] set]; break;
case CURSOR_VSPLIT: [[NSCursor resizeUpDownCursor] set]; break;
case CURSOR_HSPLIT: [[NSCursor resizeLeftRightCursor] set]; break;
- case CURSOR_HELP: [[NSCursor arrowCursor] set]; break;
+ case CURSOR_HELP: [cursorFromSelector(@selector(_helpCursor)) set]; break;
default: {
};
}
diff --git a/platform/uwp/os_uwp.cpp b/platform/uwp/os_uwp.cpp
index aec5da316b..d5047b53ab 100644
--- a/platform/uwp/os_uwp.cpp
+++ b/platform/uwp/os_uwp.cpp
@@ -801,7 +801,7 @@ bool OS_UWP::has_virtual_keyboard() const {
return UIViewSettings::GetForCurrentView()->UserInteractionMode == UserInteractionMode::Touch;
}
-void OS_UWP::show_virtual_keyboard(const String &p_existing_text, const Rect2 &p_screen_rect) {
+void OS_UWP::show_virtual_keyboard(const String &p_existing_text, const Rect2 &p_screen_rect, int p_max_input_length) {
InputPane ^ pane = InputPane::GetForCurrentView();
pane->TryShow();
diff --git a/platform/uwp/os_uwp.h b/platform/uwp/os_uwp.h
index edc63bd637..fb43ab382e 100644
--- a/platform/uwp/os_uwp.h
+++ b/platform/uwp/os_uwp.h
@@ -205,7 +205,7 @@ public:
virtual void delay_usec(uint32_t p_usec) const;
virtual uint64_t get_ticks_usec() const;
- virtual Error execute(const String &p_path, const List<String> &p_arguments, bool p_blocking, ProcessID *r_child_id = NULL, String *r_pipe = NULL, int *r_exitcode = NULL, bool read_stderr = false, Mutex *p_pipe_mutex = NULL);
+ virtual Error execute(const String &p_path, const List<String> &p_arguments, bool p_blocking = true, ProcessID *r_child_id = NULL, String *r_pipe = NULL, int *r_exitcode = NULL, bool read_stderr = false, Mutex *p_pipe_mutex = NULL);
virtual Error kill(const ProcessID &p_pid);
virtual bool has_environment(const String &p_var) const;
@@ -239,7 +239,7 @@ public:
virtual bool has_touchscreen_ui_hint() const;
virtual bool has_virtual_keyboard() const;
- virtual void show_virtual_keyboard(const String &p_existing_text, const Rect2 &p_screen_rect = Rect2());
+ virtual void show_virtual_keyboard(const String &p_existing_text, const Rect2 &p_screen_rect = Rect2(), int p_max_input_length = -1);
virtual void hide_virtual_keyboard();
virtual Error open_dynamic_library(const String p_path, void *&p_library_handle, bool p_also_set_library_path = false);
diff --git a/platform/windows/os_windows.h b/platform/windows/os_windows.h
index 65d08f5d36..cf16295a70 100644
--- a/platform/windows/os_windows.h
+++ b/platform/windows/os_windows.h
@@ -359,7 +359,7 @@ public:
virtual void delay_usec(uint32_t p_usec) const;
virtual uint64_t get_ticks_usec() const;
- virtual Error execute(const String &p_path, const List<String> &p_arguments, bool p_blocking, ProcessID *r_child_id = NULL, String *r_pipe = NULL, int *r_exitcode = NULL, bool read_stderr = false, Mutex *p_pipe_mutex = NULL);
+ virtual Error execute(const String &p_path, const List<String> &p_arguments, bool p_blocking = true, ProcessID *r_child_id = NULL, String *r_pipe = NULL, int *r_exitcode = NULL, bool read_stderr = false, Mutex *p_pipe_mutex = NULL);
virtual Error kill(const ProcessID &p_pid);
virtual int get_process_id() const;
diff --git a/platform/x11/detect.py b/platform/x11/detect.py
index 957779ee83..bd5e5e0812 100644
--- a/platform/x11/detect.py
+++ b/platform/x11/detect.py
@@ -333,11 +333,15 @@ def configure(env):
if not env['tools']:
import subprocess
import re
- binutils_version = re.search('\s(\d+\.\d+)', str(subprocess.check_output(['ld', '-v']))).group(1)
- if float(binutils_version) >= 2.30:
- env.Append(LINKFLAGS=['-T', 'platform/x11/pck_embed.ld'])
+ linker_version_str = subprocess.check_output([env.subst(env["LINK"]), '-Wl,--version']).decode("utf-8")
+ gnu_ld_version = re.search('^GNU ld [^$]*(\d+\.\d+)$', linker_version_str, re.MULTILINE)
+ if not gnu_ld_version:
+ print("Warning: Creating template binaries enabled for PCK embedding is currently only supported with GNU ld")
else:
- env.Append(LINKFLAGS=['-T', 'platform/x11/pck_embed.legacy.ld'])
+ if float(gnu_ld_version.group(1)) >= 2.30:
+ env.Append(LINKFLAGS=['-T', 'platform/x11/pck_embed.ld'])
+ else:
+ env.Append(LINKFLAGS=['-T', 'platform/x11/pck_embed.legacy.ld'])
## Cross-compilation
diff --git a/scene/2d/cpu_particles_2d.cpp b/scene/2d/cpu_particles_2d.cpp
index c325de00b8..f59e3461b1 100644
--- a/scene/2d/cpu_particles_2d.cpp
+++ b/scene/2d/cpu_particles_2d.cpp
@@ -294,15 +294,6 @@ float CPUParticles2D::get_spread() const {
return spread;
}
-void CPUParticles2D::set_flatness(float p_flatness) {
-
- flatness = p_flatness;
-}
-float CPUParticles2D::get_flatness() const {
-
- return flatness;
-}
-
void CPUParticles2D::set_param(Parameter p_param, float p_value) {
ERR_FAIL_INDEX(p_param, PARAM_MAX);
@@ -1169,7 +1160,6 @@ void CPUParticles2D::convert_from_particles(Node *p_particles) {
Vector3 dir = material->get_direction();
set_direction(Vector2(dir.x, dir.y));
set_spread(material->get_spread());
- set_flatness(material->get_flatness());
set_color(material->get_color());
@@ -1283,9 +1273,6 @@ void CPUParticles2D::_bind_methods() {
ClassDB::bind_method(D_METHOD("set_spread", "degrees"), &CPUParticles2D::set_spread);
ClassDB::bind_method(D_METHOD("get_spread"), &CPUParticles2D::get_spread);
- ClassDB::bind_method(D_METHOD("set_flatness", "amount"), &CPUParticles2D::set_flatness);
- ClassDB::bind_method(D_METHOD("get_flatness"), &CPUParticles2D::get_flatness);
-
ClassDB::bind_method(D_METHOD("set_param", "param", "value"), &CPUParticles2D::set_param);
ClassDB::bind_method(D_METHOD("get_param", "param"), &CPUParticles2D::get_param);
@@ -1341,7 +1328,6 @@ void CPUParticles2D::_bind_methods() {
ADD_GROUP("Direction", "");
ADD_PROPERTY(PropertyInfo(Variant::VECTOR2, "direction"), "set_direction", "get_direction");
ADD_PROPERTY(PropertyInfo(Variant::REAL, "spread", PROPERTY_HINT_RANGE, "0,180,0.01"), "set_spread", "get_spread");
- ADD_PROPERTY(PropertyInfo(Variant::REAL, "flatness", PROPERTY_HINT_RANGE, "0,1,0.01"), "set_flatness", "get_flatness");
ADD_GROUP("Gravity", "");
ADD_PROPERTY(PropertyInfo(Variant::VECTOR2, "gravity"), "set_gravity", "get_gravity");
ADD_GROUP("Initial Velocity", "initial_");
@@ -1452,7 +1438,6 @@ CPUParticles2D::CPUParticles2D() {
set_direction(Vector2(1, 0));
set_spread(45);
- set_flatness(0);
set_param(PARAM_INITIAL_LINEAR_VELOCITY, 0);
set_param(PARAM_ANGULAR_VELOCITY, 0);
set_param(PARAM_ORBIT_VELOCITY, 0);
diff --git a/scene/2d/cpu_particles_2d.h b/scene/2d/cpu_particles_2d.h
index cbaff70c2a..085ec99ea0 100644
--- a/scene/2d/cpu_particles_2d.h
+++ b/scene/2d/cpu_particles_2d.h
@@ -154,7 +154,6 @@ private:
Vector2 direction;
float spread;
- float flatness;
float parameters[PARAM_MAX];
float randomness[PARAM_MAX];
@@ -243,9 +242,6 @@ public:
void set_spread(float p_spread);
float get_spread() const;
- void set_flatness(float p_flatness);
- float get_flatness() const;
-
void set_param(Parameter p_param, float p_value);
float get_param(Parameter p_param) const;
diff --git a/scene/2d/path_2d.cpp b/scene/2d/path_2d.cpp
index e9296b0fe7..6ae008548e 100644
--- a/scene/2d/path_2d.cpp
+++ b/scene/2d/path_2d.cpp
@@ -260,7 +260,7 @@ void PathFollow2D::_validate_property(PropertyInfo &property) const {
if (path && path->get_curve().is_valid())
max = path->get_curve()->get_baked_length();
- property.hint_string = "0," + rtos(max) + ",0.01,or_lesser";
+ property.hint_string = "0," + rtos(max) + ",0.01,or_lesser,or_greater";
}
}
@@ -302,8 +302,8 @@ void PathFollow2D::_bind_methods() {
ClassDB::bind_method(D_METHOD("set_lookahead", "lookahead"), &PathFollow2D::set_lookahead);
ClassDB::bind_method(D_METHOD("get_lookahead"), &PathFollow2D::get_lookahead);
- ADD_PROPERTY(PropertyInfo(Variant::REAL, "offset", PROPERTY_HINT_RANGE, "0,10000,0.01,or_lesser"), "set_offset", "get_offset");
- ADD_PROPERTY(PropertyInfo(Variant::REAL, "unit_offset", PROPERTY_HINT_RANGE, "0,1,0.0001,or_lesser", PROPERTY_USAGE_EDITOR), "set_unit_offset", "get_unit_offset");
+ ADD_PROPERTY(PropertyInfo(Variant::REAL, "offset", PROPERTY_HINT_RANGE, "0,10000,0.01,or_lesser,or_greater"), "set_offset", "get_offset");
+ ADD_PROPERTY(PropertyInfo(Variant::REAL, "unit_offset", PROPERTY_HINT_RANGE, "0,1,0.0001,or_lesser,or_greater", PROPERTY_USAGE_EDITOR), "set_unit_offset", "get_unit_offset");
ADD_PROPERTY(PropertyInfo(Variant::REAL, "h_offset"), "set_h_offset", "get_h_offset");
ADD_PROPERTY(PropertyInfo(Variant::REAL, "v_offset"), "set_v_offset", "get_v_offset");
ADD_PROPERTY(PropertyInfo(Variant::BOOL, "rotate"), "set_rotate", "is_rotating");
diff --git a/scene/3d/arvr_nodes.cpp b/scene/3d/arvr_nodes.cpp
index f0aaba1065..8d1556ef1c 100644
--- a/scene/3d/arvr_nodes.cpp
+++ b/scene/3d/arvr_nodes.cpp
@@ -85,9 +85,8 @@ Vector3 ARVRCamera::project_local_ray_normal(const Point2 &p_pos) const {
Vector3 ray;
CameraMatrix cm = arvr_interface->get_projection_for_eye(ARVRInterface::EYE_MONO, viewport_size.aspect(), get_znear(), get_zfar());
- float screen_w, screen_h;
- cm.get_viewport_size(screen_w, screen_h);
- ray = Vector3(((cpos.x / viewport_size.width) * 2.0 - 1.0) * screen_w, ((1.0 - (cpos.y / viewport_size.height)) * 2.0 - 1.0) * screen_h, -get_znear()).normalized();
+ Vector2 screen_he = cm.get_viewport_half_extents();
+ ray = Vector3(((cpos.x / viewport_size.width) * 2.0 - 1.0) * screen_he.x, ((1.0 - (cpos.y / viewport_size.height)) * 2.0 - 1.0) * screen_he.y, -get_znear()).normalized();
return ray;
};
@@ -138,13 +137,12 @@ Vector3 ARVRCamera::project_position(const Point2 &p_point, float p_z_depth) con
CameraMatrix cm = arvr_interface->get_projection_for_eye(ARVRInterface::EYE_MONO, viewport_size.aspect(), get_znear(), get_zfar());
- Size2 vp_size;
- cm.get_viewport_size(vp_size.x, vp_size.y);
+ Vector2 vp_he = cm.get_viewport_half_extents();
Vector2 point;
point.x = (p_point.x / viewport_size.x) * 2.0 - 1.0;
point.y = (1.0 - (p_point.y / viewport_size.y)) * 2.0 - 1.0;
- point *= vp_size;
+ point *= vp_he;
Vector3 p(point.x, point.y, -p_z_depth);
diff --git a/scene/3d/camera.cpp b/scene/3d/camera.cpp
index 3a30755f7f..640189a26e 100644
--- a/scene/3d/camera.cpp
+++ b/scene/3d/camera.cpp
@@ -291,9 +291,8 @@ Vector3 Camera::project_local_ray_normal(const Point2 &p_pos) const {
} else {
CameraMatrix cm;
cm.set_perspective(fov, viewport_size.aspect(), near, far, keep_aspect == KEEP_WIDTH);
- float screen_w, screen_h;
- cm.get_viewport_size(screen_w, screen_h);
- ray = Vector3(((cpos.x / viewport_size.width) * 2.0 - 1.0) * screen_w, ((1.0 - (cpos.y / viewport_size.height)) * 2.0 - 1.0) * screen_h, -near).normalized();
+ Vector2 screen_he = cm.get_viewport_half_extents();
+ ray = Vector3(((cpos.x / viewport_size.width) * 2.0 - 1.0) * screen_he.x, ((1.0 - (cpos.y / viewport_size.height)) * 2.0 - 1.0) * screen_he.y, -near).normalized();
}
return ray;
@@ -402,13 +401,12 @@ Vector3 Camera::project_position(const Point2 &p_point, float p_z_depth) const {
else
cm.set_perspective(fov, viewport_size.aspect(), p_z_depth, far, keep_aspect == KEEP_WIDTH);
- Size2 vp_size;
- cm.get_viewport_size(vp_size.x, vp_size.y);
+ Vector2 vp_he = cm.get_viewport_half_extents();
Vector2 point;
point.x = (p_point.x / viewport_size.x) * 2.0 - 1.0;
point.y = (1.0 - (p_point.y / viewport_size.y)) * 2.0 - 1.0;
- point *= vp_size;
+ point *= vp_he;
Vector3 p(point.x, point.y, -p_z_depth);
diff --git a/scene/3d/path.cpp b/scene/3d/path.cpp
index 3ed0677480..ac012de1ab 100644
--- a/scene/3d/path.cpp
+++ b/scene/3d/path.cpp
@@ -253,7 +253,7 @@ void PathFollow::_validate_property(PropertyInfo &property) const {
if (path && path->get_curve().is_valid())
max = path->get_curve()->get_baked_length();
- property.hint_string = "0," + rtos(max) + ",0.01,or_lesser";
+ property.hint_string = "0," + rtos(max) + ",0.01,or_lesser,or_greater";
}
}
@@ -297,8 +297,8 @@ void PathFollow::_bind_methods() {
ClassDB::bind_method(D_METHOD("set_loop", "loop"), &PathFollow::set_loop);
ClassDB::bind_method(D_METHOD("has_loop"), &PathFollow::has_loop);
- ADD_PROPERTY(PropertyInfo(Variant::REAL, "offset", PROPERTY_HINT_RANGE, "0,10000,0.01,or_lesser"), "set_offset", "get_offset");
- ADD_PROPERTY(PropertyInfo(Variant::REAL, "unit_offset", PROPERTY_HINT_RANGE, "0,1,0.0001,or_lesser", PROPERTY_USAGE_EDITOR), "set_unit_offset", "get_unit_offset");
+ ADD_PROPERTY(PropertyInfo(Variant::REAL, "offset", PROPERTY_HINT_RANGE, "0,10000,0.01,or_lesser,or_greater"), "set_offset", "get_offset");
+ ADD_PROPERTY(PropertyInfo(Variant::REAL, "unit_offset", PROPERTY_HINT_RANGE, "0,1,0.0001,or_lesser,or_greater", PROPERTY_USAGE_EDITOR), "set_unit_offset", "get_unit_offset");
ADD_PROPERTY(PropertyInfo(Variant::REAL, "h_offset"), "set_h_offset", "get_h_offset");
ADD_PROPERTY(PropertyInfo(Variant::REAL, "v_offset"), "set_v_offset", "get_v_offset");
ADD_PROPERTY(PropertyInfo(Variant::INT, "rotation_mode", PROPERTY_HINT_ENUM, "None,Y,XY,XYZ,Oriented"), "set_rotation_mode", "get_rotation_mode");
diff --git a/scene/3d/spatial.cpp b/scene/3d/spatial.cpp
index b7cd2114db..f1911348ce 100644
--- a/scene/3d/spatial.cpp
+++ b/scene/3d/spatial.cpp
@@ -125,6 +125,7 @@ void Spatial::_notification(int p_what) {
switch (p_what) {
case NOTIFICATION_ENTER_TREE: {
+ ERR_FAIL_COND(!get_tree());
Node *p = get_parent();
if (p)
diff --git a/scene/animation/animation_blend_tree.cpp b/scene/animation/animation_blend_tree.cpp
index 5f606ff4c5..5c284cb483 100644
--- a/scene/animation/animation_blend_tree.cpp
+++ b/scene/animation/animation_blend_tree.cpp
@@ -832,8 +832,8 @@ void AnimationNodeTransition::_bind_methods() {
ADD_PROPERTY(PropertyInfo(Variant::REAL, "xfade_time", PROPERTY_HINT_RANGE, "0,120,0.01"), "set_cross_fade_time", "get_cross_fade_time");
for (int i = 0; i < MAX_INPUTS; i++) {
- ADD_PROPERTYI(PropertyInfo(Variant::STRING, "input_" + itos(i) + "/name"), "set_input_caption", "get_input_caption", i);
- ADD_PROPERTYI(PropertyInfo(Variant::BOOL, "input_" + itos(i) + "/auto_advance"), "set_input_as_auto_advance", "is_input_set_as_auto_advance", i);
+ ADD_PROPERTYI(PropertyInfo(Variant::STRING, "input_" + itos(i) + "/name", PROPERTY_HINT_NONE, "", PROPERTY_USAGE_DEFAULT | PROPERTY_USAGE_INTERNAL), "set_input_caption", "get_input_caption", i);
+ ADD_PROPERTYI(PropertyInfo(Variant::BOOL, "input_" + itos(i) + "/auto_advance", PROPERTY_HINT_NONE, "", PROPERTY_USAGE_DEFAULT | PROPERTY_USAGE_INTERNAL), "set_input_as_auto_advance", "is_input_set_as_auto_advance", i);
}
}
diff --git a/scene/animation/skeleton_ik.cpp b/scene/animation/skeleton_ik.cpp
index 518c243dd0..46028a9ce2 100644
--- a/scene/animation/skeleton_ik.cpp
+++ b/scene/animation/skeleton_ik.cpp
@@ -329,6 +329,17 @@ void FabrikInverseKinematic::solve(Task *p_task, real_t blending_delta, bool ove
}
}
+void FabrikInverseKinematic::reset(Task *p_task) {
+ ChainItem *ci(&p_task->chain.chain_root);
+ while (ci) {
+ p_task->skeleton->set_bone_global_pose_override(ci->bone, Transform(), 0);
+ if (!ci->children.empty())
+ ci = &ci->children.write[0];
+ else
+ ci = NULL;
+ }
+}
+
void SkeletonIK::_validate_property(PropertyInfo &property) const {
if (property.name == "root_bone" || property.name == "tip_bone") {
@@ -531,6 +542,8 @@ void SkeletonIK::start(bool p_one_time) {
void SkeletonIK::stop() {
set_process_internal(false);
+ if (task)
+ FabrikInverseKinematic::reset(task);
}
Transform SkeletonIK::_get_target_transform() {
diff --git a/scene/animation/skeleton_ik.h b/scene/animation/skeleton_ik.h
index 9ae010dc4e..8fc8a58b99 100644
--- a/scene/animation/skeleton_ik.h
+++ b/scene/animation/skeleton_ik.h
@@ -139,6 +139,7 @@ public:
static void set_goal(Task *p_task, const Transform &p_goal);
static void make_goal(Task *p_task, const Transform &p_inverse_transf, real_t blending_delta);
static void solve(Task *p_task, real_t blending_delta, bool override_tip_basis, bool p_use_magnet, const Vector3 &p_magnet_position);
+ static void reset(Task *p_task);
};
class SkeletonIK : public Node {
diff --git a/scene/animation/tween.cpp b/scene/animation/tween.cpp
index 58212335c2..331a6c769c 100644
--- a/scene/animation/tween.cpp
+++ b/scene/animation/tween.cpp
@@ -827,6 +827,7 @@ bool Tween::start() {
// Are there any pending updates?
if (pending_update != 0) {
// Start the tweens after deferring
+ call_deferred("start");
return true;
}
diff --git a/scene/gui/label.cpp b/scene/gui/label.cpp
index 77913efd1c..9b542cb179 100644
--- a/scene/gui/label.cpp
+++ b/scene/gui/label.cpp
@@ -232,7 +232,6 @@ void Label::_notification(int p_what) {
return;
}
if (from->space_count) {
- chars_total += from->space_count;
/* spacing */
x_ofs += space_w * from->space_count;
if (can_fill && align == ALIGN_FILL && spaces) {
diff --git a/scene/gui/line_edit.cpp b/scene/gui/line_edit.cpp
index 0f3328dac5..7afc3b0d00 100644
--- a/scene/gui/line_edit.cpp
+++ b/scene/gui/line_edit.cpp
@@ -128,7 +128,7 @@ void LineEdit::_gui_input(Ref<InputEvent> p_event) {
selection.doubleclick = false;
if (OS::get_singleton()->has_virtual_keyboard())
- OS::get_singleton()->show_virtual_keyboard(text, get_global_rect());
+ OS::get_singleton()->show_virtual_keyboard(text, get_global_rect(), max_length);
}
update();
@@ -913,7 +913,7 @@ void LineEdit::_notification(int p_what) {
OS::get_singleton()->set_ime_position(get_global_position() + cursor_pos);
if (OS::get_singleton()->has_virtual_keyboard())
- OS::get_singleton()->show_virtual_keyboard(text, get_global_rect());
+ OS::get_singleton()->show_virtual_keyboard(text, get_global_rect(), max_length);
} break;
case NOTIFICATION_FOCUS_EXIT: {
diff --git a/scene/gui/option_button.cpp b/scene/gui/option_button.cpp
index 8598a953b4..3f46afa8e8 100644
--- a/scene/gui/option_button.cpp
+++ b/scene/gui/option_button.cpp
@@ -36,7 +36,14 @@ Size2 OptionButton::get_minimum_size() const {
Size2 minsize = Button::get_minimum_size();
if (has_icon("arrow")) {
- minsize.width += Control::get_icon("arrow")->get_width() + get_constant("hseparation");
+ const Size2 padding = get_stylebox("normal")->get_minimum_size();
+ const Size2 arrow_size = Control::get_icon("arrow")->get_size();
+
+ Size2 content_size = minsize - padding;
+ content_size.width += arrow_size.width + get_constant("hseparation");
+ content_size.height = MAX(content_size.height, arrow_size.height);
+
+ minsize = content_size + padding;
}
return minsize;
diff --git a/scene/gui/tab_container.cpp b/scene/gui/tab_container.cpp
index c3ddc41813..b045ff4fe1 100644
--- a/scene/gui/tab_container.cpp
+++ b/scene/gui/tab_container.cpp
@@ -785,23 +785,25 @@ TabContainer::TabAlign TabContainer::get_tab_align() const {
return align;
}
-void TabContainer::set_tabs_visible(bool p_visibe) {
+void TabContainer::set_tabs_visible(bool p_visible) {
- if (p_visibe == tabs_visible)
+ if (p_visible == tabs_visible)
return;
- tabs_visible = p_visibe;
+ tabs_visible = p_visible;
Vector<Control *> tabs = _get_tabs();
for (int i = 0; i < tabs.size(); i++) {
Control *c = tabs[i];
- if (p_visibe)
+ if (p_visible)
c->set_margin(MARGIN_TOP, _get_top_margin());
else
c->set_margin(MARGIN_TOP, 0);
}
+
update();
+ minimum_size_changed();
}
bool TabContainer::are_tabs_visible() const {
@@ -936,8 +938,10 @@ Size2 TabContainer::get_minimum_size() const {
Ref<StyleBox> tab_disabled = get_stylebox("tab_disabled");
Ref<Font> font = get_font("font");
- ms.y += MAX(MAX(tab_bg->get_minimum_size().y, tab_fg->get_minimum_size().y), tab_disabled->get_minimum_size().y);
- ms.y += font->get_height();
+ if (tabs_visible) {
+ ms.y += MAX(MAX(tab_bg->get_minimum_size().y, tab_fg->get_minimum_size().y), tab_disabled->get_minimum_size().y);
+ ms.y += font->get_height();
+ }
Ref<StyleBox> sb = get_stylebox("panel");
ms += sb->get_minimum_size();
diff --git a/scene/gui/tab_container.h b/scene/gui/tab_container.h
index e69c2ae289..c5a9045ca6 100644
--- a/scene/gui/tab_container.h
+++ b/scene/gui/tab_container.h
@@ -87,7 +87,7 @@ public:
void set_tab_align(TabAlign p_align);
TabAlign get_tab_align() const;
- void set_tabs_visible(bool p_visibe);
+ void set_tabs_visible(bool p_visible);
bool are_tabs_visible() const;
void set_tab_title(int p_tab, const String &p_title);
diff --git a/scene/gui/video_player.cpp b/scene/gui/video_player.cpp
index 071e8a8ac6..0a693d4023 100644
--- a/scene/gui/video_player.cpp
+++ b/scene/gui/video_player.cpp
@@ -249,6 +249,10 @@ void VideoPlayer::set_stream(const Ref<VideoStream> &p_stream) {
}
update();
+
+ if (!expand) {
+ minimum_size_changed();
+ }
};
Ref<VideoStream> VideoPlayer::get_stream() const {
diff --git a/scene/resources/audio_stream_sample.cpp b/scene/resources/audio_stream_sample.cpp
index bfc7f407eb..e8cb40154e 100644
--- a/scene/resources/audio_stream_sample.cpp
+++ b/scene/resources/audio_stream_sample.cpp
@@ -29,6 +29,7 @@
/*************************************************************************/
#include "audio_stream_sample.h"
+
#include "core/io/marshalls.h"
#include "core/os/file_access.h"
@@ -656,8 +657,8 @@ AudioStreamSample::AudioStreamSample() {
data = NULL;
data_bytes = 0;
}
-AudioStreamSample::~AudioStreamSample() {
+AudioStreamSample::~AudioStreamSample() {
if (data) {
AudioServer::get_singleton()->audio_data_free(data);
data = NULL;
diff --git a/scene/resources/audio_stream_sample.h b/scene/resources/audio_stream_sample.h
index d5d8f073fb..adcac14ea8 100644
--- a/scene/resources/audio_stream_sample.h
+++ b/scene/resources/audio_stream_sample.h
@@ -28,8 +28,8 @@
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
-#ifndef AUDIOSTREAMSAMPLE_H
-#define AUDIOSTREAMSAMPLE_H
+#ifndef AUDIO_STREAM_SAMPLE_H
+#define AUDIO_STREAM_SAMPLE_H
#include "servers/audio/audio_stream.h"
@@ -153,4 +153,4 @@ public:
VARIANT_ENUM_CAST(AudioStreamSample::Format)
VARIANT_ENUM_CAST(AudioStreamSample::LoopMode)
-#endif // AUDIOSTREAMSample_H
+#endif // AUDIO_STREAM_SAMPLE_H
diff --git a/scene/resources/material.h b/scene/resources/material.h
index 3c2a7c928a..8e66011bec 100644
--- a/scene/resources/material.h
+++ b/scene/resources/material.h
@@ -42,7 +42,7 @@ class Material : public Resource {
GDCLASS(Material, Resource);
RES_BASE_EXTENSION("material")
- OBJ_SAVE_TYPE(Material)
+ OBJ_SAVE_TYPE(Material);
RID material;
Ref<Material> next_pass;
@@ -249,7 +249,7 @@ private:
uint64_t blend_mode : 2;
uint64_t depth_draw_mode : 2;
uint64_t cull_mode : 2;
- uint64_t flags : 18;
+ uint64_t flags : 19;
uint64_t detail_blend_mode : 2;
uint64_t diffuse_mode : 3;
uint64_t specular_mode : 3;
diff --git a/scene/resources/texture.h b/scene/resources/texture.h
index fcd8547d07..fa698d387b 100644
--- a/scene/resources/texture.h
+++ b/scene/resources/texture.h
@@ -45,7 +45,8 @@
class Texture : public Resource {
GDCLASS(Texture, Resource);
- OBJ_SAVE_TYPE(Texture); //children are all saved as Texture, so they can be exchanged
+ OBJ_SAVE_TYPE(Texture); // Saves derived classes with common type so they can be interchanged.
+
protected:
static void _bind_methods();
diff --git a/scene/resources/tile_set.cpp b/scene/resources/tile_set.cpp
index d9caf1d657..555e90ed3c 100644
--- a/scene/resources/tile_set.cpp
+++ b/scene/resources/tile_set.cpp
@@ -1038,6 +1038,7 @@ void TileSet::_tile_set_shapes(int p_id, const Array &p_shapes) {
}
tile_map[p_id].shapes_data = shapes_data;
+ emit_changed();
}
Array TileSet::_tile_get_shapes(int p_id) const {
@@ -1232,6 +1233,7 @@ void TileSet::_bind_methods() {
BIND_ENUM_CONSTANT(BIND_TOP);
BIND_ENUM_CONSTANT(BIND_TOPRIGHT);
BIND_ENUM_CONSTANT(BIND_LEFT);
+ BIND_ENUM_CONSTANT(BIND_CENTER);
BIND_ENUM_CONSTANT(BIND_RIGHT);
BIND_ENUM_CONSTANT(BIND_BOTTOMLEFT);
BIND_ENUM_CONSTANT(BIND_BOTTOM);
diff --git a/scene/resources/video_stream.cpp b/scene/resources/video_stream.cpp
deleted file mode 100644
index 81b4477c9a..0000000000
--- a/scene/resources/video_stream.cpp
+++ /dev/null
@@ -1,39 +0,0 @@
-/*************************************************************************/
-/* video_stream.cpp */
-/*************************************************************************/
-/* This file is part of: */
-/* GODOT ENGINE */
-/* https://godotengine.org */
-/*************************************************************************/
-/* Copyright (c) 2007-2020 Juan Linietsky, Ariel Manzur. */
-/* Copyright (c) 2014-2020 Godot Engine contributors (cf. AUTHORS.md). */
-/* */
-/* Permission is hereby granted, free of charge, to any person obtaining */
-/* a copy of this software and associated documentation files (the */
-/* "Software"), to deal in the Software without restriction, including */
-/* without limitation the rights to use, copy, modify, merge, publish, */
-/* distribute, sublicense, and/or sell copies of the Software, and to */
-/* permit persons to whom the Software is furnished to do so, subject to */
-/* the following conditions: */
-/* */
-/* The above copyright notice and this permission notice shall be */
-/* included in all copies or substantial portions of the Software. */
-/* */
-/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, */
-/* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF */
-/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.*/
-/* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY */
-/* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, */
-/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
-/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
-/*************************************************************************/
-
-#include "video_stream.h"
-
-void VideoStreamPlayback::_bind_methods(){
-
-};
-
-VideoStreamPlayback::VideoStreamPlayback(){
-
-};
diff --git a/scene/resources/video_stream.h b/scene/resources/video_stream.h
index d8aee2eac3..444bb698ae 100644
--- a/scene/resources/video_stream.h
+++ b/scene/resources/video_stream.h
@@ -37,9 +37,6 @@ class VideoStreamPlayback : public Resource {
GDCLASS(VideoStreamPlayback, Resource);
-protected:
- static void _bind_methods();
-
public:
typedef int (*AudioMixCallback)(void *p_udata, const float *p_data, int p_frames);
@@ -61,28 +58,22 @@ public:
virtual void set_audio_track(int p_idx) = 0;
- //virtual int mix(int16_t* p_buffer,int p_frames)=0;
-
virtual Ref<Texture> get_texture() const = 0;
virtual void update(float p_delta) = 0;
virtual void set_mix_callback(AudioMixCallback p_callback, void *p_userdata) = 0;
virtual int get_channels() const = 0;
virtual int get_mix_rate() const = 0;
-
- VideoStreamPlayback();
};
class VideoStream : public Resource {
GDCLASS(VideoStream, Resource);
- OBJ_SAVE_TYPE(VideoStream); //children are all saved as AudioStream, so they can be exchanged
+ OBJ_SAVE_TYPE(VideoStream); // Saves derived classes with common type so they can be interchanged.
public:
virtual void set_audio_track(int p_track) = 0;
virtual Ref<VideoStreamPlayback> instance_playback() = 0;
-
- VideoStream() {}
};
#endif
diff --git a/scene/resources/visual_shader.cpp b/scene/resources/visual_shader.cpp
index 4d2082e3c1..e350a0a99e 100644
--- a/scene/resources/visual_shader.cpp
+++ b/scene/resources/visual_shader.cpp
@@ -79,7 +79,7 @@ Vector<StringName> VisualShaderNode::get_editable_properties() const {
return Vector<StringName>();
}
-Array VisualShaderNode::_get_default_input_values() const {
+Array VisualShaderNode::get_default_input_values() const {
Array ret;
for (Map<int, Variant>::Element *E = default_input_values.front(); E; E = E->next()) {
@@ -88,7 +88,7 @@ Array VisualShaderNode::_get_default_input_values() const {
}
return ret;
}
-void VisualShaderNode::_set_default_input_values(const Array &p_values) {
+void VisualShaderNode::set_default_input_values(const Array &p_values) {
if (p_values.size() % 2 == 0) {
for (int i = 0; i < p_values.size(); i += 2) {
@@ -115,11 +115,11 @@ void VisualShaderNode::_bind_methods() {
ClassDB::bind_method(D_METHOD("set_input_port_default_value", "port", "value"), &VisualShaderNode::set_input_port_default_value);
ClassDB::bind_method(D_METHOD("get_input_port_default_value", "port"), &VisualShaderNode::get_input_port_default_value);
- ClassDB::bind_method(D_METHOD("_set_default_input_values", "values"), &VisualShaderNode::_set_default_input_values);
- ClassDB::bind_method(D_METHOD("_get_default_input_values"), &VisualShaderNode::_get_default_input_values);
+ ClassDB::bind_method(D_METHOD("set_default_input_values", "values"), &VisualShaderNode::set_default_input_values);
+ ClassDB::bind_method(D_METHOD("get_default_input_values"), &VisualShaderNode::get_default_input_values);
ADD_PROPERTY(PropertyInfo(Variant::INT, "output_port_for_preview"), "set_output_port_for_preview", "get_output_port_for_preview");
- ADD_PROPERTY(PropertyInfo(Variant::ARRAY, "default_input_values", PROPERTY_HINT_NONE, "", PROPERTY_USAGE_NOEDITOR), "_set_default_input_values", "_get_default_input_values");
+ ADD_PROPERTY(PropertyInfo(Variant::ARRAY, "default_input_values", PROPERTY_HINT_NONE, "", PROPERTY_USAGE_NOEDITOR | PROPERTY_USAGE_INTERNAL), "set_default_input_values", "get_default_input_values");
ADD_SIGNAL(MethodInfo("editor_refresh_request"));
BIND_ENUM_CONSTANT(PORT_TYPE_SCALAR);
@@ -2502,13 +2502,7 @@ void VisualShaderNodeGroupBase::_bind_methods() {
ClassDB::bind_method(D_METHOD("get_free_input_port_id"), &VisualShaderNodeGroupBase::get_free_input_port_id);
ClassDB::bind_method(D_METHOD("get_free_output_port_id"), &VisualShaderNodeGroupBase::get_free_output_port_id);
- ClassDB::bind_method(D_METHOD("set_control", "control", "index"), &VisualShaderNodeGroupBase::set_control);
- ClassDB::bind_method(D_METHOD("get_control", "index"), &VisualShaderNodeGroupBase::get_control);
-
- ClassDB::bind_method(D_METHOD("set_editable", "enabled"), &VisualShaderNodeGroupBase::set_editable);
- ClassDB::bind_method(D_METHOD("is_editable"), &VisualShaderNodeGroupBase::is_editable);
-
- ADD_PROPERTY(PropertyInfo(Variant::BOOL, "editable"), "set_editable", "is_editable");
+ ADD_PROPERTY(PropertyInfo(Variant::VECTOR2, "size"), "set_size", "get_size");
}
String VisualShaderNodeGroupBase::generate_code(Shader::Mode p_mode, VisualShader::Type p_type, int p_id, const String *p_input_vars, const String *p_output_vars, bool p_for_preview) const {
@@ -2532,10 +2526,6 @@ void VisualShaderNodeExpression::set_expression(const String &p_expression) {
expression = p_expression;
}
-void VisualShaderNodeExpression::build() {
- emit_changed();
-}
-
String VisualShaderNodeExpression::get_expression() const {
return expression;
}
@@ -2642,8 +2632,6 @@ void VisualShaderNodeExpression::_bind_methods() {
ClassDB::bind_method(D_METHOD("set_expression", "expression"), &VisualShaderNodeExpression::set_expression);
ClassDB::bind_method(D_METHOD("get_expression"), &VisualShaderNodeExpression::get_expression);
- ClassDB::bind_method(D_METHOD("build"), &VisualShaderNodeExpression::build);
-
ADD_PROPERTY(PropertyInfo(Variant::STRING, "expression"), "set_expression", "get_expression");
}
diff --git a/scene/resources/visual_shader.h b/scene/resources/visual_shader.h
index b2803d1dfb..f81090d9cb 100644
--- a/scene/resources/visual_shader.h
+++ b/scene/resources/visual_shader.h
@@ -175,9 +175,6 @@ class VisualShaderNode : public Resource {
Map<int, Variant> default_input_values;
- Array _get_default_input_values() const;
- void _set_default_input_values(const Array &p_values);
-
protected:
static void _bind_methods();
@@ -199,6 +196,8 @@ public:
void set_input_port_default_value(int p_port, const Variant &p_value);
Variant get_input_port_default_value(int p_port) const; // if NIL (default if node does not set anything) is returned, it means no default value is wanted if disconnected, thus no input var must be supplied (empty string will be supplied)
+ Array get_default_input_values() const;
+ void set_default_input_values(const Array &p_values);
virtual int get_output_port_count() const = 0;
virtual PortType get_output_port_type(int p_port) const = 0;
@@ -458,8 +457,6 @@ public:
void set_expression(const String &p_expression);
String get_expression() const;
- void build();
-
virtual String generate_code(Shader::Mode p_mode, VisualShader::Type p_type, int p_id, const String *p_input_vars, const String *p_output_vars, bool p_for_preview = false) const;
VisualShaderNodeExpression();
diff --git a/scene/resources/visual_shader_nodes.cpp b/scene/resources/visual_shader_nodes.cpp
index f46fba3b5b..7d8c396b7f 100644
--- a/scene/resources/visual_shader_nodes.cpp
+++ b/scene/resources/visual_shader_nodes.cpp
@@ -792,7 +792,7 @@ String VisualShaderNodeCubeMap::generate_global(Shader::Mode p_mode, VisualShade
case TYPE_COLOR: u += " : hint_albedo"; break;
case TYPE_NORMALMAP: u += " : hint_normal"; break;
}
- return u + ";";
+ return u + ";\n";
}
return String();
}
@@ -809,29 +809,33 @@ String VisualShaderNodeCubeMap::generate_code(Shader::Mode p_mode, VisualShader:
return String();
}
+ code += "\t{\n";
+
if (id == String()) {
- code += "\tvec4 " + id + "_read = vec4(0.0);\n";
- code += "\t" + p_output_vars[0] + " = " + id + "_read.rgb;\n";
- code += "\t" + p_output_vars[1] + " = " + id + "_read.a;\n";
+ code += "\t\tvec4 " + id + "_read = vec4(0.0);\n";
+ code += "\t\t" + p_output_vars[0] + " = " + id + "_read.rgb;\n";
+ code += "\t\t" + p_output_vars[1] + " = " + id + "_read.a;\n";
+ code += "\t}\n";
return code;
}
if (p_input_vars[0] == String()) { // Use UV by default.
if (p_input_vars[1] == String()) {
- code += "\tvec4 " + id + "_read = texture( " + id + " , vec3( UV, 0.0 ) );\n";
+ code += "\t\tvec4 " + id + "_read = texture( " + id + " , vec3( UV, 0.0 ) );\n";
} else {
- code += "\tvec4 " + id + "_read = textureLod( " + id + " , vec3( UV, 0.0 )" + " , " + p_input_vars[1] + " );\n";
+ code += "\t\tvec4 " + id + "_read = textureLod( " + id + " , vec3( UV, 0.0 )" + " , " + p_input_vars[1] + " );\n";
}
} else if (p_input_vars[1] == String()) {
//no lod
- code += "\tvec4 " + id + "_read = texture( " + id + " , " + p_input_vars[0] + " );\n";
+ code += "\t\tvec4 " + id + "_read = texture( " + id + " , " + p_input_vars[0] + " );\n";
} else {
- code += "\tvec4 " + id + "_read = textureLod( " + id + " , " + p_input_vars[0] + " , " + p_input_vars[1] + " );\n";
+ code += "\t\tvec4 " + id + "_read = textureLod( " + id + " , " + p_input_vars[0] + " , " + p_input_vars[1] + " );\n";
}
- code += "\t" + p_output_vars[0] + " = " + id + "_read.rgb;\n";
- code += "\t" + p_output_vars[1] + " = " + id + "_read.a;\n";
+ code += "\t\t" + p_output_vars[0] + " = " + id + "_read.rgb;\n";
+ code += "\t\t" + p_output_vars[1] + " = " + id + "_read.a;\n";
+ code += "\t}\n";
return code;
}
@@ -3929,7 +3933,7 @@ String VisualShaderNodeCompare::generate_code(Shader::Mode p_mode, VisualShader:
return code;
}
-void VisualShaderNodeCompare::set_comparsion_type(ComparsionType p_type) {
+void VisualShaderNodeCompare::set_comparison_type(ComparisonType p_type) {
ctype = p_type;
@@ -3954,7 +3958,7 @@ void VisualShaderNodeCompare::set_comparsion_type(ComparsionType p_type) {
emit_changed();
}
-VisualShaderNodeCompare::ComparsionType VisualShaderNodeCompare::get_comparsion_type() const {
+VisualShaderNodeCompare::ComparisonType VisualShaderNodeCompare::get_comparison_type() const {
return ctype;
}
@@ -3992,8 +3996,8 @@ Vector<StringName> VisualShaderNodeCompare::get_editable_properties() const {
void VisualShaderNodeCompare::_bind_methods() {
- ClassDB::bind_method(D_METHOD("set_comparsion_type", "type"), &VisualShaderNodeCompare::set_comparsion_type);
- ClassDB::bind_method(D_METHOD("get_comparsion_type"), &VisualShaderNodeCompare::get_comparsion_type);
+ ClassDB::bind_method(D_METHOD("set_comparison_type", "type"), &VisualShaderNodeCompare::set_comparison_type);
+ ClassDB::bind_method(D_METHOD("get_comparison_type"), &VisualShaderNodeCompare::get_comparison_type);
ClassDB::bind_method(D_METHOD("set_function", "func"), &VisualShaderNodeCompare::set_function);
ClassDB::bind_method(D_METHOD("get_function"), &VisualShaderNodeCompare::get_function);
@@ -4001,7 +4005,7 @@ void VisualShaderNodeCompare::_bind_methods() {
ClassDB::bind_method(D_METHOD("set_condition", "condition"), &VisualShaderNodeCompare::set_condition);
ClassDB::bind_method(D_METHOD("get_condition"), &VisualShaderNodeCompare::get_condition);
- ADD_PROPERTY(PropertyInfo(Variant::INT, "type", PROPERTY_HINT_ENUM, "Scalar,Vector,Boolean,Transform"), "set_comparsion_type", "get_comparsion_type");
+ ADD_PROPERTY(PropertyInfo(Variant::INT, "type", PROPERTY_HINT_ENUM, "Scalar,Vector,Boolean,Transform"), "set_comparison_type", "get_comparison_type");
ADD_PROPERTY(PropertyInfo(Variant::INT, "function", PROPERTY_HINT_ENUM, "a == b,a != b,a > b,a >= b,a < b,a <= b"), "set_function", "get_function");
ADD_PROPERTY(PropertyInfo(Variant::INT, "condition", PROPERTY_HINT_ENUM, "All,Any"), "set_condition", "get_condition");
diff --git a/scene/resources/visual_shader_nodes.h b/scene/resources/visual_shader_nodes.h
index 0f428088e0..cca37273d9 100644
--- a/scene/resources/visual_shader_nodes.h
+++ b/scene/resources/visual_shader_nodes.h
@@ -1635,7 +1635,7 @@ class VisualShaderNodeCompare : public VisualShaderNode {
GDCLASS(VisualShaderNodeCompare, VisualShaderNode);
public:
- enum ComparsionType {
+ enum ComparisonType {
CTYPE_SCALAR,
CTYPE_VECTOR,
CTYPE_BOOLEAN,
@@ -1657,7 +1657,7 @@ public:
};
protected:
- ComparsionType ctype;
+ ComparisonType ctype;
Function func;
Condition condition;
@@ -1677,8 +1677,8 @@ public:
virtual String generate_code(Shader::Mode p_mode, VisualShader::Type p_type, int p_id, const String *p_input_vars, const String *p_output_vars, bool p_for_preview = false) const; //if no output is connected, the output var passed will be empty. if no input is connected and input is NIL, the input var passed will be empty
- void set_comparsion_type(ComparsionType p_type);
- ComparsionType get_comparsion_type() const;
+ void set_comparison_type(ComparisonType p_type);
+ ComparisonType get_comparison_type() const;
void set_function(Function p_func);
Function get_function() const;
@@ -1692,7 +1692,7 @@ public:
VisualShaderNodeCompare();
};
-VARIANT_ENUM_CAST(VisualShaderNodeCompare::ComparsionType)
+VARIANT_ENUM_CAST(VisualShaderNodeCompare::ComparisonType)
VARIANT_ENUM_CAST(VisualShaderNodeCompare::Function)
VARIANT_ENUM_CAST(VisualShaderNodeCompare::Condition)
diff --git a/servers/audio/audio_stream.cpp b/servers/audio/audio_stream.cpp
index 58742c82d4..a58e4eb966 100644
--- a/servers/audio/audio_stream.cpp
+++ b/servers/audio/audio_stream.cpp
@@ -29,6 +29,7 @@
/*************************************************************************/
#include "audio_stream.h"
+
#include "core/os/os.h"
#include "core/project_settings.h"
diff --git a/servers/audio/audio_stream.h b/servers/audio/audio_stream.h
index 6d62eabec1..155b683d7d 100644
--- a/servers/audio/audio_stream.h
+++ b/servers/audio/audio_stream.h
@@ -82,7 +82,7 @@ public:
class AudioStream : public Resource {
GDCLASS(AudioStream, Resource);
- OBJ_SAVE_TYPE(AudioStream) //children are all saved as AudioStream, so they can be exchanged
+ OBJ_SAVE_TYPE(AudioStream); // Saves derived classes with common type so they can be interchanged.
protected:
static void _bind_methods();
diff --git a/servers/visual/shader_language.cpp b/servers/visual/shader_language.cpp
index 121519be0f..d3ecdf4e59 100644
--- a/servers/visual/shader_language.cpp
+++ b/servers/visual/shader_language.cpp
@@ -1407,21 +1407,21 @@ const ShaderLanguage::BuiltinFuncDef ShaderLanguage::builtin_func_defs[] = {
{ "ivec4", TYPE_IVEC4, { TYPE_IVEC3, TYPE_INT, TYPE_VOID }, TAG_GLOBAL, false },
{ "ivec4", TYPE_IVEC4, { TYPE_IVEC2, TYPE_IVEC2, TYPE_VOID }, TAG_GLOBAL, false },
- { "uint", TYPE_UINT, { TYPE_UINT, TYPE_VOID }, TAG_GLOBAL, false },
- { "uvec2", TYPE_UVEC2, { TYPE_UINT, TYPE_VOID }, TAG_GLOBAL, false },
- { "uvec2", TYPE_UVEC2, { TYPE_UINT, TYPE_UINT, TYPE_VOID }, TAG_GLOBAL, false },
- { "uvec3", TYPE_UVEC3, { TYPE_UINT, TYPE_VOID }, TAG_GLOBAL, false },
- { "uvec3", TYPE_UVEC3, { TYPE_UINT, TYPE_UINT, TYPE_UINT, TYPE_VOID }, TAG_GLOBAL, false },
- { "uvec3", TYPE_UVEC3, { TYPE_UVEC2, TYPE_UINT, TYPE_VOID }, TAG_GLOBAL, false },
- { "uvec3", TYPE_UVEC3, { TYPE_UINT, TYPE_UVEC2, TYPE_VOID }, TAG_GLOBAL, false },
- { "uvec4", TYPE_UVEC4, { TYPE_UINT, TYPE_VOID }, TAG_GLOBAL, false },
- { "uvec4", TYPE_UVEC4, { TYPE_UINT, TYPE_UINT, TYPE_UINT, TYPE_UINT, TYPE_VOID }, TAG_GLOBAL, false },
- { "uvec4", TYPE_UVEC4, { TYPE_UINT, TYPE_UVEC2, TYPE_UINT, TYPE_VOID }, TAG_GLOBAL, false },
- { "uvec4", TYPE_UVEC4, { TYPE_UVEC2, TYPE_UINT, TYPE_UINT, TYPE_VOID }, TAG_GLOBAL, false },
- { "uvec4", TYPE_UVEC4, { TYPE_UINT, TYPE_UINT, TYPE_UVEC2, TYPE_VOID }, TAG_GLOBAL, false },
- { "uvec4", TYPE_UVEC4, { TYPE_UINT, TYPE_UVEC3, TYPE_VOID }, TAG_GLOBAL, false },
- { "uvec4", TYPE_UVEC4, { TYPE_UVEC3, TYPE_UINT, TYPE_VOID }, TAG_GLOBAL, false },
- { "uvec4", TYPE_UVEC4, { TYPE_UVEC2, TYPE_UVEC2, TYPE_VOID }, TAG_GLOBAL, false },
+ { "uint", TYPE_UINT, { TYPE_UINT, TYPE_VOID }, TAG_GLOBAL, true },
+ { "uvec2", TYPE_UVEC2, { TYPE_UINT, TYPE_VOID }, TAG_GLOBAL, true },
+ { "uvec2", TYPE_UVEC2, { TYPE_UINT, TYPE_UINT, TYPE_VOID }, TAG_GLOBAL, true },
+ { "uvec3", TYPE_UVEC3, { TYPE_UINT, TYPE_VOID }, TAG_GLOBAL, true },
+ { "uvec3", TYPE_UVEC3, { TYPE_UINT, TYPE_UINT, TYPE_UINT, TYPE_VOID }, TAG_GLOBAL, true },
+ { "uvec3", TYPE_UVEC3, { TYPE_UVEC2, TYPE_UINT, TYPE_VOID }, TAG_GLOBAL, true },
+ { "uvec3", TYPE_UVEC3, { TYPE_UINT, TYPE_UVEC2, TYPE_VOID }, TAG_GLOBAL, true },
+ { "uvec4", TYPE_UVEC4, { TYPE_UINT, TYPE_VOID }, TAG_GLOBAL, true },
+ { "uvec4", TYPE_UVEC4, { TYPE_UINT, TYPE_UINT, TYPE_UINT, TYPE_UINT, TYPE_VOID }, TAG_GLOBAL, true },
+ { "uvec4", TYPE_UVEC4, { TYPE_UINT, TYPE_UVEC2, TYPE_UINT, TYPE_VOID }, TAG_GLOBAL, true },
+ { "uvec4", TYPE_UVEC4, { TYPE_UVEC2, TYPE_UINT, TYPE_UINT, TYPE_VOID }, TAG_GLOBAL, true },
+ { "uvec4", TYPE_UVEC4, { TYPE_UINT, TYPE_UINT, TYPE_UVEC2, TYPE_VOID }, TAG_GLOBAL, true },
+ { "uvec4", TYPE_UVEC4, { TYPE_UINT, TYPE_UVEC3, TYPE_VOID }, TAG_GLOBAL, true },
+ { "uvec4", TYPE_UVEC4, { TYPE_UVEC3, TYPE_UINT, TYPE_VOID }, TAG_GLOBAL, true },
+ { "uvec4", TYPE_UVEC4, { TYPE_UVEC2, TYPE_UVEC2, TYPE_VOID }, TAG_GLOBAL, true },
{ "mat2", TYPE_MAT2, { TYPE_VEC2, TYPE_VEC2, TYPE_VOID }, TAG_GLOBAL, false },
{ "mat3", TYPE_MAT3, { TYPE_VEC3, TYPE_VEC3, TYPE_VEC3, TYPE_VOID }, TAG_GLOBAL, false },
@@ -1435,22 +1435,22 @@ const ShaderLanguage::BuiltinFuncDef ShaderLanguage::builtin_func_defs[] = {
{ "int", TYPE_INT, { TYPE_BOOL, TYPE_VOID }, TAG_GLOBAL, false },
{ "int", TYPE_INT, { TYPE_INT, TYPE_VOID }, TAG_GLOBAL, false },
- { "int", TYPE_INT, { TYPE_UINT, TYPE_VOID }, TAG_GLOBAL, false },
+ { "int", TYPE_INT, { TYPE_UINT, TYPE_VOID }, TAG_GLOBAL, true },
{ "int", TYPE_INT, { TYPE_FLOAT, TYPE_VOID }, TAG_GLOBAL, false },
{ "float", TYPE_FLOAT, { TYPE_BOOL, TYPE_VOID }, TAG_GLOBAL, false },
{ "float", TYPE_FLOAT, { TYPE_INT, TYPE_VOID }, TAG_GLOBAL, false },
- { "float", TYPE_FLOAT, { TYPE_UINT, TYPE_VOID }, TAG_GLOBAL, false },
+ { "float", TYPE_FLOAT, { TYPE_UINT, TYPE_VOID }, TAG_GLOBAL, true },
{ "float", TYPE_FLOAT, { TYPE_FLOAT, TYPE_VOID }, TAG_GLOBAL, false },
- { "uint", TYPE_UINT, { TYPE_BOOL, TYPE_VOID }, TAG_GLOBAL, false },
- { "uint", TYPE_UINT, { TYPE_INT, TYPE_VOID }, TAG_GLOBAL, false },
- { "uint", TYPE_UINT, { TYPE_UINT, TYPE_VOID }, TAG_GLOBAL, false },
- { "uint", TYPE_UINT, { TYPE_FLOAT, TYPE_VOID }, TAG_GLOBAL, false },
+ { "uint", TYPE_UINT, { TYPE_BOOL, TYPE_VOID }, TAG_GLOBAL, true },
+ { "uint", TYPE_UINT, { TYPE_INT, TYPE_VOID }, TAG_GLOBAL, true },
+ { "uint", TYPE_UINT, { TYPE_UINT, TYPE_VOID }, TAG_GLOBAL, true },
+ { "uint", TYPE_UINT, { TYPE_FLOAT, TYPE_VOID }, TAG_GLOBAL, true },
{ "bool", TYPE_BOOL, { TYPE_BOOL, TYPE_VOID }, TAG_GLOBAL, false },
{ "bool", TYPE_BOOL, { TYPE_INT, TYPE_VOID }, TAG_GLOBAL, false },
- { "bool", TYPE_BOOL, { TYPE_UINT, TYPE_VOID }, TAG_GLOBAL, false },
+ { "bool", TYPE_BOOL, { TYPE_UINT, TYPE_VOID }, TAG_GLOBAL, true },
{ "bool", TYPE_BOOL, { TYPE_FLOAT, TYPE_VOID }, TAG_GLOBAL, false },
//conversion vectors
@@ -1462,57 +1462,57 @@ const ShaderLanguage::BuiltinFuncDef ShaderLanguage::builtin_func_defs[] = {
{ "vec2", TYPE_VEC2, { TYPE_BVEC2, TYPE_VOID }, TAG_GLOBAL, false },
{ "vec2", TYPE_VEC2, { TYPE_IVEC2, TYPE_VOID }, TAG_GLOBAL, false },
- { "vec2", TYPE_VEC2, { TYPE_UVEC2, TYPE_VOID }, TAG_GLOBAL, false },
+ { "vec2", TYPE_VEC2, { TYPE_UVEC2, TYPE_VOID }, TAG_GLOBAL, true },
{ "vec2", TYPE_VEC2, { TYPE_VEC2, TYPE_VOID }, TAG_GLOBAL, false },
- { "uvec2", TYPE_UVEC2, { TYPE_BVEC2, TYPE_VOID }, TAG_GLOBAL, false },
- { "uvec2", TYPE_UVEC2, { TYPE_IVEC2, TYPE_VOID }, TAG_GLOBAL, false },
- { "uvec2", TYPE_UVEC2, { TYPE_UVEC2, TYPE_VOID }, TAG_GLOBAL, false },
- { "uvec2", TYPE_UVEC2, { TYPE_VEC2, TYPE_VOID }, TAG_GLOBAL, false },
+ { "uvec2", TYPE_UVEC2, { TYPE_BVEC2, TYPE_VOID }, TAG_GLOBAL, true },
+ { "uvec2", TYPE_UVEC2, { TYPE_IVEC2, TYPE_VOID }, TAG_GLOBAL, true },
+ { "uvec2", TYPE_UVEC2, { TYPE_UVEC2, TYPE_VOID }, TAG_GLOBAL, true },
+ { "uvec2", TYPE_UVEC2, { TYPE_VEC2, TYPE_VOID }, TAG_GLOBAL, true },
{ "bvec2", TYPE_BVEC2, { TYPE_BVEC2, TYPE_VOID }, TAG_GLOBAL, false },
{ "bvec2", TYPE_BVEC2, { TYPE_IVEC2, TYPE_VOID }, TAG_GLOBAL, false },
- { "bvec2", TYPE_BVEC2, { TYPE_UVEC2, TYPE_VOID }, TAG_GLOBAL, false },
+ { "bvec2", TYPE_BVEC2, { TYPE_UVEC2, TYPE_VOID }, TAG_GLOBAL, true },
{ "bvec2", TYPE_BVEC2, { TYPE_VEC2, TYPE_VOID }, TAG_GLOBAL, false },
{ "ivec3", TYPE_IVEC3, { TYPE_BVEC3, TYPE_VOID }, TAG_GLOBAL, false },
{ "ivec3", TYPE_IVEC3, { TYPE_IVEC3, TYPE_VOID }, TAG_GLOBAL, false },
- { "ivec3", TYPE_IVEC3, { TYPE_UVEC3, TYPE_VOID }, TAG_GLOBAL, false },
+ { "ivec3", TYPE_IVEC3, { TYPE_UVEC3, TYPE_VOID }, TAG_GLOBAL, true },
{ "ivec3", TYPE_IVEC3, { TYPE_VEC3, TYPE_VOID }, TAG_GLOBAL, false },
{ "vec3", TYPE_VEC3, { TYPE_BVEC3, TYPE_VOID }, TAG_GLOBAL, false },
{ "vec3", TYPE_VEC3, { TYPE_IVEC3, TYPE_VOID }, TAG_GLOBAL, false },
- { "vec3", TYPE_VEC3, { TYPE_UVEC3, TYPE_VOID }, TAG_GLOBAL, false },
+ { "vec3", TYPE_VEC3, { TYPE_UVEC3, TYPE_VOID }, TAG_GLOBAL, true },
{ "vec3", TYPE_VEC3, { TYPE_VEC3, TYPE_VOID }, TAG_GLOBAL, false },
- { "uvec3", TYPE_UVEC3, { TYPE_BVEC3, TYPE_VOID }, TAG_GLOBAL, false },
- { "uvec3", TYPE_UVEC3, { TYPE_IVEC3, TYPE_VOID }, TAG_GLOBAL, false },
- { "uvec3", TYPE_UVEC3, { TYPE_UVEC3, TYPE_VOID }, TAG_GLOBAL, false },
- { "uvec3", TYPE_UVEC3, { TYPE_VEC3, TYPE_VOID }, TAG_GLOBAL, false },
+ { "uvec3", TYPE_UVEC3, { TYPE_BVEC3, TYPE_VOID }, TAG_GLOBAL, true },
+ { "uvec3", TYPE_UVEC3, { TYPE_IVEC3, TYPE_VOID }, TAG_GLOBAL, true },
+ { "uvec3", TYPE_UVEC3, { TYPE_UVEC3, TYPE_VOID }, TAG_GLOBAL, true },
+ { "uvec3", TYPE_UVEC3, { TYPE_VEC3, TYPE_VOID }, TAG_GLOBAL, true },
{ "bvec3", TYPE_BVEC3, { TYPE_BVEC3, TYPE_VOID }, TAG_GLOBAL, false },
{ "bvec3", TYPE_BVEC3, { TYPE_IVEC3, TYPE_VOID }, TAG_GLOBAL, false },
- { "bvec3", TYPE_BVEC3, { TYPE_UVEC3, TYPE_VOID }, TAG_GLOBAL, false },
+ { "bvec3", TYPE_BVEC3, { TYPE_UVEC3, TYPE_VOID }, TAG_GLOBAL, true },
{ "bvec3", TYPE_BVEC3, { TYPE_VEC3, TYPE_VOID }, TAG_GLOBAL, false },
{ "ivec4", TYPE_IVEC4, { TYPE_BVEC4, TYPE_VOID }, TAG_GLOBAL, false },
{ "ivec4", TYPE_IVEC4, { TYPE_IVEC4, TYPE_VOID }, TAG_GLOBAL, false },
- { "ivec4", TYPE_IVEC4, { TYPE_UVEC4, TYPE_VOID }, TAG_GLOBAL, false },
+ { "ivec4", TYPE_IVEC4, { TYPE_UVEC4, TYPE_VOID }, TAG_GLOBAL, true },
{ "ivec4", TYPE_IVEC4, { TYPE_VEC4, TYPE_VOID }, TAG_GLOBAL, false },
{ "vec4", TYPE_VEC4, { TYPE_BVEC4, TYPE_VOID }, TAG_GLOBAL, false },
{ "vec4", TYPE_VEC4, { TYPE_IVEC4, TYPE_VOID }, TAG_GLOBAL, false },
- { "vec4", TYPE_VEC4, { TYPE_UVEC4, TYPE_VOID }, TAG_GLOBAL, false },
+ { "vec4", TYPE_VEC4, { TYPE_UVEC4, TYPE_VOID }, TAG_GLOBAL, true },
{ "vec4", TYPE_VEC4, { TYPE_VEC4, TYPE_VOID }, TAG_GLOBAL, false },
- { "uvec4", TYPE_UVEC4, { TYPE_BVEC4, TYPE_VOID }, TAG_GLOBAL, false },
- { "uvec4", TYPE_UVEC4, { TYPE_IVEC4, TYPE_VOID }, TAG_GLOBAL, false },
- { "uvec4", TYPE_UVEC4, { TYPE_UVEC4, TYPE_VOID }, TAG_GLOBAL, false },
- { "uvec4", TYPE_UVEC4, { TYPE_VEC4, TYPE_VOID }, TAG_GLOBAL, false },
+ { "uvec4", TYPE_UVEC4, { TYPE_BVEC4, TYPE_VOID }, TAG_GLOBAL, true },
+ { "uvec4", TYPE_UVEC4, { TYPE_IVEC4, TYPE_VOID }, TAG_GLOBAL, true },
+ { "uvec4", TYPE_UVEC4, { TYPE_UVEC4, TYPE_VOID }, TAG_GLOBAL, true },
+ { "uvec4", TYPE_UVEC4, { TYPE_VEC4, TYPE_VOID }, TAG_GLOBAL, true },
{ "bvec4", TYPE_BVEC4, { TYPE_BVEC4, TYPE_VOID }, TAG_GLOBAL, false },
{ "bvec4", TYPE_BVEC4, { TYPE_IVEC4, TYPE_VOID }, TAG_GLOBAL, false },
- { "bvec4", TYPE_BVEC4, { TYPE_UVEC4, TYPE_VOID }, TAG_GLOBAL, false },
+ { "bvec4", TYPE_BVEC4, { TYPE_UVEC4, TYPE_VOID }, TAG_GLOBAL, true },
{ "bvec4", TYPE_BVEC4, { TYPE_VEC4, TYPE_VOID }, TAG_GLOBAL, false },
//conversion between matrixes
@@ -1704,13 +1704,13 @@ const ShaderLanguage::BuiltinFuncDef ShaderLanguage::builtin_func_defs[] = {
{ "min", TYPE_IVEC4, { TYPE_IVEC4, TYPE_IVEC4, TYPE_VOID }, TAG_GLOBAL, false },
{ "min", TYPE_IVEC4, { TYPE_IVEC4, TYPE_INT, TYPE_VOID }, TAG_GLOBAL, false },
- { "min", TYPE_UINT, { TYPE_UINT, TYPE_UINT, TYPE_VOID }, TAG_GLOBAL, false },
- { "min", TYPE_UVEC2, { TYPE_UVEC2, TYPE_UVEC2, TYPE_VOID }, TAG_GLOBAL, false },
- { "min", TYPE_UVEC2, { TYPE_UVEC2, TYPE_UINT, TYPE_VOID }, TAG_GLOBAL, false },
- { "min", TYPE_UVEC3, { TYPE_UVEC3, TYPE_UVEC3, TYPE_VOID }, TAG_GLOBAL, false },
- { "min", TYPE_UVEC3, { TYPE_UVEC3, TYPE_UINT, TYPE_VOID }, TAG_GLOBAL, false },
- { "min", TYPE_UVEC4, { TYPE_UVEC4, TYPE_UVEC4, TYPE_VOID }, TAG_GLOBAL, false },
- { "min", TYPE_UVEC4, { TYPE_UVEC4, TYPE_UINT, TYPE_VOID }, TAG_GLOBAL, false },
+ { "min", TYPE_UINT, { TYPE_UINT, TYPE_UINT, TYPE_VOID }, TAG_GLOBAL, true },
+ { "min", TYPE_UVEC2, { TYPE_UVEC2, TYPE_UVEC2, TYPE_VOID }, TAG_GLOBAL, true },
+ { "min", TYPE_UVEC2, { TYPE_UVEC2, TYPE_UINT, TYPE_VOID }, TAG_GLOBAL, true },
+ { "min", TYPE_UVEC3, { TYPE_UVEC3, TYPE_UVEC3, TYPE_VOID }, TAG_GLOBAL, true },
+ { "min", TYPE_UVEC3, { TYPE_UVEC3, TYPE_UINT, TYPE_VOID }, TAG_GLOBAL, true },
+ { "min", TYPE_UVEC4, { TYPE_UVEC4, TYPE_UVEC4, TYPE_VOID }, TAG_GLOBAL, true },
+ { "min", TYPE_UVEC4, { TYPE_UVEC4, TYPE_UINT, TYPE_VOID }, TAG_GLOBAL, true },
{ "max", TYPE_FLOAT, { TYPE_FLOAT, TYPE_FLOAT, TYPE_VOID }, TAG_GLOBAL, false },
{ "max", TYPE_VEC2, { TYPE_VEC2, TYPE_VEC2, TYPE_VOID }, TAG_GLOBAL, false },
@@ -1728,13 +1728,13 @@ const ShaderLanguage::BuiltinFuncDef ShaderLanguage::builtin_func_defs[] = {
{ "max", TYPE_IVEC4, { TYPE_IVEC4, TYPE_IVEC4, TYPE_VOID }, TAG_GLOBAL, false },
{ "max", TYPE_IVEC4, { TYPE_IVEC4, TYPE_INT, TYPE_VOID }, TAG_GLOBAL, false },
- { "max", TYPE_UINT, { TYPE_UINT, TYPE_UINT, TYPE_VOID }, TAG_GLOBAL, false },
- { "max", TYPE_UVEC2, { TYPE_UVEC2, TYPE_UVEC2, TYPE_VOID }, TAG_GLOBAL, false },
- { "max", TYPE_UVEC2, { TYPE_UVEC2, TYPE_UINT, TYPE_VOID }, TAG_GLOBAL, false },
- { "max", TYPE_UVEC3, { TYPE_UVEC3, TYPE_UVEC3, TYPE_VOID }, TAG_GLOBAL, false },
- { "max", TYPE_UVEC3, { TYPE_UVEC3, TYPE_UINT, TYPE_VOID }, TAG_GLOBAL, false },
- { "max", TYPE_UVEC4, { TYPE_UVEC4, TYPE_UVEC4, TYPE_VOID }, TAG_GLOBAL, false },
- { "max", TYPE_UVEC4, { TYPE_UVEC4, TYPE_UINT, TYPE_VOID }, TAG_GLOBAL, false },
+ { "max", TYPE_UINT, { TYPE_UINT, TYPE_UINT, TYPE_VOID }, TAG_GLOBAL, true },
+ { "max", TYPE_UVEC2, { TYPE_UVEC2, TYPE_UVEC2, TYPE_VOID }, TAG_GLOBAL, true },
+ { "max", TYPE_UVEC2, { TYPE_UVEC2, TYPE_UINT, TYPE_VOID }, TAG_GLOBAL, true },
+ { "max", TYPE_UVEC3, { TYPE_UVEC3, TYPE_UVEC3, TYPE_VOID }, TAG_GLOBAL, true },
+ { "max", TYPE_UVEC3, { TYPE_UVEC3, TYPE_UINT, TYPE_VOID }, TAG_GLOBAL, true },
+ { "max", TYPE_UVEC4, { TYPE_UVEC4, TYPE_UVEC4, TYPE_VOID }, TAG_GLOBAL, true },
+ { "max", TYPE_UVEC4, { TYPE_UVEC4, TYPE_UINT, TYPE_VOID }, TAG_GLOBAL, true },
{ "clamp", TYPE_FLOAT, { TYPE_FLOAT, TYPE_FLOAT, TYPE_FLOAT, TYPE_VOID }, TAG_GLOBAL, false },
{ "clamp", TYPE_VEC2, { TYPE_VEC2, TYPE_VEC2, TYPE_VEC2, TYPE_VOID }, TAG_GLOBAL, false },
@@ -1752,13 +1752,13 @@ const ShaderLanguage::BuiltinFuncDef ShaderLanguage::builtin_func_defs[] = {
{ "clamp", TYPE_IVEC3, { TYPE_IVEC3, TYPE_INT, TYPE_INT, TYPE_VOID }, TAG_GLOBAL, false },
{ "clamp", TYPE_IVEC4, { TYPE_IVEC4, TYPE_INT, TYPE_INT, TYPE_VOID }, TAG_GLOBAL, false },
- { "clamp", TYPE_UINT, { TYPE_UINT, TYPE_UINT, TYPE_UINT, TYPE_VOID }, TAG_GLOBAL, false },
- { "clamp", TYPE_UVEC2, { TYPE_UVEC2, TYPE_UVEC2, TYPE_UVEC2, TYPE_VOID }, TAG_GLOBAL, false },
- { "clamp", TYPE_UVEC3, { TYPE_UVEC3, TYPE_UVEC3, TYPE_UVEC3, TYPE_VOID }, TAG_GLOBAL, false },
- { "clamp", TYPE_UVEC4, { TYPE_UVEC4, TYPE_UVEC4, TYPE_UVEC4, TYPE_VOID }, TAG_GLOBAL, false },
- { "clamp", TYPE_UVEC2, { TYPE_UVEC2, TYPE_UINT, TYPE_UINT, TYPE_VOID }, TAG_GLOBAL, false },
- { "clamp", TYPE_UVEC3, { TYPE_UVEC3, TYPE_UINT, TYPE_UINT, TYPE_VOID }, TAG_GLOBAL, false },
- { "clamp", TYPE_UVEC4, { TYPE_UVEC4, TYPE_UINT, TYPE_UINT, TYPE_VOID }, TAG_GLOBAL, false },
+ { "clamp", TYPE_UINT, { TYPE_UINT, TYPE_UINT, TYPE_UINT, TYPE_VOID }, TAG_GLOBAL, true },
+ { "clamp", TYPE_UVEC2, { TYPE_UVEC2, TYPE_UVEC2, TYPE_UVEC2, TYPE_VOID }, TAG_GLOBAL, true },
+ { "clamp", TYPE_UVEC3, { TYPE_UVEC3, TYPE_UVEC3, TYPE_UVEC3, TYPE_VOID }, TAG_GLOBAL, true },
+ { "clamp", TYPE_UVEC4, { TYPE_UVEC4, TYPE_UVEC4, TYPE_UVEC4, TYPE_VOID }, TAG_GLOBAL, true },
+ { "clamp", TYPE_UVEC2, { TYPE_UVEC2, TYPE_UINT, TYPE_UINT, TYPE_VOID }, TAG_GLOBAL, true },
+ { "clamp", TYPE_UVEC3, { TYPE_UVEC3, TYPE_UINT, TYPE_UINT, TYPE_VOID }, TAG_GLOBAL, true },
+ { "clamp", TYPE_UVEC4, { TYPE_UVEC4, TYPE_UINT, TYPE_UINT, TYPE_VOID }, TAG_GLOBAL, true },
{ "mix", TYPE_FLOAT, { TYPE_FLOAT, TYPE_FLOAT, TYPE_FLOAT, TYPE_VOID }, TAG_GLOBAL, false },
{ "mix", TYPE_VEC2, { TYPE_VEC2, TYPE_VEC2, TYPE_FLOAT, TYPE_VOID }, TAG_GLOBAL, false },
@@ -1865,9 +1865,9 @@ const ShaderLanguage::BuiltinFuncDef ShaderLanguage::builtin_func_defs[] = {
{ "lessThan", TYPE_BVEC3, { TYPE_IVEC3, TYPE_IVEC3, TYPE_VOID }, TAG_GLOBAL, false },
{ "lessThan", TYPE_BVEC4, { TYPE_IVEC4, TYPE_IVEC4, TYPE_VOID }, TAG_GLOBAL, false },
- { "lessThan", TYPE_BVEC2, { TYPE_UVEC2, TYPE_UVEC2, TYPE_VOID }, TAG_GLOBAL, false },
- { "lessThan", TYPE_BVEC3, { TYPE_UVEC3, TYPE_UVEC3, TYPE_VOID }, TAG_GLOBAL, false },
- { "lessThan", TYPE_BVEC4, { TYPE_UVEC4, TYPE_UVEC4, TYPE_VOID }, TAG_GLOBAL, false },
+ { "lessThan", TYPE_BVEC2, { TYPE_UVEC2, TYPE_UVEC2, TYPE_VOID }, TAG_GLOBAL, true },
+ { "lessThan", TYPE_BVEC3, { TYPE_UVEC3, TYPE_UVEC3, TYPE_VOID }, TAG_GLOBAL, true },
+ { "lessThan", TYPE_BVEC4, { TYPE_UVEC4, TYPE_UVEC4, TYPE_VOID }, TAG_GLOBAL, true },
{ "greaterThan", TYPE_BVEC2, { TYPE_VEC2, TYPE_VEC2, TYPE_VOID }, TAG_GLOBAL, false },
{ "greaterThan", TYPE_BVEC3, { TYPE_VEC3, TYPE_VEC3, TYPE_VOID }, TAG_GLOBAL, false },
@@ -1877,9 +1877,9 @@ const ShaderLanguage::BuiltinFuncDef ShaderLanguage::builtin_func_defs[] = {
{ "greaterThan", TYPE_BVEC3, { TYPE_IVEC3, TYPE_IVEC3, TYPE_VOID }, TAG_GLOBAL, false },
{ "greaterThan", TYPE_BVEC4, { TYPE_IVEC4, TYPE_IVEC4, TYPE_VOID }, TAG_GLOBAL, false },
- { "greaterThan", TYPE_BVEC2, { TYPE_UVEC2, TYPE_UVEC2, TYPE_VOID }, TAG_GLOBAL, false },
- { "greaterThan", TYPE_BVEC3, { TYPE_UVEC3, TYPE_UVEC3, TYPE_VOID }, TAG_GLOBAL, false },
- { "greaterThan", TYPE_BVEC4, { TYPE_UVEC4, TYPE_UVEC4, TYPE_VOID }, TAG_GLOBAL, false },
+ { "greaterThan", TYPE_BVEC2, { TYPE_UVEC2, TYPE_UVEC2, TYPE_VOID }, TAG_GLOBAL, true },
+ { "greaterThan", TYPE_BVEC3, { TYPE_UVEC3, TYPE_UVEC3, TYPE_VOID }, TAG_GLOBAL, true },
+ { "greaterThan", TYPE_BVEC4, { TYPE_UVEC4, TYPE_UVEC4, TYPE_VOID }, TAG_GLOBAL, true },
{ "lessThanEqual", TYPE_BVEC2, { TYPE_VEC2, TYPE_VEC2, TYPE_VOID }, TAG_GLOBAL, false },
{ "lessThanEqual", TYPE_BVEC3, { TYPE_VEC3, TYPE_VEC3, TYPE_VOID }, TAG_GLOBAL, false },
@@ -1889,9 +1889,9 @@ const ShaderLanguage::BuiltinFuncDef ShaderLanguage::builtin_func_defs[] = {
{ "lessThanEqual", TYPE_BVEC3, { TYPE_IVEC3, TYPE_IVEC3, TYPE_VOID }, TAG_GLOBAL, false },
{ "lessThanEqual", TYPE_BVEC4, { TYPE_IVEC4, TYPE_IVEC4, TYPE_VOID }, TAG_GLOBAL, false },
- { "lessThanEqual", TYPE_BVEC2, { TYPE_UVEC2, TYPE_UVEC2, TYPE_VOID }, TAG_GLOBAL, false },
- { "lessThanEqual", TYPE_BVEC3, { TYPE_UVEC3, TYPE_UVEC3, TYPE_VOID }, TAG_GLOBAL, false },
- { "lessThanEqual", TYPE_BVEC4, { TYPE_UVEC4, TYPE_UVEC4, TYPE_VOID }, TAG_GLOBAL, false },
+ { "lessThanEqual", TYPE_BVEC2, { TYPE_UVEC2, TYPE_UVEC2, TYPE_VOID }, TAG_GLOBAL, true },
+ { "lessThanEqual", TYPE_BVEC3, { TYPE_UVEC3, TYPE_UVEC3, TYPE_VOID }, TAG_GLOBAL, true },
+ { "lessThanEqual", TYPE_BVEC4, { TYPE_UVEC4, TYPE_UVEC4, TYPE_VOID }, TAG_GLOBAL, true },
{ "greaterThanEqual", TYPE_BVEC2, { TYPE_VEC2, TYPE_VEC2, TYPE_VOID }, TAG_GLOBAL, false },
{ "greaterThanEqual", TYPE_BVEC3, { TYPE_VEC3, TYPE_VEC3, TYPE_VOID }, TAG_GLOBAL, false },
@@ -1901,9 +1901,9 @@ const ShaderLanguage::BuiltinFuncDef ShaderLanguage::builtin_func_defs[] = {
{ "greaterThanEqual", TYPE_BVEC3, { TYPE_IVEC3, TYPE_IVEC3, TYPE_VOID }, TAG_GLOBAL, false },
{ "greaterThanEqual", TYPE_BVEC4, { TYPE_IVEC4, TYPE_IVEC4, TYPE_VOID }, TAG_GLOBAL, false },
- { "greaterThanEqual", TYPE_BVEC2, { TYPE_UVEC2, TYPE_UVEC2, TYPE_VOID }, TAG_GLOBAL, false },
- { "greaterThanEqual", TYPE_BVEC3, { TYPE_UVEC3, TYPE_UVEC3, TYPE_VOID }, TAG_GLOBAL, false },
- { "greaterThanEqual", TYPE_BVEC4, { TYPE_UVEC4, TYPE_UVEC4, TYPE_VOID }, TAG_GLOBAL, false },
+ { "greaterThanEqual", TYPE_BVEC2, { TYPE_UVEC2, TYPE_UVEC2, TYPE_VOID }, TAG_GLOBAL, true },
+ { "greaterThanEqual", TYPE_BVEC3, { TYPE_UVEC3, TYPE_UVEC3, TYPE_VOID }, TAG_GLOBAL, true },
+ { "greaterThanEqual", TYPE_BVEC4, { TYPE_UVEC4, TYPE_UVEC4, TYPE_VOID }, TAG_GLOBAL, true },
{ "equal", TYPE_BVEC2, { TYPE_VEC2, TYPE_VEC2, TYPE_VOID }, TAG_GLOBAL, false },
{ "equal", TYPE_BVEC3, { TYPE_VEC3, TYPE_VEC3, TYPE_VOID }, TAG_GLOBAL, false },
@@ -1913,9 +1913,9 @@ const ShaderLanguage::BuiltinFuncDef ShaderLanguage::builtin_func_defs[] = {
{ "equal", TYPE_BVEC3, { TYPE_IVEC3, TYPE_IVEC3, TYPE_VOID }, TAG_GLOBAL, false },
{ "equal", TYPE_BVEC4, { TYPE_IVEC4, TYPE_IVEC4, TYPE_VOID }, TAG_GLOBAL, false },
- { "equal", TYPE_BVEC2, { TYPE_UVEC2, TYPE_UVEC2, TYPE_VOID }, TAG_GLOBAL, false },
- { "equal", TYPE_BVEC3, { TYPE_UVEC3, TYPE_UVEC3, TYPE_VOID }, TAG_GLOBAL, false },
- { "equal", TYPE_BVEC4, { TYPE_UVEC4, TYPE_UVEC4, TYPE_VOID }, TAG_GLOBAL, false },
+ { "equal", TYPE_BVEC2, { TYPE_UVEC2, TYPE_UVEC2, TYPE_VOID }, TAG_GLOBAL, true },
+ { "equal", TYPE_BVEC3, { TYPE_UVEC3, TYPE_UVEC3, TYPE_VOID }, TAG_GLOBAL, true },
+ { "equal", TYPE_BVEC4, { TYPE_UVEC4, TYPE_UVEC4, TYPE_VOID }, TAG_GLOBAL, true },
{ "equal", TYPE_BVEC2, { TYPE_BVEC2, TYPE_BVEC2, TYPE_VOID }, TAG_GLOBAL, false },
{ "equal", TYPE_BVEC3, { TYPE_BVEC3, TYPE_BVEC3, TYPE_VOID }, TAG_GLOBAL, false },
@@ -1929,9 +1929,9 @@ const ShaderLanguage::BuiltinFuncDef ShaderLanguage::builtin_func_defs[] = {
{ "notEqual", TYPE_BVEC3, { TYPE_IVEC3, TYPE_IVEC3, TYPE_VOID }, TAG_GLOBAL, false },
{ "notEqual", TYPE_BVEC4, { TYPE_IVEC4, TYPE_IVEC4, TYPE_VOID }, TAG_GLOBAL, false },
- { "notEqual", TYPE_BVEC2, { TYPE_UVEC2, TYPE_UVEC2, TYPE_VOID }, TAG_GLOBAL, false },
- { "notEqual", TYPE_BVEC3, { TYPE_UVEC3, TYPE_UVEC3, TYPE_VOID }, TAG_GLOBAL, false },
- { "notEqual", TYPE_BVEC4, { TYPE_UVEC4, TYPE_UVEC4, TYPE_VOID }, TAG_GLOBAL, false },
+ { "notEqual", TYPE_BVEC2, { TYPE_UVEC2, TYPE_UVEC2, TYPE_VOID }, TAG_GLOBAL, true },
+ { "notEqual", TYPE_BVEC3, { TYPE_UVEC3, TYPE_UVEC3, TYPE_VOID }, TAG_GLOBAL, true },
+ { "notEqual", TYPE_BVEC4, { TYPE_UVEC4, TYPE_UVEC4, TYPE_VOID }, TAG_GLOBAL, true },
{ "notEqual", TYPE_BVEC2, { TYPE_BVEC2, TYPE_BVEC2, TYPE_VOID }, TAG_GLOBAL, false },
{ "notEqual", TYPE_BVEC3, { TYPE_BVEC3, TYPE_BVEC3, TYPE_VOID }, TAG_GLOBAL, false },
@@ -3857,6 +3857,10 @@ Error ShaderLanguage::_parse_block(BlockNode *p_block, const Map<StringName, Bui
DataType type = get_token_datatype(tk.type);
+ if (_validate_datatype(type) != OK) {
+ return ERR_PARSE_ERROR;
+ }
+
tk = _get_token();
Node *vardecl = NULL;
@@ -4688,27 +4692,17 @@ Error ShaderLanguage::_validate_datatype(DataType p_type) {
bool invalid_type = false;
switch (p_type) {
+ case TYPE_UINT:
+ case TYPE_UVEC2:
+ case TYPE_UVEC3:
+ case TYPE_UVEC4:
case TYPE_ISAMPLER2D:
- invalid_type = true;
- break;
case TYPE_USAMPLER2D:
- invalid_type = true;
- break;
case TYPE_SAMPLER3D:
- invalid_type = true;
- break;
case TYPE_ISAMPLER3D:
- invalid_type = true;
- break;
case TYPE_USAMPLER3D:
- invalid_type = true;
- break;
case TYPE_SAMPLER2DARRAY:
- invalid_type = true;
- break;
case TYPE_USAMPLER2DARRAY:
- invalid_type = true;
- break;
case TYPE_ISAMPLER2DARRAY:
invalid_type = true;
break;
@@ -5608,17 +5602,26 @@ Error ShaderLanguage::complete(const String &p_code, const Map<StringName, Funct
}
int idx = 0;
+ bool low_end = VisualServer::get_singleton()->is_low_end();
while (builtin_func_defs[idx].name) {
-
+ if (low_end && builtin_func_defs[idx].high_end) {
+ idx++;
+ continue;
+ }
matches.insert(String(builtin_func_defs[idx].name), ScriptCodeCompletionOption::KIND_FUNCTION);
idx++;
}
} else { // sub-class
int idx = 0;
+ bool low_end = VisualServer::get_singleton()->is_low_end();
while (builtin_func_defs[idx].name) {
+ if (low_end && builtin_func_defs[idx].high_end) {
+ idx++;
+ continue;
+ }
if (builtin_func_defs[idx].tag == completion_class) {
matches.insert(String(builtin_func_defs[idx].name), ScriptCodeCompletionOption::KIND_FUNCTION);
}
@@ -5682,9 +5685,15 @@ Error ShaderLanguage::complete(const String &p_code, const Map<StringName, Funct
int idx = 0;
String calltip;
+ bool low_end = VisualServer::get_singleton()->is_low_end();
while (builtin_func_defs[idx].name) {
+ if (low_end && builtin_func_defs[idx].high_end) {
+ idx++;
+ continue;
+ }
+
if (completion_function == builtin_func_defs[idx].name) {
if (builtin_func_defs[idx].tag != completion_class) {
diff --git a/servers/visual/visual_server_scene.cpp b/servers/visual/visual_server_scene.cpp
index 409a814b3b..f5767e93a2 100644
--- a/servers/visual/visual_server_scene.cpp
+++ b/servers/visual/visual_server_scene.cpp
@@ -1400,9 +1400,9 @@ bool VisualServerScene::_light_instance_update_shadow(Instance *p_instance, cons
if (p_cam_orthogonal) {
- float w, h;
- p_cam_projection.get_viewport_size(w, h);
- camera_matrix.set_orthogonal(w, aspect, distances[(i == 0 || !overlap) ? i : i - 1], distances[i + 1], false);
+ Vector2 vp_he = p_cam_projection.get_viewport_half_extents();
+
+ camera_matrix.set_orthogonal(vp_he.y * 2.0, aspect, distances[(i == 0 || !overlap) ? i : i - 1], distances[i + 1], false);
} else {
float fov = p_cam_projection.get_fov();
@@ -2090,8 +2090,8 @@ void VisualServerScene::_prepare_scene(const Transform p_cam_transform, const Ca
float zn = p_cam_projection.get_z_near();
Plane p(cam_xf.origin + cam_xf.basis.get_axis(2) * -zn, -cam_xf.basis.get_axis(2)); //camera near plane
- float vp_w, vp_h; //near plane size in screen coordinates
- p_cam_projection.get_viewport_size(vp_w, vp_h);
+ // near plane half width and height
+ Vector2 vp_half_extents = p_cam_projection.get_viewport_half_extents();
switch (VSG::storage->light_get_type(ins->base)) {
@@ -2117,7 +2117,7 @@ void VisualServerScene::_prepare_scene(const Transform p_cam_transform, const Ca
}
float screen_diameter = points[0].distance_to(points[1]) * 2;
- coverage = screen_diameter / (vp_w + vp_h);
+ coverage = screen_diameter / (vp_half_extents.x + vp_half_extents.y);
} break;
case VS::LIGHT_SPOT: {
@@ -2146,7 +2146,7 @@ void VisualServerScene::_prepare_scene(const Transform p_cam_transform, const Ca
}
float screen_diameter = points[0].distance_to(points[1]) * 2;
- coverage = screen_diameter / (vp_w + vp_h);
+ coverage = screen_diameter / (vp_half_extents.x + vp_half_extents.y);
} break;
default: {
diff --git a/servers/visual_server.cpp b/servers/visual_server.cpp
index b9b492e758..19b9e2c783 100644
--- a/servers/visual_server.cpp
+++ b/servers/visual_server.cpp
@@ -2397,6 +2397,8 @@ VisualServer::VisualServer() {
GLOBAL_DEF("rendering/quality/reflections/texture_array_reflections.mobile", false);
GLOBAL_DEF("rendering/quality/reflections/high_quality_ggx", true);
GLOBAL_DEF("rendering/quality/reflections/high_quality_ggx.mobile", false);
+ GLOBAL_DEF("rendering/quality/reflections/irradiance_max_size", 128);
+ ProjectSettings::get_singleton()->set_custom_property_info("rendering/quality/reflections/irradiance_max_size", PropertyInfo(Variant::INT, "rendering/quality/reflections/irradiance_max_size", PROPERTY_HINT_RANGE, "32,2048"));
GLOBAL_DEF("rendering/quality/shading/force_vertex_shading", false);
GLOBAL_DEF("rendering/quality/shading/force_vertex_shading.mobile", true);
diff --git a/thirdparty/README.md b/thirdparty/README.md
index b29f4bd5e8..9b6f670972 100644
--- a/thirdparty/README.md
+++ b/thirdparty/README.md
@@ -253,10 +253,11 @@ changes are marked with `// -- GODOT --` comments.
## mbedtls
- Upstream: https://tls.mbed.org/
-- Version: 2.16.3
+- Version: 2.16.4
- License: Apache 2.0
File extracted from upstream release tarball (`-apache.tgz` variant):
+
- All `*.h` from `include/mbedtls/` to `thirdparty/mbedtls/include/mbedtls/`
- All `*.c` from `library/` to `thirdparty/mbedtls/library/`
- LICENSE and apache-2.0.txt files
diff --git a/thirdparty/mbedtls/include/mbedtls/bignum.h b/thirdparty/mbedtls/include/mbedtls/bignum.h
index 1c8607264f..22b373113e 100644
--- a/thirdparty/mbedtls/include/mbedtls/bignum.h
+++ b/thirdparty/mbedtls/include/mbedtls/bignum.h
@@ -184,7 +184,7 @@ extern "C" {
*/
typedef struct mbedtls_mpi
{
- int s; /*!< integer sign */
+ int s; /*!< Sign: -1 if the mpi is negative, 1 otherwise */
size_t n; /*!< total # of limbs */
mbedtls_mpi_uint *p; /*!< pointer to limbs */
}
@@ -560,6 +560,24 @@ int mbedtls_mpi_cmp_abs( const mbedtls_mpi *X, const mbedtls_mpi *Y );
int mbedtls_mpi_cmp_mpi( const mbedtls_mpi *X, const mbedtls_mpi *Y );
/**
+ * \brief Check if an MPI is less than the other in constant time.
+ *
+ * \param X The left-hand MPI. This must point to an initialized MPI
+ * with the same allocated length as Y.
+ * \param Y The right-hand MPI. This must point to an initialized MPI
+ * with the same allocated length as X.
+ * \param ret The result of the comparison:
+ * \c 1 if \p X is less than \p Y.
+ * \c 0 if \p X is greater than or equal to \p Y.
+ *
+ * \return 0 on success.
+ * \return MBEDTLS_ERR_MPI_BAD_INPUT_DATA if the allocated length of
+ * the two input MPIs is not the same.
+ */
+int mbedtls_mpi_lt_mpi_ct( const mbedtls_mpi *X, const mbedtls_mpi *Y,
+ unsigned *ret );
+
+/**
* \brief Compare an MPI with an integer.
*
* \param X The left-hand MPI. This must point to an initialized MPI.
diff --git a/thirdparty/mbedtls/include/mbedtls/check_config.h b/thirdparty/mbedtls/include/mbedtls/check_config.h
index 6eabcc8748..d076c2352f 100644
--- a/thirdparty/mbedtls/include/mbedtls/check_config.h
+++ b/thirdparty/mbedtls/include/mbedtls/check_config.h
@@ -281,6 +281,14 @@
#error "MBEDTLS_MEMORY_BUFFER_ALLOC_C defined, but not all prerequisites"
#endif
+#if defined(MBEDTLS_MEMORY_BACKTRACE) && !defined(MBEDTLS_MEMORY_BUFFER_ALLOC_C)
+#error "MBEDTLS_MEMORY_BACKTRACE defined, but not all prerequesites"
+#endif
+
+#if defined(MBEDTLS_MEMORY_DEBUG) && !defined(MBEDTLS_MEMORY_BUFFER_ALLOC_C)
+#error "MBEDTLS_MEMORY_DEBUG defined, but not all prerequesites"
+#endif
+
#if defined(MBEDTLS_PADLOCK_C) && !defined(MBEDTLS_HAVE_ASM)
#error "MBEDTLS_PADLOCK_C defined, but not all prerequisites"
#endif
diff --git a/thirdparty/mbedtls/include/mbedtls/config.h b/thirdparty/mbedtls/include/mbedtls/config.h
index 0cc502cd79..8d9c31a504 100644
--- a/thirdparty/mbedtls/include/mbedtls/config.h
+++ b/thirdparty/mbedtls/include/mbedtls/config.h
@@ -689,6 +689,13 @@
#define MBEDTLS_CIPHER_PADDING_ZEROS_AND_LEN
#define MBEDTLS_CIPHER_PADDING_ZEROS
+/** \def MBEDTLS_CTR_DRBG_USE_128_BIT_KEY
+ *
+ * Uncomment this macro to use a 128-bit key in the CTR_DRBG module.
+ * By default, CTR_DRBG uses a 256-bit key.
+ */
+//#define MBEDTLS_CTR_DRBG_USE_128_BIT_KEY
+
/**
* \def MBEDTLS_ENABLE_WEAK_CIPHERSUITES
*
@@ -2149,7 +2156,11 @@
*
* Enable the CTR_DRBG AES-based random generator.
* The CTR_DRBG generator uses AES-256 by default.
- * To use AES-128 instead, enable MBEDTLS_CTR_DRBG_USE_128_BIT_KEY below.
+ * To use AES-128 instead, enable \c MBEDTLS_CTR_DRBG_USE_128_BIT_KEY above.
+ *
+ * \note To achieve a 256-bit security strength with CTR_DRBG,
+ * you must use AES-256 *and* use sufficient entropy.
+ * See ctr_drbg.h for more details.
*
* Module: library/ctr_drbg.c
* Caller:
@@ -3043,7 +3054,6 @@
//#define MBEDTLS_CTR_DRBG_MAX_INPUT 256 /**< Maximum number of additional input bytes */
//#define MBEDTLS_CTR_DRBG_MAX_REQUEST 1024 /**< Maximum number of requested bytes per call */
//#define MBEDTLS_CTR_DRBG_MAX_SEED_INPUT 384 /**< Maximum size of (re)seed buffer */
-//#define MBEDTLS_CTR_DRBG_USE_128_BIT_KEY /**< Use 128-bit key for CTR_DRBG - may reduce security (see ctr_drbg.h) */
/* HMAC_DRBG options */
//#define MBEDTLS_HMAC_DRBG_RESEED_INTERVAL 10000 /**< Interval before reseed is performed by default */
diff --git a/thirdparty/mbedtls/include/mbedtls/ctr_drbg.h b/thirdparty/mbedtls/include/mbedtls/ctr_drbg.h
index cc3df7b113..e0b5ed9c93 100644
--- a/thirdparty/mbedtls/include/mbedtls/ctr_drbg.h
+++ b/thirdparty/mbedtls/include/mbedtls/ctr_drbg.h
@@ -1,7 +1,8 @@
/**
* \file ctr_drbg.h
*
- * \brief This file contains CTR_DRBG definitions and functions.
+ * \brief This file contains definitions and functions for the
+ * CTR_DRBG pseudorandom generator.
*
* CTR_DRBG is a standardized way of building a PRNG from a block-cipher
* in counter mode operation, as defined in <em>NIST SP 800-90A:
@@ -9,13 +10,35 @@
* Bit Generators</em>.
*
* The Mbed TLS implementation of CTR_DRBG uses AES-256 (default) or AES-128
- * as the underlying block cipher.
- *
- * \warning Using 128-bit keys for CTR_DRBG limits the security of generated
- * keys and operations that use random values generated to 128-bit security.
+ * (if \c MBEDTLS_CTR_DRBG_USE_128_BIT_KEY is enabled at compile time)
+ * as the underlying block cipher, with a derivation function.
+ * The initial seeding grabs #MBEDTLS_CTR_DRBG_ENTROPY_LEN bytes of entropy.
+ * See the documentation of mbedtls_ctr_drbg_seed() for more details.
+ *
+ * Based on NIST SP 800-90A §10.2.1 table 3 and NIST SP 800-57 part 1 table 2,
+ * here are the security strengths achieved in typical configuration:
+ * - 256 bits under the default configuration of the library, with AES-256
+ * and with #MBEDTLS_CTR_DRBG_ENTROPY_LEN set to 48 or more.
+ * - 256 bits if AES-256 is used, #MBEDTLS_CTR_DRBG_ENTROPY_LEN is set
+ * to 32 or more, and the DRBG is initialized with an explicit
+ * nonce in the \c custom parameter to mbedtls_ctr_drbg_seed().
+ * - 128 bits if AES-256 is used but #MBEDTLS_CTR_DRBG_ENTROPY_LEN is
+ * between 24 and 47 and the DRBG is not initialized with an explicit
+ * nonce (see mbedtls_ctr_drbg_seed()).
+ * - 128 bits if AES-128 is used (\c MBEDTLS_CTR_DRBG_USE_128_BIT_KEY enabled)
+ * and #MBEDTLS_CTR_DRBG_ENTROPY_LEN is set to 24 or more (which is
+ * always the case unless it is explicitly set to a different value
+ * in config.h).
+ *
+ * Note that the value of #MBEDTLS_CTR_DRBG_ENTROPY_LEN defaults to:
+ * - \c 48 if the module \c MBEDTLS_SHA512_C is enabled and the symbol
+ * \c MBEDTLS_ENTROPY_FORCE_SHA256 is disabled at compile time.
+ * This is the default configuration of the library.
+ * - \c 32 if the module \c MBEDTLS_SHA512_C is disabled at compile time.
+ * - \c 32 if \c MBEDTLS_ENTROPY_FORCE_SHA256 is enabled at compile time.
*/
/*
- * Copyright (C) 2006-2018, Arm Limited (or its affiliates), All Rights Reserved
+ * Copyright (C) 2006-2019, Arm Limited (or its affiliates), All Rights Reserved
* SPDX-License-Identifier: Apache-2.0
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may
@@ -56,9 +79,19 @@
#define MBEDTLS_CTR_DRBG_BLOCKSIZE 16 /**< The block size used by the cipher. */
#if defined(MBEDTLS_CTR_DRBG_USE_128_BIT_KEY)
-#define MBEDTLS_CTR_DRBG_KEYSIZE 16 /**< The key size used by the cipher (compile-time choice: 128 bits). */
+#define MBEDTLS_CTR_DRBG_KEYSIZE 16
+/**< The key size in bytes used by the cipher.
+ *
+ * Compile-time choice: 16 bytes (128 bits)
+ * because #MBEDTLS_CTR_DRBG_USE_128_BIT_KEY is enabled.
+ */
#else
-#define MBEDTLS_CTR_DRBG_KEYSIZE 32 /**< The key size used by the cipher (compile-time choice: 256 bits). */
+#define MBEDTLS_CTR_DRBG_KEYSIZE 32
+/**< The key size in bytes used by the cipher.
+ *
+ * Compile-time choice: 32 bytes (256 bits)
+ * because \c MBEDTLS_CTR_DRBG_USE_128_BIT_KEY is disabled.
+ */
#endif
#define MBEDTLS_CTR_DRBG_KEYBITS ( MBEDTLS_CTR_DRBG_KEYSIZE * 8 ) /**< The key size for the DRBG operation, in bits. */
@@ -73,21 +106,31 @@
* \{
*/
+/** \def MBEDTLS_CTR_DRBG_ENTROPY_LEN
+ *
+ * \brief The amount of entropy used per seed by default, in bytes.
+ */
#if !defined(MBEDTLS_CTR_DRBG_ENTROPY_LEN)
#if defined(MBEDTLS_SHA512_C) && !defined(MBEDTLS_ENTROPY_FORCE_SHA256)
+/** This is 48 bytes because the entropy module uses SHA-512
+ * (\c MBEDTLS_ENTROPY_FORCE_SHA256 is disabled).
+ */
#define MBEDTLS_CTR_DRBG_ENTROPY_LEN 48
-/**< The amount of entropy used per seed by default:
- * <ul><li>48 with SHA-512.</li>
- * <li>32 with SHA-256.</li></ul>
+
+#else /* defined(MBEDTLS_SHA512_C) && !defined(MBEDTLS_ENTROPY_FORCE_SHA256) */
+
+/** This is 32 bytes because the entropy module uses SHA-256
+ * (the SHA512 module is disabled or
+ * \c MBEDTLS_ENTROPY_FORCE_SHA256 is enabled).
*/
-#else
-#define MBEDTLS_CTR_DRBG_ENTROPY_LEN 32
-/**< Amount of entropy used per seed by default:
- * <ul><li>48 with SHA-512.</li>
- * <li>32 with SHA-256.</li></ul>
+#if !defined(MBEDTLS_CTR_DRBG_USE_128_BIT_KEY)
+/** \warning To achieve a 256-bit security strength, you must pass a nonce
+ * to mbedtls_ctr_drbg_seed().
*/
-#endif
-#endif
+#endif /* !defined(MBEDTLS_CTR_DRBG_USE_128_BIT_KEY) */
+#define MBEDTLS_CTR_DRBG_ENTROPY_LEN 32
+#endif /* defined(MBEDTLS_SHA512_C) && !defined(MBEDTLS_ENTROPY_FORCE_SHA256) */
+#endif /* !defined(MBEDTLS_CTR_DRBG_ENTROPY_LEN) */
#if !defined(MBEDTLS_CTR_DRBG_RESEED_INTERVAL)
#define MBEDTLS_CTR_DRBG_RESEED_INTERVAL 10000
@@ -106,7 +149,7 @@
#if !defined(MBEDTLS_CTR_DRBG_MAX_SEED_INPUT)
#define MBEDTLS_CTR_DRBG_MAX_SEED_INPUT 384
-/**< The maximum size of seed or reseed buffer. */
+/**< The maximum size of seed or reseed buffer in bytes. */
#endif
/* \} name SECTION: Module settings */
@@ -164,17 +207,68 @@ void mbedtls_ctr_drbg_init( mbedtls_ctr_drbg_context *ctx );
* \brief This function seeds and sets up the CTR_DRBG
* entropy source for future reseeds.
*
- * \note Personalization data can be provided in addition to the more generic
- * entropy source, to make this instantiation as unique as possible.
- *
+ * A typical choice for the \p f_entropy and \p p_entropy parameters is
+ * to use the entropy module:
+ * - \p f_entropy is mbedtls_entropy_func();
+ * - \p p_entropy is an instance of ::mbedtls_entropy_context initialized
+ * with mbedtls_entropy_init() (which registers the platform's default
+ * entropy sources).
+ *
+ * The entropy length is #MBEDTLS_CTR_DRBG_ENTROPY_LEN by default.
+ * You can override it by calling mbedtls_ctr_drbg_set_entropy_len().
+ *
+ * You can provide a personalization string in addition to the
+ * entropy source, to make this instantiation as unique as possible.
+ *
+ * \note The _seed_material_ value passed to the derivation
+ * function in the CTR_DRBG Instantiate Process
+ * described in NIST SP 800-90A §10.2.1.3.2
+ * is the concatenation of the string obtained from
+ * calling \p f_entropy and the \p custom string.
+ * The origin of the nonce depends on the value of
+ * the entropy length relative to the security strength.
+ * - If the entropy length is at least 1.5 times the
+ * security strength then the nonce is taken from the
+ * string obtained with \p f_entropy.
+ * - If the entropy length is less than the security
+ * strength, then the nonce is taken from \p custom.
+ * In this case, for compliance with SP 800-90A,
+ * you must pass a unique value of \p custom at
+ * each invocation. See SP 800-90A §8.6.7 for more
+ * details.
+ */
+#if MBEDTLS_CTR_DRBG_ENTROPY_LEN < MBEDTLS_CTR_DRBG_KEYSIZE * 3 / 2
+/** \warning When #MBEDTLS_CTR_DRBG_ENTROPY_LEN is less than
+ * #MBEDTLS_CTR_DRBG_KEYSIZE * 3 / 2, to achieve the
+ * maximum security strength permitted by CTR_DRBG,
+ * you must pass a value of \p custom that is a nonce:
+ * this value must never be repeated in subsequent
+ * runs of the same application or on a different
+ * device.
+ */
+#endif
+/**
* \param ctx The CTR_DRBG context to seed.
+ * It must have been initialized with
+ * mbedtls_ctr_drbg_init().
+ * After a successful call to mbedtls_ctr_drbg_seed(),
+ * you may not call mbedtls_ctr_drbg_seed() again on
+ * the same context unless you call
+ * mbedtls_ctr_drbg_free() and mbedtls_ctr_drbg_init()
+ * again first.
* \param f_entropy The entropy callback, taking as arguments the
* \p p_entropy context, the buffer to fill, and the
- length of the buffer.
- * \param p_entropy The entropy context.
- * \param custom Personalization data, that is device-specific
- identifiers. Can be NULL.
- * \param len The length of the personalization data.
+ * length of the buffer.
+ * \p f_entropy is always called with a buffer size
+ * equal to the entropy length.
+ * \param p_entropy The entropy context to pass to \p f_entropy.
+ * \param custom The personalization string.
+ * This can be \c NULL, in which case the personalization
+ * string is empty regardless of the value of \p len.
+ * \param len The length of the personalization string.
+ * This must be at most
+ * #MBEDTLS_CTR_DRBG_MAX_SEED_INPUT
+ * - #MBEDTLS_CTR_DRBG_ENTROPY_LEN.
*
* \return \c 0 on success.
* \return #MBEDTLS_ERR_CTR_DRBG_ENTROPY_SOURCE_FAILED on failure.
@@ -197,7 +291,8 @@ void mbedtls_ctr_drbg_free( mbedtls_ctr_drbg_context *ctx );
* The default value is off.
*
* \note If enabled, entropy is gathered at the beginning of
- * every call to mbedtls_ctr_drbg_random_with_add().
+ * every call to mbedtls_ctr_drbg_random_with_add()
+ * or mbedtls_ctr_drbg_random().
* Only use this if your entropy source has sufficient
* throughput.
*
@@ -209,18 +304,37 @@ void mbedtls_ctr_drbg_set_prediction_resistance( mbedtls_ctr_drbg_context *ctx,
/**
* \brief This function sets the amount of entropy grabbed on each
- * seed or reseed. The default value is
- * #MBEDTLS_CTR_DRBG_ENTROPY_LEN.
+ * seed or reseed.
+ *
+ * The default value is #MBEDTLS_CTR_DRBG_ENTROPY_LEN.
+ *
+ * \note The security strength of CTR_DRBG is bounded by the
+ * entropy length. Thus:
+ * - When using AES-256
+ * (\c MBEDTLS_CTR_DRBG_USE_128_BIT_KEY is disabled,
+ * which is the default),
+ * \p len must be at least 32 (in bytes)
+ * to achieve a 256-bit strength.
+ * - When using AES-128
+ * (\c MBEDTLS_CTR_DRBG_USE_128_BIT_KEY is enabled)
+ * \p len must be at least 16 (in bytes)
+ * to achieve a 128-bit strength.
*
* \param ctx The CTR_DRBG context.
- * \param len The amount of entropy to grab.
+ * \param len The amount of entropy to grab, in bytes.
+ * This must be at most #MBEDTLS_CTR_DRBG_MAX_SEED_INPUT.
*/
void mbedtls_ctr_drbg_set_entropy_len( mbedtls_ctr_drbg_context *ctx,
size_t len );
/**
* \brief This function sets the reseed interval.
- * The default value is #MBEDTLS_CTR_DRBG_RESEED_INTERVAL.
+ *
+ * The reseed interval is the number of calls to mbedtls_ctr_drbg_random()
+ * or mbedtls_ctr_drbg_random_with_add() after which the entropy function
+ * is called again.
+ *
+ * The default value is #MBEDTLS_CTR_DRBG_RESEED_INTERVAL.
*
* \param ctx The CTR_DRBG context.
* \param interval The reseed interval.
@@ -233,8 +347,12 @@ void mbedtls_ctr_drbg_set_reseed_interval( mbedtls_ctr_drbg_context *ctx,
* extracts data from the entropy source.
*
* \param ctx The CTR_DRBG context.
- * \param additional Additional data to add to the state. Can be NULL.
+ * \param additional Additional data to add to the state. Can be \c NULL.
* \param len The length of the additional data.
+ * This must be less than
+ * #MBEDTLS_CTR_DRBG_MAX_SEED_INPUT - \c entropy_len
+ * where \c entropy_len is the entropy length
+ * configured for the context.
*
* \return \c 0 on success.
* \return #MBEDTLS_ERR_CTR_DRBG_ENTROPY_SOURCE_FAILED on failure.
@@ -246,7 +364,8 @@ int mbedtls_ctr_drbg_reseed( mbedtls_ctr_drbg_context *ctx,
* \brief This function updates the state of the CTR_DRBG context.
*
* \param ctx The CTR_DRBG context.
- * \param additional The data to update the state with.
+ * \param additional The data to update the state with. This must not be
+ * \c NULL unless \p add_len is \c 0.
* \param add_len Length of \p additional in bytes. This must be at
* most #MBEDTLS_CTR_DRBG_MAX_SEED_INPUT.
*
@@ -264,14 +383,23 @@ int mbedtls_ctr_drbg_update_ret( mbedtls_ctr_drbg_context *ctx,
* \brief This function updates a CTR_DRBG instance with additional
* data and uses it to generate random data.
*
- * \note The function automatically reseeds if the reseed counter is exceeded.
+ * This function automatically reseeds if the reseed counter is exceeded
+ * or prediction resistance is enabled.
*
* \param p_rng The CTR_DRBG context. This must be a pointer to a
* #mbedtls_ctr_drbg_context structure.
* \param output The buffer to fill.
- * \param output_len The length of the buffer.
- * \param additional Additional data to update. Can be NULL.
- * \param add_len The length of the additional data.
+ * \param output_len The length of the buffer in bytes.
+ * \param additional Additional data to update. Can be \c NULL, in which
+ * case the additional data is empty regardless of
+ * the value of \p add_len.
+ * \param add_len The length of the additional data
+ * if \p additional is not \c NULL.
+ * This must be less than #MBEDTLS_CTR_DRBG_MAX_INPUT
+ * and less than
+ * #MBEDTLS_CTR_DRBG_MAX_SEED_INPUT - \c entropy_len
+ * where \c entropy_len is the entropy length
+ * configured for the context.
*
* \return \c 0 on success.
* \return #MBEDTLS_ERR_CTR_DRBG_ENTROPY_SOURCE_FAILED or
@@ -284,12 +412,14 @@ int mbedtls_ctr_drbg_random_with_add( void *p_rng,
/**
* \brief This function uses CTR_DRBG to generate random data.
*
- * \note The function automatically reseeds if the reseed counter is exceeded.
+ * This function automatically reseeds if the reseed counter is exceeded
+ * or prediction resistance is enabled.
+ *
*
* \param p_rng The CTR_DRBG context. This must be a pointer to a
* #mbedtls_ctr_drbg_context structure.
* \param output The buffer to fill.
- * \param output_len The length of the buffer.
+ * \param output_len The length of the buffer in bytes.
*
* \return \c 0 on success.
* \return #MBEDTLS_ERR_CTR_DRBG_ENTROPY_SOURCE_FAILED or
@@ -336,7 +466,7 @@ MBEDTLS_DEPRECATED void mbedtls_ctr_drbg_update(
*
* \return \c 0 on success.
* \return #MBEDTLS_ERR_CTR_DRBG_FILE_IO_ERROR on file error.
- * \return #MBEDTLS_ERR_CTR_DRBG_ENTROPY_SOURCE_FAILED on
+ * \return #MBEDTLS_ERR_CTR_DRBG_ENTROPY_SOURCE_FAILED on reseed
* failure.
*/
int mbedtls_ctr_drbg_write_seed_file( mbedtls_ctr_drbg_context *ctx, const char *path );
@@ -350,8 +480,10 @@ int mbedtls_ctr_drbg_write_seed_file( mbedtls_ctr_drbg_context *ctx, const char
*
* \return \c 0 on success.
* \return #MBEDTLS_ERR_CTR_DRBG_FILE_IO_ERROR on file error.
- * \return #MBEDTLS_ERR_CTR_DRBG_ENTROPY_SOURCE_FAILED or
- * #MBEDTLS_ERR_CTR_DRBG_INPUT_TOO_BIG on failure.
+ * \return #MBEDTLS_ERR_CTR_DRBG_ENTROPY_SOURCE_FAILED on
+ * reseed failure.
+ * \return #MBEDTLS_ERR_CTR_DRBG_INPUT_TOO_BIG if the existing
+ * seed file is too large.
*/
int mbedtls_ctr_drbg_update_seed_file( mbedtls_ctr_drbg_context *ctx, const char *path );
#endif /* MBEDTLS_FS_IO */
diff --git a/thirdparty/mbedtls/include/mbedtls/hmac_drbg.h b/thirdparty/mbedtls/include/mbedtls/hmac_drbg.h
index f1289cb306..7931c2281c 100644
--- a/thirdparty/mbedtls/include/mbedtls/hmac_drbg.h
+++ b/thirdparty/mbedtls/include/mbedtls/hmac_drbg.h
@@ -1,10 +1,14 @@
/**
* \file hmac_drbg.h
*
- * \brief HMAC_DRBG (NIST SP 800-90A)
+ * \brief The HMAC_DRBG pseudorandom generator.
+ *
+ * This module implements the HMAC_DRBG pseudorandom generator described
+ * in <em>NIST SP 800-90A: Recommendation for Random Number Generation Using
+ * Deterministic Random Bit Generators</em>.
*/
/*
- * Copyright (C) 2006-2015, ARM Limited, All Rights Reserved
+ * Copyright (C) 2006-2019, ARM Limited, All Rights Reserved
* SPDX-License-Identifier: Apache-2.0
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may
@@ -104,38 +108,72 @@ typedef struct mbedtls_hmac_drbg_context
} mbedtls_hmac_drbg_context;
/**
- * \brief HMAC_DRBG context initialization
- * Makes the context ready for mbedtls_hmac_drbg_seed(),
- * mbedtls_hmac_drbg_seed_buf() or
- * mbedtls_hmac_drbg_free().
+ * \brief HMAC_DRBG context initialization.
+ *
+ * This function makes the context ready for mbedtls_hmac_drbg_seed(),
+ * mbedtls_hmac_drbg_seed_buf() or mbedtls_hmac_drbg_free().
*
- * \param ctx HMAC_DRBG context to be initialized
+ * \param ctx HMAC_DRBG context to be initialized.
*/
void mbedtls_hmac_drbg_init( mbedtls_hmac_drbg_context *ctx );
/**
- * \brief HMAC_DRBG initial seeding
- * Seed and setup entropy source for future reseeds.
- *
- * \param ctx HMAC_DRBG context to be seeded
- * \param md_info MD algorithm to use for HMAC_DRBG
- * \param f_entropy Entropy callback (p_entropy, buffer to fill, buffer
- * length)
- * \param p_entropy Entropy context
- * \param custom Personalization data (Device specific identifiers)
- * (Can be NULL)
- * \param len Length of personalization data
- *
- * \note The "security strength" as defined by NIST is set to:
- * 128 bits if md_alg is SHA-1,
- * 192 bits if md_alg is SHA-224,
- * 256 bits if md_alg is SHA-256 or higher.
- * Note that SHA-256 is just as efficient as SHA-224.
+ * \brief HMAC_DRBG initial seeding.
+ *
+ * Set the initial seed and set up the entropy source for future reseeds.
+ *
+ * A typical choice for the \p f_entropy and \p p_entropy parameters is
+ * to use the entropy module:
+ * - \p f_entropy is mbedtls_entropy_func();
+ * - \p p_entropy is an instance of ::mbedtls_entropy_context initialized
+ * with mbedtls_entropy_init() (which registers the platform's default
+ * entropy sources).
+ *
+ * You can provide a personalization string in addition to the
+ * entropy source, to make this instantiation as unique as possible.
*
- * \return 0 if successful, or
- * MBEDTLS_ERR_MD_BAD_INPUT_DATA, or
- * MBEDTLS_ERR_MD_ALLOC_FAILED, or
- * MBEDTLS_ERR_HMAC_DRBG_ENTROPY_SOURCE_FAILED.
+ * \note By default, the security strength as defined by NIST is:
+ * - 128 bits if \p md_info is SHA-1;
+ * - 192 bits if \p md_info is SHA-224;
+ * - 256 bits if \p md_info is SHA-256, SHA-384 or SHA-512.
+ * Note that SHA-256 is just as efficient as SHA-224.
+ * The security strength can be reduced if a smaller
+ * entropy length is set with
+ * mbedtls_hmac_drbg_set_entropy_len().
+ *
+ * \note The default entropy length is the security strength
+ * (converted from bits to bytes). You can override
+ * it by calling mbedtls_hmac_drbg_set_entropy_len().
+ *
+ * \note During the initial seeding, this function calls
+ * the entropy source to obtain a nonce
+ * whose length is half the entropy length.
+ *
+ * \param ctx HMAC_DRBG context to be seeded.
+ * \param md_info MD algorithm to use for HMAC_DRBG.
+ * \param f_entropy The entropy callback, taking as arguments the
+ * \p p_entropy context, the buffer to fill, and the
+ * length of the buffer.
+ * \p f_entropy is always called with a length that is
+ * less than or equal to the entropy length.
+ * \param p_entropy The entropy context to pass to \p f_entropy.
+ * \param custom The personalization string.
+ * This can be \c NULL, in which case the personalization
+ * string is empty regardless of the value of \p len.
+ * \param len The length of the personalization string.
+ * This must be at most #MBEDTLS_HMAC_DRBG_MAX_INPUT
+ * and also at most
+ * #MBEDTLS_HMAC_DRBG_MAX_SEED_INPUT - \p entropy_len * 3 / 2
+ * where \p entropy_len is the entropy length
+ * described above.
+ *
+ * \return \c 0 if successful.
+ * \return #MBEDTLS_ERR_MD_BAD_INPUT_DATA if \p md_info is
+ * invalid.
+ * \return #MBEDTLS_ERR_MD_ALLOC_FAILED if there was not enough
+ * memory to allocate context data.
+ * \return #MBEDTLS_ERR_HMAC_DRBG_ENTROPY_SOURCE_FAILED
+ * if the call to \p f_entropy failed.
*/
int mbedtls_hmac_drbg_seed( mbedtls_hmac_drbg_context *ctx,
const mbedtls_md_info_t * md_info,
@@ -146,98 +184,131 @@ int mbedtls_hmac_drbg_seed( mbedtls_hmac_drbg_context *ctx,
/**
* \brief Initilisation of simpified HMAC_DRBG (never reseeds).
- * (For use with deterministic ECDSA.)
*
- * \param ctx HMAC_DRBG context to be initialised
- * \param md_info MD algorithm to use for HMAC_DRBG
- * \param data Concatenation of entropy string and additional data
- * \param data_len Length of data in bytes
+ * This function is meant for use in algorithms that need a pseudorandom
+ * input such as deterministic ECDSA.
+ *
+ * \param ctx HMAC_DRBG context to be initialised.
+ * \param md_info MD algorithm to use for HMAC_DRBG.
+ * \param data Concatenation of the initial entropy string and
+ * the additional data.
+ * \param data_len Length of \p data in bytes.
*
- * \return 0 if successful, or
- * MBEDTLS_ERR_MD_BAD_INPUT_DATA, or
- * MBEDTLS_ERR_MD_ALLOC_FAILED.
+ * \return \c 0 if successful. or
+ * \return #MBEDTLS_ERR_MD_BAD_INPUT_DATA if \p md_info is
+ * invalid.
+ * \return #MBEDTLS_ERR_MD_ALLOC_FAILED if there was not enough
+ * memory to allocate context data.
*/
int mbedtls_hmac_drbg_seed_buf( mbedtls_hmac_drbg_context *ctx,
const mbedtls_md_info_t * md_info,
const unsigned char *data, size_t data_len );
/**
- * \brief Enable / disable prediction resistance (Default: Off)
+ * \brief This function turns prediction resistance on or off.
+ * The default value is off.
*
- * Note: If enabled, entropy is used for ctx->entropy_len before each call!
- * Only use this if you have ample supply of good entropy!
+ * \note If enabled, entropy is gathered at the beginning of
+ * every call to mbedtls_hmac_drbg_random_with_add()
+ * or mbedtls_hmac_drbg_random().
+ * Only use this if your entropy source has sufficient
+ * throughput.
*
- * \param ctx HMAC_DRBG context
- * \param resistance MBEDTLS_HMAC_DRBG_PR_ON or MBEDTLS_HMAC_DRBG_PR_OFF
+ * \param ctx The HMAC_DRBG context.
+ * \param resistance #MBEDTLS_HMAC_DRBG_PR_ON or #MBEDTLS_HMAC_DRBG_PR_OFF.
*/
void mbedtls_hmac_drbg_set_prediction_resistance( mbedtls_hmac_drbg_context *ctx,
int resistance );
/**
- * \brief Set the amount of entropy grabbed on each reseed
- * (Default: given by the security strength, which
- * depends on the hash used, see \c mbedtls_hmac_drbg_init() )
+ * \brief This function sets the amount of entropy grabbed on each
+ * seed or reseed.
+ *
+ * See the documentation of mbedtls_hmac_drbg_seed() for the default value.
*
- * \param ctx HMAC_DRBG context
- * \param len Amount of entropy to grab, in bytes
+ * \param ctx The HMAC_DRBG context.
+ * \param len The amount of entropy to grab, in bytes.
*/
void mbedtls_hmac_drbg_set_entropy_len( mbedtls_hmac_drbg_context *ctx,
size_t len );
/**
- * \brief Set the reseed interval
- * (Default: MBEDTLS_HMAC_DRBG_RESEED_INTERVAL)
+ * \brief Set the reseed interval.
*
- * \param ctx HMAC_DRBG context
- * \param interval Reseed interval
+ * The reseed interval is the number of calls to mbedtls_hmac_drbg_random()
+ * or mbedtls_hmac_drbg_random_with_add() after which the entropy function
+ * is called again.
+ *
+ * The default value is #MBEDTLS_HMAC_DRBG_RESEED_INTERVAL.
+ *
+ * \param ctx The HMAC_DRBG context.
+ * \param interval The reseed interval.
*/
void mbedtls_hmac_drbg_set_reseed_interval( mbedtls_hmac_drbg_context *ctx,
int interval );
/**
- * \brief HMAC_DRBG update state
+ * \brief This function updates the state of the HMAC_DRBG context.
*
- * \param ctx HMAC_DRBG context
- * \param additional Additional data to update state with, or NULL
- * \param add_len Length of additional data, or 0
+ * \param ctx The HMAC_DRBG context.
+ * \param additional The data to update the state with.
+ * If this is \c NULL, there is no additional data.
+ * \param add_len Length of \p additional in bytes.
+ * Unused if \p additional is \c NULL.
*
* \return \c 0 on success, or an error from the underlying
* hash calculation.
- *
- * \note Additional data is optional, pass NULL and 0 as second
- * third argument if no additional data is being used.
*/
int mbedtls_hmac_drbg_update_ret( mbedtls_hmac_drbg_context *ctx,
const unsigned char *additional, size_t add_len );
/**
- * \brief HMAC_DRBG reseeding (extracts data from entropy source)
- *
- * \param ctx HMAC_DRBG context
- * \param additional Additional data to add to state (Can be NULL)
- * \param len Length of additional data
- *
- * \return 0 if successful, or
- * MBEDTLS_ERR_HMAC_DRBG_ENTROPY_SOURCE_FAILED
+ * \brief This function reseeds the HMAC_DRBG context, that is
+ * extracts data from the entropy source.
+ *
+ * \param ctx The HMAC_DRBG context.
+ * \param additional Additional data to add to the state.
+ * If this is \c NULL, there is no additional data
+ * and \p len should be \c 0.
+ * \param len The length of the additional data.
+ * This must be at most #MBEDTLS_HMAC_DRBG_MAX_INPUT
+ * and also at most
+ * #MBEDTLS_HMAC_DRBG_MAX_SEED_INPUT - \p entropy_len
+ * where \p entropy_len is the entropy length
+ * (see mbedtls_hmac_drbg_set_entropy_len()).
+ *
+ * \return \c 0 if successful.
+ * \return #MBEDTLS_ERR_HMAC_DRBG_ENTROPY_SOURCE_FAILED
+ * if a call to the entropy function failed.
*/
int mbedtls_hmac_drbg_reseed( mbedtls_hmac_drbg_context *ctx,
const unsigned char *additional, size_t len );
/**
- * \brief HMAC_DRBG generate random with additional update input
- *
- * Note: Automatically reseeds if reseed_counter is reached or PR is enabled.
- *
- * \param p_rng HMAC_DRBG context
- * \param output Buffer to fill
- * \param output_len Length of the buffer
- * \param additional Additional data to update with (can be NULL)
- * \param add_len Length of additional data (can be 0)
- *
- * \return 0 if successful, or
- * MBEDTLS_ERR_HMAC_DRBG_ENTROPY_SOURCE_FAILED, or
- * MBEDTLS_ERR_HMAC_DRBG_REQUEST_TOO_BIG, or
- * MBEDTLS_ERR_HMAC_DRBG_INPUT_TOO_BIG.
+ * \brief This function updates an HMAC_DRBG instance with additional
+ * data and uses it to generate random data.
+ *
+ * This function automatically reseeds if the reseed counter is exceeded
+ * or prediction resistance is enabled.
+ *
+ * \param p_rng The HMAC_DRBG context. This must be a pointer to a
+ * #mbedtls_hmac_drbg_context structure.
+ * \param output The buffer to fill.
+ * \param output_len The length of the buffer in bytes.
+ * This must be at most #MBEDTLS_HMAC_DRBG_MAX_REQUEST.
+ * \param additional Additional data to update with.
+ * If this is \c NULL, there is no additional data
+ * and \p add_len should be \c 0.
+ * \param add_len The length of the additional data.
+ * This must be at most #MBEDTLS_HMAC_DRBG_MAX_INPUT.
+ *
+ * \return \c 0 if successful.
+ * \return #MBEDTLS_ERR_HMAC_DRBG_ENTROPY_SOURCE_FAILED
+ * if a call to the entropy source failed.
+ * \return #MBEDTLS_ERR_HMAC_DRBG_REQUEST_TOO_BIG if
+ * \p output_len > #MBEDTLS_HMAC_DRBG_MAX_REQUEST.
+ * \return #MBEDTLS_ERR_HMAC_DRBG_INPUT_TOO_BIG if
+ * \p add_len > #MBEDTLS_HMAC_DRBG_MAX_INPUT.
*/
int mbedtls_hmac_drbg_random_with_add( void *p_rng,
unsigned char *output, size_t output_len,
@@ -245,24 +316,29 @@ int mbedtls_hmac_drbg_random_with_add( void *p_rng,
size_t add_len );
/**
- * \brief HMAC_DRBG generate random
- *
- * Note: Automatically reseeds if reseed_counter is reached or PR is enabled.
- *
- * \param p_rng HMAC_DRBG context
- * \param output Buffer to fill
- * \param out_len Length of the buffer
- *
- * \return 0 if successful, or
- * MBEDTLS_ERR_HMAC_DRBG_ENTROPY_SOURCE_FAILED, or
- * MBEDTLS_ERR_HMAC_DRBG_REQUEST_TOO_BIG
+ * \brief This function uses HMAC_DRBG to generate random data.
+ *
+ * This function automatically reseeds if the reseed counter is exceeded
+ * or prediction resistance is enabled.
+ *
+ * \param p_rng The HMAC_DRBG context. This must be a pointer to a
+ * #mbedtls_hmac_drbg_context structure.
+ * \param output The buffer to fill.
+ * \param out_len The length of the buffer in bytes.
+ * This must be at most #MBEDTLS_HMAC_DRBG_MAX_REQUEST.
+ *
+ * \return \c 0 if successful.
+ * \return #MBEDTLS_ERR_HMAC_DRBG_ENTROPY_SOURCE_FAILED
+ * if a call to the entropy source failed.
+ * \return #MBEDTLS_ERR_HMAC_DRBG_REQUEST_TOO_BIG if
+ * \p out_len > #MBEDTLS_HMAC_DRBG_MAX_REQUEST.
*/
int mbedtls_hmac_drbg_random( void *p_rng, unsigned char *output, size_t out_len );
/**
* \brief Free an HMAC_DRBG context
*
- * \param ctx HMAC_DRBG context to free.
+ * \param ctx The HMAC_DRBG context to free.
*/
void mbedtls_hmac_drbg_free( mbedtls_hmac_drbg_context *ctx );
@@ -273,17 +349,16 @@ void mbedtls_hmac_drbg_free( mbedtls_hmac_drbg_context *ctx );
#define MBEDTLS_DEPRECATED
#endif
/**
- * \brief HMAC_DRBG update state
+ * \brief This function updates the state of the HMAC_DRBG context.
*
* \deprecated Superseded by mbedtls_hmac_drbg_update_ret()
* in 2.16.0.
*
- * \param ctx HMAC_DRBG context
- * \param additional Additional data to update state with, or NULL
- * \param add_len Length of additional data, or 0
- *
- * \note Additional data is optional, pass NULL and 0 as second
- * third argument if no additional data is being used.
+ * \param ctx The HMAC_DRBG context.
+ * \param additional The data to update the state with.
+ * If this is \c NULL, there is no additional data.
+ * \param add_len Length of \p additional in bytes.
+ * Unused if \p additional is \c NULL.
*/
MBEDTLS_DEPRECATED void mbedtls_hmac_drbg_update(
mbedtls_hmac_drbg_context *ctx,
@@ -293,26 +368,31 @@ MBEDTLS_DEPRECATED void mbedtls_hmac_drbg_update(
#if defined(MBEDTLS_FS_IO)
/**
- * \brief Write a seed file
+ * \brief This function writes a seed file.
*
- * \param ctx HMAC_DRBG context
- * \param path Name of the file
+ * \param ctx The HMAC_DRBG context.
+ * \param path The name of the file.
*
- * \return 0 if successful, 1 on file error, or
- * MBEDTLS_ERR_HMAC_DRBG_ENTROPY_SOURCE_FAILED
+ * \return \c 0 on success.
+ * \return #MBEDTLS_ERR_HMAC_DRBG_FILE_IO_ERROR on file error.
+ * \return #MBEDTLS_ERR_HMAC_DRBG_ENTROPY_SOURCE_FAILED on reseed
+ * failure.
*/
int mbedtls_hmac_drbg_write_seed_file( mbedtls_hmac_drbg_context *ctx, const char *path );
/**
- * \brief Read and update a seed file. Seed is added to this
- * instance
- *
- * \param ctx HMAC_DRBG context
- * \param path Name of the file
- *
- * \return 0 if successful, 1 on file error,
- * MBEDTLS_ERR_HMAC_DRBG_ENTROPY_SOURCE_FAILED or
- * MBEDTLS_ERR_HMAC_DRBG_INPUT_TOO_BIG
+ * \brief This function reads and updates a seed file. The seed
+ * is added to this instance.
+ *
+ * \param ctx The HMAC_DRBG context.
+ * \param path The name of the file.
+ *
+ * \return \c 0 on success.
+ * \return #MBEDTLS_ERR_HMAC_DRBG_FILE_IO_ERROR on file error.
+ * \return #MBEDTLS_ERR_HMAC_DRBG_ENTROPY_SOURCE_FAILED on
+ * reseed failure.
+ * \return #MBEDTLS_ERR_HMAC_DRBG_INPUT_TOO_BIG if the existing
+ * seed file is too large.
*/
int mbedtls_hmac_drbg_update_seed_file( mbedtls_hmac_drbg_context *ctx, const char *path );
#endif /* MBEDTLS_FS_IO */
@@ -320,9 +400,10 @@ int mbedtls_hmac_drbg_update_seed_file( mbedtls_hmac_drbg_context *ctx, const ch
#if defined(MBEDTLS_SELF_TEST)
/**
- * \brief Checkup routine
+ * \brief The HMAC_DRBG Checkup routine.
*
- * \return 0 if successful, or 1 if the test failed
+ * \return \c 0 if successful.
+ * \return \c 1 if the test failed.
*/
int mbedtls_hmac_drbg_self_test( int verbose );
#endif
diff --git a/thirdparty/mbedtls/include/mbedtls/version.h b/thirdparty/mbedtls/include/mbedtls/version.h
index b4eef71e50..aeffb16699 100644
--- a/thirdparty/mbedtls/include/mbedtls/version.h
+++ b/thirdparty/mbedtls/include/mbedtls/version.h
@@ -40,16 +40,16 @@
*/
#define MBEDTLS_VERSION_MAJOR 2
#define MBEDTLS_VERSION_MINOR 16
-#define MBEDTLS_VERSION_PATCH 3
+#define MBEDTLS_VERSION_PATCH 4
/**
* The single version number has the following structure:
* MMNNPP00
* Major version | Minor version | Patch version
*/
-#define MBEDTLS_VERSION_NUMBER 0x02100300
-#define MBEDTLS_VERSION_STRING "2.16.3"
-#define MBEDTLS_VERSION_STRING_FULL "mbed TLS 2.16.3"
+#define MBEDTLS_VERSION_NUMBER 0x02100400
+#define MBEDTLS_VERSION_STRING "2.16.4"
+#define MBEDTLS_VERSION_STRING_FULL "mbed TLS 2.16.4"
#if defined(MBEDTLS_VERSION_C)
diff --git a/thirdparty/mbedtls/library/aes.c b/thirdparty/mbedtls/library/aes.c
index aff0a9939a..02a7986b59 100644
--- a/thirdparty/mbedtls/library/aes.c
+++ b/thirdparty/mbedtls/library/aes.c
@@ -918,6 +918,18 @@ int mbedtls_internal_aes_encrypt( mbedtls_aes_context *ctx,
PUT_UINT32_LE( X2, output, 8 );
PUT_UINT32_LE( X3, output, 12 );
+ mbedtls_platform_zeroize( &X0, sizeof( X0 ) );
+ mbedtls_platform_zeroize( &X1, sizeof( X1 ) );
+ mbedtls_platform_zeroize( &X2, sizeof( X2 ) );
+ mbedtls_platform_zeroize( &X3, sizeof( X3 ) );
+
+ mbedtls_platform_zeroize( &Y0, sizeof( Y0 ) );
+ mbedtls_platform_zeroize( &Y1, sizeof( Y1 ) );
+ mbedtls_platform_zeroize( &Y2, sizeof( Y2 ) );
+ mbedtls_platform_zeroize( &Y3, sizeof( Y3 ) );
+
+ mbedtls_platform_zeroize( &RK, sizeof( RK ) );
+
return( 0 );
}
#endif /* !MBEDTLS_AES_ENCRYPT_ALT */
@@ -986,6 +998,18 @@ int mbedtls_internal_aes_decrypt( mbedtls_aes_context *ctx,
PUT_UINT32_LE( X2, output, 8 );
PUT_UINT32_LE( X3, output, 12 );
+ mbedtls_platform_zeroize( &X0, sizeof( X0 ) );
+ mbedtls_platform_zeroize( &X1, sizeof( X1 ) );
+ mbedtls_platform_zeroize( &X2, sizeof( X2 ) );
+ mbedtls_platform_zeroize( &X3, sizeof( X3 ) );
+
+ mbedtls_platform_zeroize( &Y0, sizeof( Y0 ) );
+ mbedtls_platform_zeroize( &Y1, sizeof( Y1 ) );
+ mbedtls_platform_zeroize( &Y2, sizeof( Y2 ) );
+ mbedtls_platform_zeroize( &Y3, sizeof( Y3 ) );
+
+ mbedtls_platform_zeroize( &RK, sizeof( RK ) );
+
return( 0 );
}
#endif /* !MBEDTLS_AES_DECRYPT_ALT */
diff --git a/thirdparty/mbedtls/library/bignum.c b/thirdparty/mbedtls/library/bignum.c
index d1717e9435..6713bcbf6f 100644
--- a/thirdparty/mbedtls/library/bignum.c
+++ b/thirdparty/mbedtls/library/bignum.c
@@ -1071,6 +1071,107 @@ int mbedtls_mpi_cmp_mpi( const mbedtls_mpi *X, const mbedtls_mpi *Y )
return( 0 );
}
+/** Decide if an integer is less than the other, without branches.
+ *
+ * \param x First integer.
+ * \param y Second integer.
+ *
+ * \return 1 if \p x is less than \p y, 0 otherwise
+ */
+static unsigned ct_lt_mpi_uint( const mbedtls_mpi_uint x,
+ const mbedtls_mpi_uint y )
+{
+ mbedtls_mpi_uint ret;
+ mbedtls_mpi_uint cond;
+
+ /*
+ * Check if the most significant bits (MSB) of the operands are different.
+ */
+ cond = ( x ^ y );
+ /*
+ * If the MSB are the same then the difference x-y will be negative (and
+ * have its MSB set to 1 during conversion to unsigned) if and only if x<y.
+ */
+ ret = ( x - y ) & ~cond;
+ /*
+ * If the MSB are different, then the operand with the MSB of 1 is the
+ * bigger. (That is if y has MSB of 1, then x<y is true and it is false if
+ * the MSB of y is 0.)
+ */
+ ret |= y & cond;
+
+
+ ret = ret >> ( biL - 1 );
+
+ return (unsigned) ret;
+}
+
+/*
+ * Compare signed values in constant time
+ */
+int mbedtls_mpi_lt_mpi_ct( const mbedtls_mpi *X, const mbedtls_mpi *Y,
+ unsigned *ret )
+{
+ size_t i;
+ /* The value of any of these variables is either 0 or 1 at all times. */
+ unsigned cond, done, X_is_negative, Y_is_negative;
+
+ MPI_VALIDATE_RET( X != NULL );
+ MPI_VALIDATE_RET( Y != NULL );
+ MPI_VALIDATE_RET( ret != NULL );
+
+ if( X->n != Y->n )
+ return MBEDTLS_ERR_MPI_BAD_INPUT_DATA;
+
+ /*
+ * Set sign_N to 1 if N >= 0, 0 if N < 0.
+ * We know that N->s == 1 if N >= 0 and N->s == -1 if N < 0.
+ */
+ X_is_negative = ( X->s & 2 ) >> 1;
+ Y_is_negative = ( Y->s & 2 ) >> 1;
+
+ /*
+ * If the signs are different, then the positive operand is the bigger.
+ * That is if X is negative (X_is_negative == 1), then X < Y is true and it
+ * is false if X is positive (X_is_negative == 0).
+ */
+ cond = ( X_is_negative ^ Y_is_negative );
+ *ret = cond & X_is_negative;
+
+ /*
+ * This is a constant-time function. We might have the result, but we still
+ * need to go through the loop. Record if we have the result already.
+ */
+ done = cond;
+
+ for( i = X->n; i > 0; i-- )
+ {
+ /*
+ * If Y->p[i - 1] < X->p[i - 1] then X < Y is true if and only if both
+ * X and Y are negative.
+ *
+ * Again even if we can make a decision, we just mark the result and
+ * the fact that we are done and continue looping.
+ */
+ cond = ct_lt_mpi_uint( Y->p[i - 1], X->p[i - 1] );
+ *ret |= cond & ( 1 - done ) & X_is_negative;
+ done |= cond;
+
+ /*
+ * If X->p[i - 1] < Y->p[i - 1] then X < Y is true if and only if both
+ * X and Y are positive.
+ *
+ * Again even if we can make a decision, we just mark the result and
+ * the fact that we are done and continue looping.
+ */
+ cond = ct_lt_mpi_uint( X->p[i - 1], Y->p[i - 1] );
+ *ret |= cond & ( 1 - done ) & ( 1 - X_is_negative );
+ done |= cond;
+ }
+
+ return( 0 );
+}
+
/*
* Compare signed values
*/
@@ -2338,8 +2439,6 @@ static int mpi_miller_rabin( const mbedtls_mpi *X, size_t rounds,
MBEDTLS_MPI_CHK( mbedtls_mpi_copy( &R, &W ) );
MBEDTLS_MPI_CHK( mbedtls_mpi_shift_r( &R, s ) );
- i = mbedtls_mpi_bitlen( X );
-
for( i = 0; i < rounds; i++ )
{
/*
diff --git a/thirdparty/mbedtls/library/ctr_drbg.c b/thirdparty/mbedtls/library/ctr_drbg.c
index fb121575bb..ad0a1936d1 100644
--- a/thirdparty/mbedtls/library/ctr_drbg.c
+++ b/thirdparty/mbedtls/library/ctr_drbg.c
@@ -62,68 +62,6 @@ void mbedtls_ctr_drbg_init( mbedtls_ctr_drbg_context *ctx )
#endif
}
-/*
- * Non-public function wrapped by mbedtls_ctr_drbg_seed(). Necessary to allow
- * NIST tests to succeed (which require known length fixed entropy)
- */
-/* CTR_DRBG_Instantiate with derivation function (SP 800-90A &sect;10.2.1.3.2)
- * mbedtls_ctr_drbg_seed_entropy_len(ctx, f_entropy, p_entropy,
- * custom, len, entropy_len)
- * implements
- * CTR_DRBG_Instantiate(entropy_input, nonce, personalization_string,
- * security_strength) -> initial_working_state
- * with inputs
- * custom[:len] = nonce || personalization_string
- * where entropy_input comes from f_entropy for entropy_len bytes
- * and with outputs
- * ctx = initial_working_state
- */
-int mbedtls_ctr_drbg_seed_entropy_len(
- mbedtls_ctr_drbg_context *ctx,
- int (*f_entropy)(void *, unsigned char *, size_t),
- void *p_entropy,
- const unsigned char *custom,
- size_t len,
- size_t entropy_len )
-{
- int ret;
- unsigned char key[MBEDTLS_CTR_DRBG_KEYSIZE];
-
- memset( key, 0, MBEDTLS_CTR_DRBG_KEYSIZE );
-
- mbedtls_aes_init( &ctx->aes_ctx );
-
- ctx->f_entropy = f_entropy;
- ctx->p_entropy = p_entropy;
-
- ctx->entropy_len = entropy_len;
- ctx->reseed_interval = MBEDTLS_CTR_DRBG_RESEED_INTERVAL;
-
- /*
- * Initialize with an empty key
- */
- if( ( ret = mbedtls_aes_setkey_enc( &ctx->aes_ctx, key, MBEDTLS_CTR_DRBG_KEYBITS ) ) != 0 )
- {
- return( ret );
- }
-
- if( ( ret = mbedtls_ctr_drbg_reseed( ctx, custom, len ) ) != 0 )
- {
- return( ret );
- }
- return( 0 );
-}
-
-int mbedtls_ctr_drbg_seed( mbedtls_ctr_drbg_context *ctx,
- int (*f_entropy)(void *, unsigned char *, size_t),
- void *p_entropy,
- const unsigned char *custom,
- size_t len )
-{
- return( mbedtls_ctr_drbg_seed_entropy_len( ctx, f_entropy, p_entropy, custom, len,
- MBEDTLS_CTR_DRBG_ENTROPY_LEN ) );
-}
-
void mbedtls_ctr_drbg_free( mbedtls_ctr_drbg_context *ctx )
{
if( ctx == NULL )
@@ -427,6 +365,63 @@ exit:
return( ret );
}
+/* CTR_DRBG_Instantiate with derivation function (SP 800-90A &sect;10.2.1.3.2)
+ * mbedtls_ctr_drbg_seed(ctx, f_entropy, p_entropy, custom, len)
+ * implements
+ * CTR_DRBG_Instantiate(entropy_input, nonce, personalization_string,
+ * security_strength) -> initial_working_state
+ * with inputs
+ * custom[:len] = nonce || personalization_string
+ * where entropy_input comes from f_entropy for ctx->entropy_len bytes
+ * and with outputs
+ * ctx = initial_working_state
+ */
+int mbedtls_ctr_drbg_seed( mbedtls_ctr_drbg_context *ctx,
+ int (*f_entropy)(void *, unsigned char *, size_t),
+ void *p_entropy,
+ const unsigned char *custom,
+ size_t len )
+{
+ int ret;
+ unsigned char key[MBEDTLS_CTR_DRBG_KEYSIZE];
+
+ memset( key, 0, MBEDTLS_CTR_DRBG_KEYSIZE );
+
+ mbedtls_aes_init( &ctx->aes_ctx );
+
+ ctx->f_entropy = f_entropy;
+ ctx->p_entropy = p_entropy;
+
+ if( ctx->entropy_len == 0 )
+ ctx->entropy_len = MBEDTLS_CTR_DRBG_ENTROPY_LEN;
+ ctx->reseed_interval = MBEDTLS_CTR_DRBG_RESEED_INTERVAL;
+
+ /*
+ * Initialize with an empty key
+ */
+ if( ( ret = mbedtls_aes_setkey_enc( &ctx->aes_ctx, key, MBEDTLS_CTR_DRBG_KEYBITS ) ) != 0 )
+ {
+ return( ret );
+ }
+
+ if( ( ret = mbedtls_ctr_drbg_reseed( ctx, custom, len ) ) != 0 )
+ {
+ return( ret );
+ }
+ return( 0 );
+}
+
+/* Backward compatibility wrapper */
+int mbedtls_ctr_drbg_seed_entropy_len(
+ mbedtls_ctr_drbg_context *ctx,
+ int (*f_entropy)(void *, unsigned char *, size_t), void *p_entropy,
+ const unsigned char *custom, size_t len,
+ size_t entropy_len )
+{
+ mbedtls_ctr_drbg_set_entropy_len( ctx, entropy_len );
+ return( mbedtls_ctr_drbg_seed( ctx, f_entropy, p_entropy, custom, len ) );
+}
+
/* CTR_DRBG_Generate with derivation function (SP 800-90A &sect;10.2.1.5.2)
* mbedtls_ctr_drbg_random_with_add(ctx, output, output_len, additional, add_len)
* implements
@@ -517,7 +512,7 @@ int mbedtls_ctr_drbg_random_with_add( void *p_rng,
exit:
mbedtls_platform_zeroize( add_input, sizeof( add_input ) );
mbedtls_platform_zeroize( tmp, sizeof( tmp ) );
- return( 0 );
+ return( ret );
}
int mbedtls_ctr_drbg_random( void *p_rng, unsigned char *output, size_t output_len )
@@ -678,8 +673,11 @@ int mbedtls_ctr_drbg_self_test( int verbose )
mbedtls_printf( " CTR_DRBG (PR = TRUE) : " );
test_offset = 0;
- CHK( mbedtls_ctr_drbg_seed_entropy_len( &ctx, ctr_drbg_self_test_entropy,
- (void *) entropy_source_pr, nonce_pers_pr, 16, 32 ) );
+ mbedtls_ctr_drbg_set_entropy_len( &ctx, 32 );
+ CHK( mbedtls_ctr_drbg_seed( &ctx,
+ ctr_drbg_self_test_entropy,
+ (void *) entropy_source_pr,
+ nonce_pers_pr, 16 ) );
mbedtls_ctr_drbg_set_prediction_resistance( &ctx, MBEDTLS_CTR_DRBG_PR_ON );
CHK( mbedtls_ctr_drbg_random( &ctx, buf, MBEDTLS_CTR_DRBG_BLOCKSIZE ) );
CHK( mbedtls_ctr_drbg_random( &ctx, buf, MBEDTLS_CTR_DRBG_BLOCKSIZE ) );
@@ -699,8 +697,11 @@ int mbedtls_ctr_drbg_self_test( int verbose )
mbedtls_ctr_drbg_init( &ctx );
test_offset = 0;
- CHK( mbedtls_ctr_drbg_seed_entropy_len( &ctx, ctr_drbg_self_test_entropy,
- (void *) entropy_source_nopr, nonce_pers_nopr, 16, 32 ) );
+ mbedtls_ctr_drbg_set_entropy_len( &ctx, 32 );
+ CHK( mbedtls_ctr_drbg_seed( &ctx,
+ ctr_drbg_self_test_entropy,
+ (void *) entropy_source_nopr,
+ nonce_pers_nopr, 16 ) );
CHK( mbedtls_ctr_drbg_random( &ctx, buf, 16 ) );
CHK( mbedtls_ctr_drbg_reseed( &ctx, NULL, 0 ) );
CHK( mbedtls_ctr_drbg_random( &ctx, buf, 16 ) );
diff --git a/thirdparty/mbedtls/library/ecdsa.c b/thirdparty/mbedtls/library/ecdsa.c
index 2b4800642d..3cf3d7cc4f 100644
--- a/thirdparty/mbedtls/library/ecdsa.c
+++ b/thirdparty/mbedtls/library/ecdsa.c
@@ -363,6 +363,7 @@ modn:
MBEDTLS_MPI_CHK( mbedtls_mpi_add_mpi( &e, &e, s ) );
MBEDTLS_MPI_CHK( mbedtls_mpi_mul_mpi( &e, &e, &t ) );
MBEDTLS_MPI_CHK( mbedtls_mpi_mul_mpi( pk, pk, &t ) );
+ MBEDTLS_MPI_CHK( mbedtls_mpi_mod_mpi( pk, pk, &grp->N ) );
MBEDTLS_MPI_CHK( mbedtls_mpi_inv_mod( s, pk, &grp->N ) );
MBEDTLS_MPI_CHK( mbedtls_mpi_mul_mpi( s, s, &e ) );
MBEDTLS_MPI_CHK( mbedtls_mpi_mod_mpi( s, s, &grp->N ) );
diff --git a/thirdparty/mbedtls/library/ecp.c b/thirdparty/mbedtls/library/ecp.c
index db36191b9b..040c20bd38 100644
--- a/thirdparty/mbedtls/library/ecp.c
+++ b/thirdparty/mbedtls/library/ecp.c
@@ -2724,6 +2724,7 @@ int mbedtls_ecp_gen_privkey( const mbedtls_ecp_group *grp,
{
/* SEC1 3.2.1: Generate d such that 1 <= n < N */
int count = 0;
+ unsigned cmp = 0;
/*
* Match the procedure given in RFC 6979 (deterministic ECDSA):
@@ -2748,9 +2749,14 @@ int mbedtls_ecp_gen_privkey( const mbedtls_ecp_group *grp,
*/
if( ++count > 30 )
return( MBEDTLS_ERR_ECP_RANDOM_FAILED );
+
+ ret = mbedtls_mpi_lt_mpi_ct( d, &grp->N, &cmp );
+ if( ret != 0 )
+ {
+ goto cleanup;
+ }
}
- while( mbedtls_mpi_cmp_int( d, 1 ) < 0 ||
- mbedtls_mpi_cmp_mpi( d, &grp->N ) >= 0 );
+ while( mbedtls_mpi_cmp_int( d, 1 ) < 0 || cmp != 1 );
}
#endif /* ECP_SHORTWEIERSTRASS */
diff --git a/thirdparty/mbedtls/library/hmac_drbg.c b/thirdparty/mbedtls/library/hmac_drbg.c
index 50d88bd54b..284c9b4e96 100644
--- a/thirdparty/mbedtls/library/hmac_drbg.c
+++ b/thirdparty/mbedtls/library/hmac_drbg.c
@@ -273,16 +273,19 @@ int mbedtls_hmac_drbg_seed( mbedtls_hmac_drbg_context *ctx,
ctx->reseed_interval = MBEDTLS_HMAC_DRBG_RESEED_INTERVAL;
- /*
- * See SP800-57 5.6.1 (p. 65-66) for the security strength provided by
- * each hash function, then according to SP800-90A rev1 10.1 table 2,
- * min_entropy_len (in bits) is security_strength.
- *
- * (This also matches the sizes used in the NIST test vectors.)
- */
- ctx->entropy_len = md_size <= 20 ? 16 : /* 160-bits hash -> 128 bits */
- md_size <= 28 ? 24 : /* 224-bits hash -> 192 bits */
- 32; /* better (256+) -> 256 bits */
+ if( ctx->entropy_len == 0 )
+ {
+ /*
+ * See SP800-57 5.6.1 (p. 65-66) for the security strength provided by
+ * each hash function, then according to SP800-90A rev1 10.1 table 2,
+ * min_entropy_len (in bits) is security_strength.
+ *
+ * (This also matches the sizes used in the NIST test vectors.)
+ */
+ ctx->entropy_len = md_size <= 20 ? 16 : /* 160-bits hash -> 128 bits */
+ md_size <= 28 ? 24 : /* 224-bits hash -> 192 bits */
+ 32; /* better (256+) -> 256 bits */
+ }
if( ( ret = hmac_drbg_reseed_core( ctx, custom, len,
1 /* add nonce */ ) ) != 0 )
@@ -303,7 +306,7 @@ void mbedtls_hmac_drbg_set_prediction_resistance( mbedtls_hmac_drbg_context *ctx
}
/*
- * Set entropy length grabbed for reseeds
+ * Set entropy length grabbed for seeding
*/
void mbedtls_hmac_drbg_set_entropy_len( mbedtls_hmac_drbg_context *ctx, size_t len )
{
diff --git a/thirdparty/mbedtls/library/version_features.c b/thirdparty/mbedtls/library/version_features.c
index a99ee808d6..3b67b2be85 100644
--- a/thirdparty/mbedtls/library/version_features.c
+++ b/thirdparty/mbedtls/library/version_features.c
@@ -297,6 +297,9 @@ static const char *features[] = {
#if defined(MBEDTLS_CIPHER_PADDING_ZEROS)
"MBEDTLS_CIPHER_PADDING_ZEROS",
#endif /* MBEDTLS_CIPHER_PADDING_ZEROS */
+#if defined(MBEDTLS_CTR_DRBG_USE_128_BIT_KEY)
+ "MBEDTLS_CTR_DRBG_USE_128_BIT_KEY",
+#endif /* MBEDTLS_CTR_DRBG_USE_128_BIT_KEY */
#if defined(MBEDTLS_ENABLE_WEAK_CIPHERSUITES)
"MBEDTLS_ENABLE_WEAK_CIPHERSUITES",
#endif /* MBEDTLS_ENABLE_WEAK_CIPHERSUITES */
diff --git a/version.py b/version.py
index 36778ee756..2a6a9c0a28 100644
--- a/version.py
+++ b/version.py
@@ -1,9 +1,9 @@
short_name = "godot"
name = "Godot Engine"
-major = 3
-minor = 2
+major = 4
+minor = 0
patch = 0
-status = "rc"
+status = "dev"
module_config = ""
year = 2020
website = "https://godotengine.org"