diff options
author | kobewi <kobewi4e@gmail.com> | 2022-09-12 22:59:35 +0200 |
---|---|---|
committer | kobewi <kobewi4e@gmail.com> | 2022-09-12 22:59:35 +0200 |
commit | d5c703b83e55f75b5fe271e93c32c15d9d21b02e (patch) | |
tree | e3a03f8a025b7623f75b55923529965d63fd826f /scene/3d | |
parent | 79b21e96ad7a154e6c64a88150c98bd4dea52e91 (diff) |
Don't store frame of playing AnimatedSprite
Diffstat (limited to 'scene/3d')
-rw-r--r-- | scene/3d/sprite_3d.cpp | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/scene/3d/sprite_3d.cpp b/scene/3d/sprite_3d.cpp index a4a6c211d7..7a89bf81bb 100644 --- a/scene/3d/sprite_3d.cpp +++ b/scene/3d/sprite_3d.cpp @@ -997,6 +997,7 @@ void AnimatedSprite3D::_validate_property(PropertyInfo &p_property) const { if (!frames.is_valid()) { return; } + if (p_property.name == "animation") { p_property.hint = PROPERTY_HINT_ENUM; List<StringName> names; @@ -1026,9 +1027,15 @@ void AnimatedSprite3D::_validate_property(PropertyInfo &p_property) const { p_property.hint_string = String(animation) + "," + p_property.hint_string; } } + return; } if (p_property.name == "frame") { + if (playing) { + p_property.usage = PROPERTY_USAGE_EDITOR | PROPERTY_USAGE_READ_ONLY; + return; + } + p_property.hint = PROPERTY_HINT_RANGE; if (frames->has_animation(animation) && frames->get_frame_count(animation) > 0) { p_property.hint_string = "0," + itos(frames->get_frame_count(animation) - 1) + ",1"; @@ -1222,6 +1229,7 @@ void AnimatedSprite3D::set_playing(bool p_playing) { playing = p_playing; _reset_timeout(); set_process_internal(playing); + notify_property_list_changed(); } bool AnimatedSprite3D::is_playing() const { |