1#pragma once
2
3#include <basis/seadTypes.h>
4
5namespace al {
6class LiveActor;
7struct ActorInitInfo;
8class PartsModel;
9} // namespace al
10class PlayerCostumeInfo;
11class PlayerModelHolder;
12
13class PlayerPainPartsKeeper {
14public:
15 PlayerPainPartsKeeper(const al::LiveActor*, const PlayerCostumeInfo*);
16 void update();
17 void updateNeedle();
18 void resetPosition();
19 bool isEnableNosePain() const;
20 bool isInvalidNoseDynamics() const;
21 void createNoseNeedle(const PlayerModelHolder*, const al::ActorInitInfo&);
22 void appearNeedle();
23
24private:
25 const al::LiveActor* mLiveActor;
26 const PlayerCostumeInfo* mPlayerCostumeInfo;
27 f32 mModelAlphaMask = 1;
28 bool mIsEnableTimer = true;
29 al::LiveActor* mPlayerFaceActor = nullptr;
30 al::PartsModel* mNeedlesActor = nullptr;
31 s32 mTimer = 0;
32};
33