Fission FSN
Loading...
Searching...
No Matches
fsCAnimatingSpriteComponent.h
Go to the documentation of this file.
1/********************************************************************
2*
3* File: fsCAnimatingSpriteComponent.h
4*
5* Purpose: A component which renders and animated sprite to the
6* display.
7*
8*********************************************************************/
9
10#ifndef fsCAnimatingSpriteComponenthdr
11#define fsCAnimatingSpriteComponenthdr
12
13#include<memory>
14
16
19
22class fsCResourceName;
23class fsCSprite;
24
25
27{
28 friend class fsCComponentFactory;
29
30public:
31
32 static const fsCUniqueId mTypeId;
33 static const fsStr mEntityPrefix;
34
35 fsS32 heightGet() const;
36
37 void animationPlay(const fsStr& pAnimation);
38 fsBool animationQueue(const fsStr& pAnimation, fsBool pLooping);
39 fsBool animationTrackPlay(fsS32 pTrackIndex, const fsStr& pAnimation, fsBool pLooping);
40 fsBool animationTrackQueue(fsS32 pTrackIndex, const fsStr& pAnimation, fsBool pLooping);
41 fsBool animationTrackClear(fsS32 pTrackIndex);
43 void animationMixDurationSet(fsS32 pDurationMs);
44 fsBool skinSet(const fsStr& pSkin);
45 fsBool attachmentSet(const fsStr& pSlot, const fsStr& pAttachment);
47
48 // Per-instance playback controls. The start offset is re-applied whenever a
49 // new clip is played, allowing otherwise identical sprites to remain out of
50 // phase without changing their authored animation data.
51 void animationSpeedSet(fsF32 pSpeed);
52 void animationStartOffsetSet(fsS32 pOffsetMs);
53
54 fsBool animatingGet() const;
55
56 void stop();
57
58 void initialise(const fsStr& pFolderName, fsBool pHitMap);
59
60 void animationDataSet(const fsCResourceName& pAnimationFilename, fsBool pHitmap);
61
62protected:
63
64 static fsIComponent* create(fsCEntity* pParent);
65
66 void initialiseFromVariableTableDo(const fsCVariableTable& pVars) override;
67
68 void deserialiseDo() override;
69 void updateDo(fsS32 pDeltaMs) override;
70 void renderDo() override;
71 void matrixApplyDo() override;
72 void resetDo() override;
73
76
77private:
78
79 fsCResourceName anmPrefixPlayfirstFilenameGet(const fsStr& pFolderName) const;
80 fsCResourceName anmPrefixSpriterFilenameGet(const fsStr& pFolderName) const;
81 fsCResourceName anmPrefixSpineFilenameGet(const fsStr& pFolderName) const;
82 fsCResourceName pureFilenameGet(const fsStr& pFolderName) const;
83 fsCResourceName fullFilenameGet(const fsStr& pFolderName) const;
84
85 void visiblityStateChangeHandlePostDeserialise();
86 void visiblityStateChangeHandle();
87
88 std::shared_ptr<fsIAnimatingSprite> mAnimatingSprite;
89 std::shared_ptr<fsCSprite> mAnimationRootSprt;
90 fsF32 mAnimationSpeed;
91 fsF32 mAnimationRemainderMs;
92 fsS32 mAnimationStartOffsetMs;
93};
94
95#endif
fsBool skinSet(const fsStr &pSkin)
Definition fsCAnimatingSpriteComponent.cpp:110
void animationTracksClear()
Definition fsCAnimatingSpriteComponent.cpp:94
void matrixApplyDo() override
Definition fsCAnimatingSpriteComponent.cpp:183
fsBool animatingGet() const
Definition fsCAnimatingSpriteComponent.cpp:138
void animationDataSet(const fsCResourceName &pAnimationFilename, fsBool pHitmap)
Definition fsCAnimatingSpriteComponent.cpp:205
fsCAnimatingSpriteComponent(fsCEntity *pParent)
Definition fsCAnimatingSpriteComponent.cpp:316
friend class fsCComponentFactory
Definition fsCAnimatingSpriteComponent.h:28
fsBool animationTrackQueue(fsS32 pTrackIndex, const fsStr &pAnimation, fsBool pLooping)
Definition fsCAnimatingSpriteComponent.cpp:82
void deserialiseDo() override
Definition fsCAnimatingSpriteComponent.cpp:48
void renderDo() override
Definition fsCAnimatingSpriteComponent.cpp:175
fsBool animationTrackClear(fsS32 pTrackIndex)
Definition fsCAnimatingSpriteComponent.cpp:89
void animationEventCallbackSet(fsTAnimationEventCallback pCallback)
Definition fsCAnimatingSpriteComponent.cpp:120
void initialiseFromVariableTableDo(const fsCVariableTable &pVars) override
Definition fsCAnimatingSpriteComponent.cpp:291
static const fsStr mEntityPrefix
Definition fsCAnimatingSpriteComponent.h:33
fsBool animationTrackPlay(fsS32 pTrackIndex, const fsStr &pAnimation, fsBool pLooping)
Definition fsCAnimatingSpriteComponent.cpp:75
static const fsCUniqueId mTypeId
Definition fsCAnimatingSpriteComponent.h:32
void animationStartOffsetSet(fsS32 pOffsetMs)
Definition fsCAnimatingSpriteComponent.cpp:133
static fsIComponent * create(fsCEntity *pParent)
Definition fsCAnimatingSpriteComponent.cpp:311
fsBool attachmentSet(const fsStr &pSlot, const fsStr &pAttachment)
Definition fsCAnimatingSpriteComponent.cpp:115
fsBool animationQueue(const fsStr &pAnimation, fsBool pLooping)
Definition fsCAnimatingSpriteComponent.cpp:70
void resetDo() override
Definition fsCAnimatingSpriteComponent.cpp:155
void animationMixDurationSet(fsS32 pDurationMs)
Definition fsCAnimatingSpriteComponent.cpp:102
void updateDo(fsS32 pDeltaMs) override
Definition fsCAnimatingSpriteComponent.cpp:163
void animationSpeedSet(fsF32 pSpeed)
Definition fsCAnimatingSpriteComponent.cpp:128
void stop()
Definition fsCAnimatingSpriteComponent.cpp:147
fsS32 heightGet() const
Definition fsCAnimatingSpriteComponent.cpp:53
virtual ~fsCAnimatingSpriteComponent()
Definition fsCAnimatingSpriteComponent.cpp:326
void animationPlay(const fsStr &pAnimation)
Definition fsCAnimatingSpriteComponent.cpp:58
Definition fsCEntity.h:39
Definition fsCResourceName.h:32
Definition fsCSprite.h:24
Definition fsCUniqueId.h:21
Definition fsCVariableTable.h:27
Definition fsIAnimatingSprite.h:33
Definition fsIAnimationData.h:18
void initialise()
Definition fsIComponent.cpp:51
fsIComponent(fsCEntity *pParent)
Definition fsIComponent.cpp:86
fsIRenderableComponent(fsCEntity *pParent)
Definition fsIRenderableComponent.cpp:4
Definition fsStr.h:23
std::function< void(const fsSAnimationEvent &)> fsTAnimationEventCallback
Definition fsAnimationEvent.h:34
bool fsBool
Definition fsBaseTypes.h:26
int fsS32
Definition fsBaseTypes.h:20
float fsF32
Definition fsBaseTypes.h:28