LeviLamina
Loading...
Searching...
No Matches
FlockingComponent.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4
5// auto generated inclusion list
6#include "mc/deps/core/math/Vec3.h"
7
8// auto generated forward declare list
9// clang-format off
10class Actor;
11class Mob;
12struct ActorUniqueID;
13// clang-format on
14
15class FlockingComponent {
16public:
17 // member variables
18 // NOLINTBEGIN
19 ::ll::TypedStorage<8, 24, ::std::vector<::ActorUniqueID>> mNeighborhood;
20 ::ll::TypedStorage<4, 12, ::Vec3> mCenterOfMass;
21 ::ll::TypedStorage<4, 12, ::Vec3> mGroupVelocity;
22 ::ll::TypedStorage<4, 12, ::Vec3> mGoalHeading;
23 ::ll::TypedStorage<4, 12, ::Vec3> mCurrentHeading;
24 ::ll::TypedStorage<1, 1, bool> mInWater;
25 ::ll::TypedStorage<1, 1, bool> mMatchVariant;
26 ::ll::TypedStorage<1, 1, bool> mUseCenterOfMass;
27 ::ll::TypedStorage<1, 1, bool> mIsLeader;
28 ::ll::TypedStorage<1, 1, bool> mInFlock;
29 ::ll::TypedStorage<1, 1, bool> mIsEnabled;
30 ::ll::TypedStorage<1, 1, bool> mHasTargetGoal;
31 ::ll::TypedStorage<1, 1, bool> mUsingDirection;
32 ::ll::TypedStorage<4, 4, int> mFlockLimit;
33 ::ll::TypedStorage<4, 4, float> mLonerChance;
34 ::ll::TypedStorage<4, 4, float> mGoalWeight;
35 ::ll::TypedStorage<4, 4, float> mInfluenceRadius;
36 ::ll::TypedStorage<4, 4, float> mBreachInfluence;
37 ::ll::TypedStorage<4, 4, float> mSeparationWeight;
38 ::ll::TypedStorage<4, 4, float> mSeparationThreshold;
39 ::ll::TypedStorage<4, 4, float> mCohesionWeight;
40 ::ll::TypedStorage<4, 4, float> mCohesionThreshold;
41 ::ll::TypedStorage<4, 4, float> mInnerCohesionThreshold;
42 ::ll::TypedStorage<4, 4, float> mMinHeight;
43 ::ll::TypedStorage<4, 4, float> mMaxHeight;
44 ::ll::TypedStorage<4, 4, float> mBlockDist;
45 ::ll::TypedStorage<4, 4, float> mBlockWeight;
46 ::ll::TypedStorage<1, 1, bool> mOverspeedRequired;
47 // NOLINTEND
48
49public:
50 // member functions
51 // NOLINTBEGIN
52 MCAPI FlockingComponent();
53
54 MCAPI void breakFlock(::Actor const& owner);
55
56 MCAPI void calculateFlockVector(::Actor const& owner);
57
58 MCAPI void calculateGoalHeading(::Mob& owner);
59
60 MCAPI bool canJoinFlock(::Actor& owner) const;
61
62 MCAPI void joinFlock(::Actor& owner);
63
64 MCAPI void manageNeighborhood(::Actor& owner);
65
66 MCAPI void mergeNeighborhoods(::Actor& owner);
67
68 MCAPI void updateNeighborhoodData(::Actor const& owner);
69
70 MCAPI bool validateVariantEntityTypes(::Actor const& e0, ::Actor const& e1) const;
71 // NOLINTEND
72
73public:
74 // constructor thunks
75 // NOLINTBEGIN
76 MCAPI void* $ctor();
77 // NOLINTEND
78};
Definition Actor.h:125
Definition Mob.h:57
Definition ActorUniqueID.h:10