1#pragma once
2
3#include "Library/Execute/IUseExecutor.h"
4#include "Library/HostIO/HioNode.h"
5
6namespace al {
7class ExecuteDirector;
8class HitSensor;
9class SensorHitGroup;
10
11class HitSensorDirector : public IUseExecutor, public IUseHioNode {
12public:
13 HitSensorDirector(ExecuteDirector* parent);
14
15 void execute() override;
16 void initGroup(HitSensor* sensor);
17
18private:
19 void executeHitCheckInSameGroup(SensorHitGroup* group) const;
20 void executeHitCheckGroup(SensorHitGroup* group, SensorHitGroup* group2) const;
21 void executeHitCheck(HitSensor* sensor, HitSensor* otherSensor) const;
22
23private:
24 SensorHitGroup* mPlayer = nullptr;
25 SensorHitGroup* mPlayerEye = nullptr;
26 SensorHitGroup* mRide = nullptr;
27 SensorHitGroup* mEye = nullptr;
28 SensorHitGroup* mLookAt = nullptr;
29 SensorHitGroup* mSimple = nullptr;
30 SensorHitGroup* mMapObj = nullptr;
31 SensorHitGroup* mCharacter = nullptr;
32};
33
34static_assert(sizeof(HitSensorDirector) == 0x48);
35
36} // namespace al
37