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
18
21class fsCResourceName;
22class fsCSprite;
23
24
26{
27 friend class fsCComponentFactory;
28
29public:
30
31 static const fsCUniqueId mTypeId;
32 static const fsStr mEntityPrefix;
33
34 fsS32 heightGet() const;
35
36 void animationPlay(const fsStr& pAnimation);
37
38 // Per-instance playback controls. The start offset is re-applied whenever a
39 // new clip is played, allowing otherwise identical sprites to remain out of
40 // phase without changing their authored animation data.
41 void animationSpeedSet(fsF32 pSpeed);
42 void animationStartOffsetSet(fsS32 pOffsetMs);
43
44 fsBool animatingGet() const;
45
46 void stop();
47
48 void initialise(const fsStr& pFolderName, fsBool pHitMap);
49
50 void animationDataSet(const fsCResourceName& pAnimationFilename, fsBool pHitmap);
51
52protected:
53
54 static fsIComponent* create(fsCEntity* pParent);
55
56 void initialiseFromVariableTableDo(const fsCVariableTable& pVars) override;
57
58 void deserialiseDo() override;
59 void updateDo(fsS32 pDeltaMs) override;
60 void renderDo() override;
61 void matrixApplyDo() override;
62 void resetDo() override;
63
66
67private:
68
69 fsCResourceName anmPrefixPlayfirstFilenameGet(const fsStr& pFolderName) const;
70 fsCResourceName anmPrefixSpriterFilenameGet(const fsStr& pFolderName) const;
71 fsCResourceName pureFilenameGet(const fsStr& pFolderName) const;
72 fsCResourceName fullFilenameGet(const fsStr& pFolderName) const;
73
74 void visiblityStateChangeHandlePostDeserialise();
75 void visiblityStateChangeHandle();
76
77 std::shared_ptr<fsIAnimatingSprite> mAnimatingSprite;
78 std::shared_ptr<fsCSprite> mAnimationRootSprt;
79 fsF32 mAnimationSpeed;
80 fsF32 mAnimationRemainderMs;
81 fsS32 mAnimationStartOffsetMs;
82};
83
84#endif
void matrixApplyDo() override
Definition fsCAnimatingSpriteComponent.cpp:120
fsBool animatingGet() const
Definition fsCAnimatingSpriteComponent.cpp:75
void animationDataSet(const fsCResourceName &pAnimationFilename, fsBool pHitmap)
Definition fsCAnimatingSpriteComponent.cpp:139
fsCAnimatingSpriteComponent(fsCEntity *pParent)
Definition fsCAnimatingSpriteComponent.cpp:240
friend class fsCComponentFactory
Definition fsCAnimatingSpriteComponent.h:27
void deserialiseDo() override
Definition fsCAnimatingSpriteComponent.cpp:43
void renderDo() override
Definition fsCAnimatingSpriteComponent.cpp:112
void initialiseFromVariableTableDo(const fsCVariableTable &pVars) override
Definition fsCAnimatingSpriteComponent.cpp:215
static const fsStr mEntityPrefix
Definition fsCAnimatingSpriteComponent.h:32
static const fsCUniqueId mTypeId
Definition fsCAnimatingSpriteComponent.h:31
void animationStartOffsetSet(fsS32 pOffsetMs)
Definition fsCAnimatingSpriteComponent.cpp:70
static fsIComponent * create(fsCEntity *pParent)
Definition fsCAnimatingSpriteComponent.cpp:235
void resetDo() override
Definition fsCAnimatingSpriteComponent.cpp:92
void updateDo(fsS32 pDeltaMs) override
Definition fsCAnimatingSpriteComponent.cpp:100
void animationSpeedSet(fsF32 pSpeed)
Definition fsCAnimatingSpriteComponent.cpp:65
void stop()
Definition fsCAnimatingSpriteComponent.cpp:84
fsS32 heightGet() const
Definition fsCAnimatingSpriteComponent.cpp:48
virtual ~fsCAnimatingSpriteComponent()
Definition fsCAnimatingSpriteComponent.cpp:250
void animationPlay(const fsStr &pAnimation)
Definition fsCAnimatingSpriteComponent.cpp:53
Definition fsCEntity.h:39
Definition fsCResourceName.h:32
Definition fsCSprite.h:24
Definition fsCUniqueId.h:21
Definition fsCVariableTable.h:27
Definition fsIAnimatingSprite.h:32
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
bool fsBool
Definition fsBaseTypes.h:26
int fsS32
Definition fsBaseTypes.h:20
float fsF32
Definition fsBaseTypes.h:28