Commit Graph

182 Commits

Author SHA1 Message Date
Rémi Verschelde 2dd1f4ef60 Decouple node.h from scene_tree.h, minimize its other includes 2026-03-05 13:54:46 +01:00
Rémi Verschelde eabb9a63d4 Rename callable_method_pointer.h to callable_mp.h and include it explicitly
This allows removing it from `class_db.h`, significantly reducing the amount of files
that include it transitively.

Also includes some include cleanup in `control.h` and `rich_text_label.h` done while
ensure they don't depend on `callable_mp`.
2026-03-04 16:23:23 +01:00
Rémi Verschelde 765362b033 Explicitly include core/config/engine.h where used 2026-03-04 10:17:10 +01:00
Thaddeus Crews e380a41752 Style: Add class_db.h includes explicitly 2026-02-26 15:50:28 -06:00
Rémi Verschelde f5a290ac46 Move RenderingServer enums to a dedicated RenderingServerEnums (RSE) namespace
A number of headers in the codebase included `rendering_server.h` just for
some enum definitions. This means that any change to `rendering_server.h` or
one of its dependencies would trigger a massive incremental rebuild.

With this change, we decouple a number of classes from `rendering_server.h`,
greatly speeding up incremental rebuilds for that area.

On my machine, this reduces incremental compilation time after an edit of
`rendering_server.h` by 60s (from 2m57s).
2026-02-25 19:43:03 +01:00
kobewi 6f86914f55 Cleanup _validate_property() implementations 2026-02-23 15:05:25 +01:00
Thaddeus Crews ba5a0758e9 Revert "Change curve range for particle multipliers"
This reverts commit c6021f1e5b.
2026-02-10 09:58:58 -06:00
Lukas Tenbrink c5df0cb82b Don't right-align escaped newlines, e.g. for #define. This has previously led to long diffs in the commit history. 2026-02-04 19:31:28 +01:00
kobewi f7b9703cbd Use actual class names in resource type hints 2026-01-29 21:07:56 +01:00
aXu-AP c6021f1e5b Change curve range for particle multipliers
Fixes #91404
Curves are applied as a multiplier, so ranges [-1, 1] or [0, 1] make much more sense than ranges like [-360, 360] or [0, 100]. The actual range is selected with separate min and max parameters.
2025-12-03 20:47:40 -06:00
Thaddeus Crews 3d6ad3f806 Merge pull request #94929 from StamesJames/emission-shape-ring-for-2d
Add emission shape ring for CPUParticles2D
2025-11-10 08:20:16 -06:00
Aaron Franke 9fbf5808a0 Rename server "free" functions to "free_rid" to match exposed API 2025-09-30 16:52:25 -07:00
Benny Smit eaf9e7ce22 Add emission shape ring for CPUParticles2D
Particles will be emitted in the area of a ring parameterized by its
outer and inner radius. The distribution is uniform across the area.
2025-08-26 15:09:05 +02:00
aaronp64 7f60546f05 Fix CPUParticles2D repeatedly scaling particles with 0 velocity and Align Y
CPUParticles2D with Align Y turned on would update particles' transforms based on the velocity when velocity was non-zero, but would not set the transform for zero velocity.  This left the transfrom value from the previous call, which may have already been scaled.  In this case, each call to _particles_process would apply the scale again, causing the particle to repeatedly grow (or shrink for scales < 1.0).

Updated the Align Y logic to always normalize the transform values before scale is applied.
2025-07-09 11:09:37 -04:00
Qbieshay b93f6fa1ba Fix particles resetting properties when emitting is toggled 2025-06-24 12:16:42 +02:00
LuoZhihao 8ba4656ea3 Compile out editor-only logic within validate_property in games 2025-06-12 12:54:19 +08:00
Thaddeus Crews 94282d88f9 Core: Use Math namespace for constants 2025-04-10 16:29:30 -05:00
Yufeng Ying 4f4031a675 Replace size() == 0 with is_empty(). 2025-04-02 19:18:43 +08:00
Thaddeus Crews c8cd979552 Merge pull request #103966 from rburing/fti_2d_particles_oops
CPUParticles2D: Fix physics interpolation after entering tree with `emitting = false`
2025-03-12 10:31:47 -05:00
Thaddeus Crews e54a4408ad Merge pull request #102249 from Arnklit/particles2d-emission-shapes
Add emission shape gizmos to Particles2D
2025-03-11 14:01:00 -05:00
Ricardo Buring 5892ddbe24 CPUParticles2D: Fix fixed timestep interpolation after entering tree with emitting = false
This line was left over from earlier testing; the intended functionality
is now contained in _refresh_interpolation_state().
2025-03-11 12:12:32 +01:00
Qbieshay 419e5c40fa Fix particle not re-randomizing every emission 2025-02-20 19:25:05 +01:00
Kasper Arnklit Frandsen 03812fde8a Add emission shape gizmos to Particles2D 2025-02-18 11:29:29 +00:00
Qbieshay 2f3f6f69d9 Fix seed not randomizing for particles. Fix seed being stored when fixed seed is off 2025-02-04 12:17:21 +01:00
Ricardo Buring 56fc0fd175 CPUParticles2D - Add ability to follow physics interpolated target
Allows a non-interpolated particle system to closely follow an interpolated target without tracking ahead of the target, by performing fixed timestep interpolation on the particle system global transform, and using this for emission.

