1#pragma once
2
3#include "Library/LiveActor/LiveActor.h"
4
5namespace al {
6class MtxConnector;
7
8using JudgeFuncPtr = bool (*)(const SensorMsg* message, HitSensor* other, HitSensor* self);
9
10class BreakMapPartsBase : public LiveActor {
11public:
12 BreakMapPartsBase(const char* name);
13
14 void init(const ActorInitInfo& info) override;
15 void initAfterPlacement() override;
16 void kill() override;
17 void movement() override;
18 void calcAnim() override;
19 void exeWait();
20 void exeBreak();
21 void startBreakByProgram();
22 bool receiveMsg(const SensorMsg* message, HitSensor* other, HitSensor* self) override;
23
24 virtual JudgeFuncPtr getJudgeFunction(const char* name) const { return nullptr; }
25
26private:
27 JudgeFuncPtr mJudgeFunction = nullptr;
28 MtxConnector* mMtxConnector = nullptr;
29 sead::Vector3f mItemOffset = {0.0f, 0.0f, 0.0f};
30 bool mIsExistHitReactionBreak = false;
31 IUseAudioKeeper* mAudioKeeper = nullptr;
32};
33} // namespace al
34