Commit Graph

3043 Commits

Author SHA1 Message Date
Yuri Sizov d0e86c7afc Overhaul the theme editor and improve user experience 2021-06-14 21:46:30 +03:00
Rémi Verschelde 12e0f10c74
Merge pull request #49227 from pycbouh/editor-theme-freeze-changes
Prevent `Theme` resource from emitting changes during bulk operations
2021-06-13 15:44:32 +02:00
Rémi Verschelde ef7974f3d9
Merge pull request #49526 from Chaosus/fix_textureregion_errors 2021-06-13 14:44:50 +02:00
Rémi Verschelde 6d98f84abb
Merge pull request #48746 from KoBeWi/bane_of_all_virtual_compatibility
Consistently prefix bound virtual methods with _
2021-06-12 23:00:40 +02:00
Hugo Locurcio d1c5dd5b68
Fix game camera override tooltips being swapped
Previously, the wrong tooltip was shown.

This also tweaks the tooltips' texts to be clearer and remove
references to "game" (since Godot is used for more than just games).
2021-06-12 19:39:34 +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
Pedro J. Estébanez 04688b92ff Rename Reference to RefCounted 2021-06-11 18:48:42 +02:00
Rémi Verschelde 9e328bb5b7
Core: Move DirAccess and FileAccess to `core/io`
File handling APIs are typically considered part of I/O, and we did have most
`FileAccess` implementations in `core/io` already.
2021-06-11 14:52:39 +02:00
Rémi Verschelde 58c1235111
Merge pull request #49265 from KoBeWi/keepfreplace_2_keepers_of_replace
Move FindReplaceBar out of CodeTextEditor
2021-06-09 21:07:27 +02:00
Rémi Verschelde 27cf525713
Merge pull request #42248 from Chaosus/vs_particles_shader
Continuation of work on visual particles system
2021-06-09 11:15:41 +02:00
kobewi da6aebeb4c Move FindReplaceBar out of CodeTextEditor 2021-06-08 23:23:07 +02:00
Rémi Verschelde 090e4c4abd
Merge pull request #49422 from timothyqiu/hani-preview-text
Fix font preview text for CJKV ideographs
2021-06-08 23:15:30 +02:00
Paulb23 d4c165d8c7 Fix TextEditor redo shortcut typo 2021-06-08 17:41:35 +01:00
Haoyu Qiu 4d5acd76f4 Fix font preview text for CJKV ideographs 2021-06-08 21:39:22 +08:00
Yuri Roubinsky f632e36ae5 Continuation of work on visual particles system 2021-06-07 20:33:17 +03:00
Rémi Verschelde afbabd12f3
Merge pull request #49337 from Chaosus/vs_texture_func
Adds `UVFunc` for panning/scaling on UV's to VisualShader's.
2021-06-07 09:38:37 +02:00
Yuri Roubinsky b2d2822a39 Adds `UVFunc` for panning/scaling on UV's to VisualShader's. 2021-06-07 08:31:48 +03:00
kobewi a97546d4ea Don't save built-in script when adding method 2021-06-06 23:58:35 +02:00
Rémi Verschelde aa251c310a
Merge pull request #49325 from reduz/rename-gi-classes
Rename GI Classes
2021-06-06 09:50:06 +02: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
fox 00a4ee5cf3 Add threshold to dragging nodes with select to prevent accidental drags 2021-06-04 11:39:46 -04:00
Rémi Verschelde 95ff547da4
Merge pull request #44198 from madmiraal/rename-translation-position
Rename Node3D's property translation to position
2021-06-04 11:34:35 +02:00
Rémi Verschelde 875ed4d600
Merge pull request #47336 from Calinou/rename-shader-file-extension
Rename the `.shader` file extension to `.gdshader`
2021-06-04 11:26:14 +02:00
Marcel Admiraal a6e44bd16c Rename Node3D's property translation to position 2021-06-04 09:54:52 +01:00
Aaron Franke 6f472d154b
Rename EditorPropertyTransform to EditorPropertyTransform3D 2021-06-03 21:58:26 -04:00
Aaron Franke de3f6699a5
Rename Transform to Transform3D in core 2021-06-03 07:30:01 -04:00
Yuri Roubinsky 8456682222 Fix changing theme coloring for error label in VisualShader editor 2021-06-03 10:58:55 +03: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 #45393 from Paulb23/code_edit_autocomplete 2021-06-01 17:58:19 +02:00
Paulb23 c1b9971ad8 Move and expose Code Hint in CodeEdit 2021-06-01 15:38:45 +01:00
Paulb23 1c16673798 Move and expose AutoComplete in CodeEdit 2021-06-01 15:38:45 +01:00
Paulb23 680dc9e81a Add comment and string tracking to CodeEdit 2021-06-01 15:38:45 +01:00
kleonc 019c99e538 TextureRegionEditor Fix not updating on editing region with autoslice cached 2021-06-01 12:17:32 +02:00
Yuri Sizov 9cd96ebe0e Prevent Theme resource from emitting changes during bulk operations 2021-05-31 17:40:45 +03:00
Rémi Verschelde 4e3d5148ff
Merge pull request #49157 from Chaosus/vs_billboard
Added Billboard Node to Visual Shaders
2021-05-31 12:23:01 +02:00
Rémi Verschelde 1d35a35d4f
Merge pull request #49175 from nobuyukinyuu/bind-zoom-on-position
Bind CanvasItemEditor::_zoom_on_position and CanvasItemEditor::get_st…
2021-05-31 11:45:59 +02:00
Rémi Verschelde a8c144f72e
Merge pull request #49121 from KoBeWi/dropreload
Add preload() to resource path when holding Ctrl
2021-05-31 11:10:37 +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
nobuyuki_nyuu a715887299 Bind CanvasItemEditor::_zoom_on_position and CanvasItemEditor::get_state to ClassDB 2021-05-28 13:34:30 -05:00
Yuri Roubinsky f06db8b778 Added Billboard Node to Visual Shaders 2021-05-28 09:24:06 +03:00
kobewi 4bee21bcc4 Add preload() to resource path when holding Ctrl 2021-05-27 12:22:32 +02:00
Yuri Roubinsky af3f047f49 Fixed console error spam (about invalid edited scene index) 2021-05-26 19:28:38 +03:00
Yuri Roubinsky 0b4b1f872c
Merge pull request #49056 from Chaosus/vs_color 2021-05-26 11:07:22 +03:00
Yuri Roubinsky 8f9b91dab1 Implements expandable color ports in visual shaders 2021-05-26 10:45:53 +03:00
Gilles Roudière 78ad206d74 Add TileMap grid editor settings. 2021-05-25 10:23:57 +02:00
Yuri Roubinsky 6772f70ec3 Fixes adding nodes on dragging in visual shaders 2021-05-24 13:50:10 +03:00
Rémi Verschelde 7cb23e4306
Merge pull request #48956 from Chaosus/vs_fix_adding_multiple_resources_undo
Fixes non-atomary action of dragging resources on visual shader graph
2021-05-24 12:21:35 +02:00
Rémi Verschelde 6580d1798a
Merge pull request #48829 from Chaosus/vs_comment_node_fixes
Prevents VisualShaderNodeComment from overlapping its content
2021-05-24 12:21:19 +02:00
Hugo Locurcio 21807f8d88
Fix editor constantly redrawing when freelook is active with still camera
The editor only needs to redraw when the camera is moving.

