Fission FSN
Loading...
Searching...
No Matches
fsCParticleEmitterComponent.h
Go to the documentation of this file.
1/********************************************************************
2*
3* File: fsCParticleEmitterComponent.h
4*
5* Purpose: A component which holds a ParticleEmitter.
6*
7*********************************************************************/
8
9#ifndef fsCParticleEmitterComponenthdr
10#define fsCParticleEmitterComponenthdr
11
12#include <functional>
14
16
18class fsCResourceName;
19class fsCSprite;
20class fsCEntity;
21class fsRect;
22struct fsPoint;
23class fsIParticle;
24
25
27{
28 friend class fsCComponentFactory;
29
30public:
31
32 static const fsStr mEntityPrefix;
33 static const fsCUniqueId mTypeId;
34
36 const fsStr& collectableTypeGet() const;
37 fsBool collectableGet() const;
38 fsS32 photoScoreGet(const fsRect& pScreenRect) const;
39 fsBool hitTestAndCollect(const fsPoint& pPointerPos, std::function<void(fsIParticle* pParticle)> pCallBack) const;
40 fsBool hitTest(const fsPoint& pPointerPos) const;
41
42 void shortCircuit();
43
44 fsBool activeGet() const;
45
46 void visibleSet(fsBool pState);
47 void particleEmitterParentEntSet(fsCEntity* pParent = nullptr) const;
48 void particelDataLoad(const fsCResourceName& pFileName);
49
50protected:
51
52 static fsIComponent* create(fsCEntity* pParent);
53
54 virtual void particelDataLoadDo(const fsCResourceName& pFileName);
55
56 void initialiseFromVariableTableDo(const fsCVariableTable& pVars) override;
57
58 void updateDo(fsS32 pDeltaMs) override;
59 void renderDo() override;
60 void matrixApplyDo() override;
61 void finaliseDo() override;
62
65
66 std::unique_ptr<fsCParticleEmitter> mEmitter;
67
68private:
69
70 fsBool mVisibele;
71};
72
73#endif
Definition fsCEntity.h:39
void shortCircuit()
Definition fsCParticleEmitterComponent.cpp:50
friend class fsCComponentFactory
Definition fsCParticleEmitterComponent.h:28
static const fsStr mEntityPrefix
Definition fsCParticleEmitterComponent.h:32
void visibleSet(fsBool pState)
Definition fsCParticleEmitterComponent.cpp:67
void particleEmitterParentEntSet(fsCEntity *pParent=nullptr) const
Definition fsCParticleEmitterComponent.cpp:72
fsBool collectableGet() const
Definition fsCParticleEmitterComponent.cpp:29
virtual ~fsCParticleEmitterComponent()
Definition fsCParticleEmitterComponent.cpp:166
fsS32 remainingParticleCountGet() const
Definition fsCParticleEmitterComponent.cpp:19
void initialiseFromVariableTableDo(const fsCVariableTable &pVars) override
Definition fsCParticleEmitterComponent.cpp:77
virtual void particelDataLoadDo(const fsCResourceName &pFileName)
Definition fsCParticleEmitterComponent.cpp:90
void particelDataLoad(const fsCResourceName &pFileName)
Definition fsCParticleEmitterComponent.cpp:85
fsBool hitTest(const fsPoint &pPointerPos) const
Definition fsCParticleEmitterComponent.cpp:39
void updateDo(fsS32 pDeltaMs) override
Definition fsCParticleEmitterComponent.cpp:123
void matrixApplyDo() override
Definition fsCParticleEmitterComponent.cpp:139
const fsStr & collectableTypeGet() const
Definition fsCParticleEmitterComponent.cpp:24
void finaliseDo() override
Definition fsCParticleEmitterComponent.cpp:105
fsBool hitTestAndCollect(const fsPoint &pPointerPos, std::function< void(fsIParticle *pParticle)> pCallBack) const
Definition fsCParticleEmitterComponent.cpp:44
static fsIComponent * create(fsCEntity *pParent)
Definition fsCParticleEmitterComponent.cpp:155
void renderDo() override
Definition fsCParticleEmitterComponent.cpp:131
fsBool activeGet() const
Definition fsCParticleEmitterComponent.cpp:58
fsCParticleEmitterComponent(fsCEntity *pParent)
Definition fsCParticleEmitterComponent.cpp:160
fsS32 photoScoreGet(const fsRect &pScreenRect) const
Definition fsCParticleEmitterComponent.cpp:34
std::unique_ptr< fsCParticleEmitter > mEmitter
Definition fsCParticleEmitterComponent.h:66
static const fsCUniqueId mTypeId
Definition fsCParticleEmitterComponent.h:33
Definition fsCParticleEmitter.h:40
Definition fsCResourceName.h:32
Definition fsCSprite.h:24
Definition fsCUniqueId.h:21
Definition fsCVariableTable.h:27
fsIComponent(fsCEntity *pParent)
Definition fsIComponent.cpp:86
Definition fsIParticle.h:39
fsIRenderableComponent(fsCEntity *pParent)
Definition fsIRenderableComponent.cpp:4
Definition fsRect.h:16
Definition fsStr.h:23
bool fsBool
Definition fsBaseTypes.h:26
int fsS32
Definition fsBaseTypes.h:20
Definition fsPoint.h:17