|
@@ -280,7 +280,16 @@ bool Tween::step(double p_delta) {
|
|
}
|
|
}
|
|
|
|
|
|
if (!started) {
|
|
if (!started) {
|
|
- ERR_FAIL_COND_V_MSG(tweeners.is_empty(), false, "Tween started, but has no Tweeners.");
|
|
|
|
|
|
+ if (tweeners.is_empty()) {
|
|
|
|
+ String tween_id;
|
|
|
|
+ Node *node = get_bound_node();
|
|
|
|
+ if (node) {
|
|
|
|
+ tween_id = vformat("Tween (bound to %s)", node->is_inside_tree() ? (String)node->get_path() : (String)node->get_name());
|
|
|
|
+ } else {
|
|
|
|
+ tween_id = to_string();
|
|
|
|
+ }
|
|
|
|
+ ERR_FAIL_V_MSG(false, tween_id + ": started with no Tweeners.");
|
|
|
|
+ }
|
|
current_step = 0;
|
|
current_step = 0;
|
|
loops_done = 0;
|
|
loops_done = 0;
|
|
total_time = 0;
|
|
total_time = 0;
|
|
@@ -393,6 +402,15 @@ Variant Tween::interpolate_variant(Variant p_initial_val, Variant p_delta_val, d
|
|
return ret;
|
|
return ret;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+String Tween::to_string() {
|
|
|
|
+ String ret = Object::to_string();
|
|
|
|
+ Node *node = get_bound_node();
|
|
|
|
+ if (node) {
|
|
|
|
+ ret += vformat(" (bound to %s)", node->get_name());
|
|
|
|
+ }
|
|
|
|
+ return ret;
|
|
|
|
+}
|
|
|
|
+
|
|
void Tween::_bind_methods() {
|
|
void Tween::_bind_methods() {
|
|
ClassDB::bind_method(D_METHOD("tween_property", "object", "property", "final_val", "duration"), &Tween::tween_property);
|
|
ClassDB::bind_method(D_METHOD("tween_property", "object", "property", "final_val", "duration"), &Tween::tween_property);
|
|
ClassDB::bind_method(D_METHOD("tween_interval", "time"), &Tween::tween_interval);
|
|
ClassDB::bind_method(D_METHOD("tween_interval", "time"), &Tween::tween_interval);
|