diff options
Diffstat (limited to 'scene/2d/animated_sprite.cpp')
-rw-r--r-- | scene/2d/animated_sprite.cpp | 408 |
1 files changed, 179 insertions, 229 deletions
diff --git a/scene/2d/animated_sprite.cpp b/scene/2d/animated_sprite.cpp index faecbf3e6d..f10bd2f303 100644 --- a/scene/2d/animated_sprite.cpp +++ b/scene/2d/animated_sprite.cpp @@ -27,24 +27,19 @@ /* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ /*************************************************************************/ #include "animated_sprite.h" -#include "scene/scene_string_names.h" #include "os/os.h" #include "scene/scene_string_names.h" - - - +#include "scene/scene_string_names.h" //////////////////////////// +void SpriteFrames::add_frame(const StringName &p_anim, const Ref<Texture> &p_frame, int p_at_pos) { - -void SpriteFrames::add_frame(const StringName &p_anim, const Ref<Texture>& p_frame, int p_at_pos) { - - Map<StringName,Anim>::Element *E=animations.find(p_anim); + Map<StringName, Anim>::Element *E = animations.find(p_anim); ERR_FAIL_COND(!E); - if (p_at_pos>=0 && p_at_pos<E->get().frames.size()) - E->get().frames.insert(p_at_pos,p_frame); + if (p_at_pos >= 0 && p_at_pos < E->get().frames.size()) + E->get().frames.insert(p_at_pos, p_frame); else E->get().frames.push_back(p_frame); @@ -52,15 +47,15 @@ void SpriteFrames::add_frame(const StringName &p_anim, const Ref<Texture>& p_fra } int SpriteFrames::get_frame_count(const StringName &p_anim) const { - const Map<StringName,Anim>::Element *E=animations.find(p_anim); - ERR_FAIL_COND_V(!E,0); + const Map<StringName, Anim>::Element *E = animations.find(p_anim); + ERR_FAIL_COND_V(!E, 0); return E->get().frames.size(); } void SpriteFrames::remove_frame(const StringName &p_anim, int p_idx) { - Map<StringName,Anim>::Element *E=animations.find(p_anim); + Map<StringName, Anim>::Element *E = animations.find(p_anim); ERR_FAIL_COND(!E); E->get().frames.remove(p_idx); @@ -68,7 +63,7 @@ void SpriteFrames::remove_frame(const StringName &p_anim, int p_idx) { } void SpriteFrames::clear(const StringName &p_anim) { - Map<StringName,Anim>::Element *E=animations.find(p_anim); + Map<StringName, Anim>::Element *E = animations.find(p_anim); ERR_FAIL_COND(!E); E->get().frames.clear(); @@ -81,33 +76,30 @@ void SpriteFrames::clear_all() { add_animation("default"); } - - -void SpriteFrames::add_animation(const StringName& p_anim) { +void SpriteFrames::add_animation(const StringName &p_anim) { ERR_FAIL_COND(animations.has(p_anim)); - animations[p_anim]=Anim(); + animations[p_anim] = Anim(); } -bool SpriteFrames::has_animation(const StringName& p_anim) const{ +bool SpriteFrames::has_animation(const StringName &p_anim) const { return animations.has(p_anim); } -void SpriteFrames::remove_animation(const StringName& p_anim){ +void SpriteFrames::remove_animation(const StringName &p_anim) { animations.erase(p_anim); } -void SpriteFrames::rename_animation(const StringName& p_prev,const StringName& p_next) { +void SpriteFrames::rename_animation(const StringName &p_prev, const StringName &p_next) { ERR_FAIL_COND(!animations.has(p_prev)); ERR_FAIL_COND(animations.has(p_next)); Anim anim = animations[p_prev]; animations.erase(p_prev); - animations[p_next]=anim; - + animations[p_next] = anim; } Vector<String> SpriteFrames::_get_animation_list() const { @@ -115,7 +107,7 @@ Vector<String> SpriteFrames::_get_animation_list() const { Vector<String> ret; List<StringName> al; get_animation_list(&al); - for(List<StringName>::Element *E=al.front();E;E=E->next()) { + for (List<StringName>::Element *E = al.front(); E; E = E->next()) { ret.push_back(E->get()); } @@ -123,49 +115,47 @@ Vector<String> SpriteFrames::_get_animation_list() const { return ret; } -void SpriteFrames::get_animation_list(List<StringName> *r_animations) const{ +void SpriteFrames::get_animation_list(List<StringName> *r_animations) const { - for (const Map<StringName,Anim>::Element *E=animations.front();E;E=E->next()) { + for (const Map<StringName, Anim>::Element *E = animations.front(); E; E = E->next()) { r_animations->push_back(E->key()); } } -void SpriteFrames::set_animation_speed(const StringName& p_anim,float p_fps){ +void SpriteFrames::set_animation_speed(const StringName &p_anim, float p_fps) { - ERR_FAIL_COND(p_fps<0); - Map<StringName,Anim>::Element *E=animations.find(p_anim); + ERR_FAIL_COND(p_fps < 0); + Map<StringName, Anim>::Element *E = animations.find(p_anim); ERR_FAIL_COND(!E); - E->get().speed=p_fps; + E->get().speed = p_fps; } -float SpriteFrames::get_animation_speed(const StringName& p_anim) const{ +float SpriteFrames::get_animation_speed(const StringName &p_anim) const { - const Map<StringName,Anim>::Element *E=animations.find(p_anim); - ERR_FAIL_COND_V(!E,0); + const Map<StringName, Anim>::Element *E = animations.find(p_anim); + ERR_FAIL_COND_V(!E, 0); return E->get().speed; } -void SpriteFrames::set_animation_loop(const StringName& p_anim,bool p_loop){ - Map<StringName,Anim>::Element *E=animations.find(p_anim); +void SpriteFrames::set_animation_loop(const StringName &p_anim, bool p_loop) { + Map<StringName, Anim>::Element *E = animations.find(p_anim); ERR_FAIL_COND(!E); - E->get().loop=p_loop; + E->get().loop = p_loop; } -bool SpriteFrames::get_animation_loop(const StringName& p_anim) const{ - const Map<StringName,Anim>::Element *E=animations.find(p_anim); - ERR_FAIL_COND_V(!E,false); +bool SpriteFrames::get_animation_loop(const StringName &p_anim) const { + const Map<StringName, Anim>::Element *E = animations.find(p_anim); + ERR_FAIL_COND_V(!E, false); return E->get().loop; - } -void SpriteFrames::_set_frames(const Array& p_frames) { +void SpriteFrames::_set_frames(const Array &p_frames) { clear_all(); - Map<StringName,Anim>::Element *E=animations.find(SceneStringNames::get_singleton()->_default); + Map<StringName, Anim>::Element *E = animations.find(SceneStringNames::get_singleton()->_default); ERR_FAIL_COND(!E); E->get().frames.resize(p_frames.size()); - for(int i=0;i<E->get().frames.size();i++) - E->get().frames[i]=p_frames[i]; - + for (int i = 0; i < E->get().frames.size(); i++) + E->get().frames[i] = p_frames[i]; } Array SpriteFrames::_get_frames() const { @@ -175,27 +165,27 @@ Array SpriteFrames::_get_frames() const { Array SpriteFrames::_get_animations() const { Array anims; - for (Map<StringName,Anim>::Element *E=animations.front();E;E=E->next()) { + for (Map<StringName, Anim>::Element *E = animations.front(); E; E = E->next()) { Dictionary d; - d["name"]=E->key(); - d["speed"]=E->get().speed; - d["loop"]=E->get().loop; + d["name"] = E->key(); + d["speed"] = E->get().speed; + d["loop"] = E->get().loop; Array frames; - for(int i=0;i<E->get().frames.size();i++) { + for (int i = 0; i < E->get().frames.size(); i++) { frames.push_back(E->get().frames[i]); } - d["frames"]=frames; + d["frames"] = frames; anims.push_back(d); } return anims; } -void SpriteFrames::_set_animations(const Array& p_animations) { +void SpriteFrames::_set_animations(const Array &p_animations) { animations.clear(); - for(int i=0;i<p_animations.size();i++) { + for (int i = 0; i < p_animations.size(); i++) { - Dictionary d=p_animations[i]; + Dictionary d = p_animations[i]; ERR_CONTINUE(!d.has("name")); ERR_CONTINUE(!d.has("speed")); @@ -203,71 +193,57 @@ void SpriteFrames::_set_animations(const Array& p_animations) { ERR_CONTINUE(!d.has("frames")); Anim anim; - anim.speed=d["speed"]; - anim.loop=d["loop"]; - Array frames=d["frames"]; - for(int i=0;i<frames.size();i++) { + anim.speed = d["speed"]; + anim.loop = d["loop"]; + Array frames = d["frames"]; + for (int i = 0; i < frames.size(); i++) { RES res = frames[i]; anim.frames.push_back(res); } - animations[d["name"]]=anim; - - + animations[d["name"]] = anim; } } - void SpriteFrames::_bind_methods() { + 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("remove_animation", "anim"), &SpriteFrames::remove_animation); + ClassDB::bind_method(D_METHOD("rename_animation", "anim", "newname"), &SpriteFrames::rename_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("remove_animation","anim"),&SpriteFrames::remove_animation); - ClassDB::bind_method(D_METHOD("rename_animation","anim","newname"),&SpriteFrames::rename_animation); - - ClassDB::bind_method(D_METHOD("set_animation_speed","anim","speed"),&SpriteFrames::set_animation_speed); - ClassDB::bind_method(D_METHOD("get_animation_speed","anim"),&SpriteFrames::get_animation_speed); - - ClassDB::bind_method(D_METHOD("set_animation_loop","anim","loop"),&SpriteFrames::set_animation_loop); - ClassDB::bind_method(D_METHOD("get_animation_loop","anim"),&SpriteFrames::get_animation_loop); + ClassDB::bind_method(D_METHOD("set_animation_speed", "anim", "speed"), &SpriteFrames::set_animation_speed); + ClassDB::bind_method(D_METHOD("get_animation_speed", "anim"), &SpriteFrames::get_animation_speed); - ClassDB::bind_method(D_METHOD("add_frame","anim","frame","atpos"),&SpriteFrames::add_frame,DEFVAL(-1)); - ClassDB::bind_method(D_METHOD("get_frame_count","anim"),&SpriteFrames::get_frame_count); - ClassDB::bind_method(D_METHOD("get_frame","anim","idx"),&SpriteFrames::get_frame); - ClassDB::bind_method(D_METHOD("set_frame","anim","idx","txt"),&SpriteFrames::set_frame); - ClassDB::bind_method(D_METHOD("remove_frame","anim","idx"),&SpriteFrames::remove_frame); - ClassDB::bind_method(D_METHOD("clear","anim"),&SpriteFrames::clear); - ClassDB::bind_method(D_METHOD("clear_all"),&SpriteFrames::clear_all); + ClassDB::bind_method(D_METHOD("set_animation_loop", "anim", "loop"), &SpriteFrames::set_animation_loop); + ClassDB::bind_method(D_METHOD("get_animation_loop", "anim"), &SpriteFrames::get_animation_loop); - ClassDB::bind_method(D_METHOD("_set_frames"),&SpriteFrames::_set_frames); - ClassDB::bind_method(D_METHOD("_get_frames"),&SpriteFrames::_get_frames); + ClassDB::bind_method(D_METHOD("add_frame", "anim", "frame", "atpos"), &SpriteFrames::add_frame, DEFVAL(-1)); + ClassDB::bind_method(D_METHOD("get_frame_count", "anim"), &SpriteFrames::get_frame_count); + ClassDB::bind_method(D_METHOD("get_frame", "anim", "idx"), &SpriteFrames::get_frame); + ClassDB::bind_method(D_METHOD("set_frame", "anim", "idx", "txt"), &SpriteFrames::set_frame); + ClassDB::bind_method(D_METHOD("remove_frame", "anim", "idx"), &SpriteFrames::remove_frame); + ClassDB::bind_method(D_METHOD("clear", "anim"), &SpriteFrames::clear); + ClassDB::bind_method(D_METHOD("clear_all"), &SpriteFrames::clear_all); - ADD_PROPERTYNZ( PropertyInfo(Variant::ARRAY,"frames",PROPERTY_HINT_NONE,"",0),"_set_frames","_get_frames"); //compatibility + ClassDB::bind_method(D_METHOD("_set_frames"), &SpriteFrames::_set_frames); + ClassDB::bind_method(D_METHOD("_get_frames"), &SpriteFrames::_get_frames); - ClassDB::bind_method(D_METHOD("_set_animations"),&SpriteFrames::_set_animations); - ClassDB::bind_method(D_METHOD("_get_animations"),&SpriteFrames::_get_animations); + ADD_PROPERTYNZ(PropertyInfo(Variant::ARRAY, "frames", PROPERTY_HINT_NONE, "", 0), "_set_frames", "_get_frames"); //compatibility - ADD_PROPERTYNZ( PropertyInfo(Variant::ARRAY,"animations",PROPERTY_HINT_NONE,"",PROPERTY_USAGE_NOEDITOR),"_set_animations","_get_animations"); //compatibility + ClassDB::bind_method(D_METHOD("_set_animations"), &SpriteFrames::_set_animations); + ClassDB::bind_method(D_METHOD("_get_animations"), &SpriteFrames::_get_animations); + ADD_PROPERTYNZ(PropertyInfo(Variant::ARRAY, "animations", PROPERTY_HINT_NONE, "", PROPERTY_USAGE_NOEDITOR), "_set_animations", "_get_animations"); //compatibility } - - - SpriteFrames::SpriteFrames() { add_animation(SceneStringNames::get_singleton()->_default); - } - - - - - -void AnimatedSprite::edit_set_pivot(const Point2& p_pivot) { +void AnimatedSprite::edit_set_pivot(const Point2 &p_pivot) { set_offset(p_pivot); } @@ -281,88 +257,85 @@ bool AnimatedSprite::edit_has_pivot() const { return true; } - -void AnimatedSprite::_validate_property(PropertyInfo& property) const { +void AnimatedSprite::_validate_property(PropertyInfo &property) const { if (!frames.is_valid()) return; - if (property.name=="animation") { + if (property.name == "animation") { - property.hint=PROPERTY_HINT_ENUM; + property.hint = PROPERTY_HINT_ENUM; List<StringName> names; frames->get_animation_list(&names); names.sort_custom<StringName::AlphCompare>(); - bool current_found=false; + bool current_found = false; - for (List<StringName>::Element *E=names.front();E;E=E->next()) { + for (List<StringName>::Element *E = names.front(); E; E = E->next()) { if (E->prev()) { - property.hint_string+=","; + property.hint_string += ","; } - property.hint_string+=String(E->get()); - if (animation==E->get()) { - current_found=true; + property.hint_string += String(E->get()); + if (animation == E->get()) { + current_found = true; } } if (!current_found) { - if (property.hint_string==String()) { - property.hint_string=String(animation); + if (property.hint_string == String()) { + property.hint_string = String(animation); } else { - property.hint_string=String(animation)+","+property.hint_string; + property.hint_string = String(animation) + "," + property.hint_string; } } } + if (property.name == "frame") { - if (property.name=="frame") { - - property.hint=PROPERTY_HINT_SPRITE_FRAME; + property.hint = PROPERTY_HINT_SPRITE_FRAME; if (frames->has_animation(animation)) { - property.hint_string="0,"+itos(frames->get_frame_count(animation)-1)+",1"; + property.hint_string = "0," + itos(frames->get_frame_count(animation) - 1) + ",1"; } else { - property.hint_string="0,0,0"; + property.hint_string = "0,0,0"; } } - } void AnimatedSprite::_notification(int p_what) { - switch(p_what) { + switch (p_what) { case NOTIFICATION_INTERNAL_PROCESS: { if (frames.is_null()) return; if (!frames->has_animation(animation)) return; - if (frame<0) + if (frame < 0) return; float speed = frames->get_animation_speed(animation); - if (speed==0) + if (speed == 0) return; //do nothing float remaining = get_process_delta_time(); - while(remaining) { + while (remaining) { - if (timeout<=0) { + if (timeout <= 0) { - timeout=1.0/speed; + timeout = 1.0 / speed; int fc = frames->get_frame_count(animation); - if (frame>=fc-1) { + if (frame >= fc - 1) { if (frames->get_animation_loop(animation)) { - frame=0; + frame = 0; } else { - frame=fc-1; + frame = fc - 1; } } else { frame++; - if (frame==fc-1) { + if (frame == fc - 1) { emit_signal(SceneStringNames::get_singleton()->animation_finished); } } @@ -371,9 +344,9 @@ void AnimatedSprite::_notification(int p_what) { _change_notify("frame"); } - float to_process = MIN(timeout,remaining); - remaining-=to_process; - timeout-=to_process; + float to_process = MIN(timeout, remaining); + remaining -= to_process; + timeout -= to_process; } } break; @@ -384,19 +357,17 @@ void AnimatedSprite::_notification(int p_what) { return; } - if (frame<0) { + if (frame < 0) { print_line("no draw frame <0"); return; } if (!frames->has_animation(animation)) { - print_line("no draw no anim: "+String(animation)); + print_line("no draw no anim: " + String(animation)); return; } - - - Ref<Texture> texture = frames->get_frame(animation,frame); + Ref<Texture> texture = frames->get_frame(animation, frame); if (texture.is_null()) { print_line("no draw texture is null"); return; @@ -413,50 +384,46 @@ void AnimatedSprite::_notification(int p_what) { Size2i s; s = texture->get_size(); - Point2 ofs=offset; + Point2 ofs = offset; if (centered) - ofs-=s/2; + ofs -= s / 2; if (Engine::get_singleton()->get_use_pixel_snap()) { - ofs=ofs.floor(); + ofs = ofs.floor(); } - Rect2 dst_rect(ofs,s); + Rect2 dst_rect(ofs, s); if (hflip) - dst_rect.size.x=-dst_rect.size.x; + dst_rect.size.x = -dst_rect.size.x; if (vflip) - dst_rect.size.y=-dst_rect.size.y; + dst_rect.size.y = -dst_rect.size.y; //texture->draw_rect(ci,dst_rect,false,modulate); - texture->draw_rect_region(ci,dst_rect,Rect2(Vector2(),texture->get_size())); + texture->draw_rect_region(ci, dst_rect, Rect2(Vector2(), texture->get_size())); //VisualServer::get_singleton()->canvas_item_add_texture_rect_region(ci,dst_rect,texture->get_rid(),src_rect,modulate); } break; } - } void AnimatedSprite::set_sprite_frames(const Ref<SpriteFrames> &p_frames) { if (frames.is_valid()) - frames->disconnect("changed",this,"_res_changed"); - frames=p_frames; + frames->disconnect("changed", this, "_res_changed"); + frames = p_frames; if (frames.is_valid()) - frames->connect("changed",this,"_res_changed"); + frames->connect("changed", this, "_res_changed"); if (!frames.is_valid()) { - frame=0; + frame = 0; } else { set_frame(frame); } - - _change_notify(); _reset_timeout(); update(); update_configuration_warning(); - } Ref<SpriteFrames> AnimatedSprite::get_sprite_frames() const { @@ -472,36 +439,30 @@ void AnimatedSprite::set_frame(int p_frame) { if (frames->has_animation(animation)) { int limit = frames->get_frame_count(animation); - if (p_frame>=limit) - p_frame=limit-1; - + if (p_frame >= limit) + p_frame = limit - 1; } - if (p_frame<0) - p_frame=0; + if (p_frame < 0) + p_frame = 0; - - if (frame==p_frame) + if (frame == p_frame) return; - frame=p_frame; + frame = p_frame; _reset_timeout(); update(); _change_notify("frame"); emit_signal(SceneStringNames::get_singleton()->frame_changed); - - - } int AnimatedSprite::get_frame() const { return frame; } - void AnimatedSprite::set_centered(bool p_center) { - centered=p_center; + centered = p_center; update(); item_rect_changed(); } @@ -511,9 +472,9 @@ bool AnimatedSprite::is_centered() const { return centered; } -void AnimatedSprite::set_offset(const Point2& p_offset) { +void AnimatedSprite::set_offset(const Point2 &p_offset) { - offset=p_offset; + offset = p_offset; update(); item_rect_changed(); _change_notify("offset"); @@ -525,7 +486,7 @@ Point2 AnimatedSprite::get_offset() const { void AnimatedSprite::set_flip_h(bool p_flip) { - hflip=p_flip; + hflip = p_flip; update(); } bool AnimatedSprite::is_flipped_h() const { @@ -535,7 +496,7 @@ bool AnimatedSprite::is_flipped_h() const { void AnimatedSprite::set_flip_v(bool p_flip) { - vflip=p_flip; + vflip = p_flip; update(); } bool AnimatedSprite::is_flipped_v() const { @@ -543,29 +504,27 @@ bool AnimatedSprite::is_flipped_v() const { return vflip; } - - Rect2 AnimatedSprite::get_item_rect() const { - if (!frames.is_valid() || !frames->has_animation(animation) || frame<0 || frame>=frames->get_frame_count(animation)) { + if (!frames.is_valid() || !frames->has_animation(animation) || frame < 0 || frame >= frames->get_frame_count(animation)) { return Node2D::get_item_rect(); } Ref<Texture> t; if (animation) - t = frames->get_frame(animation,frame); + t = frames->get_frame(animation, frame); if (t.is_null()) return Node2D::get_item_rect(); Size2i s = t->get_size(); - Point2 ofs=offset; + Point2 ofs = offset; if (centered) - ofs-=s/2; + ofs -= s / 2; - if (s==Size2(0,0)) - s=Size2(1,1); + if (s == Size2(0, 0)) + s = Size2(1, 1); - return Rect2(ofs,s); + return Rect2(ofs, s); } void AnimatedSprite::_res_changed() { @@ -578,9 +537,9 @@ void AnimatedSprite::_res_changed() { void AnimatedSprite::_set_playing(bool p_playing) { - if (playing==p_playing) + if (playing == p_playing) return; - playing=p_playing; + playing = p_playing; _reset_timeout(); set_process_internal(playing); } @@ -590,14 +549,14 @@ bool AnimatedSprite::_is_playing() const { return playing; } -void AnimatedSprite::play(const StringName& p_animation) { +void AnimatedSprite::play(const StringName &p_animation) { if (p_animation) set_animation(p_animation); _set_playing(true); } -void AnimatedSprite::stop(){ +void AnimatedSprite::stop() { _set_playing(false); } @@ -614,29 +573,28 @@ void AnimatedSprite::_reset_timeout() { if (frames.is_valid() && frames->has_animation(animation)) { float speed = frames->get_animation_speed(animation); - if (speed>0) { - timeout=1.0/speed; + if (speed > 0) { + timeout = 1.0 / speed; } else { - timeout=0; + timeout = 0; } } else { - timeout=0; + timeout = 0; } - } -void AnimatedSprite::set_animation(const StringName& p_animation){ +void AnimatedSprite::set_animation(const StringName &p_animation) { - if (animation==p_animation) + if (animation == p_animation) return; - animation=p_animation; + animation = p_animation; _reset_timeout(); set_frame(0); _change_notify(); update(); } -StringName AnimatedSprite::get_animation() const{ +StringName AnimatedSprite::get_animation() const { return animation; } @@ -652,65 +610,57 @@ String AnimatedSprite::get_configuration_warning() const { void AnimatedSprite::_bind_methods() { + ClassDB::bind_method(D_METHOD("set_sprite_frames", "sprite_frames:SpriteFrames"), &AnimatedSprite::set_sprite_frames); + ClassDB::bind_method(D_METHOD("get_sprite_frames:SpriteFrames"), &AnimatedSprite::get_sprite_frames); - ClassDB::bind_method(D_METHOD("set_sprite_frames","sprite_frames:SpriteFrames"),&AnimatedSprite::set_sprite_frames); - ClassDB::bind_method(D_METHOD("get_sprite_frames:SpriteFrames"),&AnimatedSprite::get_sprite_frames); - - ClassDB::bind_method(D_METHOD("set_animation","animation"),&AnimatedSprite::set_animation); - ClassDB::bind_method(D_METHOD("get_animation"),&AnimatedSprite::get_animation); - - ClassDB::bind_method(D_METHOD("_set_playing","playing"),&AnimatedSprite::_set_playing); - ClassDB::bind_method(D_METHOD("_is_playing"),&AnimatedSprite::_is_playing); + ClassDB::bind_method(D_METHOD("set_animation", "animation"), &AnimatedSprite::set_animation); + ClassDB::bind_method(D_METHOD("get_animation"), &AnimatedSprite::get_animation); - ClassDB::bind_method(D_METHOD("play","anim"),&AnimatedSprite::play,DEFVAL(StringName())); - ClassDB::bind_method(D_METHOD("stop"),&AnimatedSprite::stop); - ClassDB::bind_method(D_METHOD("is_playing"),&AnimatedSprite::is_playing); + ClassDB::bind_method(D_METHOD("_set_playing", "playing"), &AnimatedSprite::_set_playing); + ClassDB::bind_method(D_METHOD("_is_playing"), &AnimatedSprite::_is_playing); - ClassDB::bind_method(D_METHOD("set_centered","centered"),&AnimatedSprite::set_centered); - ClassDB::bind_method(D_METHOD("is_centered"),&AnimatedSprite::is_centered); + ClassDB::bind_method(D_METHOD("play", "anim"), &AnimatedSprite::play, DEFVAL(StringName())); + ClassDB::bind_method(D_METHOD("stop"), &AnimatedSprite::stop); + ClassDB::bind_method(D_METHOD("is_playing"), &AnimatedSprite::is_playing); - ClassDB::bind_method(D_METHOD("set_offset","offset"),&AnimatedSprite::set_offset); - ClassDB::bind_method(D_METHOD("get_offset"),&AnimatedSprite::get_offset); + ClassDB::bind_method(D_METHOD("set_centered", "centered"), &AnimatedSprite::set_centered); + ClassDB::bind_method(D_METHOD("is_centered"), &AnimatedSprite::is_centered); - ClassDB::bind_method(D_METHOD("set_flip_h","flip_h"),&AnimatedSprite::set_flip_h); - ClassDB::bind_method(D_METHOD("is_flipped_h"),&AnimatedSprite::is_flipped_h); + ClassDB::bind_method(D_METHOD("set_offset", "offset"), &AnimatedSprite::set_offset); + ClassDB::bind_method(D_METHOD("get_offset"), &AnimatedSprite::get_offset); - ClassDB::bind_method(D_METHOD("set_flip_v","flip_v"),&AnimatedSprite::set_flip_v); - ClassDB::bind_method(D_METHOD("is_flipped_v"),&AnimatedSprite::is_flipped_v); + ClassDB::bind_method(D_METHOD("set_flip_h", "flip_h"), &AnimatedSprite::set_flip_h); + ClassDB::bind_method(D_METHOD("is_flipped_h"), &AnimatedSprite::is_flipped_h); - ClassDB::bind_method(D_METHOD("set_frame","frame"),&AnimatedSprite::set_frame); - ClassDB::bind_method(D_METHOD("get_frame"),&AnimatedSprite::get_frame); + ClassDB::bind_method(D_METHOD("set_flip_v", "flip_v"), &AnimatedSprite::set_flip_v); + ClassDB::bind_method(D_METHOD("is_flipped_v"), &AnimatedSprite::is_flipped_v); + ClassDB::bind_method(D_METHOD("set_frame", "frame"), &AnimatedSprite::set_frame); + ClassDB::bind_method(D_METHOD("get_frame"), &AnimatedSprite::get_frame); - ClassDB::bind_method(D_METHOD("_res_changed"),&AnimatedSprite::_res_changed); + ClassDB::bind_method(D_METHOD("_res_changed"), &AnimatedSprite::_res_changed); ADD_SIGNAL(MethodInfo("frame_changed")); ADD_SIGNAL(MethodInfo("animation_finished")); - ADD_PROPERTYNZ( PropertyInfo( Variant::OBJECT, "frames",PROPERTY_HINT_RESOURCE_TYPE,"SpriteFrames"), "set_sprite_frames","get_sprite_frames"); - ADD_PROPERTY( PropertyInfo( Variant::STRING, "animation"), "set_animation","get_animation"); - ADD_PROPERTYNZ( PropertyInfo( Variant::INT, "frame",PROPERTY_HINT_SPRITE_FRAME), "set_frame","get_frame"); - ADD_PROPERTYNZ( PropertyInfo( Variant::BOOL, "playing"), "_set_playing","_is_playing"); - ADD_PROPERTYNO( PropertyInfo( Variant::BOOL, "centered"), "set_centered","is_centered"); - ADD_PROPERTYNZ( PropertyInfo( Variant::VECTOR2, "offset"), "set_offset","get_offset"); - ADD_PROPERTYNZ( PropertyInfo( Variant::BOOL, "flip_h"), "set_flip_h","is_flipped_h"); - ADD_PROPERTYNZ( PropertyInfo( Variant::BOOL, "flip_v"), "set_flip_v","is_flipped_v"); - - + ADD_PROPERTYNZ(PropertyInfo(Variant::OBJECT, "frames", PROPERTY_HINT_RESOURCE_TYPE, "SpriteFrames"), "set_sprite_frames", "get_sprite_frames"); + ADD_PROPERTY(PropertyInfo(Variant::STRING, "animation"), "set_animation", "get_animation"); + ADD_PROPERTYNZ(PropertyInfo(Variant::INT, "frame", PROPERTY_HINT_SPRITE_FRAME), "set_frame", "get_frame"); + ADD_PROPERTYNZ(PropertyInfo(Variant::BOOL, "playing"), "_set_playing", "_is_playing"); + ADD_PROPERTYNO(PropertyInfo(Variant::BOOL, "centered"), "set_centered", "is_centered"); + ADD_PROPERTYNZ(PropertyInfo(Variant::VECTOR2, "offset"), "set_offset", "get_offset"); + ADD_PROPERTYNZ(PropertyInfo(Variant::BOOL, "flip_h"), "set_flip_h", "is_flipped_h"); + ADD_PROPERTYNZ(PropertyInfo(Variant::BOOL, "flip_v"), "set_flip_v", "is_flipped_v"); } AnimatedSprite::AnimatedSprite() { - centered=true; - hflip=false; - vflip=false; - - frame=0; - playing=false; - animation="default"; - timeout=0; - + centered = true; + hflip = false; + vflip = false; + frame = 0; + playing = false; + animation = "default"; + timeout = 0; } - - |