This helps preserver battery life on laptops when using freelook,
especially with the toggle mode (Shift + F).
2021-05-23 19:50:53 +02:00
Rémi Verschelde 809948f977
Merge pull request #40397 from KoBeWi/silent_seeker
Allow to move timeline without moving animation
2021-05-23 17:28:21 +02:00
kobewi 0ac5be1e67 Reset Shader Editor scroll when changing shader 2021-05-23 13:54:45 +02:00
kleonc 07d346dfa5 SpriteFramesEditor Minor fixes 2021-05-23 10:59:21 +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
Yuri Roubinsky 084648bd18 Basic warning support implementation for the Godot Shading Language. 2021-05-22 19:24:31 +03:00
Paulb23 00e10a842f Add custom background line colour to TextEdit and remove marked lines 2021-05-22 14:41:55 +01:00
Yuri Roubinsky 7f5b074b4b Fixes non-atomary action of dragging resources on visual shader graph 2021-05-22 08:16:56 +03:00
Rémi Verschelde 3b3a55ca04
Merge pull request #48918 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
Gilles Roudière 7d80480b72 Fixes TileSet Y-sort not working and TileSet not saving correctly 2021-05-21 10:13:37 +02:00
Rémi Verschelde 28c7e28403
Merge pull request #48895 from JFonS/fix_viewport_rotation_control
Fix swapped front/rear directions in viewport rotation control.
2021-05-20 20:54:40 +02:00
jfons e70e33ddcf Fix swapped front/rear directions in viewport rotation control. 2021-05-20 16:28:38 +02:00
Rémi Verschelde a6a75e2c09
Merge pull request #48812 from groud/tilemap_scenes_painting
Implement scenes tiles in TileMaps
2021-05-20 14:32:40 +02:00
Rémi Verschelde 342f3efc7e
Merge pull request #48882 from aaronfranke/approx-use-double
Make is_equal_approx have explicit float and double versions
2021-05-20 14:17:58 +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
Aaron Franke b5b6d3a8ec
Make is_equal_approx have explicit float and double versions 2021-05-20 06:18:11 -04:00
Yuri Roubinsky f100fb9f10 Updates script list colors after theme is changed 2021-05-20 09:02:59 +03:00
Yuri Roubinsky a1657b0356 Prevents VisualShaderNodeComment from overlapping its content 2021-05-19 11:57:11 +03:00
Hugo Locurcio 16876bec76
Fix crash when trying to save with no scenes and scripts open
This could occur when attempting to save project settings when
no scenes or scripts are open (which is common in a brand new project).
2021-05-18 19:48:38 +02:00
Rémi Verschelde 35edb77d1f
Merge pull request #37796 from Gogsi/master
Improve consistency in file order
2021-05-18 11:45:05 +02:00
Georgi Genkov a8c83a7b35 Change EditorFileSystem and ScriptEditor file sorting order to improve consistency.
Fixes #37721.
2021-05-18 10:42:06 +02:00
trollodel bca0d36fe6 Improve TreeItem API and allow to move nodes 2021-05-17 22:06:46 +02:00
Rémi Verschelde 6c367f8e0d
Merge pull request #48168 from LightningAA/control-to-ctrl-4.0 2021-05-17 17:38:02 +02:00
Rémi Verschelde 37c3b33253
Merge pull request #48605 from sent44/scripteditor_get_codeedit
Add `get_base_editor` to `ScriptEditorBase`
2021-05-16 23:06:01 +02:00
sent44 2b30728ebf Add get_base_editor to ScriptEditorBase 2021-05-15 18:47:00 +07:00
llschuster 6b55ec2ca9 text-editor: fix Clicking warning doesn't center around line 2021-05-13 17:07:39 +02:00
Yuri Sizov 3a66c22e71 Add outlines and contrasting backgrounds to the editor UI elements 2021-05-12 01:45:56 +03:00
Michael Alexsander 6dad72db69 Fix small issues with capitalization in the new TileMap editor 2021-05-10 18:08:07 -03:00
Hugo Locurcio 32cb88b410
Hide the 3D editor selection box when View Gizmos is disabled 2021-05-10 19:21:55 +02:00
Rémi Verschelde a8a51cd75c
Merge pull request #46808 from pycbouh/theme-editor-better-create-ui
Refactor Create Theme menu in Theme Editor
2021-05-09 14:21:37 +02:00
Hugo Locurcio 39f9b92f54
Save the current script when pressing Ctrl + S if no scene is open
- Tweak the dialog messages to be more informative.
  - The "Saved N modified resources" dialog is not a warning per se,
    so make it more explicit.
