Commit Graph

8351 Commits

Author SHA1 Message Date
reduz 431ba0ebb1 Fix doctool merges when method signatures don't match
If methods signature did not match, documentation is not merged. This is
a considerable source of annoyance for contributors and it happened as
a result of #4533, otherwise the documentation for constructors would
not be properly merged.

This PR modifies the logic introduced to only do the signature test on
constructors and operators (which are the only types of members that can repeat).
2021-08-22 09:43:05 -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
Hugo Locurcio 57e3a1a951
Merge pull request #47673 from Calinou/improve-editor-window-title
Improve the editor window title for better usability
2021-08-22 08:42:43 +02:00
requizm 3d3f64f949 Fix camera override not working 2021-08-21 21:24:09 +03:00
Hendrik Brucker 72e49eadec Fix ItemList layout (+EditorFileDialog) 2021-08-21 00:22:09 +02:00
reduz 542e6e8ca6 Implement Extension Loader
* Extensions are now scanned and loaded on demand.
* Extensions found are cached into a file that is used to load them (which is also exported).
* Editor will ask to restart when an extension requires core functionality.
* Editor will attempt to load extensions always before importing or loading scenes. This ensures extensions can register the relevant types.
2021-08-20 16:02:24 -03: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 8b6c168b3a
Merge pull request #48560 from SaracenOne/collada_semantic_fix_4_0 2021-08-19 09:02:16 +02:00
Rémi Verschelde 5ccf797c9c
Merge pull request #51703 from YeldhamDev/compal_tweaks
Minor tweaks/fixes for the Command Palette
2021-08-19 07:12:38 +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
Michael Alexsander 9819be7562 Minor tweaks/fixes for the Command Palette 2021-08-18 13:12:14 -03:00
Rémi Verschelde a031579286
Merge pull request #50752 from Phischermen/indeterminate_checkmark_api
Added icons and API for indeterminate checkmarks for the Tree class.
2021-08-18 10:31:06 +02:00
Hugo Locurcio 5be4ea27d1
Fix missing and incorrectly named visual shader texture uniform icons 2021-08-18 05:41:02 +02: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
Hendrik Brucker ff9901f51e Reimplement ColorPicker presets 2021-08-18 02:09:48 +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 ca6c5cf7e6
Merge pull request #51758 from ThreeRhinosInAnElephantCostume/fix51725
Fixed node not renaming when clicking elsewhere on the scene tree
2021-08-17 14:07:42 +02: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 3621ec9b57
Merge pull request #51755 from jmb462/fix-carret-not-following-debugger
Fix caret not following while debugging (Fix #51754)
2021-08-17 14:02: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
Rémi Verschelde e1754c0a13
Merge pull request #51647 from pycbouh/editor-dont-use-invalid-styleboxes
Make sure stylebox is valid in `EditorSpinSlider` before using it
2021-08-17 13:11:58 +02:00
developer fd9267fd8d fixed the node not renaming when clicking elsewhere on the scene tree. 2021-08-17 09:07:12 +02:00
Gordon MacPherson 5f96e607fb Fix editor grid perspective undefined behaviour
Initialise the enum value
2021-08-17 00:37:27 +01:00
jmb462 838f0d49e3 Fix carret not following while debugging (Fix #51754) 2021-08-16 23:12:46 +02:00
Kevin Fischer 75866c81e7 Added icons and API for indeterminate checkmarks for the Tree class. 2021-08-16 10:13:06 -07: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 8383e4e06d
Merge pull request #51733 from timothyqiu/resource-menu-item
Disable "Edit Resource from Clipboard" when nothing in clipboard
2021-08-16 18:32:23 +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
Haoyu Qiu 93c1bbe697 Disable "Edit Resource from Clipboard" menu item when nothing in clipboard
To be consistent with other menu items.
2021-08-16 22:34:17 +08: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 2459f81044
Merge pull request #51704 from Calinou/editor-icons-add-expression
Add editor icons for VisualScript and VisualShader expression resources
2021-08-16 12:43:52 +02:00
Rémi Verschelde 40f5c571ec
Merge pull request #51702 from Calinou/port-visual-shader-icons
Port visual shader node icons from Godot 2.1.x
2021-08-16 12:43:29 +02:00
Rémi Verschelde 832b045296
Merge pull request #51701 from theoway/updates_node_arranger_icon
Changes the icon of node arranger in GraphEdit & editor
2021-08-16 12:31:16 +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
Umang Kalra c2f8c94b15 Changes the icon of node arranger in GraphEdit/VisualScript/VisualShader 2021-08-16 12:30:15 +05:30
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
Hugo Locurcio c7dbac9d02
Add editor icons for VisualScript and VisualShader expression resources 2021-08-16 01:43:51 +02:00
Hugo Locurcio ed82634857
Port visual shader node icons from Godot 2.1.x 2021-08-16 00:53:26 +02:00
Rémi Verschelde 966559c3bd
Merge pull request #51512 from Bhu1-V/PR/cmd-fix
command palette improvements
2021-08-15 16:01:49 +02:00
Bhuvan Vemula a0205e4f34 command palette improvements 2021-08-15 11:40:44 +05:30
Hugo Locurcio 4a4d977bea
Improve the animation bezier editor
- Allow snapping bezier handles to the timeline.
- Allow precise snapping when holding Shift for keyframes and handles.
  - Previously, it was only allowed for seeking the timeline.
  - This change also impacts the animation track editor,
    not just the bezier editor.
- Invert the Ctrl + mouse wheel behavior to match the zoom direction
  in the animation track editor.
- Increase the line spacing between the "Time:" and "Value:" texts
  to improve readability.
- Tweak box selection styling to match the animation track editor.
- Adjust line widths for hiDPI displays.
2021-08-14 22:04:45 +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 9f5c61315c
Merge pull request #51669 from KoBeWi/nextnextnextnextnext
Fix double Next Editor Tab
2021-08-14 18:06:41 +02: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
kobewi cf95ce8b43 Fix double Next Editor Tab 2021-08-14 16:57:42 +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
Yuri Sizov 0d3e85c665 Make sure stylebox is valid in EditorSpinSlider before using it 2021-08-14 00:21:10 +03:00
Rémi Verschelde 14a2e59875
Merge pull request #51642 from akien-mga/cleanup-use_single_quotes 2021-08-13 21:49:06 +02:00
Rémi Verschelde 761eb7e06a
Merge pull request #51585 from Paulb23/theme-update-optimisation 2021-08-13 21:33:36 +02:00
Rémi Verschelde 81512a3732
Style: Cleanup code using `text_editor/completion/use_single_quotes` 2021-08-13 21:27:57 +02:00
Rémi Verschelde 4c3ece8c4b
Merge pull request #51628 from timothyqiu/drag-property-path
Allow dropping property path into script editor
2021-08-13 21:13:54 +02:00
Paulb23 b6f5912174 Move CodeEdit theme overrides into EditorTheme 2021-08-13 17:47:53 +01:00
Rémi Verschelde 3a48474c49
Merge pull request #51619 from Chaosus/fix_dark_words
Fix incorrect word block colors in the inspector tooltip
2021-08-13 17:09:34 +02:00
Haoyu Qiu dae51cc6b3 Allow dropping property path into script editor 2021-08-13 23:04:48 +08:00
Yuri Roubinsky 33e0b4b60d Fix incorrect word block colors in the inspector tooltip 2021-08-13 16:15:05 +03: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
Rémi Verschelde 85e315d6e8
Merge pull request #51607 from aaronfranke/includes
Fix some unnecessary includes
2021-08-13 14:38:56 +02:00
Rémi Verschelde 39efccf3b8
Merge pull request #50767 from KoBeWi/no_head_no_save
Don't save project on startup in no window mode
2021-08-13 11:08:08 +02:00
kobewi ea2489ce93
Don't save project on startup in headless mode 2021-08-13 09:57:46 +02:00
Anilforextra d73d8b8d78 Fix duplicate conditions. 2021-08-13 12:22:38 +05:45
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
Rémi Verschelde c89ad92c96
Merge pull request #51532 from nekomatata/layer-mask-accessors
Uniformize layer names, script methods and documentation
2021-08-12 17:55:11 +02:00
Rémi Verschelde 6f043f7a19
Merge pull request #50771 from naithar/feature/platform-export-refactoring-4.0 2021-08-12 17:22:43 +02:00
Rémi Verschelde d10bfe8e24
i18n: Sync translations with Weblate
And sync template with current 3.x codebase.

(cherry picked from commit f3441fcff0)
2021-08-12 17:10:01 +02:00
PouleyKetchoupp 989acbbe81 Uniformize layer names, script methods and documentation
- Back to 1-based layer names to make it clearer in editor UI
- Layer bit accessors are renamed to layer value and 1-based too
- Uniform errors and documentation in render and physics
- Fix a few remaining collision_layer used in place of collision_mask
2021-08-12 08:06:42 -07:00
Sergey Minakov fa2983c18b Allow additional cpp files to be added for export template 2021-08-12 16:56:17 +03:00
Paulb23 ae4dcb8918 Cleanup and bind remaing methods in TextEdit 2021-08-12 11:43:35 +01:00
Paulb23 0a32a6907b Cleanup and expose viewport / scrolling methods 2021-08-12 09:29:58 +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
Rémi Verschelde d64343911c
Merge pull request #49521 from LightningAA/focus-scenetree-on-root-node-4.0
Focus the scene tree dock after hitting one of the "Create Root Node:" buttons
2021-08-12 08:13:01 +02:00
Rémi Verschelde f88593ce5f
Merge pull request #51541 from timothyqiu/reset-crash
Fixes crash when AnimationPlayer reset on save
2021-08-12 08:11:46 +02:00
Haoyu Qiu 96f077a18d Fixes crash when AnimationPlayer reset on save 2021-08-12 10:53:35 +08:00
Lightning_A 285024e806 Focus the scene tree dock after hitting one of the "Create Root Node:" buttons 2021-08-11 18:15:24 -06: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