LeviLamina
Loading...
Searching...
No Matches
FireAtTargetGoal.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#include "mc/util/FloatRange.h"
8#include "mc/util/json_util/JsonSchemaObjectNode.h"
9#include "mc/world/actor/ActorDefinitionIdentifier.h"
10#include "mc/world/actor/ActorFilterGroup.h"
11#include "mc/world/actor/ai/goal/BaseGoal.h"
12#include "mc/world/actor/ai/goal/BaseGoalDefinition.h"
13#include "mc/world/actor/projectile/ProjectileAnchor.h"
14
15// auto generated forward declare list
16// clang-format off
17class Actor;
18class EntityContext;
19class Mob;
20namespace JsonUtil { class EmptyClass; }
21// clang-format on
22
23class FireAtTargetGoal : public ::BaseGoal {
24public:
25 // FireAtTargetGoal inner types declare
26 // clang-format off
27 class Definition;
28 // clang-format on
29
30 // FireAtTargetGoal inner types define
32 public:
33 // member variables
34 // NOLINTBEGIN
35 ::ll::TypedStorage<8, 64, ::ActorFilterGroup> mFilters;
36 ::ll::TypedStorage<4, 8, ::FloatRange> mAttackRange;
37 ::ll::TypedStorage<4, 4, float> mAttackCooldownInSeconds;
38 ::ll::TypedStorage<4, 4, float> mPreShootDelayInSeconds;
39 ::ll::TypedStorage<4, 4, float> mPostShootDelayInSeconds;
40 ::ll::TypedStorage<4, 4, float> mMaxHeadRotationX;
41 ::ll::TypedStorage<4, 4, float> mMaxHeadRotationY;
42 ::ll::TypedStorage<4, 4, float> mRangedFOV;
43 ::ll::TypedStorage<8, 176, ::ActorDefinitionIdentifier> mProjectileDefinition;
44 ::ll::TypedStorage<4, 4, ::ProjectileAnchor> mOwnerAnchor;
45 ::ll::TypedStorage<4, 12, ::Vec3> mOwnerOffset;
46 ::ll::TypedStorage<4, 4, ::ProjectileAnchor> mTargetAnchor;
47 ::ll::TypedStorage<4, 12, ::Vec3> mTargetOffset;
48 // NOLINTEND
49
50 public:
51 // member functions
52 // NOLINTBEGIN
53 MCAPI void initialize(::EntityContext& entity, ::FireAtTargetGoal& goal) const;
54
55 MCAPI void setOwnerAnchor(int const& value);
56
57 MCAPI void setProjectileDefinitionByName(::std::string const& name);
58
59 MCAPI void setTargetAnchor(int const& value);
60 // NOLINTEND
61
62 public:
63 // static functions
64 // NOLINTBEGIN
65 MCAPI static void buildSchema(
66 ::std::string const& name,
68 root
69 );
70 // NOLINTEND
71
72 public:
73 // vftables
74 // NOLINTBEGIN
75 MCNAPI static void** $vftable();
76 // NOLINTEND
77 };
78
79public:
80 // member variables
81 // NOLINTBEGIN
82 ::ll::TypedStorage<8, 8, ::Mob&> mMob;
83 ::ll::TypedStorage<8, 64, ::ActorFilterGroup> mFilters;
84 ::ll::TypedStorage<4, 8, ::FloatRange> mAttackRangeSquared;
85 ::ll::TypedStorage<4, 4, uint> mAttackCooldownTicks;
86 ::ll::TypedStorage<4, 4, uint> mPreShootDelayTicks;
87 ::ll::TypedStorage<8, 8, uint64> mDurationTicks;
88 ::ll::TypedStorage<4, 4, float> mMaxHeadRotationX;
89 ::ll::TypedStorage<4, 4, float> mMaxHeadRotationY;
90 ::ll::TypedStorage<4, 4, float> mRangedFOV;
91 ::ll::TypedStorage<1, 1, bool> mTriedToShoot;
92 ::ll::TypedStorage<8, 8, uint64> mAttackCooldownTimeStamp;
93 ::ll::TypedStorage<8, 8, uint64> mPreShootDelayTimeStamp;
94 ::ll::TypedStorage<8, 8, uint64> mEndTimeStamp;
95 ::ll::TypedStorage<8, 176, ::ActorDefinitionIdentifier> mProjectileDefinition;
96 ::ll::TypedStorage<4, 4, ::ProjectileAnchor> mOwnerAnchor;
97 ::ll::TypedStorage<4, 12, ::Vec3> mOwnerOffset;
98 ::ll::TypedStorage<4, 4, ::ProjectileAnchor> mTargetAnchor;
99 ::ll::TypedStorage<4, 12, ::Vec3> mTargetOffset;
100 // NOLINTEND
101
102public:
103 // prevent constructor by default
104 FireAtTargetGoal& operator=(FireAtTargetGoal const&);
105 FireAtTargetGoal(FireAtTargetGoal const&);
106 FireAtTargetGoal();
107
108public:
109 // virtual functions
110 // NOLINTBEGIN
111 virtual bool canUse() /*override*/;
112
113 virtual bool canContinueToUse() /*override*/;
114
115 virtual void start() /*override*/;
116
117 virtual void stop() /*override*/;
118
119 virtual void tick() /*override*/;
120
121 virtual void appendDebugInfo(::std::string& str) const /*override*/;
122 // NOLINTEND
123
124public:
125 // member functions
126 // NOLINTBEGIN
127 MCAPI explicit FireAtTargetGoal(::Mob& mob);
128
129 MCAPI bool _isTargetWithinRange(::Vec3 const& targetPosition) const;
130 // NOLINTEND
131
132public:
133 // static functions
134 // NOLINTBEGIN
135 MCAPI static ::Vec3 getAnchorAndOffsetPosition(
136 ::Actor const& actor,
137 ::ProjectileAnchor anchor,
138 ::Vec3 const& offset,
139 bool applyRotation
140 );
141 // NOLINTEND
142
143public:
144 // constructor thunks
145 // NOLINTBEGIN
146 MCAPI void* $ctor(::Mob& mob);
147 // NOLINTEND
148
149public:
150 // virtual function thunks
151 // NOLINTBEGIN
152 MCAPI bool $canUse();
153
154 MCAPI bool $canContinueToUse();
155
156 MCAPI void $start();
157
158 MCAPI void $stop();
159
160 MCAPI void $tick();
161
162 MCAPI void $appendDebugInfo(::std::string& str) const;
163
164
165 // NOLINTEND
166
167public:
168 // vftables
169 // NOLINTBEGIN
170 MCNAPI static void** $vftable();
171 // NOLINTEND
172};
Definition Actor.h:125
Definition BaseGoalDefinition.h:12
Definition EntityContext.h:17
Definition FireAtTargetGoal.h:31
static MCAPI void ** $vftable()
static MCAPI void ** $vftable()
Definition EmptyClass.h:7
Definition JsonSchemaObjectNode.h:8
Definition Mob.h:57
Definition Vec3.h:10