// // SubModule.h // cocos2d_libs // // Created by 徐俊杰 on 2020/4/24. // #ifndef SubModule_h #define SubModule_h //#include "cocos2d.h" #include "rparticle/Macros/RParticleMacros.h" #include "rparticle/Modules/ParticleSystemModule.h" //#include "Runtime/BaseClasses/BaseObject.h" NS_RRP_BEGIN class RParticleSystem; struct ParticleSystemParticles; class SubModule : public ParticleSystemModule { public: DECLARE_MODULE (SubModule) SubModule (); void Update (const ParticleSystemReadOnlyState& roState, ParticleSystemState& state, ParticleSystemParticles& ps, size_t fromIndex, size_t toIndex, float dt) const; /* void CheckConsistency() {}; int GetSubEmitterTypeCount(ParticleSystemSubType type) const; template void Transfer (TransferFunction& transfer); static void RemoveDuplicatePtrs (RParticleSystem** shurikens); int GetSubEmitterPtrs (RParticleSystem** shurikens) const; int GetSubEmitterPtrsBirth (RParticleSystem** shurikens) const; int GetSubEmitterPtrsCollision (RParticleSystem** shurikens) const; int GetSubEmitterPtrsDeath(RParticleSystem** shurikens) const; void SetSubEmittersBirthID(int index, int instanceID) { if (index >= 0 && index < kParticleSystemMaxSubBirth) { m_SubEmittersBirth[index].SetInstanceID(instanceID); } } int GetSubEmittersBirthID(int index) { int instanceID = -1; if (index >= 0 && index < kParticleSystemMaxSubBirth) { instanceID = m_SubEmittersBirth[index].GetInstanceID(); } return instanceID; } void SetSubEmittersCollisionID(int index, int instanceID) { if (index >= 0 && index < kParticleSystemMaxSubBirth) { m_SubEmittersCollision[index].SetInstanceID(instanceID); } } int GetSubEmittersCollisionID(int index) { int instanceID = -1; if (index >= 0 && index < kParticleSystemMaxSubBirth) { instanceID = m_SubEmittersCollision[index].GetInstanceID(); } return instanceID; } void SetSubEmittersDeathID(int index, int instanceID) { if (index >= 0 && index < kParticleSystemMaxSubBirth) { m_SubEmittersDeath[index].SetInstanceID(instanceID); } } int GetSubEmittersDeathID(int index) { int instanceID = -1; if (index >= 0 && index < kParticleSystemMaxSubBirth) { instanceID = m_SubEmittersDeath[index].GetInstanceID(); } return instanceID; } private: PPtr m_SubEmittersBirth[kParticleSystemMaxSubBirth]; PPtr m_SubEmittersCollision[kParticleSystemMaxSubCollision]; PPtr m_SubEmittersDeath[kParticleSystemMaxSubDeath]; */ }; NS_RRP_END #endif /* SubModule_h */