/********************************************************************
*
* File: gfCHotComponent.h
*
* Purpose: Component which covers another up and shows up on
* mouse devices as a change in cursor
*
*********************************************************************/
#ifndef gfCCollectableGroupComponenthdr
#define gfCCollectableGroupComponenthdr
#include <fsCore/src/fsCUniqueId.h>
#include "gfCTappableCollectableComponent.h"
class gfCGroupCollectableComponent : public gfCTappableCollectableComponent
{
friend class fsCComponentFactory;
friend class gfCTutorialSequencerComponent;
public:
static const fsCUniqueId mTypeId;
fsBool selectedGet() const;
void select();
void deselect();
protected:
void collectionProcessTriggerDo() override;
fsBool collectable() const override;
void listenersRegisterDo() override;<--- Function in derived class
void listenersDeregisterDo() override;<--- Function in derived class
fsBool messageProcessDo(const fsCUniqueId& pMessageType,
const fsIMessageDispatcher::sMessageParameters& pParam) override;
static fsIComponent* create(fsCEntity* pParent);
gfCGroupCollectableComponent(fsCEntity* pParent);
virtual ~gfCGroupCollectableComponent();<--- Destructor in derived class
private:
void callBaseCollectionProcessTriggerDo();
std::vector<fsCEntity*> mySiblingsGet() const;
fsBool siblingsSelectedCheck() const;
fsBool mSelected;
};
#endif