Commit Graph

463 Commits

Author SHA1 Message Date
kobewi a262d2d881 Add shorthand for using singleton string names 2024-05-11 18:53:08 +02:00
A Thousand Ships b4c6cc7d82
[Core] Add case-insensitive `String::containsn` 2024-05-08 12:48:01 +02:00
Rémi Verschelde 4b070e8031
Fix various typos with codespell
Using 2.2.7.dev217+g10c2abcf.

Had to add `colour` to the ignore list as we used it as an alias/keyword for the
documentation of color-related APIs.
Also ignore recommendations to change `thirdparty` to either `third-party` or
`third party`, which are correct but we use the former fairly consistently.
2024-05-07 10:08:42 +02:00
A Thousand Ships 955d5affa8
Reduce and prevent unnecessary random-access to `List`
Random-access access to `List` when iterating is `O(n^2)` (`O(n)` when
accessing a single element)

* Removed subscript operator, in favor of a more explicit `get`
* Added conversion from `Iterator` to `ConstIterator`
* Remade existing operations into other solutions when applicable
2024-05-04 16:08:55 +02:00
K. S. Ernest (iFire) Lee f9b488508c
Add PackedVector4Array Variant type
Co-authored-by: A Thousand Ships <96648715+AThousandShips@users.noreply.github.com>
Co-authored-by: Rémi Verschelde <rverschelde@gmail.com>
2024-05-03 00:58:27 +02:00
Silc Lizard (Tokage) Renew fc21161525 Make adding track process to set interpolation type on creating RESET 2024-04-27 11:39:30 +09:00
RedMser 9cd30208d6 Improve SceneTreeEditor usability
- Mark contextually relevant node
- Remember/Clear selection as appropriate
- Scroll to marked/selected node
2024-03-31 21:35:10 +02:00
Rémi Verschelde 05372773e1
Merge pull request #89599 from timothyqiu/vegetate
Fix unexpected auto translation of editor `Tree` content
2024-03-23 21:15:39 -07:00
Rémi Verschelde 0ca0e8fc49
Merge pull request #88498 from CookieBadger/animation-fix-snapping-multiple
Fix snapping multiple keys in Animation
2024-03-24 01:14:23 +01:00
Rémi Verschelde b0505b580d
Merge pull request #88445 from CookieBadger/animation-paste-snap-fix
Fix various bugs in Animation key right click actions
2024-03-24 01:14:08 +01:00
Hilderin b46d0a6ea8 Add auto focus timeline and bezier scale on animation editor
Add a button at the bottom of the animation editor that change the zoom based on the animation length and the bezier scale based on the values and handles of the displayed tracks. The icon and the tooltip of the button change depending if the bezier editor is displayed or not.

Some refactor was made in animation_track_editor.cpp to remove code duplication with the visibility check of the tracks.

