Commit Graph

3260 Commits

Author SHA1 Message Date
Hugo Locurcio cbe6c25c6b
Rename polygon editor settings for better display in the Editor Settings 2021-08-23 17:59:19 +02:00
Tomasz Chabora b1db36e65d Allow to load multiple animations at once 2021-08-23 17:24:02 +02:00
reduz 5cecdfa8af Entirely removes BIND_VMETHOD in favor of GDVIRTUAL
* `_gui_input`, `_input`, `_unhandled_input` and `_unhandled_key_input` are now regular C++ virutal functions.
* Everything else converted to GDVIRTUAL
* BIND_VMETHOD is gone, always use the new syntax from now on.

Creating `_gui_input` method and using the binder to register events will no longer work, simply override the virtual function now.
2021-08-23 08:10:13 -03:00
reduz 3682978aee Replace BIND_VMETHOD by new GDVIRTUAL syntax
* New syntax is type safe.
* New syntax allows for type safe virtuals in native extensions.
* New syntax permits extremely fast calling.

Note: Everything was replaced where possible except for `_gui_input` `_input` and `_unhandled_input`.
These will require API rework on a separate PR as they work different than the rest of the functions.

Added a new method flag METHOD_FLAG_OBJECT_CORE, used internally. Allows to not dump the core virtuals like `_notification` to the json API, since each language will implement those as it is best fits.
2021-08-22 08:23:58 -03:00
jmb462 54de7114c5 Add missing SNAME macro optimization for StringName in some functions 2021-08-20 14:50:24 +02:00
Rémi Verschelde 5b30685976
Merge pull request #51583 from nekomatata/capsule-height-radius-setters
Fix capsule height/radius setters with linked properties
2021-08-19 20:48:54 +02:00
PouleyKetchoupp 645bc94bfc Fix capsule height/radius setters with linked properties
Capsule height and radius setters can modify each other, rather than
using clamping, to avoid cases where values are not set correctly when
loading a scene (depending on the order of properties).

Inspector undo/redo:
Added the possibility to link properties together in the editor, so
they can be undone together, for cases where a property can modify
another one.

Gizmo undo/redo:
Capsule handles pass both radius and height values so they can be undone
together.
2021-08-19 10:31:19 -07:00
fabriceci f871f13340 Avoid a crash when an node of the AnimationTree is invalid 2021-08-19 16:05:35 +02:00
Rémi Verschelde e1e01427cc
Merge pull request #50411 from Chaosus/vs_filter
Added port type content filter on port dragging in visual shader
2021-08-18 20:43:03 +02:00
Rémi Verschelde de7b6d13eb
Merge pull request #51627 from mhilbrunner/todo-for-neikeq 2021-08-18 20:13:50 +02:00
Yuri Roubinsky f653cc13b9 Added port type content filter on port dragging in visual shader 2021-08-18 21:13:04 +03:00
Paulb23 ac39022dbc Fix visual shader keyword colour 2021-08-18 17:56:04 +01:00
Hugo Locurcio a139e58f8c
Add comments at the top of each built-in shader to ease debugging
When a shader error is printed about a built-in shader, the origin
of the shader will now be recognizable immediately by looking at
the top of the printed shader code.
2021-08-18 03:09:22 +02:00
Aaron Franke e5d85ac751
Fixes to tests for Variant and Geometry3D 2021-08-17 16:46:08 -05:00
Rémi Verschelde aa3909cf54
Merge pull request #51729 from yjh0502/ext-reload-master
Auto-reload scripts with external editor
2021-08-17 19:42:44 +02:00
Max Hilbrunner 5161c97c9c Remove underscore hacks
Way less cruft. :)

Co-authored-by: Ignacio Roldán Etcheverry <neikeq@users.noreply.github.com>
2021-08-17 16:10:28 +02:00
Haoyu Qiu 16c2d4ef22 Improve Undo/Redo menu items
* Make Undo/Redo menu items disabled when clicking it does nothing.
    * Context menu of `TextEdit`
    * Context menu of `LineEdit`
    * Editor's Scene menu
    * Script editor's Edit menu and context menu (for Script and Text)