2021-05-09 12:29:50 +02:00
Yuri Sizov 912420b078 Refactor Create Theme menu in Theme Editor 2021-05-09 03:13:19 +03: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 c3f7465b7e
Merge pull request #48535 from groud/tiles_squashed
TileSet and TileMap rework (squashed)
2021-05-07 20:46:06 +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
Rémi Verschelde 8962d36bb1
Merge pull request #33577 from Calinou/highlight-control-flow-keywords
Highlight control flow keywords with a different color
2021-05-07 00:52:50 +02:00
Rémi Verschelde 6e621441ca
Merge pull request #45607 from Calinou/improve-editor-theme
Improve the editor theme
2021-05-06 16:45:07 +02:00
Hugo Locurcio 0ade686601
Save the current script when adding a new method via signal connection
This makes it possible for external editors to pick up the changes.
Most modern editors should reload the file automatically,
but some older/lightweight editors may ask the user instead
(or only warn after trying to save in the external editor).

This closes #41283.
2021-05-05 23:31:15 +02:00
Hugo Locurcio e905e8f145
Highlight control flow keywords with a different color
This makes them easier to distinguish from other keywords.
2021-05-05 22:38:12 +02:00
Rémi Verschelde e189ff55a7
Merge pull request #48378 from Calinou/editor-improve-audio-inspector-preview
Improve the editor audio preview inspector appearance and functionality
2021-05-04 17:58:28 +02:00
Aaron Franke 0de9a7d803
Rename `doubleclick` to `double_click` 2021-05-04 04:38:08 -04:00
Rémi Verschelde 0d819ae5f5
Merge pull request #48403 from kleonc/tilemap-editor-modulate-autotile-preview
TileMapEditor Modulate autotile previews
2021-05-03 16:00:50 +02:00
kleonc 3f1b95cfb1 TileMapEditor Modulate autotile previews 2021-05-03 14:58:02 +02:00
kleonc a1b903066e TileMapEditor::_bucket_fill Check autotile coordinates only if autotile is selected 2021-05-03 14:49:52 +02:00
Michael Alexsander 46e0161737 Add comment highlighting to script thumbnails 2021-05-02 21:48:37 -03:00
Hugo Locurcio a50a81b703
Improve the editor audio preview inspector appearance and functionality
- Make the timeline indicator thicker and with an indicator triangle,
  similar to the animation editor timeline.
