You've already forked godot
mirror of
https://github.com/godotengine/godot.git
synced 2025-11-16 14:00:40 +00:00
Do not start Timer upon manual switching of internal process
Prevents `Timer` to prematurely start and timeout immediately if internal
processing is enabled manually with `Timer.set_process_internal(true)` or
`Timer.set_physics_process_internal(true)`.
Even if the internal processing is enabled manually, the user still has to
actually start the timer with `start()` method explicitly.
(cherry picked from commit afcb6f38db)
This commit is contained in:
committed by
Rémi Verschelde
parent
eafb021015
commit
e95e934d88
@@ -48,8 +48,9 @@ void Timer::_notification(int p_what) {
|
|||||||
}
|
}
|
||||||
} break;
|
} break;
|
||||||
case NOTIFICATION_INTERNAL_PROCESS: {
|
case NOTIFICATION_INTERNAL_PROCESS: {
|
||||||
if (timer_process_mode == TIMER_PROCESS_PHYSICS || !is_processing_internal())
|
if (!processing || timer_process_mode == TIMER_PROCESS_PHYSICS || !is_processing_internal()) {
|
||||||
return;
|
return;
|
||||||
|
}
|
||||||
time_left -= get_process_delta_time();
|
time_left -= get_process_delta_time();
|
||||||
|
|
||||||
if (time_left < 0) {
|
if (time_left < 0) {
|
||||||
@@ -63,8 +64,9 @@ void Timer::_notification(int p_what) {
|
|||||||
|
|
||||||
} break;
|
} break;
|
||||||
case NOTIFICATION_INTERNAL_PHYSICS_PROCESS: {
|
case NOTIFICATION_INTERNAL_PHYSICS_PROCESS: {
|
||||||
if (timer_process_mode == TIMER_PROCESS_IDLE || !is_physics_processing_internal())
|
if (!processing || timer_process_mode == TIMER_PROCESS_IDLE || !is_physics_processing_internal()) {
|
||||||
return;
|
return;
|
||||||
|
}
|
||||||
time_left -= get_physics_process_delta_time();
|
time_left -= get_physics_process_delta_time();
|
||||||
|
|
||||||
if (time_left < 0) {
|
if (time_left < 0) {
|
||||||
|
|||||||
Reference in New Issue
Block a user