This should help with the issue #85826
2024-03-19 21:01:15 -04:00
emild d88df641ee Fix snapping multiple keys in Animation 2024-03-18 11:21:12 +01:00
Haoyu Qiu 8cd1ebbd6d Fix unexpected auto translation of Tree content 2024-03-18 09:31:00 +08:00
Muller-Castro 1638c1b28f Add const lvalue ref to editor/* container parameters 2024-02-26 15:28:15 -03:00
Rémi Verschelde 6037500219
Merge pull request #69032 from KoBeWi/check_every_changed_setting_in_every_group_everywhere()
Use `check_changed_settings_in_group()` everywhere
2024-02-20 19:34:30 +01:00
emild 041315253f Fix various bugs in Animation key right click actions 2024-02-20 12:17:20 +01:00
kobewi a031911c82 Use check_changed_settings_in_group() everywhere 2024-02-19 21:34:45 +01:00
CookieBadger 47dba6bc56 use ED_IS_SHORTCUT macro instead of matches_event 2024-02-19 13:16:06 +01:00
Rémi Verschelde 7bc2605f02
Merge pull request #88436 from AThousandShips/editor_ellipses
[Editor] Add missing ellipses to menu options that open dialogs
2024-02-18 11:23:48 +01:00
Rémi Verschelde 4002ea7e15
Merge pull request #88350 from CookieBadger/animation-cut-keyframe
Implement Cut Selected Keys in AnimationPlayer
2024-02-18 11:23:41 +01:00
A Thousand Ships fc3a2933de
Fix crash with animation audio track offset 2024-02-17 17:42:45 +01:00
A Thousand Ships dde5368dee
[Editor] Add missing ellipses to menu options that open dialogs 2024-02-17 17:09:17 +01:00
Silc Lizard (Tokage) Renew 4659090543 Make consistent the retrieval of audio tracks 2024-02-18 00:15:33 +09:00
Rémi Verschelde 2c5fa95aea
Merge pull request #87530 from YeldhamDev/atr_inheritance
Rework the auto translation system
2024-02-17 15:54:31 +01:00
Rémi Verschelde b6ef996eb7
Merge pull request #86608 from TokageItLab/add-warn-setting-anim
Add some options to Project Settings to silence warnings in AnimationMixer caching
2024-02-17 00:22:52 +01:00
Michael Alexsander 7b42c24550
Make auto translation inheritable 2024-02-15 16:51:19 -03:00
Rémi Verschelde b8a402b3cb
Merge pull request #88352 from CookieBadger/bezier-handle-mode-undo-fix
Fix Bezier Editor HandleMode UndoRedo History mismatch
2024-02-15 15:45:27 +01:00
emild 0f7b4e4252 Fix bezier editor handle mode undo history mismatch 2024-02-15 01:31:07 +01:00
emild af08997de7 implemented cut selected keys in animation player 2024-02-15 00:44:40 +01:00
Silc Lizard (Tokage) Renew dc4b7bc364 Add option to silence some warnings in AnimationMixer caching 2024-02-14 14:48:02 +09:00
Rémi Verschelde 9fb52d969b
Merge pull request #88302 from CookieBadger/bezier-remove-unused-signals
Remove unused signals in AnimationBezierTrackEdit
2024-02-13 23:43:57 +01:00
emild e4d491a880 remove unused signals in AnimationBezierTrackEdit 2024-02-13 22:52:54 +01:00
emild b66b188cf9
Fix vertical zoom factor in Animation Bezier Editor 2024-02-13 10:32:50 +01:00
Rémi Verschelde 75255bd15c
Merge pull request #87250 from CookieBadger/animation-copy-paste-keyframe
Implement consistent functionality for select, copy, paste, and duplicate in AnimationPlayer
2024-02-12 13:33:57 +01:00
Rémi Verschelde 7b1525236a
Merge pull request #85367 from KoBeWi/elephant_in_the_editor
Fix custom type icon sizes in animation tracks
2024-02-12 13:33:27 +01:00
emild a5cb760d90 implement consistent select, copy, paste, duplicate in animation player 2024-02-06 18:57:10 +01:00
Yuri Sizov 635b8a1474 Split theme generation logic into several subroutines
This change introduces a new theme configuration struct to be
passed to the aforementioned routines to better control reuse
of styles and definitions in the generator.

Everything not passed and not explicitly shared is scoped so it
is not automatically accessible throughout the routine. This
should ensure that the decision to share styles is a conscious one.

In the future we will try to reduce the number of unique definitions
and share most of it. This PR is a stepping stone on this path.

This also puts the effort into separating redefinitions of
default theme items vs custom types introduced only by the editor.
In a few cases where editor-specific definitions need to reference
default definitions we simply fetch them from the theme. It's not
ideal and hides the dependency a bit, but hopefully these cases
will be abstracted properly in due time.
2024-01-16 11:57:45 +01:00
Yuri Sizov 95b27fe8c7 Reorganize code related to editor theming
This change introduces a new EditorThemeManager class
to abstract theme generatio and its subroutines.

Logic related to EditorTheme, EditorColorMap, and editor
icons has been extracted into their respective files with
includes cleaned up.

All related files have been moved to a separate folder to
better scope them in the project. This includes relevant
generated files as well.
2024-01-16 11:57:45 +01:00
kobewi 0e8f90f4c8 Update deferred calls to use Callables 2024-01-09 16:11:47 +01:00
Rémi Verschelde 0354dc4205
Merge pull request #86867 from TokageItLab/reset-copy-options-for-more
Copy InterpolationType / LoopMode for all track & UseBlend option for audio when adding reset keys
2024-01-08 11:59:07 +01:00
Rémi Verschelde a2bd7c3301
Merge pull request #85142 from CookieBadger/animation-player-improvements
Improve usability of zooming in the animation editor
2024-01-08 11:50:38 +01:00
CookieBadger 5b3d5e0a65 Improved usability of zoom features in animation player 2024-01-07 01:30:06 +01:00
Silc Lizard (Tokage) Renew 5ade1077ff Copy intrp/loop for all track & use_blend for audio when adding reset 2024-01-06 17:15:45 +09:00
Rémi Verschelde 4c0db7765d
Merge pull request #86630 from TokageItLab/value-track-default-option
Make default options of int value track refer to RESET animation
2024-01-02 18:06:02 +01:00
Silc Lizard (Tokage) Renew eecfe5d75a Make default options of int value track refer to RESET animation 2024-01-02 13:13:47 +09:00
kobewi d96fca371b Copy track update mode when adding reset key 2023-12-30 18:02:55 +01:00
Saracen 09a4aa3ce8 Fix setting bezier track handle mode from inspector. 2023-12-14 23:11:47 +00:00
kobewi 3517ab5627 Fix custom type icon sizes in animation tracks 2023-11-25 23:41:25 +01:00
Silc Lizard (Tokage) Renew 21833f3dfd Fix seeking bug in AnimationPlayerEditor 2023-11-22 06:43:26 +09:00
Saracen 8db9884dd5 Add descriptive warning for animation track hint fails. 2023-10-30 14:34:15 +00:00
Rémi Verschelde e897a46a5f
Merge pull request #82627 from kleonc/animation-editor-audio-clip-offset-sliders-limit-to-length
Limit animation audio clip inspector offset sliders to clip length
2023-10-16 10:38:08 +02:00
Rémi Verschelde a1d7c62df7
Merge pull request #83003 from AThousandShips/null_check_extra
Replace `ERR_FAIL_COND` with `ERR_FAIL_NULL` where applicable
2023-10-09 15:37:14 +02:00
A Thousand Ships f18aa00e85 Replace `ERR_FAIL_COND` with `ERR_FAIL_NULL` where applicable 2023-10-08 17:23:33 +02:00
RealMadvicius e7a35d1521 Fix crash when clicking on "Interpolation Mode" with nonexistent node path
issue reference [https://github.com/godotengine/godot/issues/81769]
#81769 AnimationPlayer: Editor crashes when clicking on "Interpolation Mode" with nonexistent node path

- adding a nullptr check on a Node pointer obtained from get_node(NodePath) in case it is null now we wont execute the next instruction

> ClassDB::get_property_info(nd->get_class(), prop, &prop_info);

Which then prevents the crash
2023-10-07 11:34:02 +02:00
kobewi 09b30be86d Add vararg call() method to C++ Callable 2023-10-05 11:35:29 +02:00
Rémi Verschelde a3d6d60fe1
Merge pull request #81188 from the-sink/animation_player_things
Select node when clicked in AnimationPlayer timeline
2023-10-03 17:14:25 +02:00
kleonc c1008c2471 Limit animation audio clip inspector offset sliders to clip length 2023-10-01 18:40:41 +02:00
the-sink cbdb23e7ee Select node when clicked in AnimationPlayer timeline 2023-09-28 18:00:34 -07:00
Silc Lizard (Tokage) Renew 1b95827d3e Implement AnimationManager the base class of AnimationPlayer/Tree 2023-09-29 08:23:57 +09:00
A Thousand Ships e45927b2f2 Replace `radians` range hint with `radians_as_degrees` 2023-09-25 08:50:19 +02:00
ajreckof 6afadbaa9f Replace Ctrl in editor shortcuts with Cmd or Ctrl depending on platform 2023-09-19 10:29:07 +02:00
A Thousand Ships 75ee58fd04 [Editor] Replace `ERR_FAIL_COND` with `ERR_FAIL_NULL` where applicable 2023-09-15 20:15:39 +02:00
Haoyu Qiu b8b0339549 Improve undo action names
* Avoid concating strings manually for better i18n and easy l10n
   * Use `vformat` when possible
   * Use separate strings if the changing part is only a few hardcoded strings
* Don't put a period at the end of the name
2023-09-12 18:53:50 +08:00
jsjtxietian 042e0f7019 Ignore method track when drawing line between keys 2023-09-12 14:43:23 +08:00
kobewi 6de34fde27 Add EditorStringNames singleton 2023-09-03 19:58:18 +02:00
Yuri Sizov 3bc842b1b1 Merge pull request #54524 from Calinou/animation-editor-add-bypass-confirmation
Skip keyframe creation dialog when holding Shift in the animation editor
2023-07-26 18:39:01 +02:00
kobewi de4a3fa151 Unify and streamline connecting to Resource changes 2023-07-17 19:35:57 +02:00
Hugo Locurcio 5e117ee7bf
Skip keyframe creation dialog when holding Shift in the animation editor
The editor setting to always bypass the confirmation dialog was removed,
since the new shortcut effectively supersedes it in a more granular way.
2023-07-17 12:09:32 +02:00
Rémi Verschelde a3a8d3463e
Merge pull request #74948 from AThousandShips/animation_key
Fix type check in AnimationTrackKeyEdit for methods
2023-06-09 15:30:16 +02:00
Silc Lizard (Tokage) Renew 14205804a9 Add spring tween to AnimationTrackEditor 2023-06-05 05:02:27 +09:00
Silc Renew fac8a918f9 Expose interpolation methods for 3D track in Animation class 2023-04-25 01:45:14 +09:00
Samuele Panzeri b6abb34759 Fix editor spin slider remaining editable if set read_only during an edit and fix related animation player crash 2023-04-22 18:34:36 +02:00
Haoyu Qiu aa604ec435 Add i18n for track easing and baking dialogs 2023-04-13 13:06:55 +08:00
Yuri Sizov 4154039832 Improve includes of EditorNode (and everything else)
Also start organizing editor-specific GUI components
into a dedicated folder, `editor/gui`.
Also move `editor_file_server` next to the rest of debugger classes.
2023-04-07 18:59:49 +02:00
Ninni Pipping ad769903b0 Fix type check in AnimationTrackKeyEdit for methods 2023-03-15 19:32:27 +01:00
Rémi Verschelde b2584629c8
Merge pull request #73195 from timothyqiu/weblate-comments
Improvements and fixes based on Weblate comments
2023-02-17 09:55:39 +01:00
SaracenOne 919df3ac0e Make animation length control respect read-only rules. 2023-02-15 15:13:50 +00:00
Haoyu Qiu 84aee17901 Improvements and fixes based on Weblate comments
* Description of `ui_text_submit` action should be "Submit Text" instead of "Text Submitted".
* Spell out "Animation" instead of using "Anim.".
* Treat "Max" as regular word instead of writing "Max.".
* Use generic "Set %s" for action name instead of a dedicated "Set target_position".
* Add translator comment for:
    * "Inclusive" and "Self" in the profiler.
    * Places where it needs the context about being an editor progress label.
    * "Duplicated Animation Name" since it's refering to the new name of a duplicated animation.
    * Disambiguation of "View Plane Transform", "Paste Selects" and "Display Normal".
* Fix wrong undo action name for renaming an input action.
* Fix missing end quote in a shader error message.
* In class reference:
    * Fix duplicated "if" in the description of `signf()`.
    * Fix mismatched example output in `String.operator %()`.
    * Fix typo in the description of `Decal.texture_emission`.
    * Unify description of `String.match()` and `StringName.match()`.
2023-02-13 15:22:18 +08:00
Ruthger Dijt e2a87ec28b fix nullptr dereference in AnimationTimelineEdit 2023-02-11 20:30:11 +01:00
Silc Renew 4c5bd4cb0a Fix weird bezier edit button update timing in AnimationTrackEditor 2023-02-11 20:48:18 +09:00
Rémi Verschelde 73c53cca81
Merge pull request #71054 from MarioLiebisch/fix-animationplayer-calltrack-strings
Properly stringify args for Call Method Tracks
2023-02-10 18:44:29 +01:00
Silc Renew 116c975a7b Fix rotation key edit is labeled scale in AnimationMultiTrackKeyEdit 2023-02-06 13:48:33 +09:00
Rémi Verschelde b342dcdf04
Remove some unused signals
Part of #37604.
2023-01-31 18:54:04 +01:00
Silc Renew 75330887d7 Implement blending audio feature to AnimationTree 2023-01-28 20:08:29 +09:00
Gilles Roudière a3b431b09d Add gesture to ViewPanner and simplify a bit its API 2023-01-23 16:43:53 +01:00
kobewi b58111588a Add EditorUndoRedoManager singleton 2023-01-16 01:11:52 +01:00
Silc Renew 5d2e7b9b1d Fix undo of editing animation length with spinner by adding flag 2023-01-10 12:29:05 +09:00
Juan Linietsky 2b815df3c1 Use BitField<> in core type masks
* All core types masks are now correctly marked as bitfields.
* The enum hacks in MouseButtonMask and many other types are gone. This ensures that binders to other languages non C++ can actually implement type safe bitmasks.
* Most bitmask operations replaced by functions in BitField<>
* Key is still a problem because its enum and mask at the same time. While it kind of works in C++, this most likely can't be implemented safely in other languages and will have to be changed at some point. Mostly left as-is.
* Documentation and API dump updated to reflect bitfields in core types.
2023-01-08 22:17:40 +01:00
Mario Liebisch b495c63b0b
Properly stringify args for Call Method Tracks
This ensures string arguments are always shown as properly enclose in
quotes and escaped and should help avoid confusion, as the previously
shown key frame labels could display as invalid code, most prominently
missing quote characters around strings.
2023-01-08 11:27:44 +01:00
Rémi Verschelde d95794ec8a
One Copyright Update to rule them all
As many open source projects have started doing it, we're removing the
current year from the copyright notice, so that we don't need to bump
it every year.

It seems like only the first year of publication is technically
relevant for copyright notices, and even that seems to be something
that many companies stopped listing altogether (in a version controlled
codebase, the commits are a much better source of date of publication
than a hardcoded copyright statement).

We also now list Godot Engine contributors first as we're collectively
the current maintainers of the project, and we clarify that the
"exclusive" copyright of the co-founders covers the timespan before
opensourcing (their further contributions are included as part of Godot
Engine contributors).

Also fixed "cf." Frenchism - it's meant as "refer to / see".
2023-01-05 13:25:55 +01:00
Silc Renew 060fb2d093 Add inspector plugin for key time edit & Change find key argument 2022-12-22 10:03:06 +09:00
Silc Renew c87e9f0b7c Fix unmerged history in AnimationTrackEditor 2022-12-10 22:21:38 +09:00
Silc Renew 83135aa122 Remove UPDATE_TRIGGER & Match behaviors between AnimationTree/Player
#69357
2022-12-02 20:28:10 +09:00
Silc Renew f544b8f844 Fix crash AnimationTimelineEdit when switch FPS mode without track 2022-11-30 00:27:56 +09:00
trollodel c90d0bd84f Use forward-declarations in big editor classes 2022-11-29 09:59:43 +01:00
Rémi Verschelde ef090ee6ea
Merge pull request #68874 from TokageItLab/fix-unique-path-keying
Added option to `get_path_to()` to get the shortest path considering unique name
2022-11-28 14:49:34 +01:00
Silc Renew 5e785e2ea4 Fix wrong AnimationTrackKeyEdit update timing 2022-11-25 14:50:16 +09:00
kobewi 8a3d2f4e0c Cleanup remaining EditorUndoRedoManager usages 2022-11-24 18:56:22 +01:00
Silc Renew b739bafd51 Fix connection of animation changed signal in AnimationTrackEditor 2022-11-20 06:38:51 +09:00
Silc Renew b9d1550590 Add option to get_path_to() to get the shortest path with unique name 2022-11-19 15:06:25 +09:00