summaryrefslogtreecommitdiff
path: root/scene/3d
diff options
context:
space:
mode:
Diffstat (limited to 'scene/3d')
-rw-r--r--scene/3d/particles.cpp12
-rw-r--r--scene/3d/particles.h1
2 files changed, 13 insertions, 0 deletions
diff --git a/scene/3d/particles.cpp b/scene/3d/particles.cpp
index c8f45a8d7e..bab23d013b 100644
--- a/scene/3d/particles.cpp
+++ b/scene/3d/particles.cpp
@@ -266,6 +266,18 @@ void Particles::_validate_property(PropertyInfo &property) const {
}
}
+void Particles::_notification(int p_what) {
+
+ if (p_what == NOTIFICATION_PAUSED || p_what == NOTIFICATION_UNPAUSED) {
+ if (can_process()) {
+ VS::get_singleton()->particles_set_speed_scale(particles, speed_scale);
+ } else {
+
+ VS::get_singleton()->particles_set_speed_scale(particles, 0);
+ }
+ }
+}
+
void Particles::_bind_methods() {
ClassDB::bind_method(D_METHOD("set_emitting", "emitting"), &Particles::set_emitting);
diff --git a/scene/3d/particles.h b/scene/3d/particles.h
index 0549eb4c09..31ca85a59a 100644
--- a/scene/3d/particles.h
+++ b/scene/3d/particles.h
@@ -78,6 +78,7 @@ private:
protected:
static void _bind_methods();
+ void _notification(int p_what);
virtual void _validate_property(PropertyInfo &property) const;
public: