No actual functionality yet
Actual subtween functionality implemented
Added documentation for Tween.tween_subtween and SubtweenTweener
Implemented some additional functions
`set_ease`, `set_trans`, and `set_delay`
Documentation only for `set_delay` so far, since I have tested it
Removed set_ease and set_trans
Upon further investigation, the way they are implemented for Tween doesn't appear to work here
Fixed indentation in documentation
Reset subtween when parent loops
Fix return type of `SubtweenTweener.set_delay`
Add notes to documentation
Apply suggestions from code review
Co-authored-by: Tomasz Chabora <kobewi4e@gmail.com>
Apply some suggested changes
- Remove excessive documentation
- Add Tween constructor that takes in SceneTree
- Make `SubtweenTweener::subtween` public so that `Tween` doesn't have to be a friend class
Remove unneeded friend class SceneTree
Remove superfluous documentation describing subtween behavior
Apply suggestions from code review
Co-authored-by: Tomasz Chabora <kobewi4e@gmail.com>
Apply suggestions from code review
Co-authored-by: Thaddeus Crews <repiteo@outlook.com>
Apply suggestions from code review
Co-authored-by: A Thousand Ships <96648715+AThousandShips@users.noreply.github.com>
Early return from `tween_subtween` if the subtween is `null`
- Tweak property hint ranges for some networking settings to ensure
the minimum values don't break the debugger entirely.
- Ensure shader time rollover is set to at least 1, as 0 causes a division by
zero to occur.
All relevant project settings are now covered by a range hint.
Currently the mouse cursor jumps in unexpected ways, when a `ViewPanner`
is used in SubViewports or embedded Windows.
This is caused by providing wrong coordinate systems to
Input::warp_mouse_motion.
This PR replaces the use of `Input::warp_mouse_motion` with
`Viewport::wrap_mouse_in_rect` and makes sure, that the correct
coordinate systems are used.
This change makes it necessary, that all classes, that currently
use ViewPanner, need to provide the correct Viewport to ViewPanner.
Fix Rect of texture to take window and stretch transform into account.
There is no need for `viewport_attach_to_screen` for embedded windows,
since their display is handled via `Viewport::_sub_window_update`.
Previously, embedded Windows (the opened menu) were not accounted for
when checking for `switch_on_hover`.
`gui_get_hovered_control()` is more appropriate to check for the hover
status of other `MenuButton` nodes at the mouse position.
Explain the usage of the incorrectly used function in a comment.
We now cache the Node*<>TreeItem* mapping in the SceneTreeEditor. This
allows us to make targeted updates to the Tree used to display the scene
tree in the editor.
Previously on almost all changes to the scene tree the editor would
rebuild the entire widget, causing a large number of deallocations an
allocations. We now carefully manipulate the Tree widget in-situ saving
a large number of these allocations.
In order to know what Nodes need to be updated we add a
editor_state_changed signal to Node, this is a TOOLS_ENABLED,
editor-only signal fired when changes to Node happen that are relevant
to editor state.
We also now make sure that when nodes are moved/renamed we don't check
expensive properties that cannot contain NodePaths. This saves a lot of
time when SceneTreeDock renames a node in a scene with a lot of
MeshInstances. This makes renaming nodes go from ~27 seconds to ~2
seconds on large scenes.
SceneTreeEditor instances will now also not do all of the potentially
expensive update work if they are invisible. This behavior is turned off
by default so it won't affect existing users. This change allows the
editor to only update SceneTreeEditors that actually in view. In
practice this means that for most changes instead of updating 6
SceneTreeEditors we only update 1 instantly, and the others only when
they become visible.
There is definitely more that could be done, but this is already a
massive improvement. In complex scenes we see an improvement of 10x,
things that used to take ~30 seconds now only take 2.
This fixes#83460
I want to thank KoBeWi, TokisanGames, a-johnston, aniel080400 for
their tireless testing. And AeioMuch for their testing and providing a
fix for the hover issue.