1#pragma once
2
3#include "Library/LiveActor/LiveActor.h"
4
5#include "Util/IUseDimension.h"
6
7namespace al {
8struct ActorInitInfo;
9class HitSensor;
10class MtxConnector;
11class PlacementId;
12class SensorMsg;
13} // namespace al
14
15class ActorDimensionKeeper;
16class CoinCollectHintState;
17
18class CoinCollect2D : public al::LiveActor, public IUseDimension {
19public:
20 CoinCollect2D(const char* name);
21
22 void init(const al::ActorInitInfo& initInfo) override;
23 void initAfterPlacement() override;
24 bool receiveMsg(const al::SensorMsg* message, al::HitSensor* other,
25 al::HitSensor* self) override;
26 void endClipped() override;
27
28 ActorDimensionKeeper* getActorDimensionKeeper() const override { return mDimensionKeeper; }
29
30 void appearHintEffect();
31 void deleteHintEffect();
32 void reappearHintEffect();
33 bool isEnableHint() const;
34
35 void exeWait();
36 void exeWaitHint();
37 void exeGot();
38
39private:
40 CoinCollectHintState* mHintState = nullptr;
41 al::PlacementId* mPlacementId = nullptr;
42 al::MtxConnector* mMtxConnector = nullptr;
43 ActorDimensionKeeper* mDimensionKeeper = nullptr;
44};
45