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
16public:
17 // member variables
18 // NOLINTBEGIN
19 ::ll::TypedStorage<1, 1, bool> mInWater;
20 ::ll::TypedStorage<1, 1, bool> mMatchVariant;
21 ::ll::TypedStorage<1, 1, bool> mUseCenterOfMass;
22 ::ll::TypedStorage<1, 1, bool> mIsLeader;
23 ::ll::TypedStorage<1, 1, bool> mInFlock;
24 ::ll::TypedStorage<1, 1, bool> mIsEnabled;
25 ::ll::TypedStorage<1, 1, bool> mHasTargetGoal;
26 ::ll::TypedStorage<1, 1, bool> mUsingDirection;
27 ::ll::TypedStorage<4, 4, int> mFlockLimit;
28 ::ll::TypedStorage<4, 4, float> mLonerChance;
29 ::ll::TypedStorage<4, 4, float> mGoalWeight;
30 ::ll::TypedStorage<4, 4, float> mInfluenceRadius;
31 ::ll::TypedStorage<4, 4, float> mBreachInfluence;
32 ::ll::TypedStorage<4, 4, float> mSeparationWeight;
33 ::ll::TypedStorage<4, 4, float> mSeparationThreshold;
34 ::ll::TypedStorage<4, 4, float> mCohesionWeight;
35 ::ll::TypedStorage<4, 4, float> mCohesionThreshold;
36 ::ll::TypedStorage<4, 4, float> mInnerCohesionThreshold;
37 ::ll::TypedStorage<4, 4, float> mMinHeight;
38 ::ll::TypedStorage<4, 4, float> mMaxHeight;
39 ::ll::TypedStorage<4, 4, float> mBlockDist;
40 ::ll::TypedStorage<4, 4, float> mBlockWeight;
41 ::ll::TypedStorage<1, 1, bool> mOverspeedRequired;
42 ::ll::TypedStorage<8, 24, ::std::vector<::ActorUniqueID>> mNeighborhood;
43 ::ll::TypedStorage<4, 12, ::Vec3> mCenterOfMass;
44 ::ll::TypedStorage<4, 12, ::Vec3> mGroupVelocity;
45 ::ll::TypedStorage<4, 12, ::Vec3> mGoalHeading;
46 ::ll::TypedStorage<4, 12, ::Vec3> mCurrentHeading;
47 // NOLINTEND
48
49public:
50 // member functions
51 // NOLINTBEGIN
52 MCAPI void calculateFlockVector(::Actor const& owner);
53
54 MCAPI void calculateGoalHeading(::Mob& owner);
55
56 MCAPI bool canJoinFlock(::Actor& owner) const;
57
58 MCAPI void joinFlock(::Actor& owner);
59
60 MCAPI void manageNeighborhood(::Actor& owner);
61
62 MCAPI void mergeNeighborhoods(::Actor& owner);
63
64 MCAPI void updateNeighborhoodData(::Actor const& owner);
65
66 MCAPI bool validateVariantEntityTypes(::Actor const& e0, ::Actor const& e1) const;
67 // NOLINTEND
68};
Definition Actor.h:113
Definition FlockingComponent.h:15
Definition Mob.h:56
Definition ActorUniqueID.h:5