- Add Space bar shortcut to play/pause the audio preview.
- Only seek when clicking or dragging with the left mouse button,
  not other mouse buttons.
2021-05-02 14:37:45 +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
Rémi Verschelde 305b2a15bf
Merge pull request #48239 from akien-mga/goodbye-copymem
Core: Drop custom `copymem`/`zeromem` defines
2021-04-28 11:04:05 +02:00
Hugo Locurcio 60b70c77e0
Improve the editor theme
The editor theme now makes use of rounded corners and less borders
to follow modern visual trends.

The default theme's colors were also tweaked to make the blue hue
more subtle (similar to the Arc theme, which was removed as a
consequence). The Alien theme was replaced by a Breeze Dark theme,
which should blend in well with the KDE theme.
2021-04-27 22:38:26 +02:00
Rémi Verschelde 95cfce661b
Merge pull request #48050 from JFonS/occlusion_culling 2021-04-27 19:07:12 +02:00
Rémi Verschelde 8247667a3e
Core: Drop custom `copymem`/`zeromem` defines
We've been using standard C library functions `memcpy`/`memset` for these since
2016 with 67f65f6639.

There was still the possibility for third-party platform ports to override the
definitions with a custom header, but this doesn't seem useful anymore.
2021-04-27 16:26:27 +02:00
Rémi Verschelde b95a82d46a
Merge pull request #47826 from Chaosus/vs_fix_default_input_overriding
Prevents default values of VSNodeCustom from overriding by a script
2021-04-27 10:42:51 +02:00
Rémi Verschelde 759b876b8a
Merge pull request #46593 from pycbouh/theme-editor-better-edit-ui
Refactor Edit Theme menu in Theme Editor
2021-04-23 23:12:25 +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 8ba06e3161
Merge pull request #47448 from madmiraal/rename-lineedit-cursor
Rename LineEdit getters and setters to match property names
2021-04-19 10:40:29 +02:00
Yuri Sizov 2524238bb3 Refactor Edit Theme menu in Theme Editor 2021-04-18 17:55:49 +03:00
Yuri Roubinsky 8ae5c6c6ec Fix `sky` visual shader mode after last rename 2021-04-17 20:59:48 +03:00
Marcel Admiraal 86822b187e Rename LineEdit caret_* properties getters and setters to match property 2021-04-17 12:41:23 +01:00
Rémi Verschelde 2e87857d75
Merge pull request #47629 from Calinou/editor-allow-center-selection-without-selection
Allow Center Selection to work without any selection in 2D/3D editors
2021-04-16 12:47:47 +02:00
Rémi Verschelde c7a4e2196e
Merge pull request #47878 from clayjohn/rename-get_surface_material
Rename get_surface_material to get_surface_override_material
2021-04-15 07:57:15 +02:00
clayjohn 92731d292c Rename get_surface_material to get_surface_override_material 2021-04-14 20:24:03 -07:00
reduz d3b49c416a Refactor GLSL shader compilation
-Used a more consistent set of keywords for the shader
-Remove all harcoded entry points
-Re-wrote the GLSL shader parser, new system is more flexible. Allows any entry point organization.
-Entry point for sky shaders is now sky().
-Entry point for particle shaders is now process().
2021-04-14 11:37:52 -03:00
Rémi Verschelde 6b39980ea9
Merge pull request #47856 from ray90514/bug#47555
Fix multi-selection doesn't correctly show in the inspector
2021-04-14 13:43:35 +02:00
ray90514 16decbc0ee Fix multi-selection doesn't correctly show in the inspector 2021-04-13 18:09:53 +08:00
Yuri Roubinsky 8d3e46098b Prevents default values of VSNodeCustom from overriding by a script 2021-04-12 14:41:08 +03:00
Rémi Verschelde 4a1f2dcb74
Merge pull request #47531 from fire/update-skeleton-display
Update Skeleton3D inspector Bone Transforms
2021-04-12 00:19:23 +02:00
Haoyu Qiu c8a40c8005 Fix 3D selection box size for Node3D 2021-04-11 15:15:52 +08:00
Rémi Verschelde 8b6e3d6375
Merge pull request #46340 from gongpha/various-color-picker
Add Various ColorPicker shapes
2021-04-10 13:29:50 +02:00
Aaron Franke b8f66d58b6
Show a message when trying to zoom farther than the limit 2021-04-09 11:21:09 -04:00
Rémi Verschelde 8ca8868ef9
Merge pull request #47733 from Calinou/editor-tweak-frame-time-display
Tweak frame time display in the editor
2021-04-09 15:37:02 +02:00
Hugo Locurcio 88518d28ba
Tweak frame time display in the editor
- Pad decimal values to avoid layout shifts when the frame time
  changes.