* Make editor undo/redo log messages translatable.
* Mark `UndoRedo`'s `has_{un,re}do()` methods as `const`.
* Expose `TextEdit`'s `has_{un,re}do()` to scripts since `{un,re}do()` are already available.
2021-08-17 21:11:10 +08:00
Jihyun Yu 1c61245990 Auto-reload scripts with external editor 2021-08-17 21:43:45 +09:00
Rémi Verschelde 1c737fe7b5
Merge pull request #51761 from RevoluPowered/fix-undefined-behaviour-editor-grid
Fix editor grid perspective undefined behaviour
2021-08-17 14:04:47 +02:00
Rémi Verschelde 45344c6a02
Merge pull request #51651 from pycbouh/editor-merge-custom-theme
Add support for partial custom editor themes
2021-08-17 13:13:08 +02:00
Gordon MacPherson 5f96e607fb Fix editor grid perspective undefined behaviour
Initialise the enum value
2021-08-17 00:37:27 +01:00
Rémi Verschelde cfdac0973c
Merge pull request #51698 from Paulb23/text-editor-settings
Reorganise text editor settings
2021-08-16 18:48:58 +02:00
Rémi Verschelde d673353a58
Merge pull request #51736 from JFonS/minor_fixes_n3ep
Minor fixes to Node3DEditorPlugin
2021-08-16 18:31:22 +02:00
Paulb23 bcfc591f86 Reorganise text editor settings 2021-08-16 17:18:49 +01:00
Rémi Verschelde fff9a451a1
Merge pull request #51368 from TwistedTwigleg/GSOC_2020_Working_Branch_IK_SQUASHED
New and improved IK system for Skeleton3D - Squashed!
2021-08-16 15:37:17 +02:00
jfons 49361034f9 Minor fixes to Node3DEditorPlugin
* Change EditorNode3D::update_all_gizmos() to start at the edited scene
  root instead of the whole editor root.
* Call update_all_gizmos() only once at start instead of evrey time a
  gizmo plugin is added.
* Add missing null check.
2021-08-16 12:59:12 +02:00
Rémi Verschelde 84f1d161a7
Merge pull request #50181 from Calinou/gpu-particles-improve-visibility-generation
Improve visibility rect/AABB generation usability in GPUParticles
2021-08-16 12:45:00 +02:00
Rémi Verschelde 3e7a545ecf
Merge pull request #51030 from kleonc/sprite_frames-preserve-src-atlas_texture-margins
SpriteFramesEditor: preserve source texture margins when creating frames from AtlasTexture
2021-08-16 10:37:40 +02:00
Hugo Locurcio 1bd214258e
Improve visibility rect/AABB generation usability in GPUParticles
- Don't display the time dialog if the automatically calculated
  generation time is short enough.
- Clarify the purpose of waiting in the progress dialog.
2021-08-16 05:56:07 +02:00
TwistedTwigleg 5ffed49907 New and improved IK system for Skeleton3D
This PR and commit adds a new IK system for 3D with the Skeleton3D node
that adds several new IK solvers, as well as additional changes and functionality
for making bone manipulation in Godot easier.

This work was sponsored by GSoC 2020 and TwistedTwigleg

Full list of changes:
* Adds a SkeletonModification3D resource
  * This resource is the base where all IK code is written and executed
* Adds a SkeletonModificationStack3D resource
  * This node oversees the execution of the modifications and acts as a bridge of sorts for the modifications to the Skeleton3D node
* Adds SkeletonModification3D resources for LookAt, CCDIK, FABRIK, Jiggle, and TwoBoneIK
  * Each modification is in it's own file
* Several changes to Skeletons, listed below:
  * Added local_pose_override, which acts just like global_pose_override but keeps bone-child relationships intract
    * So if you move a bone using local_pose_override, all of the bones that are children will also be moved. This is different than global_pose_override, which only affects the individual bone
  * Internally bones keep track of their children. This removes the need of a processing list, makes it possible to update just a few select bones at a time, and makes it easier to traverse down the bone chain
  * Additional functions added for converting from world transform to global poses, global poses to local poses, and all the same changes but backwards (local to global, global to world). This makes it much easier to work with bone transforms without needing to think too much about how to convert them.
  * New signal added, bone_pose_changed, that can be used to tell if a specific bone changed its transform. Needed for BoneAttachment3D
  * Added functions for getting the forward position of a bone
