1#pragma once
2
3#include <basis/seadTypes.h>
4
5#include "Library/HostIO/HioNode.h"
6#include "Library/Scene/ISceneObj.h"
7
8#include "Scene/SceneObjFactory.h"
9
10namespace al {
11struct ActorInitInfo;
12class IUseSceneObjHolder;
13class LiveActor;
14} // namespace al
15
16class CoinCollectLayout;
17
18class CoinCollectWatcher : public al::ISceneObj, public al::IUseHioNode {
19public:
20 static constexpr s32 sSceneObjId = SceneObjID_CoinCollectWatcher;
21
22 CoinCollectWatcher();
23
24 const char* getSceneObjName() const override { return "コインコレクト監視者"; }
25
26 void initAfterPlacementSceneObj(const al::ActorInitInfo& initInfo) override;
27
28 void registerCoin(bool isCountUpCoin);
29 void countup(const al::LiveActor* actor);
30
31private:
32 u32 mCoinUpCount = 0;
33 u32 mRegisteredCoins = 0;
34 CoinCollectLayout* mCoinCollectLayout = nullptr;
35};
36
37namespace rs {
38CoinCollectWatcher* createCoinCollectWatcher(const al::IUseSceneObjHolder* objHolder);
39} // namespace rs
40