- Cap values to 0.01 milliseconds to avoid division by zero
  in the FPS counter.
2021-04-09 14:58:24 +02:00
Haoyu Qiu 879a290ed9 Fixes Node3D rotation in select mode on macOS 2021-04-09 12:31:26 +08:00
Kongfa Waroros 6294507acb Add Various ColorPicker shapes 2021-04-06 22:48:03 +07:00
Rémi Verschelde d83761ba80
Style: Apply clang-tidy's `readability-braces-around-statements` 2021-04-05 14:09:59 +02:00
Rémi Verschelde 0f0c0e5933
Style: Apply clang-tidy's `modernize-use-bool-literals` 2021-04-05 13:16:35 +02:00
Rémi Verschelde 77dc4c3cb6
Merge pull request #47636 from qarmin/input
Fix crashes in *_input functions
2021-04-05 11:54:08 +02:00
Rémi Verschelde 789646e201
Merge pull request #47632 from Calinou/asset-search-autofocus
Automatically focus the Search field when displaying asset library
2021-04-05 11:38:48 +02:00
Rémi Verschelde 189aa6340e
Merge pull request #47408 from megalobyte/remove-float-recast
Use double when setting the default step size
2021-04-05 11:37:06 +02:00
Rafał Mikrut 504bc5cc67 Fix crashes in *_input functions 2021-04-05 08:52:21 +02:00
Hugo Locurcio d89d00ac7e
Automatically focus the Search field when displaying asset library
- Focus the project search box when switching from the Templates tab
  back to the Projects tab in the project manager.
- Add a context-specific placeholder for the asset library search box.
- Rename "Search" project filter box placeholder to the more
  descriptive "Filter projects". When performing a search on an
  existing selection, "Filter" is more accurate than "Search".
2021-04-05 01:45:39 +02:00
Hugo Locurcio fc055e1993
Allow Center Selection to work without any selection in 2D/3D editors
When there is no selection, the camera will center around the
world origin.

This helps people get back to the world center if they haven't added
any nodes yet.
2021-04-04 19:58:46 +02:00
Rémi Verschelde a864a703ee
Merge pull request #47624 from Chaosus/vs_fix_context_menu_separator
Fix few bugs in the context menu for Comment node in visual shaders
2021-04-04 18:33:34 +02:00
Yuri Roubinsky 0fecd4ee4d Fix separator duplication in visual shader context menu 2021-04-04 17:55:42 +03:00
Yuri Roubinsky 44af52d62c Prevents TextureUniform in visual shaders from conversion to constant 2021-04-04 17:32:44 +03:00
Rémi Verschelde cbf5408685
Merge pull request #46273 from Chaosus/vs_comment
Added Comment node to Visual Shaders
2021-04-04 16:04:12 +02:00
Yuri Roubinsky 5af08e5e65 Fix typo in visual shader context menu 2021-04-04 15:31:04 +03:00
Rémi Verschelde 4b6e9f3157
Merge pull request #46991 from madmiraal/rename-invert-reverse
Rename Array.invert() to Array.reverse()
2021-04-01 13:32:22 +02:00
megalobyte d0f3817876 Use double when setting the default step size
Casting it as a float was causing issues with the progress bar
2021-03-31 22:28:08 -07:00
K. S. Ernest (iFire) Lee 182accc2e0 Update Skeleton3D inspector Bone Transforms 2021-03-31 09:19:01 -07:00
Rémi Verschelde 6b25c94bd6
Merge pull request #47519 from AndreaCatania/AndreaCatania-patch-4
Fixes editor crash on closing
2021-03-31 12:47:25 +02:00
AndreaCatania 79f55fcded Fixes editor crash on closing
Fixes editor crash when the gizmo is destroyed and the `SceneTree` is already freed.
2021-03-31 11:53:32 +02:00
Marcel Admiraal fd30c36985 Rename Texture.get_data() to get_image() 2021-03-28 13:00:46 +01:00
Tomasz Chabora 79fea30cd2 Allow for easier editing of rect CollisionShape2D 2021-03-25 23:10:59 +01:00
Hugo Locurcio b191a7547c
Rename the `.shader` file extension to `.gdshader`
This lets third-party software recognize Godot shaders more easily,
without relying on guesswork since the `.shader` extension is generic.
2021-03-24 21:33:44 +01:00
Kyle 2b775bd698 Fixes ctrl-click function line centering
When ctrl-clicking in the code editor, the view will now be centered on the function result.