* BoneAttachment3D node refactored heavily
  * BoneAttachment3D node is now completely standalone in its functionality.
    * This makes the code easier and less interconnected, as well as allowing them to function properly without being direct children of Skeleton3D nodes
  * BoneAttachment3D now can be set either using the index or the bone name.
  * BoneAttachment3D nodes can now set the bone transform instead of just following it. This is disabled by default for compatibility
  * BoneAttachment3D now shows a warning when not configured correctly
* Added rotate_to_align function in Basis
* Added class reference documentation for all changes
2021-08-14 15:57:00 -04:00
Rémi Verschelde fae0296378
Merge pull request #51657 from timothyqiu/view-name
Fix i18n of 3D view name
2021-08-14 18:02:07 +02:00
Rémi Verschelde b9b6102b91
Merge pull request #51660 from AnilBK/use-short-functions
Use get_global_* functions instead of using transforms.
2021-08-14 12:17:53 +02:00
Anilforextra c390f0515d Use get_global_* functions instead of using transforms. 2021-08-14 14:01:57 +05:45
Rémi Verschelde 59879447a3
Merge pull request #51636 from Calinou/rename-lineshape2d
Rename LineShape2D to WorldMarginShape2D
2021-08-14 09:36:16 +02:00
Haoyu Qiu 42579a346b Fix i18n of 3D view name
Make the full view name translatable as a whole instead of combining
from sub-strings.
2021-08-14 15:24:02 +08:00
Hugo Locurcio 8e3f71d750
Rename LineShape2D to WorldMarginShape2D
The new name makes it more obvious that it acts as an infinite plane,
and is consistent with its 3D counterpart (WorldMarginShape3D).
2021-08-14 03:12:13 +02:00
Yuri Sizov 855cfe1559 Add support for partial custom editor themes 2021-08-14 02:03:07 +03:00
Rémi Verschelde 81512a3732
Style: Cleanup code using `text_editor/completion/use_single_quotes` 2021-08-13 21:27:57 +02:00
Aaron Franke 2cabdcd1a0
Explicit 2D naming and some organization in texture region editor plugin 2021-08-13 11:18:49 -05:00
Haoyu Qiu dae51cc6b3 Allow dropping property path into script editor 2021-08-13 23:04:48 +08:00
Rémi Verschelde 62c6347a27
Merge pull request #51035 from foxydevloper/drag-drop-more-support
Improve drag and dropping files into viewport by supporting more types
2021-08-13 14:57:10 +02:00
Rémi Verschelde 1e0c6db621
Merge pull request #49523 from foxydevloper/improve-shortcut-naming
Improve naming of a couple shortcuts
2021-08-13 14:50:03 +02:00
Rémi Verschelde 24ec20414a
Merge pull request #50114 from Chaosus/vs_constants
Few improvements for constants in visual shader
2021-08-13 14:45:13 +02:00
Rémi Verschelde f0e420e981
Merge pull request #51519 from Chaosus/vs_transform_operator
Changed `TransformMult` node to `TransformOp` in visual shaders
2021-08-13 14:44:14 +02:00
Aaron Franke eb4902a455
Fix some unnecessary includes 2021-08-13 00:27:38 -05:00
Yuri Roubinsky b2b33ce4f6
Merge pull request #51572 from Chaosus/vs_fix_transform_instance
Fix printing error about unsupported modifier on `TransformUniform`
2021-08-12 21:23:18 +03:00
Yuri Roubinsky c43b7c113f Fix printing error about unsupported modifier on `TransformUniform` 2021-08-12 19:40:45 +03:00
Paulb23 ae4dcb8918 Cleanup and bind remaing methods in TextEdit 2021-08-12 11:43:35 +01:00
Paulb23 7dbb0f3233 Rename readonly to editable 2021-08-12 09:29:58 +01:00
Paulb23 b700011314 Protect internal CodeEdit --> TextEdit API 2021-08-12 09:29:58 +01:00
Paulb23 9ec3e7f3d7 Cleanup TextEdit selection methods 2021-08-12 09:29:56 +01:00
Paulb23 7e70f9e0b9 Expose and cleanup TextEdit line wrap API 2021-08-12 09:29:16 +01:00
Paulb23 d5dcaee4c5 Cleanup and rename caret operations 2021-08-12 09:29:13 +01:00
PouleyKetchoupp f9176a39ce Make radius & height in CapsuleShape3D independent
Also changed CapsuleMesh to make settings consistent between render and
physics.
2021-08-11 14:54:53 -07:00
Yuri Roubinsky 9cf158019d Changed `TransformMult` node to `TransformOp` in visual shaders 2021-08-11 22:05:04 +03:00
Rémi Verschelde 1d7a358588
Merge pull request #51399 from RevoluPowered/improve_editor_grid_performance_4.0
[4.0] Implement editor grid performance improvements
2021-08-11 18:21:19 +02:00
Gordon MacPherson 536386eb69 Implement editor grid performance improvements
Benefits:
- Knows the size of the mesh to prevent push back taking longer
- No longer updates grid every frame, only if the camera has moved 10 units or more.
- Considerably less power draw
- Will redraw when you swap from orthographic to perspective and vice versa.
2021-08-11 16:40:03 +01:00
Tomasz Chabora f12f5b36b5 Make radius & height in CapsuleShape2D independent 2021-08-11 17:34:27 +02:00
Yuri Roubinsky 0eb97c11cf Few improvements for constants in visual shader 2021-08-11 13:14:16 +03:00
Rémi Verschelde c00303ff55
Merge pull request #47378 from aaronfranke/use-input-enums
Use key enum instead of plain integers for input code
2021-08-11 11:20:45 +02:00
Rémi Verschelde e81427e959
Merge pull request #51497 from Chaosus/vs_fix_addnode_zoomed
Fix incorrect position of the created VisualShader nodes on zoomed graph
2021-08-11 10:19:21 +02:00
Yuri Roubinsky 8249ae8085 Fix incorrect position of the created VisualShader nodes on zoomed graph 2021-08-11 10:53:26 +03:00
Aaron Franke fa3a32a2d6
Use Key enum instead of plain integers 2021-08-10 16:26:55 -05:00
PouleyKetchoupp 4da3a87f7d Remove infinite inertia and ray shapes from CharacterBody
Infinite inertia:
Not needed anymore, since it's now possible to set one-directional
collision layers in order for characters to ignore rigid bodies, while
rigid bodies still collide with characters.

