Commit Graph

367 Commits

Author SHA1 Message Date
54006f6ebf Merge pull request #102217 from clayjohn/mobile-pipelines
Reduce mobile pipeline compilations
2025-02-13 23:34:54 +01:00
5460fe3994 Merge pull request #102653 from lawnjelly/fti_fix_client_ticking_4
Physics Interpolation - Fix client interpolation pump
2025-02-11 10:54:21 +01:00
3286b7fb37 Physics Interpolation - fix client interpolation pump
Client interpolation pump is moved AFTER the physics tick, after physics objects have been moved.
This is necessary because the `current` transform is also updated during the pump.
2025-02-10 10:40:23 +00:00
e46993f0db Physics Interpolation - Auto-reset on set_physics_interpolation_mode()
Fixes historical bug where auto-reset wasn't working correctly.
Also fixes process modes on Cameras when mode is changed.
2025-02-10 10:19:54 +00:00
7444839299 Reduce mobile pipeline compilations by tracking more feature usage globally and only compile what is needed 2025-02-05 18:27:23 -08:00
d774f697d3 Fully enable HDR2D when the setting is changed. This allows toggling HDR2D without restarting. 2025-01-29 23:39:14 -08:00
11007718ec Merge pull request #93871 from KoBeWi/🚽🚽
Flush delete queue after process frame timers
2025-01-11 22:29:23 +01:00
ccc134fd1b Tween code improvements 2025-01-07 01:21:23 +01:00
c78d9d2fe7 Merge pull request #98660 from Meorge/tween-subtween
Add `Tween.tween_subtween` method for nesting tweens within each other
2025-01-06 22:46:40 +01:00
be266138d7 Add tween_subtween method for nesting Tweens
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`
2025-01-03 14:28:48 -08:00
0d710da96c Merge pull request #98554 from Calinou/add-property-hint-ranges
Add more property hint ranges for project settings
2025-01-03 00:47:59 +01:00
953db6e785 Merge pull request #100752 from AThousandShips/unify_timer_scale_naming
[Core] Align naming and args of `(SceneTree)Timer` time scale methods
2024-12-30 08:58:36 -06:00
0e00f41650 Merge pull request #100735 from tvenclovas96/tween_ignore_time_scale
Add an option for tweens to ignore `Engine.time_scale`
2024-12-30 08:58:25 -06:00
8d1a3e2a76 [Core] Align naming and args of (SceneTree)Timer time scale methods
Renamed `get_ignore_time_scale` to `is_ignoring_time_scale` following general naming standards.
2024-12-23 16:47:00 -05:00
a1846b27ea Improve use of Ref.is_null/valid
Use `is_null` over `!is_valid` and vice versa.
2024-12-23 16:35:02 -05:00
62c17911ea Add more property hint ranges for project settings
- 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.
2024-12-23 18:22:32 +01:00
73d85f46c9 Remove unused headers in scene.
Co-authored-by: Thaddeus Crews <repiteo@outlook.com>

Co-authored-by: A Thousand Ships <96648715+AThousandShips@users.noreply.github.com>
2024-12-24 00:40:09 +08:00
dbc0cc1437 Add Tween::ignore_time_scale 2024-12-22 18:39:54 +02:00
8793764ba6 Fix default environment project setting and loading 2024-11-27 14:15:27 -03:00
925b690c98 Core: Integrate Ref::instantiate where possible 2024-11-10 12:41:26 -06:00
16524a8a01 Add "Game" editor for better runtime debugging 2024-10-30 11:42:17 -03:00
22ccfc5a39 Print error on invalid call_group() calls 2024-09-20 17:20:03 +02:00
154049ce17 StringName Dictionary keys
also added 'is_string()' method to Variant
and refactored many String type comparisons to use it instead
2024-08-29 13:39:27 -07:00
2f8ab4a654 Fixed Timestep Interpolation (3D)
Adds 3D fixed timestep interpolation to the rendering server.
This does not yet include support for multimeshes or particles.

Co-authored-by: lawnjelly <lawnjelly@gmail.com>
2024-07-07 22:15:23 +02:00
6aebc91298 Flush delete queue after process frame timers 2024-07-02 20:34:51 +02:00
413c11357d Use Core/Scene stringnames consistently 2024-05-13 23:41:07 +02:00
0b877a9962 Expose is_part_of_edited_scene() 2024-04-26 11:49:38 +02:00
8d1cb7e74c Add project setting for root node auto translate mode 2024-04-16 11:02:04 +08:00
0a68876348 Remove some unused SceneTree properties 2024-04-13 00:56:01 +02:00
2ed2ccc2d8 Fixed Timestep Interpolation (2D)
Adds fixed timestep interpolation to the rendering server (2D only).
Switchable on and off with a project setting (default is off).

Co-authored-by: lawnjelly <lawnjelly@gmail.com>
2024-03-23 12:28:36 +01:00
7b3e1a5bde Optimize SceneTree's change_scene_to_file autocompletion 2024-03-01 15:12:52 +01:00
c1377920cd Merge pull request #86743 from Mickeon/autocompletion-optimise-object
Optimise comparisons for Object's `get_argument_options`
2024-03-01 14:56:06 +01:00
cd2032a90b Optimise Object's get_argument_options 2024-02-29 18:00:54 +01:00
dcf4cf79fd Hide snap_2d_vertices_to_pixel setting to advanced 2024-02-28 10:59:41 -05:00
c399424db9 Move 3D-only resources to their own folder 2024-02-26 05:23:04 -06:00
f06222e487 [Physics] Fix export with 3D disabled 2024-02-22 16:23:48 +01:00
3475156ae3 Expose pixel snapping settings add pixel-art notes
This small in-engine documentation change aims to make it easier to
discover ways to handle pixel art aesthetics.

- I have moved 2D pixel snapping settings out of "Advanced." This now matches other pixel-art-friendly settings for
GUI Snapping and Default Texture filtering.
- I've added notes to the project settings and Sprite/AnimatedSprite sources to hint users towards better understanding of why pixelated sprites may not work correctly and what to do about it. This should help users make informed decisions for their needs.

Context: Proper handling of pixel art in Godot is routinely frustrating for new users: I, like others, assumed that Godot would act on pixels, not subpixels, when I was working a pixel art game. I was confused when my interpolations would appear blurry, and when pixel textures would be distorted for no apparent reason (this was because of centering).
I had naively thought that setting Linear interpolation would be the single "it's a pixel art game" toggle, but that only hid the underlying issues until later. I had no idea there was a snap-to-pixel option because it was hidden in the Advanced options, since my default assumption was that a pixel art game would want no subpixels at all.

Some references for the frustration:

- https://github.com/godotengine/godot/issues/82696
- https://www.reddit.com/r/godot/comments/fah25e/best_way_to_achieve_pixel_perfect_rendering/
- https://shaggydev.com/2021/09/21/project-setup-for-pixel-art/
2024-02-17 23:40:53 +00:00
7b42c24550 Make auto translation inheritable 2024-02-15 16:51:19 -03:00
ca2f340384 Fix missing autocompletion for inheriting classes 2024-01-03 00:13:04 +01:00
958699a0c4 Implement project-wide node groups 2023-12-19 18:07:19 +01:00
16d1d85a56 Merge pull request #78206 from alula/node-count-in-group
Add SceneTree.get_node_count_in_group()
2023-12-14 17:38:00 +01:00
8bebabda18 Let scene replacemnent benefit from certain late pieces of frame logic 2023-11-21 18:32:49 +01:00
15b8185c68 Don't use TTR/RTR for ERR/WARN prints
We don't translate those, only editor strings are translated.
2023-11-12 12:00:55 +01:00
fcbf7011cc Make 3D editor gizmos and debug shapes ignore fog
This makes them easier to see in their intended colors in scenes with fog.
2023-09-27 00:54:57 +02:00
a5fe392b78 Disallow nested custom multiplayers in SceneTree
Enables clearing the custom multiplayer
2023-09-25 14:59:05 +02:00
c4705a590b Fix Object::notification order
Previously the `p_reversed` parameter didn't influence the order
in a correct way.
Also script overridden _notification functions were not called in
the correct order.

To fix this some `notification` functions had to add a `p_reversed`
parameter.

This made it necessary to adjust cpp-bindings.

Co-authored-by: David Snopek <dsnopek@gmail.com>
2023-08-30 00:15:55 +02:00
57eb762bae Add option to enable HDR rendering in 2D
This is needed to allow 2D to fully make use of 3D effects (e.g. glow), and can be used to substantially improve quality of 2D rendering at the cost of performance

Additionally, the 2D rendering pipeline is done in linear space (we skip linear_to_srgb conversion in 3D tonemapping) so the entire Viewport can be kept linear.
This is necessary for proper HDR screen support in the future.
2023-08-07 11:24:03 +02:00
e8df8c5e2c Merge pull request #78988 from RandomShaper/fix_change_scene
Reimplement scene change
2023-07-26 18:39:43 +02:00
7e21eb7e00 Extract and reorganize texture resource classes 2023-07-14 20:04:21 +02:00
7ff2a93952 Merge pull request #72248 from RedwanFox/mainloop_init_order_fix
Ensure that SceneTree is initialized and finalized at correct time
2023-07-12 17:16:05 +02:00