Also replaces a circumstance where goto_line_centered should be used.
2021-03-24 12:29:14 -04:00
Aaron Franke 10d7fccb54
Rename ButtonList enum and members to MouseButton 2021-03-23 07:13:23 -04:00
Marcel Admiraal 755c70b871 Rename Array.invert() to Array.reverse()
Does the same internally for List and Vector<>, which includes all
PackedArray types.
2021-03-21 10:20:08 +00:00
Rémi Verschelde 48ee9cd690
Merge pull request #47123 from Calinou/tweak-3d-editor-grid-default-min-division
Tweak the 3D editor grid default to not go below subdivisions of 1 meter
2021-03-21 01:19:23 +01:00
Hugo Locurcio 3472c3f6ea
Tweak the 3D editor grid default to not go below subdivisions of 1 meter
Small subdivisions aren't useful that often and make it difficult for
people to get a sense of scale in 3D.
2021-03-21 00:41:12 +01:00
Tomasz Chabora f45e4c57f1 Allow to move timeline without moving animation 2021-03-21 00:24:16 +01:00
Rémi Verschelde 9febc206fe
Merge pull request #46740 from KoBeWi/🎵🎵🎵
Fix audio player not resetting after wav finishes
2021-03-20 22:47:19 +01:00
kobewi daa62ccaa3 Fix audio player not resetting after wav finishes 2021-03-20 20:16:53 +01:00
Rémi Verschelde 6608d99291
Merge pull request #47001 from madmiraal/rename-sprite_2d-region_enabled
Rename Sprite.region_enabled getter and setter methods to match properties
2021-03-20 18:36:17 +01:00
andybarcia 558b08e6d9 Fixes TileMap editor copy bug. 2021-03-19 12:09:28 +01:00
Haoyu Qiu eac806547f Fix AnimationTree editor crash when renaming node 2021-03-16 00:21:20 +08:00
Dominik 'dreamsComeTrue' Jasiński a99a671034 Reset ruler tool when switching tools with shortcuts
Fixes: #37056
2021-03-15 00:28:52 +01:00
Marcel Admiraal 3dcdb84660 Rename Sprite.region_enabled getter and setter to match properties
Also renames Sprite2D.region_filter_clip property and its setter to
region_filter_clip_enabled and set_region_filter_clip_enabled.
2021-03-14 17:31:49 +00:00
jmb462 6525d74623 Fix Asset Library URL not updating after been changed in editor settings
The changes made in this commit refresh the URL OptionButton when editor settings are modified.

No need to restart any more for the changes to appear in the Asset Library.

