LeviLamina
Loading...
Searching...
No Matches
ActorRenderer.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4
5// auto generated inclusion list
6#include "mc/client/renderer/BaseActorRenderer.h"
7#include "mc/deps/core/container/small_vector_base.h"
8
9// auto generated forward declare list
10// clang-format off
11class AABB;
12class Actor;
14class Model;
15class RenderParams;
16class Tessellator;
17class Vec2;
18class Vec3;
19struct ActorRenderData;
20struct ActorTextureInfo;
21struct ActorUniqueID;
23struct RopePoints;
24namespace mce { class Color; }
25namespace mce { class MaterialPtr; }
26namespace mce { class Mesh; }
27namespace mce { class TextureGroup; }
28namespace mce { class TexturePtr; }
29// clang-format on
30
31class ActorRenderer : public ::BaseActorRenderer, public ::std::enable_shared_from_this<::ActorRenderer> {
32public:
33 // ActorRenderer inner types declare
34 // clang-format off
35 struct LeashPins;
36 // clang-format on
37
38 // ActorRenderer inner types define
39 struct LeashPins {
40 public:
41 // member variables
42 // NOLINTBEGIN
48 // NOLINTEND
49
50 public:
51 // prevent constructor by default
52 LeashPins& operator=(LeashPins const&);
53 LeashPins(LeashPins const&);
54 LeashPins();
55 };
56
57public:
58 // member variables
59 // NOLINTBEGIN
69 // NOLINTEND
70
71public:
72 // prevent constructor by default
73 ActorRenderer& operator=(ActorRenderer const&);
76
77public:
78 // virtual functions
79 // NOLINTBEGIN
80 // vIndex: 0
81 virtual ~ActorRenderer() /*override*/;
82
83 // vIndex: 2
84 virtual void render(::BaseActorRenderContext&, ::ActorRenderData&) = 0;
85
86 // vIndex: 3
87 virtual void renderDebug(::BaseActorRenderContext& renderContext, ::ActorRenderData& entityRenderData);
88
89 // vIndex: 4
90 virtual void renderEffects(::BaseActorRenderContext&, ::ActorRenderData&);
91
92 // vIndex: 5
93 virtual void renderLeash(::BaseActorRenderContext& renderContext, ::ActorRenderData& entityRenderData);
94
95 // vIndex: 6
96 virtual void renderWaterHole(::BaseActorRenderContext&, ::ActorRenderData&);
97
98 // vIndex: 7
99 virtual void addAdditionalRenderingIfNeeded(::std::shared_ptr<::mce::TextureGroup>);
100
101 // vIndex: 8
102 virtual ::AABB getRenderBounds(::Actor const& entity) const;
103
104 // vIndex: 9
105 virtual void getLeashOffsets(
106 ::Actor&,
107 float yRot,
108 float yRotPrev,
109 float a,
110 bool legacyOffset,
112 ) const;
113
114 // vIndex: 10
115 virtual void setIsOnScreen(::Actor&, bool const, float) const;
116
117 // vIndex: 11
118 virtual bool shouldUpdateBonesAndEffectsIfOffScreen(::RenderParams&) const;
119
120 // vIndex: 12
121 virtual bool shouldUpdateEffectsIfOffScreen(::RenderParams&) const;
122 // NOLINTEND
123
124public:
125 // member functions
126 // NOLINTBEGIN
128 ::std::shared_ptr<::mce::TextureGroup> textureGroup,
129 ::Vec2 const& renderDim,
130 ::Vec3 const& renderDimOffset,
131 bool hasWaterHole
132 );
133
135 ::std::shared_ptr<::Model> model,
136 ::std::shared_ptr<::mce::TextureGroup> textureGroup,
137 ::Vec2 const& renderDim,
138 ::Vec3 const& renderDimOffset,
139 bool hasWaterHole
140 );
141
142 MCNAPI ::std::vector<::NameTagRenderObject> extractText(
143 ::Tessellator& tessellator,
144 ::Actor const& entity,
145 ::std::string const& str,
146 ::std::vector<int> const& widths,
147 ::Vec3 camTargetPos,
148 float a,
149 ::mce::Color color
150 );
151
152 MCNAPI ::mce::TexturePtr getAtlasTexture();
153
154 MCNAPI void renderGui(::BaseActorRenderContext& renderContext, ::ActorRenderData& actorRenderData);
155
156 MCNAPI void setBaseRenderBounds(::Vec2 const& dims, ::Vec3 const& offset);
157 // NOLINTEND
158
159public:
160 // static functions
161 // NOLINTBEGIN
162 MCNAPI static void _addLeashPinToOutput(
163 ::Vec3 const& fromLeashes,
164 ::Vec3 const& toLeashes,
165 ::Actor const& actor,
166 ::Actor const* roper,
167 ::ActorUniqueID roperID,
168 uint64 ropeIndex,
169 float actorFrameAlpha,
171 );
172
173 MCNAPI static void _buildFlameMesh(::Tessellator& tessellator, ::std::shared_ptr<::mce::TextureGroup> textureGroup);
174
175 MCNAPI static void _drawClassicLeash(
176 ::BaseActorRenderContext& renderContext,
177 ::Vec3 const& ropeStart,
178 ::Vec3 const& delta,
180 );
181
182 MCNAPI static void _drawRopeRange(
183 ::BaseActorRenderContext& renderContext,
184 int begin,
185 int end,
186 ::Vec3 const& basisX,
187 ::Vec3 const& basisY,
188 ::Vec3 const& deltaNorm,
189 ::RopePoints const& nodes,
191 float a,
192 ::Vec3* startPoint,
193 ::Vec3* endPoint
194 );
195
196 MCNAPI static void _getLeashPins(
197 float actorFrameAlpha,
198 ::BaseActorRenderContext& renderContext,
199 ::Actor& actor,
202 );
203
204 MCNAPI static bool isDitheringEnabled(::BaseActorRenderContext const& renderContext, ::Actor const& actor);
205
206 MCNAPI static void renderDebugAttachPos(int renderAttachPos, ::Actor const& mob);
207
208 MCNAPI static void renderFlame(::BaseActorRenderContext& renderContext, ::ActorRenderData& entityRenderData);
209
210 MCNAPI static void renderLeash(
211 ::BaseActorRenderContext& renderContext,
212 ::ActorRenderData& entityRenderData,
214 );
215
216 MCNAPI static void resetTextures();
217 // NOLINTEND
218
219public:
220 // static variables
221 // NOLINTBEGIN
222 MCNAPI static ::Vec2 const& DEFAULT_RENDER_BOUNDS();
223
224 MCNAPI static ::mce::MaterialPtr& mFlameMaterial();
225
226 MCNAPI static ::mce::Mesh& mFlameMesh();
227
228 MCNAPI static ::ActorTextureInfo& mFlameTexture();
229
230 MCNAPI static ::mce::MaterialPtr& mLeashMat();
231
232 MCNAPI static ::mce::TexturePtr& mLeashTexture();
233 // NOLINTEND
234
235public:
236 // constructor thunks
237 // NOLINTBEGIN
238 MCNAPI void* $ctor(
239 ::std::shared_ptr<::mce::TextureGroup> textureGroup,
240 ::Vec2 const& renderDim,
241 ::Vec3 const& renderDimOffset,
242 bool hasWaterHole
243 );
244
245 MCNAPI void* $ctor(
246 ::std::shared_ptr<::Model> model,
247 ::std::shared_ptr<::mce::TextureGroup> textureGroup,
248 ::Vec2 const& renderDim,
249 ::Vec3 const& renderDimOffset,
250 bool hasWaterHole
251 );
252 // NOLINTEND
253
254public:
255 // destructor thunk
256 // NOLINTBEGIN
257 MCNAPI void $dtor();
258 // NOLINTEND
259
260public:
261 // virtual function thunks
262 // NOLINTBEGIN
263 MCNAPI void $renderDebug(::BaseActorRenderContext& renderContext, ::ActorRenderData& entityRenderData);
264
266
267 MCNAPI void $renderLeash(::BaseActorRenderContext& renderContext, ::ActorRenderData& entityRenderData);
268
270
271 MCNAPI void $addAdditionalRenderingIfNeeded(::std::shared_ptr<::mce::TextureGroup>);
272
273 MCNAPI ::AABB $getRenderBounds(::Actor const& entity) const;
274
275 MCNAPI void $getLeashOffsets(
276 ::Actor&,
277 float yRot,
278 float yRotPrev,
279 float a,
280 bool legacyOffset,
282 ) const;
283
284 MCNAPI void $setIsOnScreen(::Actor&, bool const, float) const;
285
287
289 // NOLINTEND
290
291public:
292 // vftables
293 // NOLINTBEGIN
294 MCNAPI static void** $vftable();
295 // NOLINTEND
296};
Definition AABB.h:15
Definition ActorRenderer.h:31
MCAPI void $addAdditionalRenderingIfNeeded(::std::shared_ptr<::mce::TextureGroup >)
static MCAPI void _addLeashPinToOutput(::Vec3 const &fromLeashes, ::Vec3 const &toLeashes, ::Actor const &actor, ::Actor const *roper, ::ActorUniqueID roperID, uint64 ropeIndex, float actorFrameAlpha, ::Bedrock::small_vector_base<::ActorRenderer::LeashPins > &output)
MCAPI ActorRenderer(::std::shared_ptr<::mce::TextureGroup > textureGroup, ::Vec2 const &renderDim, ::Vec3 const &renderDimOffset, bool hasWaterHole)
MCAPI ActorRenderer(::std::shared_ptr<::Model > model, ::std::shared_ptr<::mce::TextureGroup > textureGroup, ::Vec2 const &renderDim, ::Vec3 const &renderDimOffset, bool hasWaterHole)
static MCAPI void renderFlame(::BaseActorRenderContext &renderContext, ::ActorRenderData &entityRenderData)
static MCAPI void _getLeashPins(float actorFrameAlpha, ::BaseActorRenderContext &renderContext, ::Actor &actor, ::Bedrock::small_vector_base<::ActorRenderer::LeashPins > &output, ::Bedrock::small_vector_base<::Vec3 > &leashFromOffsets)
MCAPI::AABB $getRenderBounds(::Actor const &entity) const
MCAPI void $renderDebug(::BaseActorRenderContext &renderContext, ::ActorRenderData &entityRenderData)
MCAPI bool $shouldUpdateBonesAndEffectsIfOffScreen(::RenderParams &) const
static MCAPI void _drawRopeRange(::BaseActorRenderContext &renderContext, int begin, int end, ::Vec3 const &basisX, ::Vec3 const &basisY, ::Vec3 const &deltaNorm, ::RopePoints const &nodes, ::mce::TexturePtr &tex, float a, ::Vec3 *startPoint, ::Vec3 *endPoint)
static MCAPI ::ActorTextureInfo & mFlameTexture()
MCAPI void renderGui(::BaseActorRenderContext &renderContext, ::ActorRenderData &actorRenderData)
static MCAPI ::mce::Mesh & mFlameMesh()
MCAPI void $setIsOnScreen(::Actor &, bool const, float) const
MCAPI ::std::vector<::NameTagRenderObject > extractText(::Tessellator &tessellator, ::Actor const &entity, ::std::string const &str, ::std::vector< int > const &widths, ::Vec3 camTargetPos, float a, ::mce::Color color)
MCAPI void $renderWaterHole(::BaseActorRenderContext &, ::ActorRenderData &)
static MCAPI void resetTextures()
MCAPI void $dtor()
MCAPI void * $ctor(::std::shared_ptr<::mce::TextureGroup > textureGroup, ::Vec2 const &renderDim, ::Vec3 const &renderDimOffset, bool hasWaterHole)
static MCAPI void renderDebugAttachPos(int renderAttachPos, ::Actor const &mob)
static MCAPI void renderLeash(::BaseActorRenderContext &renderContext, ::ActorRenderData &entityRenderData, ::Bedrock::small_vector_base<::ActorRenderer::LeashPins > &allLeashPins)
static MCAPI void _drawClassicLeash(::BaseActorRenderContext &renderContext, ::Vec3 const &ropeStart, ::Vec3 const &delta, ::mce::TexturePtr &tex)
static MCAPI ::Vec2 const & DEFAULT_RENDER_BOUNDS()
static MCAPI bool isDitheringEnabled(::BaseActorRenderContext const &renderContext, ::Actor const &actor)
MCAPI void $getLeashOffsets(::Actor &, float yRot, float yRotPrev, float a, bool legacyOffset, ::Bedrock::small_vector_base<::Vec3 > &output) const
MCAPI void * $ctor(::std::shared_ptr<::Model > model, ::std::shared_ptr<::mce::TextureGroup > textureGroup, ::Vec2 const &renderDim, ::Vec3 const &renderDimOffset, bool hasWaterHole)
MCAPI::mce::TexturePtr getAtlasTexture()
static MCAPI ::mce::MaterialPtr & mFlameMaterial()
MCAPI bool $shouldUpdateEffectsIfOffScreen(::RenderParams &) const
MCAPI void setBaseRenderBounds(::Vec2 const &dims, ::Vec3 const &offset)
static MCAPI void ** $vftable()
MCAPI void $renderEffects(::BaseActorRenderContext &, ::ActorRenderData &)
MCAPI void $renderLeash(::BaseActorRenderContext &renderContext, ::ActorRenderData &entityRenderData)
static MCAPI ::mce::MaterialPtr & mLeashMat()
static MCAPI ::mce::TexturePtr & mLeashTexture()
static MCAPI void _buildFlameMesh(::Tessellator &tessellator, ::std::shared_ptr<::mce::TextureGroup > textureGroup)
Definition Actor.h:102
Definition BaseActorRenderContext.h:16
Definition small_vector_base.h:8
Definition Model.h:26
Definition RenderParams.h:30
Definition Tessellator.h:19
Definition Vec2.h:5
Definition Vec3.h:10
Definition Color.h:7
Definition TexturePtr.h:19
Definition ActorRenderData.h:5
Definition ActorRenderer.h:39
Definition ActorTextureInfo.h:5
Definition ActorUniqueID.h:5
Definition BaseActorRenderer.h:5
Definition NameTagRenderObject.h:5
Definition RopePoints.h:10
Definition _HeaderOutputPredefine.h:273