12#include <unordered_map>
55 virtual void Create()
override;
56 virtual void Destroy()
override;
57 virtual void Start()
override;
58 virtual void Tick(
float deltaTime)
override;
59 virtual void EditorTick(
float deltaTime)
override;
65 void PlayAnimation(
const std::string& name);
66 void SetFrame(int32_t frameIndex);
67 bool AnimateTo(int32_t targetFrame,
bool pauseOnFinished,
const ScriptFunc& onFinished);
68 bool AnimateToProgress(
float progress,
bool pauseOnFinished,
const ScriptFunc& onFinished);
69 void CancelAnimateTo();
70 void SetSpeed(
float speed);
71 float GetSpeed()
const {
return mPlaybackSpeed; }
83 void AddAnimation(
const std::string& assetPath);
86 void CreateAnimation(
const std::string& name);
87 void CreateAnimation(
const std::string& name,
const std::vector<Texture*>& frames);
88 void AddImage(
const std::string& name,
Texture* tex);
89 void AddImage(
const std::string& name,
const std::string& path);
90 void AddImages(
const std::string& name,
const std::vector<std::string>& paths);
92 void RemoveAnimation(
const std::string& name);
93 bool HasAnimation(
const std::string& name)
const;
95 float GetProgress()
const;
98 Texture* GetCurrentTexture()
const;
99 glm::vec2 GetCurrentUVScale()
const;
100 glm::vec2 GetCurrentUVOffset()
const;
101 glm::vec4 GetCurrentUVRect()
const;
114 void RebuildRegistry();
115 void TickInternal(
float deltaTime);
116 bool ResolveCurrentUV(glm::vec2& outUV0, glm::vec2& outUV1)
const;
117 Texture* ResolveCurrentTexture()
const;
127 bool mAutoPlay =
true;
128 bool mLoopOverride =
false;
129 float mPlaybackSpeed = 1.0f;
133 bool mEditorPreview =
false;
136 bool mEditorPlayButton =
false;
137 bool mEditorStopButton =
false;
140 std::unordered_map<std::string, SpriteAnimEntry>
mRegistry;
144 int32_t mCurrentFrame = 0;
145 float mElapsed = 0.0f;
146 bool mPlaying =
false;
147 bool mRegistryDirty =
true;
151 bool mAnimateToActive =
false;
152 int32_t mAnimateToTarget = -1;
153 bool mAnimateToPause =
true;
#define POLYPHASE_API
Definition PolyphaseAPI.h:31
virtual void EditorTick(float deltaTime)
Definition Node.cpp:563
virtual void Create()
Definition Node.cpp:220
virtual void Stop()
Definition Node.cpp:504
virtual void GatherProperties(std::vector< Property > &outProps) override
Definition Node.cpp:598
static bool HandlePropChange(Datum *datum, uint32_t index, const void *newValue)
Definition Node.cpp:74
virtual void Start()
Definition Node.cpp:459
virtual void Tick(float deltaTime)
Definition Node.cpp:558
virtual const char * GetTypeName() const
Definition Node.cpp:1513
virtual void Destroy()
Definition Node.cpp:234
virtual bool DrawCustomProperty(Property &prop)
Definition Object.h:46
Definition ScriptFunc.h:10
Definition SpriteAnimation.h:31
Definition SpriteAnimator.h:41
DECLARE_NODE(SpriteAnimator, Node)
bool GetEditorPreview() const
Definition SpriteAnimator.h:107
std::vector< SpriteAnimationRef > mAnimations
Definition SpriteAnimator.h:125
std::string mDefaultAnimation
Definition SpriteAnimator.h:126
void SetEditorPreview(bool enabled)
Definition SpriteAnimator.h:108
void SetAutoPlay(bool autoPlay)
Definition SpriteAnimator.h:75
bool IsPlaying() const
Definition SpriteAnimator.h:72
ScriptFunc mAnimateToCallback
Definition SpriteAnimator.h:154
std::string mCurrentName
Definition SpriteAnimator.h:143
int32_t GetCurrentFrameIndex() const
Definition SpriteAnimator.h:103
bool GetAutoPlay() const
Definition SpriteAnimator.h:74
bool GetLoopOverride() const
Definition SpriteAnimator.h:76
float GetSpeed() const
Definition SpriteAnimator.h:71
const std::string & GetCurrentAnimationName() const
Definition SpriteAnimator.h:102
std::unordered_map< std::string, SpriteAnimEntry > mRegistry
Definition SpriteAnimator.h:140
void SetDefaultAnimation(const std::string &name)
Definition SpriteAnimator.h:79
const std::string & GetDefaultAnimation() const
Definition SpriteAnimator.h:78
void SetLoopOverride(bool loop)
Definition SpriteAnimator.h:77
Definition SpriteAnimator.h:22
std::string name
Definition SpriteAnimator.h:23
std::vector< TextureRef > frames
Definition SpriteAnimator.h:27
SpriteAnimationRef sourceAsset
Definition SpriteAnimator.h:24
bool loop
Definition SpriteAnimator.h:29
float fps
Definition SpriteAnimator.h:28