Fix #46977
2021-03-13 22:55:59 +01:00
Rémi Verschelde 223a06955e
Merge pull request #46978 from jmb462/fix-hardcoded-maya-style-pan-key-modifier
Fix hardcoded Maya style navigation pan key modifier (Fix #46973)
2021-03-13 22:03:40 +01:00
Rémi Verschelde 0444f5ac47
Merge pull request #46946 from Calinou/editor-sprite-frames-zoom-hidpi
Scale zoom values in the SpriteFrames editor for hiDPI displays
2021-03-13 21:49:43 +01:00
jmb462 31077d875e Fix hardcoded Maya style navigation pan key modifier
ALT key modifier was hardcoded is node_3d_editor_plugin.cpp and didn't take editor settings into account.

Fix #46973
2021-03-13 20:45:14 +01:00
mujpao 030703dd30 Update viewport after Polygon2D deselected 2021-03-12 17:22:46 -08:00
Hugo Locurcio e5c5b9570f
Scale zoom values in the SpriteFrames editor for hiDPI displays
This closes #46836.
2021-03-12 19:05:45 +01:00
Rémi Verschelde 0bef220f0a
Merge pull request #46759 from qarmin/crashes_others
Fix crashes when manipulating nodes in editor
2021-03-09 17:19:07 +01:00
Rémi Verschelde 14f330c95e
Merge pull request #46771 from socket220/master
pop-up usability enhancement for support-level button
2021-03-08 16:02:09 +01:00
gatalskii efe05a166e mod: pop-up usability enhancement for support button
Now after choosing support level pop-up doesn't hide after each click
2021-03-07 22:51:40 +03:00
Hugo Locurcio 25c6acb702
Make the pagination buttons wider in the asset library browser
This makes the page number buttons easier to click.
2021-03-07 20:11:58 +01:00
Rafał Mikrut f81ecb498b Fix crashes when manipulating nodes in editor 2021-03-07 15:14:24 +01:00
Rémi Verschelde 05248535f7
Merge pull request #46641 from KoBeWi/unsaved_forever
Don't save unchanged script upon closing
2021-03-06 21:06:06 +01:00
kobewi 12f5a5a701 Don't save unchanged script upon closing 2021-03-06 20:17:19 +01:00
jmb462 068300c7c9 Adding Raycast3D custom debug shape thickness and color 2021-03-04 11:17:26 +01:00
Rémi Verschelde ec7053259b
Merge pull request #41437 from KoBeWi/put_it_here
Allow to create a node at specific position
2021-03-01 15:48:53 +01:00
Rémi Verschelde c2799893f4
Merge pull request #46544 from Chaosus/tilemap_signal_fix
Check before connecting `TileMapEditor::settings_changed`
2021-03-01 11:59:11 +01:00
Yuri Roubinsky 1e7662f972 Check before connecting `TileMapEditor::settings_changed` 2021-03-01 10:25:33 +03:00
Andy Maloney 14c50fdb94 Fix gizmo names
Commit 5ef62e546f renamed EditorNode3DGizmoPlugin "get_name" to "get_gizmo_name", but it wasn't done everywhere. Because EditorNode3DGizmoPlugin inherits from Resource, it was then using Resource::get_name() which resulted in null names.

Fixes godotengine/godot#46349
2021-02-28 20:52:53 -05:00
Rémi Verschelde 7b685a1558
Merge pull request #46452 from hilfazer/click_mesh_instance_crash_40
Prevent crash when clicking Mesh in MeshInstance when is scene root
2021-02-26 21:00:12 +01:00
hilfazer 1810654369 Prevent crash when clicking Mesh in MeshInstance when is scene root 2021-02-26 19:28:09 +01:00
Tomasz Chabora 8df22a03c4 Allow to create a node at specific position 2021-02-26 14:40:28 +01:00
Vedat Günel 929da94e2c Add outline to dragged guide text 2021-02-26 03:12:50 +03:00
trollodel 85a776ddcd Allow CollisionObject3D to show collision shape meshes
Add an editor gizmo to CollisionObject3D.
CollisionShape3D no longer shows collision shapes directly.
2021-02-24 18:50:13 +01:00
Michael Alexsander 0bc7049099 Apply minor visual enhancements to the Sun/Env Preview 2021-02-23 11:21:26 -03:00
reduz d6a9cff8b7 Add preview Sun and Environment
* Adds both a preview sun and preview environment to the 3D editor.
* They are valid as long as a DirectionalLight3D and WorldEnvironment are not in the scene.
* If any is added to the scene, the respective preview is disabled.
* Changed WorldEnvironment to better handle multiple node versions.
* Added a function in SceneTree to get the first node in a group.
* Fixed button minimum size to also consider font height if no text is there, this broke with the TextSever PR.
2021-02-22 16:56:29 -03:00
hilfazer 442e550114 Prevent selecting hidden nodes in 3D and Canvas Item editors 2021-02-21 11:58:31 +01:00
Yuri Roubinsky fe3051fcce Added Comment node to Visual Shaders 2021-02-21 12:40:17 +03:00
reduz 083aa9b95e Refactor Process Mode
Implements https://github.com/godotengine/godot-proposals/issues/1835#issuecomment-727186192

* PauseMode is now ProcessMode, containing the following states:
	```
	PROCESS_MODE_INHERIT, // same as parent node
	PROCESS_MODE_NORMAL, // process only if not paused
	PROCESS_MODE_PAUSE_ONLY, // process only if paused
	PROCESS_MODE_ALWAYS, // process always
	PROCESS_MODE_DISABLED, // never process
	```
* NOTIFICATION_PAUSED and NOTIFICATION_UNPAUSED are received effectively when the node is paused and unpaused (not any longer when pause mode is set in SceneTree).
* Renamed some nodes that used ProcessMode/process_mode to specify a callback type to ProcessCallback to avoid clashes.
2021-02-18 20:39:55 -03:00
Rémi Verschelde 310496a89f
Merge pull request #45617 from RandomShaper/modernize_atomics
Modernize atomics (and fix `volatile`)
2021-02-18 19:40:31 +01:00
Pedro J. Estébanez 8e128726f0 Modernize atomics
- Based on C++11's `atomic`
- Reworked `SafeRefCount` (based on the rewrite by @hpvb)
- Replaced free atomic functions by the new `SafeNumeric<T>`
- Replaced wrong cases of `volatile bool` by the new `SafeFlag`
- Platform-specific implementations no longer needed

Co-authored-by: Hein-Pieter van Braam-Stewart <hp@tmm.cx>
2021-02-18 17:12:46 +01:00
Eric M 49714b0963 Removed hardcoded shortcuts from /scene and converted to input actions
This removes hardcoded actions from things like LineEdit and TextEdit.

Previously, things like copy, paste, etc were all hardcoded to Ctrl+C, Ctrl+V, etc. They could not be changed. This allows the possibility of them being changed, by making them use the action map. This has the added benefit of greatly simplifying the input handling logic in those controls. The logic which was previously in a huge and hard to follow switch statement has been extracted to individual methods.
2021-02-18 16:22:51 +01:00
reduz 64140eaf42 Reorganize Project Settings
-Advanced Settings toggle also hides advanced properties when disabled
-Simplified Advanced Bar (errors were just plain redundant)
-Reorganized rendering quality settings.
-Reorganized miscelaneous settings for clean up.
2021-02-18 11:23:34 -03:00
Rémi Verschelde 7f63d6e848
Merge pull request #46105 from Calinou/assetlib-retry-button-only-failure
Only display the assetlib Retry button if the download failed
2021-02-17 08:10:27 +01:00
Hugo Locurcio 508011a57f
Only display the assetlib Retry button if the download failed 2021-02-17 02:00:22 +01:00
Aaron Franke 7d9ad2b845
Use Vector3.UP as a default value for look_at's up vector 2021-02-16 18:33:23 -05:00
reduz 288540a690 Fix editor always redrawing
-Only update rendering settings when project settings change
-Fixes the update spinner (and editor rendering) updating all the time.
-Added a "project_settings_changed" signal to EditorNode and EditorPlugin
2021-02-13 14:57:28 -03:00
Rémi Verschelde 5011a22731
Merge pull request #45932 from goostengine/sprite-convert-compressed
Fix sprite editor conversion tools to handle compressed textures
2021-02-12 23:11:51 +01:00
Andrii Doroshenko (Xrayez) 1cd7a16c10 Fix sprite editor conversion tools to handle compressed textures 2021-02-12 21:42:07 +02:00
reduz f8d03b98e7 Improve resource load cache
-Added a new method in Resource: reset_state , used for reloading the same resource from disk
-Added a new cache mode "replace" in ResourceLoader, which reuses existing loaded sub-resources but resets their data from disk (or replaces them if they chaged type)
-Because the correct sub-resource paths are always loaded now, this fixes bugs with subresource folding or subresource ordering when saving.
2021-02-11 15:44:28 -03:00
reduz 1aa2823fa3 Removed _change_notify
-For inspector refresh, the inspector now detects if a property change by polling a few times per second and then does update the control if so. This process is very cheap.
-For property list refresh, a new signal (property_list_changed) was added to Object. _change_notify() is replaced by notify_property_list_changed()
-Changed all objects using the old method to the signal, or just deleted the calls to _change_notify(<property>) since they are unnecesary now.
2021-02-10 19:31:24 -03:00
Rémi Verschelde d93f75fae5
Merge pull request #45698 from KoBeWi/callables_are_love_callables_are_life
Change sort_custom/bsearch_custom to use Callables
2021-02-05 09:30:19 +01:00
kobewi fb83d905da Change sort_custom/bsearch_custom to use Callables 2021-02-04 14:37:52 +01:00