|
@@ -40,12 +40,11 @@ StringName AnimationNodeAnimation::get_animation() const {
|
|
return animation;
|
|
return animation;
|
|
}
|
|
}
|
|
|
|
|
|
-float AnimationNodeAnimation::get_playback_time() const {
|
|
|
|
- return time;
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
Vector<String> (*AnimationNodeAnimation::get_editable_animation_list)() = NULL;
|
|
Vector<String> (*AnimationNodeAnimation::get_editable_animation_list)() = NULL;
|
|
|
|
|
|
|
|
+void AnimationNodeAnimation::get_parameter_list(List<PropertyInfo> *r_list) const {
|
|
|
|
+ r_list->push_back(PropertyInfo(Variant::REAL, time, PROPERTY_HINT_NONE, "", 0));
|
|
|
|
+}
|
|
void AnimationNodeAnimation::_validate_property(PropertyInfo &property) const {
|
|
void AnimationNodeAnimation::_validate_property(PropertyInfo &property) const {
|
|
|
|
|
|
if (property.name == "animation" && get_editable_animation_list) {
|
|
if (property.name == "animation" && get_editable_animation_list) {
|
|
@@ -70,6 +69,8 @@ float AnimationNodeAnimation::process(float p_time, bool p_seek) {
|
|
AnimationPlayer *ap = state->player;
|
|
AnimationPlayer *ap = state->player;
|
|
ERR_FAIL_COND_V(!ap, 0);
|
|
ERR_FAIL_COND_V(!ap, 0);
|
|
|
|
|
|
|
|
+ float time = get_parameter(this->time);
|
|
|
|
+
|
|
if (!ap->has_animation(animation)) {
|
|
if (!ap->has_animation(animation)) {
|
|
|
|
|
|
AnimationNodeBlendTree *tree = Object::cast_to<AnimationNodeBlendTree>(parent);
|
|
AnimationNodeBlendTree *tree = Object::cast_to<AnimationNodeBlendTree>(parent);
|
|
@@ -86,6 +87,8 @@ float AnimationNodeAnimation::process(float p_time, bool p_seek) {
|
|
|
|
|
|
Ref<Animation> anim = ap->get_animation(animation);
|
|
Ref<Animation> anim = ap->get_animation(animation);
|
|
|
|
|
|
|
|
+ float step;
|
|
|
|
+
|
|
if (p_seek) {
|
|
if (p_seek) {
|
|
time = p_time;
|
|
time = p_time;
|
|
step = 0;
|
|
step = 0;
|
|
@@ -109,6 +112,8 @@ float AnimationNodeAnimation::process(float p_time, bool p_seek) {
|
|
|
|
|
|
blend_animation(animation, time, step, p_seek, 1.0);
|
|
blend_animation(animation, time, step, p_seek, 1.0);
|
|
|
|
|
|
|
|
+ set_parameter(this->time, time);
|
|
|
|
+
|
|
return anim_size - time;
|
|
return anim_size - time;
|
|
}
|
|
}
|
|
|
|
|
|
@@ -120,16 +125,13 @@ void AnimationNodeAnimation::_bind_methods() {
|
|
ClassDB::bind_method(D_METHOD("set_animation", "name"), &AnimationNodeAnimation::set_animation);
|
|
ClassDB::bind_method(D_METHOD("set_animation", "name"), &AnimationNodeAnimation::set_animation);
|
|
ClassDB::bind_method(D_METHOD("get_animation"), &AnimationNodeAnimation::get_animation);
|
|
ClassDB::bind_method(D_METHOD("get_animation"), &AnimationNodeAnimation::get_animation);
|
|
|
|
|
|
- ClassDB::bind_method(D_METHOD("get_playback_time"), &AnimationNodeAnimation::get_playback_time);
|
|
|
|
-
|
|
|
|
ADD_PROPERTY(PropertyInfo(Variant::STRING, "animation"), "set_animation", "get_animation");
|
|
ADD_PROPERTY(PropertyInfo(Variant::STRING, "animation"), "set_animation", "get_animation");
|
|
}
|
|
}
|
|
|
|
|
|
AnimationNodeAnimation::AnimationNodeAnimation() {
|
|
AnimationNodeAnimation::AnimationNodeAnimation() {
|
|
last_version = 0;
|
|
last_version = 0;
|
|
skip = false;
|
|
skip = false;
|
|
- time = 0;
|
|
|
|
- step = 0;
|
|
|
|
|
|
+ time = "time";
|
|
}
|
|
}
|
|
|
|
|
|
////////////////////////////////////////////////////////
|
|
////////////////////////////////////////////////////////
|