Commit graph

4349 commits

Author SHA1 Message Date
kobewi
50c63bdc4c Add set_pressed_no_signal method to BaseButton 2021-07-13 13:57:26 +02:00
Rémi Verschelde
aab6dc301c
Merge pull request from Geometror/label-improve-layout-options
Improvements to Label's layout options
2021-07-13 13:10:42 +02:00
Yuri Sizov
4ee0e6ddf5 Add type variations to Theme 2021-07-13 02:26:28 +03:00
Rémi Verschelde
fc00a83901
Merge pull request from nekomatata/convex-hull-simplification
Options to clean/simplify convex hull generated from mesh
2021-07-12 22:15:40 +02:00
Fabio Alessandrelli
b31e8530b2 [Net] Rename NetworkedMultiplayerENet to ENetMultiplayerPeer. 2021-07-12 16:36:34 +02:00
Fabio Alessandrelli
88d68346ee [Net] Rename NetworkedMultiplayerPeer to MultiplayerPeer. 2021-07-12 16:36:34 +02:00
Fabio Alessandrelli
31142ac3ee [Net] Remove most multiplayer hooks from SceneTree.
Use `multiplayer` or `get_multiplayer()` instead of `get_tree()`.
2021-07-12 15:28:01 +02:00
Rémi Verschelde
8dccf0f9b5
Merge pull request from HaSa1002/make-rst-code-blocks-less-redundant
Makerst: Remove redundant GDScript from code blocks
2021-07-12 13:35:37 +02:00
Johannes Witt
fa573efa1c
Makerst: Remove redundant GDScript from code blocks 2021-07-12 12:57:31 +02:00
Hendrik Brucker
74ab336fe3 Change VSync mode project setting enum type from string to integer 2021-07-12 03:35:51 +02:00
reduz
b2f6db7aa8
Implement Specialization Constants
* Added support to our local copy of SpirV Reflect (which does not support it).
* Pass them on render or compute pipeline creation.
* Not implemented in our shaders yet.
2021-07-11 23:16:09 +02:00
QbieShay
9058367d14 This commits adds a new emitter type for particles material
and 3D CPU particles. The new emitter is called "ring"
and it can emit either in a ring or cylinder fashion.
This adds the following properties for the emitter:
1. emission_ring_axis: the axis along which the ring/cylinder
    will be constructed
2. emission_ring_radius: outer radius of the ring/cylinder
3. emission_ring_inner_radius: inner radius of the cylinder.
    when set to zero, particles will emit in the full volume.
4. emission_ring_height: height of the ring/cylinder emitter.
2021-07-11 17:30:47 +02:00
QbieShay
c4d8eecfe5 added offset for plane mesh and quad mesh 2021-07-11 14:33:08 +02:00
Haoyu Qiu
422f821be9 Fix doc description of HTTPClient::request 2021-07-11 00:52:21 +08:00
Hugo Locurcio
f0a145bbf5
Add a method to set the number of physics solver iterations in 3D
This is only for GodotPhysics, and adds a 3D counterpart to the 2D
method that was recently added.
2021-07-10 16:28:34 +02:00
Hugo Locurcio
a2d5f191d8
Merge pull request from Geometror/reimplement-disableable-vsync 2021-07-10 01:02:23 +02:00
Hugo Locurcio
f05aa9cc01
Make makerst.py create folders automatically, print a message when done 2021-07-09 00:55:45 +02:00
Nick Huelin
2e3cbbcd11 Add method description to PopupMenu
This pull request adds a missing method description to `PopupMenu`.

This completes the documentation for `PopupMenu` and enhances usability by doing so.

Update doc/classes/PopupMenu.xml

Co-authored-by: Rémi Verschelde <rverschelde@gmail.com>
2021-07-08 07:34:14 -04:00
PouleyKetchoupp
1de995ae99 Options to clean/simplify convex hull generated from mesh
Clean: remove duplicate and interior vertices (uses Bullet algorithm)
Simplify: modify the geometry for further simplification (uses VHACD
algorithm)

In the editor, single convex hull now uses the clean option.
Added a new editor entry to create a simplified convex hull, can be
useful for creating convex hull from highly tessellated triangle meshes.
2021-07-07 12:14:12 -07:00
Rémi Verschelde
e4c940ee6a
Merge pull request from kleonc/accept_dialog-remove_button
Add AcceptDialog::remove_button method
2021-07-07 09:12:03 +02:00
Hugo Locurcio
7f845d913a
Fix warning message spam when a VoxelGI node is selected in the editor
Support for anisotropy in VoxelGI was removed during its development
due to the high cost. This was a leftover from anisotropy support.
2021-07-06 23:02:59 +02:00
kleonc
714e6a595d Add AcceptDialog::remove_button method 2021-07-06 18:14:20 +02:00
Rémi Verschelde
9a1ce8e6c3
LineEdit: Respect max_length by truncating text to append
When appending text (either via `set_text()` or by pasting from clipboard),
if the input would make the `LineEdit` exceed its configured `max_length`,
the input text is truncated to fit. The discard part is passed as a parameter
in the `text_change_rejected` signal.

Fixes .
Fixes .

Also cleaned up unimplemented `max_chars` property in `TextEdit`.

Co-authored-by: Tony-Goat <70238376+Tony-Goat@users.noreply.github.com>
2021-07-06 18:03:03 +02:00
Hendrik Brucker
043ae91560 Restructure and reimplement vsync options
-Add a v-sync mode setting which allows to choose between DISABLED, ON, ADAPTIVE and MAILBOX
-Removed the V-Sync via Compositor option
2021-07-06 16:34:26 +02:00
George Marques
0525467fbc
Fix TileSet::CellNeighbor enum binding
Having the TileSet:: prefix has some unintended consequences in the
bindings, in particular in the extension API dump.
2021-07-06 11:07:58 -03:00
Rémi Verschelde
d31cf83bb3
Merge pull request from SirQuartz/docs
Add multiple descriptions to several classes
2021-07-06 14:10:33 +02:00
Nick Huelin
27e9df7778 Add multiple descriptions to several classes
This pull request adds several descriptions to multiple different classes.

This improves the completeness of the documentation and enhances usability by doing so.
2021-07-06 07:40:27 -04:00
reduz
7f6027927a Fix Subsurface Scattering
* Works again
* Transmittance also works again
* Removed the curve patamter, exp() function is good enough.
2021-07-05 17:17:45 -03:00
PouleyKetchoupp
ccac36a6e2 Remove unused PhysicsShapeQueryResult3D & PhysicsShapeQueryResult2D 2021-07-05 11:16:11 -07:00
reduz
f4379cbc82 Clean up Tree
Fixes some problems introduced by 

* Tree used minimum size as a stretch ratio, so it forced a minimum size of 1.
* Minimum size redone, stretch ratio moved to a separate setting
* Fitting to contents was enforced, this is more intuitive, but in many situations this is undesired.
* Added a clip content option for situations where fit to contents does not apply.
* Icon would scroll with the item, making it invislbe if the item is too long.
* Made icon always appear to the right (or left if RTL is enabled) of the visible item space.
2021-07-04 13:13:53 -03:00
Hendrik Brucker
56a8d3f30c Improvements to Label's layout options
- Added options to trim the text in case it overruns
- Added more autowrap modes
- Improved line breaking, which ignores trailing spaces
2021-07-04 16:43:55 +02:00
Hendrik Brucker
3a4a2198ed Fix color properties of particle nodes/material 2021-07-04 02:14:31 +02:00
Josh Chandler
879f84d8f8 add viewport.get_camera_2d()
* there is now a more clear distinction between camera_2d and camera_3d functions in the engine code
* simplified camera2d's exported interface - now everything happens directly with the 'current' variable and make_current and clear_current are no longer exposed- there were some situations where calling one instead of set_current would result in incomplete results
* rebased to current godot master
2021-07-03 15:08:17 -04:00
Rémi Verschelde
cb4e42155d
Merge pull request from reduz/curve-texture-3d
Implement Curve3Texture
2021-07-03 20:32:18 +02:00
reduz
d6893cb2e8 Implement Curve3Texture
* This was required by users in some scenarios, such as animating individual axes over time with a single texture.
* Examples: Shaders, Particles, etc.
* CurveTexture now defaults to RGB, can be changed to Red if needed, this allows to freely exchange them.
2021-07-03 12:11:01 -03:00
reduz
6c55d2aad2 Fix Render Info
* Fixed and redone the process to obtain render information from a viewport
* Some stats, such as material changes are too difficult to guess on Vulkan, were removed.
* Separated visible and shadow stats, which causes confusion.
* Texture, buffer and general video memory can be queried now.
* Fixed the performance metrics too.
2021-07-03 10:15:04 -03:00
Rémi Verschelde
b9b128cb1d
Merge pull request from nekomatata/expose-body-test-motion-3d
Expose body_test_motion in 3D physics server
2021-07-03 09:29:46 +02:00
PouleyKetchoupp
62e577267f Expose body_test_motion in 3D physics server
Results are exposed through PhysicsTestMotionResult3D, the same way it's
done for 2D.

