summaryrefslogtreecommitdiffstats
path: root/scene/animation/tween.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'scene/animation/tween.cpp')
-rw-r--r--scene/animation/tween.cpp27
1 files changed, 27 insertions, 0 deletions
diff --git a/scene/animation/tween.cpp b/scene/animation/tween.cpp
index e7876e3bfa..eebb0d6777 100644
--- a/scene/animation/tween.cpp
+++ b/scene/animation/tween.cpp
@@ -115,6 +115,10 @@ void Tween::_bind_methods() {
ObjectTypeDB::bind_method(_MD("reset_all"),&Tween::reset_all );
ObjectTypeDB::bind_method(_MD("stop","object,key"),&Tween::stop );
ObjectTypeDB::bind_method(_MD("stop_all"),&Tween::stop_all );
+ ObjectTypeDB::bind_method(_MD("resume"),&Tween::resume );
+ ObjectTypeDB::bind_method(_MD("resume_all"),&Tween::resume_all );
+ ObjectTypeDB::bind_method(_MD("remove"),&Tween::remove );
+ ObjectTypeDB::bind_method(_MD("remove_all"),&Tween::remove_all );
ObjectTypeDB::bind_method(_MD("interpolate_property","object","property","initial_val","final_val","times_in_sec","trans_type","ease_type"),&Tween::interpolate_property );
ObjectTypeDB::bind_method(_MD("interpolate_method","object","method","initial_val","final_val","times_in_sec","trans_type","ease_type"),&Tween::interpolate_method );
@@ -485,6 +489,29 @@ bool Tween::resume_all() {
return true;
}
+bool Tween::remove(Variant p_object, String p_key) {
+
+ for(List<InterpolateData>::Element *E=interpolates.front();E;E=E->next()) {
+
+ InterpolateData& data = E->get();
+ if(data.object == p_object && data.key == p_key) {
+
+ interpolates.erase(E);
+ return true;
+ }
+ }
+ return true;
+}
+
+bool Tween::remove_all() {
+
+ set_active(false);
+ _set_process(false);
+ interpolates.clear();
+ return true;
+}
+
+
bool Tween::_calc_delta_val(InterpolateData& p_data) {
Variant& initial_val = p_data.initial_val;