Ray shapes:
They were introduced as a work around to allow constant speed on slopes,
which is now possible with the new property in CharacterBody instead.
2021-08-10 12:10:26 -07:00
foxydevloper e62ad6ad80 Improve drag and drop by supporting more file types & node types
Adds support for dragging in all files of type Texture2D for 2D.
Adds support for dragging in all files of type Mesh for 3D.
Replaces adding texture as Light2D with PointLight2D.
Add more node types that textures can be added as
- TextureButton
- CPUParticles2D
2021-08-10 13:05:17 -04:00
fox 20201b56c2 Improve naming of a couple shortcuts 2021-08-10 13:01:07 -04:00
Rémi Verschelde dce488d8f7
Merge pull request #49417 from Bhu1-V/gsoc-cmd-plt
Command Palette For Godot
2021-08-10 18:55:22 +02:00
Aaron Franke 339687e04f
Organize methods in Viewport and explicitly name 3D methods with 3D 2021-08-10 09:10:34 -05:00
Rémi Verschelde 16d73fefdb
Merge pull request #50682 from aaronfranke/basis-looking-at
Move code for looking_at to Basis
2021-08-10 11:28:12 +02:00
Aaron Franke 430ad75963
Some work on double support 2021-08-09 17:43:48 -05:00
Aaron Franke 84f720966c
Use doubles for time in many other places 2021-08-09 14:05:42 -05:00
Yuri Roubinsky 72a9ca1505 Added small offset to the content of nodes in VisualShader 2021-08-09 15:19:27 +03:00
Bhuvan Vemula a0a019a998 Added EditorCommandPalette 2021-08-09 17:41:50 +05:30
Yuri Roubinsky 5e5cd2495d Added editor dialog for easily creating shaders. 2021-08-07 21:02:13 +03:00
Rémi Verschelde a7f96e07d0
Merge pull request #51326 from LightningAA/minor_view_rotation_gizmo_improvements-4.0
Minor visual improvements to the viewport rotation gizmo (again)
2021-08-07 12:41:25 +02:00
AndreaCatania e4e4a02d3d Removes const from set functions on the Gizmos 2021-08-07 09:15:57 +02:00
Lightning_A e1ad11f453 Minor visual improvements to the viewport rotation gizmo (again) 2021-08-06 14:39:13 -06:00
Rémi Verschelde dcf2a62b05
Merge pull request #51164 from TokageItLab/fix-gizmo-transform-scaling
Fixed gizmo forced implicit normalization and inconsistent rotation
2021-08-05 16:42:33 +02:00
Rémi Verschelde 4cf12d7895
Merge pull request #51215 from akien-mga/shortcut-rename-property-to-event
Shortcut: Rename `shortcut` property to `event`
2021-08-05 15:52:20 +02:00
Rémi Verschelde 342a0d45cf
Merge pull request #51250 from LightningAA/minor_view_rotation_gizmo_improvements-4.0
Minor visual improvements to the view rotation gizmo
2021-08-05 14:59:37 +02:00
Rémi Verschelde de2c2be19b
Shortcut: Rename `shortcut` property to `event`
Having a property which has the same name as its class leads to confusing
situations (e.g. `BaseButton` has a `shortcut` property of type `Shortcut`
which has a `shortcut` property of type `InputEvent`).

