1#pragma once
2
3#include <basis/seadTypes.h>
4#include <math/seadVector.h>
5
6#include "Library/LiveActor/LiveActor.h"
7
8#include "Util/IUseDimension.h"
9
10namespace al {
11struct ActorInitInfo;
12class HitSensor;
13} // namespace al
14
15class ActorDimensionKeeper;
16class FlashingCtrl;
17class LifeUpItemStateAutoGet;
18
19class LifeMaxUpItem2D : public al::LiveActor, public IUseDimension {
20public:
21 LifeMaxUpItem2D(const char* name);
22
23 void init(const al::ActorInitInfo& initInfo) override;
24 bool receiveMsg(const al::SensorMsg* message, al::HitSensor* other,
25 al::HitSensor* self) override;
26 ActorDimensionKeeper* getActorDimensionKeeper() const override;
27 void appear() override;
28
29 void appearPopUp();
30 void appearByAmiibo(const sead::Vector3f&, const sead::Vector3f&);
31
32 void exeAppeared();
33 void exeSink();
34 void exeGotWaitLifeUpDemo();
35 void exeGotAppearCoin();
36 void exeVanishing();
37 void exeDeadWait();
38 void exeAutoGetDemo();
39
40private:
41 LifeUpItemStateAutoGet* mStateAutoGet = nullptr;
42 ActorDimensionKeeper* mDimensionKeeper = nullptr;
43 FlashingCtrl* mFlashingCtrl = nullptr;
44 s32 _128 = 0;
45};
46