Improve empty Tween error message

This commit is contained in:
kobewi 2022-12-13 22:37:41 +01:00
parent 0f0b853c98
commit 1260cb0bfb
2 changed files with 21 additions and 1 deletions

View file

@ -280,7 +280,16 @@ bool Tween::step(double p_delta) {
}
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;
loops_done = 0;
total_time = 0;
@ -393,6 +402,15 @@ Variant Tween::interpolate_variant(Variant p_initial_val, Variant p_delta_val, d
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() {
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);

View file

@ -130,6 +130,8 @@ protected:
static void _bind_methods();
public:
virtual String to_string() override;
Ref<PropertyTweener> tween_property(Object *p_target, NodePath p_property, Variant p_to, double p_duration);
Ref<IntervalTweener> tween_interval(double p_time);
Ref<CallbackTweener> tween_callback(Callable p_callback);