1#pragma once
2
3#include <math/seadVector.h>
4
5#include "Library/HostIO/HioNode.h"
6
7#include "Player/IJudge.h"
8
9namespace al {
10class LiveActor;
11class CollisionParts;
12} // namespace al
13class PlayerConst;
14class IUsePlayerCollision;
15class IPlayerModelChanger;
16class PlayerCarryKeeper;
17class PlayerExternalVelocity;
18
19class PlayerJudgeGrabCeil : public al::HioNode, public IJudge {
20public:
21 PlayerJudgeGrabCeil(const al::LiveActor* player, const PlayerConst* pConst,
22 const IUsePlayerCollision* collider,
23 const IPlayerModelChanger* modelChanger,
24 const PlayerCarryKeeper* carryKeeper,
25 const PlayerExternalVelocity* externalVelocity);
26 void reset() override;
27 void update() override;
28 bool judge() const override;
29
30private:
31 const al::LiveActor* mPlayer;
32 const PlayerConst* mConst;
33 const IUsePlayerCollision* mCollision;
34 const IPlayerModelChanger* mModelChanger;
35 const PlayerCarryKeeper* mCarryKeeper;
36 const PlayerExternalVelocity* mExternalVelocity;
37 bool mIsJudge = false;
38 const al::CollisionParts* mCollidedParts = nullptr;
39 sead::Vector3f _48 = {0.0f, 0.0f, 0.0f};
40 sead::Vector3f _54 = {0.0f, 0.0f, 0.0f};
41 sead::Vector3f _60 = {0.0f, 0.0f, 0.0f};
42};
43