Also renames `is_event` to `matches_event`, and `is_valid` to `has_valid_event`
to better reflect what the methods check.
2021-08-05 13:48:43 +02:00
Lightning_A 37b943be42 Minor improvements to the view rotation gizmo 2021-08-04 13:19:17 -06:00
Yuri Sizov b27989ff67 Improve user communications in the theme editor 2021-08-04 18:26:36 +03:00
Fabio Alessandrelli 80fc90e82a
Merge pull request #50454 from Ev1lbl0w/gsoc21-dap
Implemented initial DAP support
2021-08-03 17:12:37 +02:00
Rémi Verschelde 57a5186b08
Merge pull request #51006 from foxydevloper/drag-drop-naming
Name nodes added when drag & dropping an image by `name_casing`
2021-08-03 09:38:03 +02:00
Rémi Verschelde a7f24080a2
Merge pull request #51118 from SirQuartz/patch-39
Make the "View" menu in the 3D viewport stay open when selecting a checkbox
2021-08-03 09:35:17 +02:00
Yuri Roubinsky a34a91a30b Added more input/output built-ins to visual shaders 2021-08-03 09:32:40 +03:00
Rémi Verschelde a6374c6675
Merge pull request #50703 from Chaosus/vs_remove_subparticles_from_start
Removes EmitParticle node from the start functions in visual shader
2021-08-03 08:14:15 +02:00
Silc 'Tokage' Renew 4822499d70 Fixed gizmo forced uniform scale and inconsistent rotation 2021-08-03 14:17:22 +09:00
Yuri Roubinsky bd6b7c4b0f
Merge pull request #51144 from Chaosus/vs_version
Makes dictionary instead of string for visual shader version
2021-08-02 21:55:50 +03:00
Rémi Verschelde c620ede327
Merge pull request #50122 from Paulb23/code_edit_auto_brace_completion 2021-08-02 20:44:39 +02:00
Yuri Roubinsky 94c6817b51 Makes dictionary instead of string for visual shader version
Update doc/classes/VisualShader.xml

Co-authored-by: Hugo Locurcio <hugo.locurcio@hugo.pro>
2021-08-02 21:34:19 +03:00
Rémi Verschelde 5360c2012c
Merge pull request #51004 from groud/tilemap_layers
Implements TileMap layers and move TileSetPlugins's functions to the TileMap node instead
2021-08-02 17:20:32 +02:00
Gilles Roudière ad8b5cd5a4 Implements TileMap layers and move TileSetPlugins's functions to the TileMap node instead 2021-08-02 13:54:39 +02:00
Rémi Verschelde 33fd41472c
Merge pull request #49783 from aaronfranke/real-editor-plugins
Use real_t in editor plugins
2021-08-02 12:50:54 +02:00
Rémi Verschelde face3203be
Merge pull request #50430 from goostengine/ctrl-enter-commit
VCS: Allow to stage and commit all files with Ctrl + Enter
2021-08-02 12:20:10 +02:00
Ev1lbl0w 7bccd5487e
Implemented initial DAP support
Implemented "output" event