Also cleaned a few things in the 2D version.
2021-07-02 18:03:44 -07:00
Rémi Verschelde
a8fb450b3c
Merge pull request from YeldhamDev/window_get_contents_expose
Expose `Window.get_contents_minimum_size()` to scripts
2021-07-02 22:12:11 +02:00
sygi
6f3e7f7cb0 Add mouse_shape_entered and mouse_shape_exited signals to CollisionObject2D.
Co-authored-by: Hugo Locurcio <hugo.locurcio@hugo.pro>
2021-07-02 20:50:27 +01:00
Michael Alexsander
a829e88ddc Expose Window.get_contents_minimum_size() to scripts 2021-07-02 15:35:56 -03:00
Hugo Locurcio
5370f4876e
Remove leftovers from the DirectionalLight3D Optimized shadow depth range
The Optimized shadow depth range was removed in late 2020 in favor
of the Stable shadow depth range, but it still had a (broken) property
that allowed to enable it.
2021-07-02 20:32:43 +02:00
Hugo Locurcio
7d4c20f9db
Improve and clarify documentation for RandomNumberGenerator 2021-07-02 17:47:52 +02:00
Nick H
c6f28ed62b Add get_dead_zone() method to InputMap
This commit adds a new method to the `InputMap`, allowing the user to get the value of an action's dead zone as a float.
2021-07-02 03:07:37 -04:00
Rémi Verschelde
ad8a2b3d52
Merge pull request from reduz/fix-renderingserver-bindings
Clean up RenderingServer and its bindings
2021-07-01 15:17:33 +02:00
reduz
37776b2867 Clean up RenderingServer and its bindings
* Rewrote bindings for RenderingServer.
* They are now all up to date.
* Several unused methods and deprecated features were cleaned up.
2021-07-01 09:07:36 -03:00
Rémi Verschelde
230a24a49d
Merge pull request from lyuma/callable_is_valid
Add Callable.is_valid() analogous to FuncRef.is_valid() from 3.x
2021-07-01 12:57:14 +02:00
Lyuma
8f1efa656b Add Callable.is_valid() analogous to FuncRef.is_valid() from 3.x 2021-07-01 02:54:01 -07:00
Eric
525ad7c37e Enable Camera2D smoothing on limit change 2021-06-30 16:21:29 -07:00
Rémi Verschelde
915344fe76
Merge pull request from nekomatata/physics-disable-modes
Add support for controlling physics nodes' behavior when disabled
2021-06-30 20:36:36 +02:00
Rémi Verschelde
270f9d4c88
Merge pull request from reduz/remove-immediate
Deprecate ImmediateGeometry
2021-06-30 20:18:59 +02:00
reduz
85cf99f28e Deprecate ImmediateGeometry
* Removed entirely from RenderingServer.
* Replaced by ImmediateMesh resource.
* ImmediateMesh replaces ImmediateGeometry, but could use more optimization in the future.
* Sprite3D and AnimatedSprite3D work again, ported from Godot 3.x (though a lot of work was needed to adapt them to Godot 4).
* RootMotionView works again.
* Polygon3D editor works again.
2021-06-30 14:14:41 -03:00
Rémi Verschelde
a02620f3a5
Merge pull request from reduz/fix-suffixes-and-degrees
Fix editor suffixes and degrees conversion
2021-06-30 18:47:40 +02:00
PouleyKetchoupp
5cbdc7a0ac Add support for controlling physics nodes' behavior when disabled
New property disable_mode to set different behaviors:
Remove: remove from physics simulation
MakeStatic: change body mode to static (doesn't affect area and soft body)
KeepActive: do nothing

Extra change:
Handle disable/enable node state with specific notifications, in order
to differentiate global pause from disabled nodes.
2021-06-30 09:20:44 -07:00
reduz
75688772b3 Fix editor suffixes and degrees conversion
* Functions to convert to/from degrees are all gone. Conversion is done by the editor.
* Use PROPERTY_HINT_ANGLE instead of PROPERTY_HINT_RANGE to edit radian angles in degrees.
* Added possibility to add suffixes to range properties, use "min,max[,step][,suffix:<something>]" example "0,100,1,suffix:m"
* In general, can add suffixes for EditorSpinSlider
Not covered by this PR, will have to be addressed by future ones:

* Ability to switch radians/degrees in the inspector for angle properties (if actually wanted).
* Animations previously made will most likely break, need to add a way to make old ones compatible.
* Only added a "px" suffix to 2D position and a "m" one to 3D position, someone needs to go through the rest of the engine and add all remaining suffixes.
* Likely also need to track down usage of EditorSpinSlider outside properties to add suffixes to it too.
2021-06-30 12:38:25 -03:00
Rémi Verschelde
bcd1fc832f
Merge pull request from nekomatata/move-and-collide-fix-slide
Fix move_and_collide causing sliding on slopes
2021-06-30 02:18:01 +02:00
reduz
d07f7c8d25 Fixes to 2D viewport
* Editor 2D viewport now uses embedded subwindows (windows no longer pop up)
* Restored the ability to disable 3D on the 2D viewport (makes 3D not display on 2D when there is a camera on the scene)
2021-06-29 17:40:45 -03:00
Rémi Verschelde
76dc811c76
Merge pull request from levilindsey/master
Update File.store_var description to mention which properties of an object are included.
2021-06-29 13:59:17 +02:00
Rémi Verschelde
90982d60cb
Merge pull request from jitspoe/master.button_icon_alignment 2021-06-29 13:31:53 +02:00
Rémi Verschelde
dfdde2c598
Merge pull request from nekomatata/node-path-editor-update
NodePath properly updated in the editor in more cases when nodes are moved or renamed
2021-06-29 12:51:38 +02:00
Rémi Verschelde
36d4314f15
Merge pull request from SirQuartz/patch-7
Update `Label.clip_text()` Method Description
2021-06-29 12:39:52 +02:00
jitspoe
e192eb05db
Add alignment options to icons on buttons.
They can now be centered and right-aligned.

Fixes .
2021-06-29 12:31:40 +02:00
Rémi Verschelde
8fb7a9f023
Merge pull request from LightningAA/rename-node-is-ancestor-of
Rename `is_a_parent_of()` to `is_ancestor_of()`
2021-06-29 12:07:25 +02:00
Gilles Roudière
30a615dd94 Implement painting properties over TileSets 2021-06-29 11:07:46 +02:00
PouleyKetchoupp
9758a75221 Fix move_and_collide causing sliding on slopes
Make sure the direction of the motion is preserved, unless the depth is
higher than the margin, which means the body needs depenetration in any
direction.

Also changed move_and_slide to avoid sliding on the first motion, in
order to avoid issues with unstable position on ground when jumping.

Co-authored-by: fabriceci <fabricecipolla@gmail.com>
2021-06-28 17:17:52 -07:00
Rémi Verschelde
89f270f4c5
Merge pull request from groud/tree_disable_scroll
Allow disabling scrolling in Tree and implement horizontal scrolling
2021-06-28 18:41:23 +02:00
PouleyKetchoupp
3e4e530523 NodePath properly updated in the editor in more cases
Fix more cases of node path needing an update when nodes are renamed or
moved in the editor.

Built-in node properties:
Before, node paths were checked only for script export variables. Now
all properties are checked from the node, which includes built-in node
properties.
Allows proper node path updates for nodes like remote transform, physics
joints, etc.

Arrays and dictionaries:
Node paths nested in array and dictionary properties are now also
updated in the editor.

Also update the documentation to be clear about node path update in the
editor and at runtime.

Co-authored-by: latorril <latorril@gmail.com>
2021-06-28 09:28:29 -07:00
Gilles Roudière
d7d32ced5b Implement Tree's internal minimum width calculation 2021-06-28 15:54:31 +02:00
Hugo Locurcio
f28b55b551
Increase the default ReflectionProbe extents to Vector3(10, 10, 10)
On top of having a more realistic size out of the box, this matches
the default VoxelGI extents for better usability.
2021-06-27 16:46:03 +02:00
Nick H
ea94aeac48
Amend Label.clip_text() Method Description
This update fixes an inconsistencies in the documentation about the `clip_text()` method.
2021-06-25 23:33:00 -04:00
reduz
b1d15c51bc Implement native extension system
* Deprecates GDNative in favor of a simpler, lower level interface.
* New extension system allows registering core engine classes.
* Simple header interface in gdnative_interace.h
2021-06-25 17:32:45 -03:00
Gilles Roudière
b2dddc3c82 Allow disabling scrolling in Tree 2021-06-25 21:19:46 +02:00
kobewi
452e10ba7b Remove clips_input() method and use clip_content 2021-06-25 15:46:37 +02:00
Rémi Verschelde
e4430771db
Merge pull request from reduz/implement-render-pass-support
Implement Framebuffer Subpass support
2021-06-25 15:00:01 +02:00
reduz
bde6f5eed1 Implement Framebuffer Subpass support
* Required for better optimizing mobile platforms
* Will be used by the Vulkan mobile renderer.
2021-06-24 15:59:15 -03:00
kobewi
678827bebc Correct the description of Tween.custom_step 2021-06-24 16:01:12 +02:00
Hugo Locurcio
b4ed84ba2b
Allow a top and bottom radius equal to 0 in CylinderMesh
The CylinderMesh generation code handles this special case and
avoids generating the top and bottom faces if their radius is equal
to 0. This improves performance by reducing the number of vertices
to draw.

If both values are set to 0, nothing will be visible but the mesh
generation will still succeed.

This also improves the CylinderMesh class documentation.
2021-06-23 18:50:10 +02:00
Lightning_A
899e5f8685 Rename is_a_parent_of() to is_ancestor_of() 2021-06-21 08:39:28 -06:00
Paulb23
1a0cfc219b Move indent management to CodeEdit 2021-06-20 20:00:54 +01:00
Rémi Verschelde
953de68cfc
Merge pull request from golfinq/master 2021-06-20 18:51:15 +02:00
Aaron Franke
0ce49800ac
Use mouse and joypad enums instead of plain integers
Also MIDIMessage
2021-06-20 11:54:24 -04:00
golfinq
0c1d10d1ca Rich Text Label now allows for foreground colors and background colors 2021-06-20 11:29:37 -04:00
Hugo Locurcio
e3ef50db38
Improve descriptions for ProjectSettings' disable_stdout/disable_stderr 2021-06-20 16:44:58 +02:00
Rémi Verschelde
cca29b78b9
Merge pull request from Calinou/add-engine-print-error-property 2021-06-20 13:22:08 +02:00
Lightning_A
e28fd07b2b Rename instance()->instantiate() when it's a verb 2021-06-19 20:49:18 -06:00
Rémi Verschelde
9c182b0f45
Merge pull request from KoBeWi/shiny_new_tweens 2021-06-20 00:35:28 +02:00
Rémi Verschelde
4effadc0ba
Merge pull request from madmiraal/fix-48692
Fix `InputMap.action_erase_event()` failing to erase events correctly.
2021-06-20 00:29:42 +02:00
Rémi Verschelde
d88be9b70c
Merge pull request from madmiraal/consolidate_json
Consolidate JSON, JSONParseResults and JSONParser into JSON
2021-06-19 21:45:34 +02:00
Tomasz Chabora
900b2e0fdc Complete rewrite of Tweens
* Tweens were changed from Node to RefCounted. New API is inspired by DOTween.
* Tweens are created and managed by SceneTree, similar to SceneTreeTimer, which makes them ultra cheap to use a lot.
* Animating with Tweens is done by creating sequences of Tweeners. You create them from code and they autostart by default (fire-and-forget).
* There are 4 Tweeners that cover the former Tween functionality: PropertyTweener, IntervalTweener, CallbackTweener and MethodTweener.
* The methods were simplified a lot. Long argument lists are replaced with chained calls on Tweens and Tweeners.
* Tweeners by default execute in sequence, so it's easy to create complex chained animations.
* You can bind a Tween to a node. Tween will be removed automatically when the bound node is freed.
2021-06-19 12:08:50 +02:00
Marcel Admiraal
2bafcd3422 Consolidate JSON, JSONParseResults and JSONParser into JSON
Renames JSON.parse_string() to parse()
Renames JSON.decode_data() to stringify()
2021-06-19 08:01:40 +01:00
Hugo Locurcio
aa0976f47c
Expose OS data directory getter methods
This can be used by editor plugins and non-game applications to
store data in the correct directories according to the
XDG Base Directory specification.
2021-06-19 08:56:20 +02:00
PouleyKetchoupp
2bf145fa5d Make LineShape2D normal point upwards by default
Allows line shapes to collide with objects falling from the top by
default, which makes more sense for the most common cases.
2021-06-18 09:14:06 -07:00
Rémi Verschelde
92f20fd70e
Merge pull request from LightningAA/string-valid-integer-to-int 2021-06-18 16:14:14 +02:00
Rémi Verschelde
7aebb8f81c
Merge pull request from aaronfranke/quat-angle-to
Add Quaternion angle_to method
2021-06-18 12:35:58 +02:00
Rémi Verschelde
3fc39954ec
Merge pull request from aaronfranke/multiply-transforms
Allow multiplying Transforms and Basis by numbers
2021-06-18 12:35:14 +02:00
Rémi Verschelde
3e8620c275
Merge pull request from nekomatata/kinematic-collision-rid
Expose collider RID in 2D/3D kinematic collision
2021-06-18 12:32:26 +02:00
Aaron Franke
93b494d4ae
Add Quaternion angle_to method 2021-06-17 23:57:00 -04:00
Michael Alexsander Silva Dias
0ff4095b36 Better format arguments in variant parser 2021-06-18 00:06:40 -03:00
reduz
94d31ac327 Implement animation slice drawing in CanvasItem
* Added a function to ignore subsequent commands if they don't fall within the slice.
* This will be used by the new TileMap to properly provide animated tiles.
2021-06-17 12:42:27 -03:00
Rémi Verschelde
085e1d3c03
Merge pull request from reduz/rename-visibility-notifiers
Rename VisibilityNotifier2D/3D to VisibleOnScreenNotifier2D/3D
2021-06-17 15:14:44 +02:00
Rémi Verschelde
74850b3511
Merge pull request from pycbouh/adjust-graph-edit-zoom-levels
Make zoom limits and step adjustable in `GraphEdit`
2021-06-17 12:12:34 +02:00
reduz
ab2456b740 Rename VisibilityNotifierXD to VisibleOnScreenNotifierXD
* Renames for 2D and 3D
* Class name was confusing, given both 2D and 3D have a "visible" property that is unrelated to actual on-screen visibility.
* New name makes it clear that this is about visibility on screen.
2021-06-16 22:01:39 -03:00
Rémi Verschelde
bb4c464fec
Merge pull request from megalobyte/editor-fix
Fixes for documentation search
2021-06-17 02:25:41 +02:00
reduz
6e98c4cd50 Refactor VisibilityNotifier3D
* This is the 3D counterpart to 
* Implemented a bit different as 3D works using instancing

After merged, both 2D and 3D classes will most likely be renamed in a separate PR to DisplayNotifier2D/3D.
2021-06-16 18:50:39 -03:00
Rémi Verschelde
341cb8da31
Merge pull request from Paulb23/code_edit_code_folding
Move code folding into CodeEdit and hide line hiding API
2021-06-16 20:11:39 +02:00
Gregory Basile
8ab13f8ace Documentation search fixes
Updates rich_text_label so that the built-in documentation can be searched
Previously, it would only find the first result and would not select other results
Renames "_entered" functions to "_submitted"
2021-06-16 09:43:34 -07:00
Lightning_A
b6af2a29eb Rename is_valid_integer() to is_valid_int()
Method from `String`
2021-06-16 10:32:22 -06:00
Rémi Verschelde
48fe9c9794
Merge pull request from timothyqiu/postion
Fix typo in CodeEdit methods
2021-06-16 17:27:40 +02:00
Haoyu Qiu
bf5f13e6a0 Fix typo in CodeEdit methods 2021-06-16 22:15:29 +08:00
reduz
38d164c74b Refactor VisibilityNotifier
* Works from RenderinServer
* Accurately tells when on or off-scren, its no longer approximate.
* VisibilityEnabler also simplified to use the process mode instead.
2021-06-16 10:48:57 -03:00
Yuri Sizov
0a82a669e3 Make zoom limits and step adjustable in GraphEdit 2021-06-16 16:39:18 +03:00
Levi Lindsey
2b7c0cfb34 Update File.store_var description to mention which properties of an object are included. 2021-06-15 20:00:19 -07:00
Aaron Franke
bd6ed3fb09
Allow multiplying Transforms and Basis by numbers 2021-06-15 22:26:29 -04:00
Rémi Verschelde
b574d29ed2
Merge pull request from Calinou/doc-audioeffectpitchshift
Complete documentation for the AudioEffectPitchShift class
2021-06-15 18:25:07 +02:00
Rémi Verschelde
c2ba60f31a
Merge pull request from Calinou/doc-audio-generation
Improve AudioStreamGenerator and AudioEffectSpectrumAnalyzer documentation
2021-06-15 16:55:14 +02:00
Rémi Verschelde
b5da5543db
Merge pull request from KoBeWi/you_changed,_animation
Clarify animation_changed signal
2021-06-15 15:34:51 +02:00
Rémi Verschelde
529bf43134
Merge pull request from Calinou/tweak-physics-fps-property-hint
Tweak the physics FPS property hint to only allow reasonable values
2021-06-15 15:19:24 +02:00
Rémi Verschelde
aa43b5a3f4
Merge pull request from aaronfranke/camera-is-frustum 2021-06-14 19:05:43 +02:00
Rémi Verschelde
07b8fffa7c
Merge pull request from JFonS/fix_unwrap_xform
Rename get_parent_spatial() to get_parent_node_3d()
2021-06-14 18:32:33 +02:00
Aaron Franke
bd40474bd6
Add is_position_in_frustum to Camera3D 2021-06-14 12:03:18 -04:00
jfons
ee702334a1 Rename get_parent_spatial() to get_parent_node3d()
Renames get_parent_spatial() to get_parent_node3d() and changes its
implementation. Before it was not returning a correct pointer if the
node wasn't added to a SceneTree. Now it uses the same implementation as
CanvasItem, which will be correct even for nodes outside a SceneTree.
2021-06-14 14:05:13 +02:00
jfons
3a53ae5d9f Implement visibility range and dependencies.
This commit adds the following properties to GeometryInstance3D: `visibility_range_begin`,
`visibility_range_begin_margin`, `visibility_range_end`, `visibility_range_end_margin`.

Together they define a range in which the GeometryInstance3D will be visible from the camera,
taking hysteresis into account for state changes. A begin or end value of 0 will be ignored,
so the visibility range can be open-ended in both directions.

This commit also adds the `visibility_parent` property to 'Node3D'.
Which defines the visibility parents of the node and its subtree (until
another parent is defined).

Visual instances with a visibility parent will only be visible when the parent, and all of its
ancestors recursively, are hidden because they are closer to the camera than their respective
`visibility_range_begin` thresholds.

Combining visibility ranges and visibility parents users can set-up a quick HLOD system
that shows high detail meshes when close (i.e buildings, trees) and merged low detail meshes
for far away groups (i.e. cities, woods).
2021-06-14 12:17:11 +02:00
Rémi Verschelde
4ebf248e1b
Merge pull request from BastiaanOlij/multiview_stereoscopic
Add stereoscopic rendering through multiview
2021-06-13 15:36:55 +02:00
Bastiaan Olij
15c1a76361 Add stereoscopic rendering through multiview 2021-06-13 22:52:20 +10:00
Rémi Verschelde
ef7974f3d9
Merge pull request from Chaosus/fix_textureregion_errors 2021-06-13 14:44:50 +02:00
kobewi
3911e71a52 Fix some virtual methods 2021-06-13 02:02:39 +02:00
Rémi Verschelde
6d98f84abb
Merge pull request from KoBeWi/bane_of_all_virtual_compatibility
Consistently prefix bound virtual methods with _
2021-06-12 23:00:40 +02:00
Rémi Verschelde
ac73059b56
Merge pull request from aaronfranke/it-is-time
Add a Time singleton
2021-06-12 22:55:25 +02:00
Hugo Locurcio
033985f9c2
Fix duplicate paragraph in ArrayMesh.add_surface_from_arrays() description 2021-06-12 17:48:56 +02:00
Yuri Roubinsky
19afaa0203 Fixed a bunch of connection errors in TextureEditorPlugin 2021-06-12 08:01:02 +03:00
kobewi
7ff135b015 Consistently prefix bound virtual methods with _ 2021-06-12 00:55:52 +02:00
Rémi Verschelde
243be93087
Merge pull request from sygi/bitmap-opaque-polygons
Bitmap opaque_to_polygons documentation
2021-06-11 23:44:47 +02:00
Rémi Verschelde
ab29e3af53
Merge pull request from Calinou/doc-projectsettings-vram-compression-change
Document applying VRAM compression setting changes retroactively
2021-06-11 23:35:12 +02:00
Hugo Locurcio
de39223503
Document applying VRAM compression setting changes retroactively 2021-06-11 22:47:50 +02:00
Rémi Verschelde
530e069bc3
Merge pull request from RandomShaper/reference_to_ref_count
Rename `Reference` to `RefCounted`
2021-06-11 19:46:25 +02:00
Rémi Verschelde
50d1e0ea99
Merge pull request from mortarroad/master-lossless-webp
Implement lossless WebP encoding
2021-06-11 19:34:36 +02:00
Pedro J. Estébanez
04688b92ff Rename Reference to RefCounted 2021-06-11 18:48:42 +02:00
Morris Tabor
1bc1e94208 Implement lossless WebP encoding 2021-06-11 18:46:04 +02:00
Rémi Verschelde
6b0183ec89
Merge pull request from Calinou/rename-string-is-abs-path-method
Rename `String.is_abs_path()` to `String.is_absolute_path()`
2021-06-11 15:58:16 +02:00
Rémi Verschelde
6107d9e180
Merge pull request from Heikki00/34541_to_json_precision
Increased String::num default decimal precision
2021-06-11 15:56:59 +02:00
Aaron Franke
f64fea1b23
Add Time singleton 2021-06-11 09:32:39 -04:00
sygi
a74791ed68 Add documentation to Bitmaps opaque_to_polygons. 2021-06-11 14:06:02 +01:00
Rémi Verschelde
74b3b0db0e
Merge pull request from HaSa1002/docs-lang-7 2021-06-11 14:35:45 +02:00
Johannes
23bc697239
Port code examples to C# (V)
Includes:
 * Variant
 * Viewport

and two fixes in Array that were pointed out in 
VisualScript classes are skipped on purpose.
That is the final commit of the inital code porting to C#. :)
2021-06-11 13:24:11 +02:00
Jonathan Gollnick
6710ad1737
Let var2str display StringName with correct sigil 2021-06-10 16:30:28 -05:00
Marcel Admiraal
b3a962945e Add OS.get_external_data_dir() to get Android external directory 2021-06-10 16:48:17 +01:00
PouleyKetchoupp
0eb51b31d4 Expose collider RID in 2D/3D kinematic collision
Can be useful to access the colliding body information for bodies
created with the physics server directly.
2021-06-09 18:26:00 -07:00
reduz
c66b2651a6 Refactor CommandQueueMT
* RingBuffer had no reason to be in this context
* A single buffer is used that can grow as much as the game needs.

This should make thread loading entirely reliable.
2021-06-09 13:10:49 -03:00
Rémi Verschelde
27cf525713
Merge pull request from Chaosus/vs_particles_shader
Continuation of work on visual particles system
2021-06-09 11:15:41 +02:00
Rémi Verschelde
38ce1fbe84
Merge pull request from nekomatata/floor-max-angle-degrees
Use degrees instead of rad for floor_max_angle property in CharacterBody
2021-06-09 09:00:43 +02:00
PouleyKetchoupp
863560c6ef Use degrees instead of rad for floor_max_angle property in CharacterBody 2021-06-08 16:00:31 -07:00
Hugo Locurcio
8f4ac7bc4a
Tweak the physics FPS property hint to only allow reasonable values
Physics FPS above 1000 cause the whole project to slow down
and are not very practical in the first place (since no CPU currently
available can keep up).
2021-06-08 19:52:48 +02:00
Yuri Roubinsky
4daca0b580 Removes deleted OrenNayar mode from shaders and materials 2021-06-08 15:50:40 +03:00
Rémi Verschelde
abd2349988
Merge pull request from BastiaanOlij/fix_execute_modifications_bind
Fixed mistake in binding of Skeleton2D::execute_modifications
2021-06-08 08:16:38 +02:00
Bastiaan Olij
51ab10d3f4 Fixed mistake in binding of Skeleton2D::execute_modifications 2021-06-08 12:18:33 +10:00
Yuri Roubinsky
f632e36ae5 Continuation of work on visual particles system 2021-06-07 20:33:17 +03:00
Rémi Verschelde
896aa94283
Merge pull request from Faless/mp/4.x_rpc_refactor
[Net] Refactor RPCs, remove RSETs
2021-06-07 17:00:08 +02:00
Rémi Verschelde
d567abd714
Merge pull request from akien-mga/misc-cleanup
Style: Cleanup uses of double spaces between words
2021-06-07 11:57:47 +02:00
Rémi Verschelde
2ad9f7ca61
Merge pull request from madmiraal/rename-collisionobject3d-input_event
Rename CollisionObject3D input_event signal position and normal parameters
2021-06-07 11:08:46 +02:00
Rémi Verschelde
c1c76850cb
Style: Cleanup uses of double spaces between words
Or after punctuation. Tried to leave third-party stuff alone, unless it has
been heavily modified for Godot.
2021-06-07 11:03:08 +02:00
Marcel Admiraal
be26a5e40e Rename CollisionObject3D input_event signal position and normal parameters 2021-06-07 08:52:24 +01:00
Rémi Verschelde
afbabd12f3
Merge pull request from Chaosus/vs_texture_func
Adds `UVFunc` for panning/scaling on UV's to VisualShader's.
2021-06-07 09:38:37 +02:00
Rémi Verschelde
9ddc19d8bd
Merge pull request from SirQuartz/patch-5
Amend the quit() method description in `SceneTree` to include an exception for iOS
2021-06-07 09:26:49 +02:00
Yuri Roubinsky
b2d2822a39 Adds UVFunc for panning/scaling on UV's to VisualShader's. 2021-06-07 08:31:48 +03:00
Rémi Verschelde
aa251c310a
Merge pull request from reduz/rename-gi-classes
Rename GI Classes
2021-06-06 09:50:06 +02:00
Nick Huelin
c63af17a31 Edit "quit()" method description in SceneTree
Updated the `SceneTree.quit()` method to include a note that on iOS this method won't work as apps are expected to be closed via the Home button, not programmatically.

Update Popup.xml
2021-06-05 20:30:36 -04:00
TwistedTwigleg
8aa3c2f091 New and improved IK system for Skeleton2D
This PR and commit adds a new IK system for 2D with the Skeleton2D node
that adds several new IK solvers, a way to control bones in a Skeleton2D
node similar to that in Skeleton3D. It also adds additional changes
and functionality.

This work was sponsored by GSoC 2020 and TwistedTwigleg.

Full list of changes:
* Adds a SkeletonModifier2D resource
  * This resource is the base where all IK code is written and executed
  * Has a function for clamping angles, since it is so commonly used
  * Modifiers are unique when duplicated so it works with instancing
* Adds a SkeletonModifierStack2D resource
  * This resource manages a series of SkeletonModification2Ds
  * This is what the Skeleton2D directly interfaces with to make IK possible
* Adds SkeletonModifier2D resources for LookAt, CCDIK, FABRIK, Jiggle, and TwoBoneIK
  * Each modification is in its own file
  * There is also a SkeletonModifier2D resource that acts as a stack for using multiple stacks together
* Adds a PhysicalBone2D node
  * Works similar to the PhysicalBone3D node, but uses a RigidBody2D node
* Changes to Skeleton2D listed below:
  * Skeleton2D now holds a single SkeletonModificationStack2D for IK
  * Skeleton2D now has a local_pose_override, which overrides the Bone2D position similar to how the overrides work in Skeleton3D
* Changes to Bone2D listed below:
  * The default_length property has been changed to length. Length is the length of the bone to its child bone node
  * New bone_angle property, which is the angle the bone has to its first child bone node
  * Bone2D caches its transform when not modified by IK for IK interpolation purposes
  * Bone2D draws its own editor gizmo, though this is stated to change in the future
* Changes to CanvasItemEditor listed below:
  * Bone2D gizmo drawing code removed
  * The 2D IK code is removed. Now Bone2D is the only bone system for 2D
* Transform2D now has a looking_at function for rotating to face a position
* Two new node notifications: NOTIFICATION_EDITOR_PRE_SAVE and NOTIFICATION_EDITOR_POST_SAVE
  * These notifications only are called in the editor right before and after saving a scene
  * Needed for not saving the IK position when executing IK in the editor
* Documentation for all the changes listed above.
2021-06-05 15:19:51 -04:00
reduz
32625145c8 Rename GI Classes
* GIProbe is now VoxelGI
* BakedLightmap is now LightmapGI

As godot adds more ways to provide GI (as an example, SDFGI in 4.0), the different techniques (which have different pros/cons) need to be properly named to avoid confusion.
2021-06-05 09:28:56 -03:00
Rémi Verschelde
6f7d45d210
Merge pull request from madmiraal/rename-quat
Rename Quat to Quaternion
2021-06-05 13:32:08 +02:00
andriyDev
9f4bf5ec80 Deleted YSort, moved its functionality directly into Node2D.
YSort now has a compatibility alias to Node2D.
Updated TileMap to use the existing Node2D y_sort_enabled property instead
of its own property.
Updated Node2D doc to include the new y_sort_enabled member.
Updated TileMap doc to remove its mention of cell_y_sort.
Deleted YSort doc.
2021-06-05 00:55:25 -07:00
PouleyKetchoupp
23abac9325 Linear velocity cleanup
CharacterBody has a linear_velocity property to replace the argument in
move_and_slide.

StaticBody handles reporting linear/angular velocity correctly when
kinematic motion is used (in 3D, used in vehicle and navigation).
2021-06-04 11:40:36 -07:00
PouleyKetchoupp
b2bd9f4e51 Safe margin cleanup
Safe margin property on CharacterBody only, used as argument in
move_and_collide.

Removed kinematic_safe_margin in 3D physics server, not really useful
and now harmonized with 2D.
2021-06-04 11:40:36 -07:00
PouleyKetchoupp
65822559ce Support for kinematic_motion in StaticBody
Does the same thing as simulate motion from RigidBody in Kinematic mode,
and CharacterBody (previously KinematicBody).

Added support for constant linear/angular velocity with kinematic_motion
in StaticBody, which moves the body in physics.

Updated documentation for StaticBody and CharacterBody to describe their
functionalities more accurately.
2021-06-04 11:40:36 -07:00
PouleyKetchoupp
ee4b756a51 More explanatory names for RigidBody modes
MODE_DYNAMIC instead of MODE_RIGID
MODE_DYNAMIC_LOCKED instead of MODE_CHARACTER

No more special case for sleeping behavior for MODE_DYNAMIC_LOCKED
(MODE_CHARACTER was forcing the body not to sleep, which is redundant
with can_sleep and wasn't done in Bullet).
2021-06-04 11:40:36 -07:00
PouleyKetchoupp
287c3900fd Properties for move_and_slide and remove move_and_slide_with_snap
- snap property to replace move_and_slide_with_snap()
- floor_max_angle, stop_on_slope, infinite_inertia, max_slides,
up_direction properties to replace arguments from move_and_slide()
- up direction now defaults to Vector3.UP and Vector2.UP
2021-06-04 11:40:36 -07:00
PouleyKetchoupp
ba13d23140 KinematicBody split between new CharacterBody and PhysicsBody
PhysicsBody now has methods move_and_collide/test_move and needed
properties for these methods: safe margin, locked axes (3D only).

Moved collision_exceptions from StaticBody to PhysicsBody for 3D
(same as 2D, and conforms to documentation).

RigidBody doesn't have test_motion method anymore, it's now redundant
with PhysicsBody.test_move.
2021-06-04 11:40:36 -07:00
Marcel Admiraal
8acd13a456 Rename Quat to Quaternion 2021-06-04 18:14:32 +01:00
Rémi Verschelde
766c6dbb24
Merge pull request from aaronfranke/accept 2021-06-04 16:13:25 +02:00
Rémi Verschelde
5dc923d386
Merge pull request from aaronfranke/anim-type-tr3d
Rename Animation TYPE_TRANSFORM to TYPE_TRANSFORM3D
2021-06-04 14:11:03 +02:00
Rémi Verschelde
f0b17bcddb
doc: Sync classref after merge of 2021-06-04 11:49:01 +02:00
Marcel Admiraal
a6e44bd16c Rename Node3D's property translation to position 2021-06-04 09:54:52 +01:00
Aaron Franke
125d1a7cd3
Rename Animation TYPE_TRANSFORM to TYPE_TRANSFORM3D 2021-06-03 21:11:54 -04:00
Aaron Franke
bc5c10e0f8
Use a more specific type for AcceptDialog register_text_enter 2021-06-03 19:57:03 -04:00
kobewi
8d0cbded3f Clarify animation_changed signal 2021-06-03 23:17:52 +02:00
Rémi Verschelde
5d9cab3aeb
Merge pull request from aaronfranke/transform3d 2021-06-03 23:07:21 +02:00
Rémi Verschelde
ea2a0b5455
Merge pull request from aaronfranke/mouse-mode-bitwise
Add MOUSE_MODE_CONFINED_HIDDEN to MouseMode enum
2021-06-03 22:00:15 +02:00
Rémi Verschelde
4e4f96f989
Merge pull request from KoBeWi/a&b
Improve sort_custom() description
2021-06-03 21:53:15 +02:00
Rémi Verschelde
a9c6d2a96c
Merge pull request from aaronfranke/clamp
Allow clamping vectors and colors in addition to floats and ints
2021-06-03 21:20:37 +02:00
Aaron Franke
2e13e3ed4a
Allow clamping vectors and colors 2021-06-03 12:05:20 -04:00
Aaron Franke
94bc0bd919
Rename Vector2 clamped to limit_length and add limit_length to Vector3 2021-06-03 12:04:57 -04:00
Aaron Franke
98aa3b669e
Add MOUSE_MODE_CONFINED_HIDDEN
Co-authored-by: Hugo Locurcio <hugo.locurcio@hugo.pro>
2021-06-03 11:44:28 -04:00
kobewi
48f0368ddc Improve sort_custom() description 2021-06-03 17:43:39 +02:00
Yuri Sizov
638cd3b056 Replace get_settings_dir with get_config_dir when fetching configuration paths 2021-06-03 18:24:26 +03:00
Rémi Verschelde
f288a79482
Merge pull request from Calinou/increase-audiostreamplayer3d-unit-size
Increase the default AudioStreamPlayer3D unit size to 10
2021-06-03 16:56:38 +02:00
Hugo Locurcio
5ea1c75d63
Rename String.is_abs_path() to String.is_absolute_path()
This is more consistent with `NodePath.is_absolute()`.
2021-06-03 16:00:06 +02:00
Rémi Verschelde
7ab34e1a96
Merge pull request from Calinou/file-rename-endian-swap
Rename File's `endian_swap` to `big_endian`
2021-06-03 15:19:07 +02:00
Yuri Sizov
21f0961610 Proofread add_*_plugin/remove_*_plugin descriptions in EditorPlugin 2021-06-03 15:00:19 +03:00
Aaron Franke
0ac4051c00
Update documentation for Transform3D 2021-06-03 07:30:01 -04:00
Rémi Verschelde
b80494e633
Merge pull request from RoniPerson/patch-3
Added documentation to some `add_*_plugin` methods
2021-06-03 13:26:33 +02:00
reduz
d95bc3fa67 Use bold fonts in editor
* Labels are now bold
* Categories in trees are bold
* Main editor buttons are bold
* Fixed section folding arrows in inspector
2021-06-02 12:47:57 -03:00
Rémi Verschelde
9990f28d84
Merge pull request from sarchar/multiple-dns-resolves 2021-06-01 18:41:41 +02:00
Paulb23
5c618dd03d Move code folding into CodeEdit and hide line hiding API 2021-06-01 17:07:01 +01:00
Rémi Verschelde
c5f237eaf8
Merge pull request from Paulb23/code_edit_autocomplete 2021-06-01 17:58:19 +02:00
Fabio Alessandrelli
d779b5aa3e [Net] Refactor RPCs, remove RSETs
In this PR:
- Removed rset
- rpc_config can now optionally configure transfer mode
  (reliable/unreliable/ordered) and channel (channels are not actually
  implemented yet.)
- Refactor how the RPC id is computed to minimize the logic in Node and
  scripts that now only needs a single `get_rpc_methods` function.
2021-06-01 17:24:21 +02:00
Paulb23
168427624e Update String/Comment, autocomplete and hints docs 2021-06-01 16:14:03 +01:00
Rémi Verschelde
0286495f59
Merge pull request from groud/restore_tilemap_show_debug
Restore TileMap's debug collision shapes and add navigation.
2021-06-01 12:51:28 +02:00
Rémi Verschelde
4c1d555b9a
Merge pull request from LightningAA/scrollcontainer-ensure-item-visible-4.0
ScrollContainer: Expose `_ensure_focused_visible` to the scripting API and rename it to `ensure_control_visible`
2021-06-01 11:01:40 +02:00
Chuck
dd8fa11ac1 Support multiple address resolution in DNS requests
Add two new functions to the IP class that returns all addresses/aliases associated with a given address.

This is a cherry-pick merge from 010a3433df which was merged in 2.1, and has been updated to build with the latest code.

This merge adds two new methods IP.resolve_hostname_addresses and IP.get_resolve_item_addresses that returns a List of all addresses returned from the DNS request.
2021-06-01 11:24:34 +07:00
Lightning_A
6d5b5ba89f ScrollContainer: Expose _ensure_focused_visible to the API
Was renamed to `ensure_control_visible`
2021-05-31 17:14:57 -10:00
Rémi Verschelde
643da45e16
Merge pull request from KoBeWi/navigational_oblivion
Tweak arguments of list_dir_begin() (skips navigational and hidden files by default)
2021-05-31 14:33:58 +02:00
Rémi Verschelde
c9ce5367e3
Merge pull request from Calinou/doc-resource-duplicate-copy-export-only
Document `Resource.duplicate()` only copying exported variables' values
2021-05-31 13:42:09 +02:00
Rémi Verschelde
4e3d5148ff
Merge pull request from Chaosus/vs_billboard
Added Billboard Node to Visual Shaders
2021-05-31 12:23:01 +02:00
kobewi
bd50006aae Tweak arguments of list_dir_begin() 2021-05-31 12:16:26 +02:00
reduz
0d2e02945b Implement shader caching
* Shader compilation is now cached. Subsequent loads take less than a millisecond.
* Improved game, editor and project manager startup time.
* Editor uses .godot/shader_cache to store shaders.
* Game uses user://shader_cache
* Project manager uses $config_dir/shader_cache
* Options to tweak shader caching in project settings.
* Editor path configuration moved from EditorSettings to new class, EditorPaths, so it can be available early on (before shaders are compiled).
* Reworked ShaderCompilerRD to ensure deterministic shader code creation (else shader may change and cache will be invalidated).
* Added shader compression with SMOLV: https://github.com/aras-p/smol-v
2021-05-31 10:13:09 +02:00
Hugo Locurcio
2ba893e3ce
Document Resource.duplicate() only copying exported variables' values 2021-05-31 00:11:38 +02:00
Heikki Simojoki
09a905ca80
Increase String::num default decimal precision
Fixes 

Renamed MAX_DIGITS to MAX_DECIMALS, since it only changes the
amount of digits after the decimal point.

Increased MAX_DECIMALS to 32, and made String::num use
MAX_DECIMALS consistently. If -1 is passed as
decimal precision to String::num, it now gets changed to
the correct precision based on the number's magnitude,
instead of using printf default(which is 6)

String::num_real also calculates the correct precision now.

Also made the types used in floating-point math more
consistent in a few places.
2021-05-29 11:24:57 -04:00
Yuri Roubinsky
f06db8b778 Added Billboard Node to Visual Shaders 2021-05-28 09:24:06 +03:00
Marcel Admiraal
89e4917214 Update EditorResourcePreview queue_*() documentation 2021-05-26 08:39:40 +01:00
Rémi Verschelde
6a64a98039
Merge pull request from pycbouh/tree-highlight-selected-relationships 2021-05-25 19:42:55 +02:00
Rémi Verschelde
554382d8ad
Merge pull request from pycbouh/i-broke-inspector
Make `EditorFileDialog` only created on demand in `EditorResourcePicker`
2021-05-25 18:07:05 +02:00
Yuri Sizov
9c92e9d849 Add highlight to the relationship lines of selected Tree items 2021-05-25 18:56:06 +03:00
Yuri Sizov
c8551b0eda Make EditorFileDialog only created on demand in EditorResourcePicker 2021-05-25 18:38:19 +03:00
Marcel Admiraal
da5d7db610 Rename File::get_len() get_length() 2021-05-25 11:54:28 +01:00
Gilles Roudière
3b35733b4c Restore a way to show collsion/navigation on TileMap.
Also remove an unused function.
2021-05-25 11:51:15 +02:00
Rémi Verschelde
af03e9c830
Merge pull request from Calinou/screen-orientation-use-enum
Use an enum to represent screen orientation in the Project Settings
2021-05-24 19:53:19 +02:00
Hugo Locurcio
660952a857
Use an enum to represent screen orientation in the Project Settings
- Tweak the setting property hint to be more informative.
- Make the setting a "basic" setting so it appears when Advanced Settings
  is disabled.
- Remove redundant orientation setting in the iOS export preset.
  The project setting is now used (like on Android).

Projects upgrading from a previous version will have to set the
screen orientation again in the Project Settings if it wasn't set
to the default value ("landscape").
2021-05-24 18:53:10 +02:00
Rémi Verschelde
6894559fb7
Merge pull request from madmiraal/fix-doc-2177
Unexpose methods and property for binding children to Bones in Skeleton3D
2021-05-24 18:34:57 +02:00
Marcel Admiraal
65faa12fd3 Unexpose methods and property for binding children to Bones 2021-05-24 16:44:17 +01:00
Rémi Verschelde
62efa30ed2
OS: Better validation of invalid input for get_unix_time_from_datetime
Default missing keys to Unix time 0 (1970-01-01 at 00:00:00 UTC).
Abort if year <= 0, this is not supported by the current algorithm.

Prevents an infinite loop further down.

Fixes .
2021-05-24 13:37:36 +02:00
Rémi Verschelde
9cf1d034a7
Merge pull request from reduz/gpu-particles-2d-2
Support for 2D particles to collide against SDF
2021-05-24 12:49:34 +02:00
reduz
789713b008 Support for 2D particles to collide against SDF
-Added SDF collision support for 2D particles
-Changed the SDF generation to be fully signed
2021-05-23 16:43:36 -03:00
kobewi
5605454981 Change frame_coords to Vector2i 2021-05-23 21:38:27 +02:00
Hugo Locurcio
80f4e407b2
Add a keyboard shortcut to select the word under cursor in TextEdit
This also acts as a general-purpose "deselect" shortcut since pressing
it a second time will deselect text.

This is available both in the script editor and in TextEdit fields
in use, both in the editor and projects.

The Duplicate Line script editor shortcut was moved to Ctrl + Shift + D
since it conflicts with the new shortcut (Ctrl + D). The rationale for
doing so is that Duplicate Line is a less commonly used action, and
its behavior can be replicated by copying and pasting the current line
anyway. (With no selection active, the whole line will be copied.)
2021-05-22 23:47:43 +02:00
Paulb23
00e10a842f Add custom background line colour to TextEdit and remove marked lines 2021-05-22 14:41:55 +01:00
Rémi Verschelde
3b3a55ca04
Merge pull request from groud/fix_tilemap_y_sort
Fixes TileSet Y-sort not working and TileSet not saving correctly
2021-05-22 00:26:36 +02:00
Fabio Alessandrelli
fdf66a21f1 [HTML5] Add easy to use download API.
New `JavaScript.download_buffer` method to create a prompt that let the
user download a file.
2021-05-21 15:31:23 +02:00
Rémi Verschelde
d3ba922ba8
Merge pull request from pycbouh/editor-reuse-resource-picker
Use `EditorResourcePicker` in the Inspector
2021-05-21 12:03:27 +02:00
Gilles Roudière
7d80480b72 Fixes TileSet Y-sort not working and TileSet not saving correctly 2021-05-21 10:13:37 +02:00
Tomasz Chabora
b1859510ab Change behavior of String.right 2021-05-20 23:07:57 +02:00
Rémi Verschelde
aa5552278d
Merge pull request from Faless/js/4.x_interfaces
[HTML5] Implement Godot <-> JavaScript interface.
2021-05-20 17:13:02 +02:00
Hugo Locurcio
12462d9055
Rename File's endian_swap to big_endian
This new name is more consistent with ResourceSaver and StreamPeer.
2021-05-20 14:58:03 +02:00
Fabio Alessandrelli
9811035ebf [HTML5] Implement Godot <-> JavaScript interface. 2021-05-20 14:33:18 +02:00
Rémi Verschelde
a6a75e2c09
Merge pull request from groud/tilemap_scenes_painting
Implement scenes tiles in TileMaps
2021-05-20 14:32:40 +02:00
Rémi Verschelde
db4cf63482
Merge pull request from JohnM666/fix-basis-variant-initialization
Fix RigidBody3D.get_inverse_inertia_tensor() crash
2021-05-20 14:05:29 +02:00
Gilles Roudière
d8bb53cd21 Implement scenes tiles in TileMaps 2021-05-20 13:12:03 +02:00
Rémi Verschelde
4219a4cb6f
Fix typos with codespell
Using codespell 2.0.0.

Method:
```
$ cat > ../godot-word-whitelist.txt << EOF
ang
curvelinear
dof
doubleclick
fave
findn
GIRD
leapyear
lod
merchantibility
nd
numer
ois
ony
que
seeked
synching
te
uint
unselect
webp
EOF

$ codespell -w -q 3 -I ../godot-word-whitelist.txt --skip="./thirdparty,*.po"
$ git diff // undo unwanted changes
```
2021-05-20 12:38:56 +02:00
Fabio Alessandrelli
e858f7c2ea [Doc] Remove reference to UNIX sockets in StreamPeer.
That class can be used as a base to implement them, but there is no
actual implementation for it in Godot.
2021-05-20 11:25:47 +02:00
JohnM666
b19544e91d Fix Executing RigidBody3D.get_inverse_inertia_tensor() crashes Godot 2021-05-20 10:46:24 +03:00
kleonc
99173fb0d7 Document valid range of Node2D.z_index 2021-05-20 01:22:13 +02:00
Yuri Sizov
e9206a55ea Use EditorResourcePicker in the Inspector 2021-05-19 21:39:15 +03:00
Rémi Verschelde
896d84bd15
Merge pull request from Rhathe/set_iterations_master
Enable setting of collision iterations in PhysicsServer2D
2021-05-19 19:47:59 +02:00
Rhathe
88b1802132 Enable setting of collision iterations in PhysicsServer2D
This allows fine-tuning of collision iterations for more
accurate collision physics with a performance cost.
2021-05-19 10:54:10 -04:00
Marcel Admiraal
7104229a85 Fix InputMap.action_erase_event() failing to erase events correctly. 2021-05-19 11:43:02 +01:00
Rémi Verschelde
d0aaf4a1fd
Merge pull request from Calinou/viewport-use-nonzero-default-size
Use a non-zero default size for SubViewports
2021-05-19 10:12:42 +02:00
Rémi Verschelde
c340ed6394
Merge pull request from madmiraal/fix-12215
Return RID instead of Object id in area-body_shape_entered-exited signals.
2021-05-18 20:00:48 +02:00
Hugo Locurcio
bbdfb715a6
Use a non-zero default size for SubViewports
This makes viewports visible out of the box.
2021-05-18 18:51:39 +02:00
Aaron Franke
ab674a41aa
Area: Uncap the range for gravity and change the slider hints 2021-05-18 07:17:11 -04:00
Rémi Verschelde
b2fb119c53
Merge pull request from Calinou/increase-default-2d-gravity 2021-05-18 10:54:47 +02:00
Rémi Verschelde
66dac8bda0
Merge pull request from pycbouh/control-expose-theme-type 2021-05-18 10:52:51 +02:00
Rémi Verschelde
95bb7207f3
Merge pull request from trollodel/TreeItem+
Improve TreeItem API and allow to move nodes
2021-05-18 10:49:45 +02:00
Rémi Verschelde
510030fedc
Merge pull request from sent44/textedit
Expose get_total_visible_rows method to GDScript
2021-05-18 09:06:24 +02:00
trollodel
bca0d36fe6 Improve TreeItem API and allow to move nodes 2021-05-17 22:06:46 +02:00
Rémi Verschelde
b3e3f0e34c
Merge pull request from Calinou/textedit-alt-scroll-faster
Scroll faster when holding Alt in TextEdit (and script editor)
2021-05-17 17:38:18 +02:00
Rémi Verschelde
6c367f8e0d
Merge pull request from LightningAA/control-to-ctrl-4.0 2021-05-17 17:38:02 +02:00
Rémi Verschelde
fead3fff17
Merge pull request from pycbouh/editor-resource-picker 2021-05-17 17:33:59 +02:00
Yuri Sizov
9eaa139c1f Add theme_custom_type property to Control and Window 2021-05-17 17:20:42 +03:00
pycbouh
e8f15f7996 Add EditorResourcePicker control based on the Inspector editor for Resources
Fix formatting for the docs
2021-05-17 15:26:22 +03:00
Rémi Verschelde
37c3b33253
Merge pull request from sent44/scripteditor_get_codeedit
Add `get_base_editor` to `ScriptEditorBase`
2021-05-16 23:06:01 +02:00
Rémi Verschelde
8e7b17429e
Merge pull request from AnilBK/graph-node-setters
Added GraphNode missing setters.
2021-05-16 17:37:12 +02:00
Hugo Locurcio
c872819be6
Improve AudioStreamGenerator and AudioEffectSpectrumAnalyzer documentation
- Mention audio sample rate caveats in other classes where relevant.
2021-05-15 23:23:06 +02:00
Hugo Locurcio
6be32d8cbc
Complete documentation for the AudioEffectPitchShift class 2021-05-15 23:20:48 +02:00
sent44
2b30728ebf Add get_base_editor to ScriptEditorBase 2021-05-15 18:47:00 +07:00
Rémi Verschelde
a3dd18b12e
Merge pull request from aaronfranke/tilemap-vec2i
Update TileMap to use Vector2i
2021-05-13 14:48:16 +02:00
Anilforextra
2c3c3b2829 -Added missing setters to GraphNode.
-Improved various GraphNode documentation.
2021-05-13 17:45:07 +05:45
Hugo Locurcio
5895479a5e
Rename the audio FFT_Size enum to FFTSize for consistency 2021-05-13 02:42:49 +02:00
PouleyKetchoupp
3877ed73d0 Dynamic BVH broadphase in 2D & 3D Godot Physics
Port lawnjelly's dynamic BVH implementation from 3.x to be used in
both 2D and 3D broadphases.

Removed alternative broadphase implementations which are not meant to be
used anymore since they are much slower.

Includes changes in Rect2, Vector2, Vector3 that help with the template
implementation of the dynamic BVH by uniformizing the interface between
2D and 3D math.

Co-authored-by: lawnjelly <lawnjelly@gmail.com>
2021-05-10 16:28:55 -07:00
Hugo Locurcio
cf1cf6c6eb
Scroll faster when holding Alt in TextEdit (and script editor)
This feature is inspired by a similar feature found in
Visual Studio Code.
2021-05-10 01:27:54 +02:00
Hugo Locurcio
7350f90c57
Document caveats of OS.get_unique_id() 2021-05-09 13:23:53 +02:00
TwistedTwigleg
446460eaf9 Fixes the SkeletonIK twisting issue by using the skeleton global pose without overrides 2021-05-08 16:11:45 -04:00
Aaron Franke
75e3f6b732
Update TileMap to use Vector2i instead of two ints 2021-05-07 16:20:02 -04:00
Lightning_A
97fecd1b69 Rename "Control" key to "Ctrl" and add "_pressed" suffix to all InputEventWithModifiers properties/methods 2021-05-07 14:00:50 -06:00
Rémi Verschelde
ee44982c45
Merge pull request from akien-mga/remove-native-video-api
OS: Remove native video API only implemented on iOS
2021-05-07 21:22:41 +02:00
Rémi Verschelde
c3f7465b7e
Merge pull request from groud/tiles_squashed
TileSet and TileMap rework (squashed)
2021-05-07 20:46:06 +02:00
Rémi Verschelde
35ec0e9be7
OS: Remove native video API only implemented on iOS
See discussion in , it was only implemented on iOS and even that
implementation was fairly limited. This would best be provided as plugins
for Android and iOS without cluttering the shared OS API.
2021-05-07 20:40:24 +02:00
Gilles Roudière
a3dda2df85 Rework the TileSet resource and TileMap nodes:
- Move most properties from TileMap to TileSet,
- Make TileSet more flexible, supporting more feature (several
  collision layers, etc...),
- Fusion both the TileMap and TileSet editor,
- Implement TileSetSources, and thus a new way to index tiles in the TileSet,
- Rework the TileSet and TileMap editors completely,
- Implement an editor zoom widget (and use it in several places)
2021-05-07 18:06:17 +02:00
sent44
7bb12b0d6d Expose get_total_visible_rows as get_visible_line_count 2021-05-07 20:54:05 +07:00
kobewi
a95c953c48 Improve docs for filter map and reduce 2021-05-07 14:09:44 +02:00
Rémi Verschelde
bcbd480c32
Merge pull request from dalexeev/color-consts
Rename color constants (alternative)
2021-05-07 12:22:49 +02:00
Rémi Verschelde
3a5310ccb9
Merge pull request from Calinou/main-run-args-command-placeholder
Implement the `%command%` placeholder in the Main Run Args setting
2021-05-07 00:43:45 +02:00
Hugo Locurcio
ce4aa07276
Implement the %command% placeholder in the Main Run Args setting
This can be used to tell Godot to run an executable that will run Godot
rather than running Godot directly. This is useful to make Godot start
on the dedicated GPU when using a NVIDIA Optimus setup on Linux:
`prime-run %command%`

The `editor/run/main_run_args` setting declaration was moved to make it
visible in the ProjectSettings documentation.
2021-05-07 00:05:02 +02:00
Rémi Verschelde
89e6f6ca2e
Merge pull request from groud/add_buttongroup_pressed_signal
Adds a pressed signal to ButtonGroup
2021-05-06 23:20:33 +02:00
Rémi Verschelde
01f80201bf
Merge pull request from KoBeWi/FMR
Add filter, map and reduce to Array
2021-05-06 20:44:01 +02:00
Gilles Roudière
323f176915 Adds a pressed signal to ButtonGroup 2021-05-06 12:16:27 +02:00
Hugo Locurcio
4a28f7e44f
Increase the default 2D gravity to 980.0
This makes 2D RigidBody physics feel less floaty out of the box.

This closes https://github.com/godotengine/godot-proposals/issues/98.
2021-05-05 22:49:06 -04:00
Hugo Locurcio
3f078c99f6
Rename IP_Unix, IP_Address and TCP_Server to remove underscores 2021-05-06 02:52:01 +02:00
Hugo Locurcio
87d107bb11
Increase the default AudioStreamPlayer3D unit size to 10
This makes it easier to hear sound while setting up the node.

Since this changes the default value, this may break existing projects
slightly.

This also tweaks the Unit Size editor property hint for better usability.

See discussion in .
2021-05-06 02:45:46 +02:00
Hugo Locurcio
b90adec417
Improve the AudioStreamPlayer(2D/3D) class descriptions 2021-05-05 20:39:36 +02:00
Tomasz Chabora
c50acc7339 Add filter, map and reduce to Array 2021-05-05 15:54:57 +02:00
Rémi Verschelde
e144ff0445
Merge pull request from nekomatata/expose-physics-debug-shape
Expose get_debug_mesh in Shape3D to scripting API
2021-05-05 15:17:36 +02:00
Rémi Verschelde
d1801f976f
Merge pull request from Calinou/doc-file-open-compressed-godot-only
Document that `File.open_compressed()` can only open files saved by Godot
2021-05-05 15:16:23 +02:00
Rémi Verschelde
c9e874b62d
Merge pull request from akien-mga/posmod-int64_t
Re-bind posmod, use int64_t instead of int
2021-05-04 15:15:52 +02:00
Rémi Verschelde
ea9cab3e76
Merge pull request from reduz/add-rpc-to-callable
Add RPC support to Callable
2021-05-04 14:07:21 +02:00
Rémi Verschelde
e196733e88
Re-bind posmod, use int64_t instead of int
Fixes , fixes .
The binding was missed when moving GDScript built-in to Global Scope it seems.

Co-authored-by: kleonc <9283098+kleonc@users.noreply.github.com>
2021-05-04 13:25:08 +02:00
Rémi Verschelde
4e7ca279fc
Merge pull request from aaronfranke/doubleclick
Rename `doubleclick` to `double_click`
2021-05-04 13:12:17 +02:00
Rémi Verschelde
9a8ef54b5a
Merge pull request from LightningAA/scrollcontainer-hide-scrollbars-4.0
Add the ability to hide `ScrollContainer`'s scrollbars
2021-05-04 12:58:12 +02:00
Rémi Verschelde
bee7f8ff23
Merge pull request from groud/undoredo_dependencies
Allow to hook a callback into inspector's undo/redo
2021-05-04 11:26:55 +02:00
Aaron Franke
0de9a7d803
Rename doubleclick to double_click 2021-05-04 04:38:08 -04:00
Gilles Roudière
b46672db72 Provide a way to hook into Inspectors UndoRedo. 2021-05-04 09:55:22 +02:00
reduz
c76acf6890 Add RPC to Callable
-Up to each scripting language to implement this
-If not supported for the function, it will just error when you try to call
2021-05-03 19:21:37 -03:00
Rémi Verschelde
a8f45efa43
doc: Sync classref with current source 2021-05-03 20:42:21 +02:00
Bastiaan Olij
58ff0dac1a Create mobile renderer 2021-05-03 21:54:11 +10:00
Hugo Locurcio
0eb9b414c1
Add Engine.print_error_messages property to disable printing errors
This can be used during unit test suite runs to hide error and warning
messages.

Care should be taken when using this feature, as it can hide important
information if used wrongly.
2021-05-01 23:11:08 +02:00
Rémi Verschelde
33a0fb6e02
Merge pull request from madmiraal/fix-48242-docs
Fix documentation following implementation of particle trails
2021-05-01 14:51:29 +02:00
Marcel Admiraal
fcf8071ec9 Fix documentation following implementation of particle trails 2021-05-01 13:12:31 +01:00
Rémi Verschelde
f3c1190dc9
Merge pull request from BastiaanOlij/xr_viewport
Move XR flag from subviewport into viewport
2021-05-01 12:54:35 +02:00
Bastiaan Olij
e0bdf40d15 Move XR flag from subviewport into viewport 2021-05-01 19:58:11 +10:00
Hugo Locurcio
5f098d6db6
Document that File.open_compressed() can only open files saved by Godot 2021-05-01 01:24:01 +02:00
PouleyKetchoupp
7352a4c0d9 Expose get_debug_mesh in Shape3D to scripting API
Can be useful for custom drawing of physics shapes without having to add
a collision object node to the tree.
2021-04-29 18:18:39 -07:00
Hugo Locurcio
7516ff3805
Document that SceneTree.call_group() is deferred 2021-04-29 23:01:41 +02:00
Rémi Verschelde
28f56e2cbf
Merge pull request from Calinou/doc-standardmaterial3d-rim-unshaded
Document that clearcoat/rim lighting is not visible on unshaded materials
2021-04-29 13:36:40 +02:00
Rémi Verschelde
cab5064f20
doc: Sync classref with current source
And typo fix from https://github.com/godotengine/godot-docs/pull/4882.
2021-04-29 12:11:40 +02:00
Rémi Verschelde
418fe155f9
Merge pull request from akien-mga/remove-largetexture
Remove obsolete LargeTexture, it's no longer useful since 3.x
2021-04-29 09:45:06 +02:00
Hugo Locurcio
126ea92a64
Document that clearcoat/rim lighting is not visible on unshaded materials 2021-04-28 17:38:44 +02:00
Lightning_A
bb6bdcee1a Add the ability to hide scrollcontainer's scrollbars 2021-04-28 09:28:31 -06:00
Rémi Verschelde
9e9ac9f6ad
Merge pull request from DarknessCatt/master
Add fill method to Arrays and PackedArrays
2021-04-28 16:52:31 +02:00
Rémi Verschelde
0e93a1df79
Remove obsolete LargeTexture, it's no longer useful since 3.x
It existed in early Godot releases to allow working around hardware limitations
on max texture sizes (e.g. hardware limits of 1024x1024 pixels).

Nowadays the max texture size supported natively by Godot is 16384x16384, and
even low end mobile hardware should support at least 4096x4096.

The LargeTexture implementation is basically just an array with offsets, sizes
and textures and should be easy to replicate with a custom Texture resource if
needed - solving most of its bugs on the way as the implementation removed here
has various unimplemented or incomplete methods.
2021-04-28 15:51:55 +02:00
Florian Kothmeier
054d8852b9
Add error_string function 2021-04-27 22:02:35 +02:00
Rémi Verschelde
0582cefcbb
Merge pull request from akien-mga/tabs-panel-style-unused
Tabs: Remove unused 'panel' stylebox from default theme
2021-04-27 19:33:40 +02:00
Rémi Verschelde
95cfce661b
Merge pull request from JFonS/occlusion_culling 2021-04-27 19:07:12 +02:00
Rémi Verschelde
cd8d321961
Tabs: Remove unused 'panel' stylebox from default theme
Cf. https://github.com/godotengine/godot/issues/37875#issuecomment-625297308.
2021-04-27 17:36:53 +02:00
Rémi Verschelde
72bd64c1d5
Merge pull request from Faless/feature/network-local-port-salvaged 2021-04-27 15:04:30 +02:00
Rémi Verschelde
e0c1cc702c
Merge pull request from asheraryam/convex-decompose-master
Create GDScript bindings for creating multiple-convex collision bodies [4.0]
2021-04-27 10:05:12 +02:00
asheraryam
ecfbb0fd28 Expose creating multiple-convex-collision static bodies to GDScript 2021-04-27 06:56:04 +03:00
Rémi Verschelde
473a660241
Merge pull request from Calinou/doc-project-settings-feature-tags
Link to Feature tags more explicitly in ProjectSettings documentation
2021-04-23 22:04:54 +02:00
jfons
4d9d99bb82 Implement occlusion culling
Added an occlusion culling system with support for static occluder meshes.
It can be enabled via `Project Settings > Rendering > Occlusion Culling > Use Occlusion Culling`.

Occluders are defined via the new `Occluder3D` resource and instanced using the new
`OccluderInstance3D` node. The occluders can also be automatically baked from a
scene using the built-in editor plugin.
2021-04-23 21:45:23 +02:00
Rémi Verschelde
ff6f384618
Merge pull request from kleonc/args-master
Docs: Minor argument names fix
2021-04-23 17:13:09 +02:00
Rémi Verschelde
1a3d60944f
Merge pull request from rafallus/fix/rigidbody-crash
Fix crash on RigidBody _direct_state_changed
2021-04-23 16:02:26 +02:00
kleonc
d13cfc8d62 Docs: Minor argument names fix 2021-04-23 15:46:51 +02:00
rafallus
cfa06f0f76 Unexpose _direct_state_changed in PhysicsBody
Removed _direct_state_changed bindings
Affects 2D and 3D nodes
Callbacks now use Callable
Tests were changed accordingly
2021-04-22 23:20:58 -05:00
Tomasz Chabora
497c3f97b2 Call randomize() automatically 2021-04-22 21:13:43 +02:00
Hugo Locurcio
188bd5638c
Link to Feature tags more explicitly in ProjectSettings documentation 2021-04-22 20:07:54 +02:00
bruvzg
b56241f22f
ICU: Update to version 69.1, improve ICU data export process. 2021-04-22 16:56:53 +03:00
Matheus Lima Cunha
efd27a63c1 Add fill method to Arrays and PackedArrays 2021-04-21 11:33:53 -03:00
Hugo Locurcio
17591fc6a1
Improve the Engine.editor_hint property documentation 2021-04-20 22:56:44 +02:00
Rémi Verschelde
b06116d62f
Merge pull request from madmiraal/fix-26680
Move collision layer and mask into CollisionObject.
2021-04-20 21:07:32 +02:00
Rémi Verschelde
8a8dd9cef4
Merge pull request from Calinou/videoplayer-stream-position-warning
Print a warning when trying to seek in VideoPlayer
2021-04-20 20:07:13 +02:00
Rémi Verschelde
399f55751e
Merge pull request from smix8/doc_animationnodetimeseek
Document AnimationNodeTimeSeek with clarified usage and code example
2021-04-20 20:05:08 +02:00
Rémi Verschelde
0c995a9790
Merge pull request from RoniPerson/patch-4
changed description of `merge_polygons`
2021-04-20 20:04:13 +02:00
Rémi Verschelde
d85fa25318
Merge pull request from Calinou/doc-astar-thread-safety
Document `AStar.get_point_path()` not being thread-safe
2021-04-20 20:03:24 +02:00
Rémi Verschelde
fdf041a466
Merge pull request from nekomatata/heightmap-support
Heightmap collision shape support in Godot Physics
2021-04-20 17:40:28 +02:00