@@ -1003,6 +1003,14 @@ String AnimationNodeTimeSeek::get_caption() const {
1003
1003
return " TimeSeek" ;
1004
1004
}
1005
1005
1006
+ void AnimationNodeTimeSeek::set_explicit_elapse (bool p_enable) {
1007
+ explicit_elapse = p_enable;
1008
+ }
1009
+
1010
+ bool AnimationNodeTimeSeek::is_explicit_elapse () const {
1011
+ return explicit_elapse;
1012
+ }
1013
+
1006
1014
AnimationNode::NodeTimeInfo AnimationNodeTimeSeek::_process (const AnimationMixer::PlaybackInfo p_playback_info, bool p_test_only) {
1007
1015
double cur_seek_pos = get_parameter (seek_pos_request);
1008
1016
@@ -1011,7 +1019,7 @@ AnimationNode::NodeTimeInfo AnimationNodeTimeSeek::_process(const AnimationMixer
1011
1019
if (Animation::is_greater_or_equal_approx (cur_seek_pos, 0 )) {
1012
1020
pi .time = cur_seek_pos;
1013
1021
pi .seeked = true ;
1014
- pi .is_external_seeking = true ;
1022
+ pi .is_external_seeking = explicit_elapse ;
1015
1023
set_parameter (seek_pos_request, -1.0 ); // Reset.
1016
1024
}
1017
1025
@@ -1022,6 +1030,12 @@ AnimationNodeTimeSeek::AnimationNodeTimeSeek() {
1022
1030
add_input (" in" );
1023
1031
}
1024
1032
1033
+ void AnimationNodeTimeSeek::_bind_methods () {
1034
+ ClassDB::bind_method (D_METHOD (" set_explicit_elapse" , " enable" ), &AnimationNodeTimeSeek::set_explicit_elapse);
1035
+ ClassDB::bind_method (D_METHOD (" is_explicit_elapse" ), &AnimationNodeTimeSeek::is_explicit_elapse);
1036
+ ADD_PROPERTY (PropertyInfo (Variant::BOOL, " explicit_elapse" ), " set_explicit_elapse" , " is_explicit_elapse" );
1037
+ }
1038
+
1025
1039
// ///////////////////////////////////////////////
1026
1040
1027
1041
bool AnimationNodeTransition::_set (const StringName &p_path, const Variant &p_value) {
0 commit comments