Add autocompletion for AnimatedSprite.play()

This commit is contained in:
Haoyu Qiu 2022-05-04 20:56:20 +08:00
parent 0f8ee1d256
commit 312ec612c7
4 changed files with 26 additions and 0 deletions

View File

@ -443,6 +443,17 @@ TypedArray<String> AnimatedSprite2D::get_configuration_warnings() const {
return warnings; return warnings;
} }
void AnimatedSprite2D::get_argument_options(const StringName &p_function, int p_idx, List<String> *r_options) const {
if (p_idx == 0 && p_function == "play" && frames.is_valid()) {
List<StringName> al;
frames->get_animation_list(&al);
for (const StringName &name : al) {
r_options->push_back(String(name).quote());
}
}
Node::get_argument_options(p_function, p_idx, r_options);
}
void AnimatedSprite2D::_bind_methods() { void AnimatedSprite2D::_bind_methods() {
ClassDB::bind_method(D_METHOD("set_sprite_frames", "sprite_frames"), &AnimatedSprite2D::set_sprite_frames); ClassDB::bind_method(D_METHOD("set_sprite_frames", "sprite_frames"), &AnimatedSprite2D::set_sprite_frames);
ClassDB::bind_method(D_METHOD("get_sprite_frames"), &AnimatedSprite2D::get_sprite_frames); ClassDB::bind_method(D_METHOD("get_sprite_frames"), &AnimatedSprite2D::get_sprite_frames);

View File

@ -109,6 +109,8 @@ public:
bool is_flipped_v() const; bool is_flipped_v() const;
TypedArray<String> get_configuration_warnings() const override; TypedArray<String> get_configuration_warnings() const override;
virtual void get_argument_options(const StringName &p_function, int p_idx, List<String> *r_options) const override;
AnimatedSprite2D(); AnimatedSprite2D();
}; };

View File

@ -1247,6 +1247,17 @@ TypedArray<String> AnimatedSprite3D::get_configuration_warnings() const {
return warnings; return warnings;
} }
void AnimatedSprite3D::get_argument_options(const StringName &p_function, int p_idx, List<String> *r_options) const {
if (p_idx == 0 && p_function == "play" && frames.is_valid()) {
List<StringName> al;
frames->get_animation_list(&al);
for (const StringName &name : al) {
r_options->push_back(String(name).quote());
}
}
Node::get_argument_options(p_function, p_idx, r_options);
}
void AnimatedSprite3D::_bind_methods() { void AnimatedSprite3D::_bind_methods() {
ClassDB::bind_method(D_METHOD("set_sprite_frames", "sprite_frames"), &AnimatedSprite3D::set_sprite_frames); ClassDB::bind_method(D_METHOD("set_sprite_frames", "sprite_frames"), &AnimatedSprite3D::set_sprite_frames);
ClassDB::bind_method(D_METHOD("get_sprite_frames"), &AnimatedSprite3D::get_sprite_frames); ClassDB::bind_method(D_METHOD("get_sprite_frames"), &AnimatedSprite3D::get_sprite_frames);

View File

@ -248,6 +248,8 @@ public:
virtual Rect2 get_item_rect() const override; virtual Rect2 get_item_rect() const override;
virtual TypedArray<String> get_configuration_warnings() const override; virtual TypedArray<String> get_configuration_warnings() const override;
virtual void get_argument_options(const StringName &p_function, int p_idx, List<String> *r_options) const override;
AnimatedSprite3D(); AnimatedSprite3D();
}; };