Refactored "seq" field generation

Prevent debugging when editor and client are in different projects

Removed unneeded references to peer on the parser

Refactored way to detect project path

Implemented "setBreakpoints" request

Fix double events when terminating from client

Refactored "stopped" event

Implemented "stopped" with breakpoint event

Implemented "stackTrace", "scopes" and "variables" request

Report incoming number of stack dump variables

Implemented proper reporting of scopes and variables from stack frames

Prevent editor from grabbing focus when a DAP session is active

Implemented "next" and "stepIn" requests

Implemented "Source" checksum computing

Switched expected errors from macros to silent guards

Refactored message_id

Respect client settings regarding lines/columns behavior

Refactored nested DAP fields

Implement reporting of "Members" and "Globals" scopes as well

Fix error messages not being shown, and improved wrong path message
2021-08-02 10:43:35 +01:00
Aaron Franke dbad475fc7
Use real_t in editor plugins
Also use const more often and delete dead code in CanvasItemEditor
2021-08-01 21:48:34 -05:00
Aaron Franke 9f3ae0adcd
Move code for looking_at to Basis 2021-08-01 12:49:02 -05:00
Paulb23 809a32c045 Clean up and complete CodeEdit inspector and docs 2021-08-01 12:24:19 +01:00
Paulb23 dd5a37f556 Move symbol lookup into CodeEdit 2021-08-01 12:06:33 +01:00
Paulb23 12f0053555 Move auto brace completion to CodeEdit 2021-08-01 12:06:33 +01:00
Yuri Roubinsky bb5729fd35 Prevent warning spam to console when dragging a CanvasItem in container 2021-08-01 13:01:46 +03:00
Nicholas Huelin 3ffd75107d
Make the "View" menu in 3D view toolbar stay open when selecting a checkbox
This pull request fixes an issue where the "View" menu in the 3D view toolbar would close when you selected either the "View Origin" or "View Grid" checkboxes. This was inconvenient and wasted time by making you have to reopen the menu in order to get to other settings anytime you changed this.
2021-07-31 16:33:38 -04:00
Rémi Verschelde 20fa3ec093
Merge pull request #51110 from pycbouh/editor-put-the-colon-back-in
Put multiple colons back into translated strings
2021-07-31 22:05:43 +02:00
Yuri Sizov 969ba687ef Put multiple colons back into translated strings 2021-07-31 20:08:07 +03:00
Haoyu Qiu 284c6c81eb Make action names translatable 2021-07-31 22:19:51 +08:00
Rémi Verschelde 92c5c46da7
Merge pull request #51041 from foxydevloper/new-resources-snake-case
Name new resource files with `snake_case`
2021-07-30 15:44:29 +02:00
Rémi Verschelde e95e33f251
Merge pull request #35891 from Calinou/editor-viewport-highlight-context-menus
Highlight context menu items at the top of the 2D/3D viewports
2021-07-30 15:18:48 +02:00
Hugo Locurcio e92297cc3d
Make the focus outline translucent for editor viewports
This makes the focus outline less distracting on the
2D and 3D editor viewports.
2021-07-30 14:20:54 +02:00
Rémi Verschelde 74aa7e26e9
Merge pull request #51011 from foxydevloper/drag-drop-root-default 2021-07-30 09:02:09 +02:00
foxydevloper ae7a74625d Name new resource files with `snake_case` 2021-07-29 20:53:33 -04:00
foxydevloper f641327dcf Make drag and drop into viewport add to root node by default
When dragging and dropping a texture, mesh, or scene from the FileSystem into the
2D or 3D viewport, it will be added as a child of the current scene's root node.
2021-07-29 15:47:42 -04:00
kleonc 8a48cb466e SpriteFramesEditor: preserve source texture margins when creating frames from AtlasTexture 2021-07-29 20:18:39 +02:00
foxydevloper 07a8f0fe38 Name nodes added from drag & drop by `name_casing` 2021-07-29 00:29:24 -04:00
Nicholas Huelin 28f45e923c
Fix duplicate shortcut in TileMap Editor
This pull request fixes an issue where the paint and erase tools in the TileMap editor had the same shortcut (E). The erase tool having "E" be its shortcut makes more sense than the paint tool having that be its shortcut. So I changed the paint tool's shortcut to be "D" since nothing else uses it and it's short for "draw", it's also right next to "S" on the keyboard which happens to be the selection tool.
2021-07-28 17:33:17 -04:00
Hugo Locurcio 026aea681d
Improve the 2D editor ruler display
- Use the ° symbol instead of "deg" to reduce clutter.
- Round the displayed lengths to only one decimal instead of two
  to further reduce clutter.
