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 SensorMsg;
12} // namespace al
13
14class ActorDimensionKeeper;
15
16class Coin2D : public al::LiveActor, public IUseDimension {
17public:
18 Coin2D(const char* name);
19
20 void init(const al::ActorInitInfo& initInfo) override;
21 void initAfterPlacement() override;
22 void appear() override;
23 void control() override;
24 void endClipped() override;
25 bool receiveMsg(const al::SensorMsg* message, al::HitSensor* other,
26 al::HitSensor* self) override;
27
28 ActorDimensionKeeper* getActorDimensionKeeper() const override { return mDimensionKeeper; }
29
30 void listenAppear();
31 void appearCountUp();
32 void get();
33 bool isGot() const;
34
35 void exeAppear();
36 void exeWait();
37 void exeGot();
38 void exeCountUp();
39
40private:
41 al::MtxConnector* mMtxConnector = nullptr;
42 ActorDimensionKeeper* mDimensionKeeper = nullptr;
43 bool mIsConnectToCollisionBack = false;
44 bool mIsPlaced = false;
45};
46