26 [[nodiscard]] u32 loadFlags()
const override {
31 void createCollision()
override {}
34 void calcCollisionTransform()
override {}
37 [[nodiscard]] f32 getCollisionRadius()
const override {
46 KCLTypeMask mask,
CollisionInfo *info, KCLTypeMask *maskOut)
override;
48 KCLTypeMask mask,
CollisionInfo *info, KCLTypeMask *maskOut)
override;
50 [[nodiscard]]
bool checkSpherePartial(f32 radius,
const EGG::Vector3f &pos,
52 KCLTypeMask *maskOut, u32 timeOffset)
override;
53 [[nodiscard]]
bool checkSpherePartialPush(f32 radius,
const EGG::Vector3f &pos,
55 KCLTypeMask *maskOut, u32 timeOffset)
override;
56 [[nodiscard]]
bool checkSphereFull(f32 radius,
const EGG::Vector3f &pos,
58 KCLTypeMask *maskOut, u32 timeOffset)
override;
59 [[nodiscard]]
bool checkSphereFullPush(f32 radius,
const EGG::Vector3f &pos,
61 KCLTypeMask *maskOut, u32 timeOffset)
override;
63 [[nodiscard]]
bool checkPointCachedPartial(
const EGG::Vector3f &pos,
65 KCLTypeMask *maskOut)
override;
66 [[nodiscard]]
bool checkPointCachedPartialPush(
const EGG::Vector3f &pos,
68 KCLTypeMask *maskOut)
override;
70 KCLTypeMask mask,
CollisionInfo *info, KCLTypeMask *maskOut)
override;
71 [[nodiscard]]
bool checkPointCachedFullPush(
const EGG::Vector3f &pos,
73 KCLTypeMask *maskOut)
override;
75 [[nodiscard]]
bool checkSphereCachedPartial(f32 radius,
const EGG::Vector3f &pos,
77 KCLTypeMask *maskOut, u32 timeOffset)
override;
78 [[nodiscard]]
bool checkSphereCachedPartialPush(f32 radius,
const EGG::Vector3f &pos,
80 KCLTypeMask *maskOut, u32 timeOffset)
override;
81 [[nodiscard]]
bool checkSphereCachedFull(f32 radius,
const EGG::Vector3f &pos,
83 KCLTypeMask *maskOut, u32 timeOffset)
override;
84 [[nodiscard]]
bool checkSphereCachedFullPush(f32 radius,
const EGG::Vector3f &pos,
86 KCLTypeMask *maskOut, u32 timeOffset)
override;
91 static constexpr size_t CACHE_SIZE_X = 122;
92 static constexpr size_t CACHE_SIZE_Z = 116;
93 static constexpr f32 SPECIAL_WALL_BOUNDING_RADIUS = 85.0f;
97 [[nodiscard]]
bool checkSpherePartialImpl(f32 radius,
const EGG::Vector3f &pos,
99 KCLTypeMask *maskOut);
100 [[nodiscard]]
bool checkSpherePartialPushImpl(f32 radius,
const EGG::Vector3f &pos,
102 KCLTypeMask *maskOut);
103 [[nodiscard]]
bool checkSphereFullImpl(f32 radius,
const EGG::Vector3f &pos,
105 KCLTypeMask *maskOut);
106 [[nodiscard]]
bool checkSphereFullPushImpl(f32 radius,
const EGG::Vector3f &pos,
108 KCLTypeMask *maskOut);
116 std::array<std::array<ObjectObakeBlock *, CACHE_SIZE_Z>, CACHE_SIZE_X>
m_blockCache;