LeviLamina
Loading...
Searching...
No Matches
HitDetection.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4#include "mc/world/phys/HitResult.h"
5
6// Forward declarations
7class Actor;
8class BlockSource;
9class Vec3;
10class AABB;
11class HitboxComponent;
12class SubBBsComponent;
13
14namespace HitDetection {
15
16LLNDAPI bool isValidHitDefault(Actor& actor, Actor* source, Actor* owner);
17
18LLNDAPI float getCollisionMarginDefault(Actor const& actor);
19
20LLNDAPI std::vector<HitResult> getHitResults(
21 BlockSource& region,
22 Actor* source,
23 Actor* owner,
24 Vec3 const& from,
25 Vec3 const& to,
26 brstd::function_ref<bool(Actor&, Actor*, Actor*)> isValidHit = isValidHitDefault,
27 brstd::function_ref<float(Actor const&)> getCollisionMargin = getCollisionMarginDefault
28);
29
30LLNDAPI HitResult getClosestHitResult(
31 BlockSource& region,
32 Actor* source,
33 Actor* owner,
34 Vec3 const& from,
35 Vec3 const& to,
36 brstd::function_ref<bool(Actor&, Actor*, Actor*)> isValidHit = isValidHitDefault,
37 brstd::function_ref<float(Actor const&)> getCollisionMargin = getCollisionMarginDefault
38);
39
40} // namespace HitDetection
Definition AABB.h:18
Definition Actor.h:102
Definition BlockSource.h:66
Definition HitResult.h:17
Definition HitboxComponent.h:10
Definition Vec3.h:10
Definition function_ref.h:60
Definition SubBBsComponent.h:10