Merge pull request #86754 from Mickeon/autocompletion-spriteframes-animation

Add autocompletion for SpriteFrames' methods
This commit is contained in:
Rémi Verschelde 2024-01-04 14:26:37 +01:00
commit 4a14f9d968
No known key found for this signature in database
GPG Key ID: C3336907360768E1
2 changed files with 19 additions and 0 deletions

View File

@ -224,6 +224,23 @@ void SpriteFrames::_set_animations(const Array &p_animations) {
} }
} }
void SpriteFrames::get_argument_options(const StringName &p_function, int p_idx, List<String> *r_options) const {
String pf = p_function;
if (p_idx == 0) {
if (pf == "has_animation" || pf == "remove_animation" || pf == "rename_animation" ||
pf == "set_animation_speed" || pf == "get_animation_speed" ||
pf == "set_animation_loop" || pf == "get_animation_loop" ||
pf == "add_frame" || pf == "set_frame" || pf == "remove_frame" ||
pf == "get_frame_count" || pf == "get_frame_texture" || pf == "get_frame_duration" ||
pf == "clear") {
for (const String &E : get_animation_names()) {
r_options->push_back(E.quote());
}
}
}
Resource::get_argument_options(p_function, p_idx, r_options);
}
void SpriteFrames::_bind_methods() { void SpriteFrames::_bind_methods() {
ClassDB::bind_method(D_METHOD("add_animation", "anim"), &SpriteFrames::add_animation); ClassDB::bind_method(D_METHOD("add_animation", "anim"), &SpriteFrames::add_animation);
ClassDB::bind_method(D_METHOD("has_animation", "anim"), &SpriteFrames::has_animation); ClassDB::bind_method(D_METHOD("has_animation", "anim"), &SpriteFrames::has_animation);

View File

@ -103,6 +103,8 @@ public:
void clear(const StringName &p_anim); void clear(const StringName &p_anim);
void clear_all(); void clear_all();
virtual void get_argument_options(const StringName &p_function, int p_idx, List<String> *r_options) const override;
SpriteFrames(); SpriteFrames();
}; };