Co-authored-by: lawnjelly <lawnjelly@gmail.com>
2025-01-24 14:13:20 +01:00
Qbieshay c8b0509b7c Fixed cpuparticles randomness regression caused by #92089 2025-01-21 13:23:55 +01:00
Rémi Verschelde 763e8ceb3b Merge pull request #100227 from clayjohn/particles-texture
Move texture property back to the top level of the Particles inspector.
2025-01-13 20:21:38 +01:00
Rémi Verschelde 133db1fd60 Merge pull request #92089 from QbieShay/qbe/particle_seek
Implement particle seek request and seed options.
2025-01-13 20:21:28 +01:00
QbieShay e9eb0b6082 Implemented tools around particles seed randomization.
The purpose of this code is to expose the necessary
functions for users and engine devs to develop tooling
for properly timing and seeking inside particles.

Co-authored-by: Hugo Locurcio <hugo.locurcio@hugo.pro>
Co-authored-by: A Thousand Ships <96648715+AThousandShips@users.noreply.github.com>
Co-authored-by: Tomasz Chabora <kobewi4e@gmail.com>
Co-authored-by: Rémi Verschelde <rverschelde@gmail.com>
2025-01-11 16:31:24 +01:00
Aarni Koskela f134769506 Fix various typos
* Add TODO notes for typos that should be fixed for 5.0

Co-authored-by: Rémi Verschelde <rverschelde@gmail.com>
2025-01-08 14:47:42 +02:00
A Thousand Ships 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
Yufeng Ying 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
clayjohn f2a993aa1d Reduce slider range for Particles preprocess to discourage setting a preprocess time of 10 minutes 2024-12-13 11:36:36 -08:00
clayjohn 4c0fb2110b Move texture property back to the top level of the Particles inspector.
This property needs to be set before the particles can be used. It should not be hidden away in an unrelated sub menu
2024-12-09 16:13:24 -08:00
A Thousand Ships f6ea6cdb67 Fix some invalid int property ranges
* `HeightMapShape3D` had ranges configured for `float` instead of `int`
* Particles had `amount` that used `exp` which is not supported, added
  note
2024-11-23 19:17:29 +01:00
Silc Lizard (Tokage) Renew 761a20f7a7 Add hint for oneshot & warning when it will be updated continuously 2024-11-11 01:12:45 +09:00
Leon Stansfield 48a54cb62f Adjusted listings of parameters displayed in inspector to be consistent accross all particle types 2024-08-04 15:33:31 +01:00
kobewi 413c11357d Use Core/Scene stringnames consistently 2024-05-13 23:41:07 +02:00
kobewi a262d2d881 Add shorthand for using singleton string names 2024-05-11 18:53:08 +02:00
QbieShay 1d81068be7 Fixed INSTANCE_CUSTOM.w not being assigned correctly in CPUParticles 2D and 3D 2024-04-01 14:00:40 +02:00
Rémi Verschelde 21f0529aa9 Revert "Update Node::get_configuration_warnings signature"
This reverts commit d3852deaa4.
2024-02-17 19:03:21 +01:00
RedMser d3852deaa4 Update Node::get_configuration_warnings signature 2024-02-08 23:05:20 +01:00
rsburke 76377230ac Fixed CPUParticle tangential force to match GPUParticle implimentation 2023-11-07 08:02:43 -05:00
kobewi de4a3fa151 Unify and streamline connecting to Resource changes 2023-07-17 19:35:57 +02:00
Hendrik Brucker 7e21eb7e00 Extract and reorganize texture resource classes 2023-07-14 20:04:21 +02:00
HolonProduction a1c0d206e8 Add finished signal to CPUParticles 2023-07-12 13:45:02 +02:00
Ninni Pipping dcd2b883eb Use NULL instead of COND checks when appropriate
Restricted to scene
2023-06-10 08:56:30 +02:00
Hugo Locurcio fc4ec42a09 Increase precision in particle damping properties in the editor 2023-06-07 15:26:02 +02:00
clayjohn 821917ba9f Use angle_rand to calculate base_angle in particles process material 2023-04-13 15:10:47 -07:00
Albin 82b90c0e08 Remove visual limit for damping in CPUParticles
Issue #56324 notes that you may can't set the damping property of
CPUParticles2D to anything more that 100 in the editor inspector
while you may set it to anything in code, this is considered a bug and
changed in this commit
2023-02-19 12:47:34 +01:00