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