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;
11struct ActorUniqueID;
12// clang-format on
13
14class FlockingComponent {
15public:
16 // member variables
17 // NOLINTBEGIN
18 ::ll::TypedStorage<8, 24, ::std::vector<::ActorUniqueID>> mNeighborhood;
19 ::ll::TypedStorage<4, 12, ::Vec3> mCenterOfMass;
20 ::ll::TypedStorage<4, 12, ::Vec3> mGroupVelocity;
21 ::ll::TypedStorage<4, 12, ::Vec3> mGoalHeading;
22 ::ll::TypedStorage<4, 12, ::Vec3> mCurrentHeading;
23 ::ll::TypedStorage<1, 1, bool> mInWater;
24 ::ll::TypedStorage<1, 1, bool> mMatchVariant;
25 ::ll::TypedStorage<1, 1, bool> mUseCenterOfMass;
26 ::ll::TypedStorage<1, 1, bool> mIsLeader;
27 ::ll::TypedStorage<1, 1, bool> mInFlock;
28 ::ll::TypedStorage<1, 1, bool> mIsEnabled;
29 ::ll::TypedStorage<1, 1, bool> mHasTargetGoal;
30 ::ll::TypedStorage<1, 1, bool> mUsingDirection;
31 ::ll::TypedStorage<4, 4, int> mFlockLimit;
32 ::ll::TypedStorage<4, 4, float> mLonerChance;
33 ::ll::TypedStorage<4, 4, float> mGoalWeight;
34 ::ll::TypedStorage<4, 4, float> mInfluenceRadius;
35 ::ll::TypedStorage<4, 4, float> mBreachInfluence;
36 ::ll::TypedStorage<4, 4, float> mSeparationWeight;
37 ::ll::TypedStorage<4, 4, float> mSeparationThreshold;
38 ::ll::TypedStorage<4, 4, float> mCohesionWeight;
39 ::ll::TypedStorage<4, 4, float> mCohesionThreshold;
40 ::ll::TypedStorage<4, 4, float> mInnerCohesionThreshold;
41 ::ll::TypedStorage<4, 4, float> mMinHeight;
42 ::ll::TypedStorage<4, 4, float> mMaxHeight;
43 ::ll::TypedStorage<4, 4, float> mBlockDist;
44 ::ll::TypedStorage<4, 4, float> mBlockWeight;
45 ::ll::TypedStorage<1, 1, bool> mOverspeedRequired;
46 // NOLINTEND
47
48public:
49 // prevent constructor by default
50 FlockingComponent& operator=(FlockingComponent const&);
51 FlockingComponent(FlockingComponent const&);
52 FlockingComponent();
53
54public:
55 // member functions
56 // NOLINTBEGIN
57 MCAPI FlockingComponent(::FlockingComponent&&);
58
59 MCAPI void calculateFlockVector(::Actor const& owner);
60
61 MCAPI bool canJoinFlock(::Actor& owner) const;
62
63 MCAPI void joinFlock(::Actor& owner);
64
65 MCAPI void manageNeighborhood(::Actor& owner);
66
67 MCAPI void mergeNeighborhoods(::Actor& owner);
68
69 MCAPI ::FlockingComponent& operator=(::FlockingComponent&&);
70
71 MCAPI void updateNeighborhoodData(::Actor const& owner);
72
73 MCAPI bool validateVariantEntityTypes(::Actor const& e0, ::Actor const& e1) const;
74 // NOLINTEND
75
76public:
77 // constructor thunks
78 // NOLINTBEGIN
79 MCAPI void* $ctor(::FlockingComponent&&);
80 // NOLINTEND
81};
Definition Actor.h:105
Definition ActorUniqueID.h:5