- Don't make the `px` suffix localizable, as it isn't localizable
  anywhere else in the editor.
2021-07-28 16:04:48 +02:00
Rémi Verschelde 7f0a83c129
Merge pull request #50597 from Calinou/3d-editor-improve-manipulation-gizmo
Improve the 3D editor manipulation gizmo
2021-07-28 15:33:24 +02:00
Rémi Verschelde 9f5436c799
Merge pull request #50826 from Calinou/editor-improve-mesh-uv-preview
Improve MeshInstance3D UV preview in the editor
2021-07-28 15:30:29 +02:00
Hugo Locurcio 81d2d2b41a
Highlight context menu items at the top of the 2D/3D viewports
This makes it easier to notice that some menu items only appear when
specific nodes are selected.

This change applies to both 2D and 3D editors, including both plugin-based
menus and the hardcoded 2D layout/animation contextual menus.
2021-07-27 16:45:02 +02:00
Rémi Verschelde 0f7b7bcbce
Merge pull request #50836 from Calinou/3d-editor-camera-preview-add-shortcut
Add shortcut to toggle the 3D editor's camera preview
2021-07-27 13:34:10 +02:00
Rémi Verschelde 41013e4f9a
Merge pull request #50933 from JFonS/gizmo_rework_improvements 2021-07-27 13:19:46 +02:00
jfons d7b58ebc9c Fixes to editor subgizmos
* Fixed subgizmo editing on scaled nodes.
* Added more clarifications on the coordinate space of subgizmos.
* Given input priority to the transform gizmo over subgizmo selection.
2021-07-27 12:55:57 +02:00
Yuri Roubinsky 88e3d13416 Fix icon colors in 3d editor on theme changing 2021-07-26 22:50:09 +03:00
Rémi Verschelde fab3412139
Merge pull request #50899 from akien-mga/refref
Use Ref<T> references as iterators where relevant
2021-07-26 19:45:04 +02:00
Rémi Verschelde 92299989bd
Use Ref<T> references as iterators where relevant
And const when possible.
2021-07-26 19:27:11 +02:00
SaracenOne fbda490d0f Removing bounding box calculations from 3D scene drag and drop and collide against physics rather than visual geometry. 2021-07-26 17:38:48 +01:00
Rémi Verschelde 8f6c16e4a4
Merge pull request #50847 from reduz/implement-binary-shader-compilation
Implement Binary Shader Compilation
2021-07-26 17:09:48 +02:00
reduz cf3f404d31 Implement Binary Shader Compilation
* Added an extra stage before compiling shader, which is generating a binary blob.
* On Vulkan, this allows caching the SPIRV reflection information, which is expensive to parse.
* On other (future) RenderingDevices, it allows caching converted binary data, such as DXIL or MSL.

This PR makes the shader cache include the reflection information, hence editor startup times are significantly improved.
I tested this well and it appears to work, and I added a lot of consistency checks, but because it includes writing and reading binary information, rare bugs may pop up, so be aware.
There was not much of a choice for storing the reflection information, given shaders can be a lot, take a lot of space and take time to parse.
2021-07-26 08:40:39 -03:00
Rémi Verschelde 5707c5d0ff
Merge pull request #48620 from Calinou/editor-3d-hide-selection-box-no-gizmos
Hide the 3D editor selection box when View Gizmos is disabled
2021-07-26 12:44:50 +02:00
kobewi bba76e45ff Fix undo for bucket tool in tile map 2021-07-26 11:24:34 +02:00
Hugo Locurcio 75dc0d1869
Add shortcut to toggle the 3D editor's camera preview
A Camera3D node still has to be selected to initially enable camera
preview, but another node can then be selected and the preview can
be disabled by pressing the shortcut key again.
2021-07-25 12:53:38 +02:00
Rémi Verschelde ff0b5f8fa1
Merge pull request #50809 from akien-mga/iterators-const-references 2021-07-25 12:52:58 +02:00
Rémi Verschelde ac3322b0af
Use const references where possible for List range iterators 2021-07-25 12:22:25 +02:00
luz paz 3564c16cb8
Fix various typos with codespell
Found via `codespell -q 3 -S ./thirdparty,*.po,./DONORS.md -L ackward,ang,ans,ba,beng,cas,childs,childrens,dof,doubleclick,fave,findn,hist,inout,leapyear,lod,nd,numer,ois,ony,paket,seeked,sinc,switchs,te,uint`
2021-07-25 11:21:51 +02:00
Hugo Locurcio 8cdfd2e706
Improve MeshInstance3D UV preview in the editor
- Use background and line colors that match better with the
  rest of the editor.
- Use translucent lines to make overlapping lines visible.
- Tweak the error message to mention the UV layer in question
  when there is no UV for a defined layer.
2021-07-25 01:11:24 +02:00
Rémi Verschelde 2bf903e98d
Merge pull request #50791 from foxydevloper/select-mode-tooltip-improvation
Improve select tool's tooltip for 2D and 3D
2021-07-24 23:45:44 +02:00
Aaron Franke 4e6efd1b07
Use C++ iterators for Lists in many situations 2021-07-23 17:38:28 -04:00
foxydevloper 6b90e2df6c Improve select tool's tooltip
- Makes tips clearer and more consistent.
- Removes outdated "shift+v" that doesn't work
- Adds Ctrl+RMB for adding nodes at position
- Removes tip for non-existent Alt+Drag in 3D select tool
2021-07-23 17:30:45 -04:00
Rémi Verschelde 4c3d5850de
Merge pull request #50748 from JFonS/gizmo_rework
Node3D gizmo improvements
2021-07-23 21:55:16 +02:00
jfons cfb555a081 Node3D gizmo improvements
* Clean-up of node_3d_editor_plugin.{h,cpp}: removed unused code, fixed some bugs.
* Moved node_3d_editor_gizmos.{h,cpp} to editor/plugins.
* Added support for multiple gizmos per node. This means custom gizmos will no longer override the built-in ones and that multiple gizmos can be used in more complex nodes.
* Added support for handle IDs. When adding handles to a gizmo, an ID can be specified for each one, making it easier to work with gizmos that have a variable number of handles.
* Added support for subgizmos, selectable elements that can be transformed without needing a node of their own. By overriding _subgizmo_intersect_frustum() and/or _subgizmo_intersect_ray() gizmos can define which subgizmos should be selected on a region or click selection. Subgizmo transformations are applied using get/set/commit virtual methods, similar to how handles work.
2021-07-23 21:01:10 +02:00
kobewi 2846dbf239 Don't set metadata_label font if it doesn't exist 2021-07-23 16:29:49 +02:00
Rémi Verschelde 8cddd3b2c0
Merge pull request #50768 from Calinou/editor-asset-library-urls-clarify
Clarify the purpose of the default asset library URLs in the editor
2021-07-23 15:40:01 +02:00
Rémi Verschelde 995093f59d
Merge pull request #37760 from KoBeWi/rect_edit_level_up
Allow for easier editing of rect CollisionShape2D
2021-07-23 14:38:04 +02:00
Hugo Locurcio eac8ba6ce8
Clarify the purpose of the default asset library URLs in the editor
`localhost` was removed as it won't work out of the box. It can be added
by the user if they're working on the asset library itself.

This won't affect existing installations due to how the editor settings
are stored, but existing installations will keep working fine.
2021-07-23 13:02:04 +02:00
Lightning_A 8ad00087ce Fix `TexturePreview` crashing 2021-07-22 13:43:34 -06:00
Yuri Roubinsky 80bd8171d0 Removes EmitParticle node from the start functions in visual shader 2021-07-21 17:56:01 +03:00
Gilles Roudière 5d34a81e52 Implement atlas merging and tile proxies 2021-07-21 12:36:37 +02:00
Rémi Verschelde d4bbdb8367
Merge pull request #50521 from aaronfranke/iseqapprox
Use `is_equal_approx` in more places
2021-07-21 11:16:19 +02:00
Aaron Franke 78b0a7da03
Use is_equal_approx in more places 2021-07-21 00:32:37 -04:00