3#include "mc/_HeaderOutputPredefine.h"
6#include "mc/client/renderer/BaseActorRenderer.h"
7#include "mc/deps/core/container/small_vector_base.h"
8#include "mc/deps/minecraft_renderer/renderer/MaterialPtr.h"
9#include "mc/deps/minecraft_renderer/renderer/TexturePtr.h"
10#include "mc/world/phys/AABB.h"
26namespace mce {
class Color; }
27namespace mce {
class Mesh; }
43 ::ll::UntypedStorage<4, 12> mUnkadd485;
44 ::ll::UntypedStorage<4, 12> mUnk9c3e04;
45 ::ll::UntypedStorage<4, 12> mUnk95cfb7;
46 ::ll::UntypedStorage<4, 12> mUnkc010bc;
47 ::ll::UntypedStorage<4, 12> mUnk8a6402;
52 LeashPins& operator=(LeashPins
const&);
53 LeashPins(LeashPins
const&);
60 ::ll::TypedStorage<1, 1, bool> mRenderingInventory;
61 ::ll::TypedStorage<1, 1, bool const> mHasWaterHole;
62 ::ll::TypedStorage<8, 16, ::mce::MaterialPtr> mEntityAlphatestMaterial;
63 ::ll::TypedStorage<8, 16, ::mce::MaterialPtr> mEntityAlphatestGlintMaterial;
64 ::ll::TypedStorage<8, 32, ::mce::TexturePtr> mGlintTexture;
65 ::ll::TypedStorage<8, 32, ::mce::TexturePtr> mAtlasTexture;
66 ::ll::TypedStorage<8, 16, ::std::shared_ptr<::mce::TextureGroup>> mTextureGroup;
67 ::ll::TypedStorage<4, 24, ::AABB> mBaseRenderBounds;
68 ::ll::TypedStorage<8, 16, ::std::shared_ptr<::Model>> mModel;
78 virtual ~ActorRenderer() ;
80 virtual void render(::BaseActorRenderContext& renderContext, ::ActorRenderData& entityRenderData) = 0;
82 virtual void renderDebug(::BaseActorRenderContext& renderContext, ::ActorRenderData& entityRenderData);
84 virtual void renderEffects(::BaseActorRenderContext& renderContext, ::ActorRenderData& actorRenderData);
86 virtual void renderLeash(::BaseActorRenderContext& renderContext, ::ActorRenderData& entityRenderData);
88 virtual void renderWaterHole(::BaseActorRenderContext& renderContext, ::ActorRenderData& entityRenderData);
90 virtual void addAdditionalRenderingIfNeeded(::std::shared_ptr<::mce::TextureGroup> textureGroup);
92 virtual ::AABB getRenderBounds(::Actor
const& entity)
const;
94 virtual void getLeashOffsets(
100 ::Bedrock::small_vector_base<::Vec3>&
103 virtual void setIsOnScreen(::Actor& actor,
bool const isOnScreen,
float distance)
const;
105 virtual bool shouldUpdateBonesAndEffectsIfOffScreen(::RenderParams& renderParams)
const;
107 virtual bool shouldUpdateEffectsIfOffScreen(::RenderParams& renderParams)
const;
114 ::std::shared_ptr<::mce::TextureGroup> textureGroup,
115 ::Vec2
const& renderDim,
116 ::Vec3
const& renderDimOffset,
121 ::std::shared_ptr<::Model> model,
122 ::std::shared_ptr<::mce::TextureGroup> textureGroup,
123 ::Vec2
const& renderDim,
124 ::Vec3
const& renderDimOffset,
128 MCAPI
void _getLeashPins(
129 float actorFrameAlpha,
130 ::BaseActorRenderContext& renderContext,
132 ::Bedrock::small_vector_base<::ActorRenderer::LeashPins>& output
135 MCAPI ::std::vector<::NameTagRenderObject> extractText(
136 ::Tessellator& tessellator,
137 ::Actor
const& entity,
138 ::std::string
const& str,
139 ::std::vector<int>
const& widths,
145 MCAPI ::mce::TexturePtr getAtlasTexture();
147 MCFOLD ::Model
const* getModel()
const;
149 MCFOLD ::Model* getModel();
151 MCAPI
void renderGui(::BaseActorRenderContext& renderContext, ::ActorRenderData& actorRenderData);
157 MCAPI
static void _addLeashPinToOutput(
158 ::Vec3
const& fromLeashes,
159 ::Vec3
const& toLeashes,
160 ::Actor
const& actor,
161 ::Actor
const* roper,
162 ::ActorUniqueID roperID,
164 float actorFrameAlpha,
165 ::Bedrock::small_vector_base<::ActorRenderer::LeashPins>& output
168 MCAPI
static void _buildFlameMesh(::Tessellator& tessellator, ::std::shared_ptr<::mce::TextureGroup> textureGroup);
170 MCAPI
static void _drawClassicLeash(
171 ::BaseActorRenderContext& renderContext,
172 ::Vec3
const& ropeStart,
174 ::mce::TexturePtr& tex
177 MCAPI
static void _drawRopeRange(
178 ::BaseActorRenderContext& renderContext,
181 ::Vec3
const& basisX,
182 ::Vec3
const& basisY,
183 ::Vec3
const& deltaNorm,
184 ::RopePoints
const& nodes,
185 ::mce::TexturePtr& tex,
191 MCAPI
static void _getLeashPins(
192 float actorFrameAlpha,
193 ::BaseActorRenderContext& renderContext,
195 ::Bedrock::small_vector_base<::ActorRenderer::LeashPins>& output,
196 ::Bedrock::small_vector_base<::Vec3>& leashFromOffsets
199 MCAPI
static bool isDitheringEnabled(::BaseActorRenderContext
const& renderContext, ::Actor
const& actor);
201 MCAPI
static void renderDebugAttachPos(
int renderAttachPos, ::Actor
const& mob);
203 MCAPI
static void renderFlame(::BaseActorRenderContext& renderContext, ::ActorRenderData& entityRenderData);
205 MCAPI
static void renderLeash(
206 ::BaseActorRenderContext& renderContext,
207 ::ActorRenderData& entityRenderData,
208 ::Bedrock::small_vector_base<::ActorRenderer::LeashPins>& allLeashPins
211 MCAPI
static void resetTextures();
213 MCAPI
static bool shouldRenderLeash(::Actor& entity,
bool ignoreLighting);
219 MCAPI static ::Vec2
const& DEFAULT_RENDER_BOUNDS();
221 MCAPI static ::mce::MaterialPtr& mFlameMaterial();
223 MCAPI static ::mce::Mesh& mFlameMesh();
225 MCAPI static ::ActorTextureInfo& mFlameTexture();
227 MCAPI static ::mce::MaterialPtr& mLeashMat();
229 MCAPI static ::mce::TexturePtr& mLeashTexture();
236 ::std::shared_ptr<::mce::TextureGroup> textureGroup,
237 ::Vec2
const& renderDim,
238 ::Vec3
const& renderDimOffset,
243 ::std::shared_ptr<::Model> model,
244 ::std::shared_ptr<::mce::TextureGroup> textureGroup,
245 ::Vec2
const& renderDim,
246 ::Vec3
const& renderDimOffset,
260 MCAPI
void $renderDebug(::BaseActorRenderContext& renderContext, ::ActorRenderData& entityRenderData);
262 MCFOLD
void $renderEffects(::BaseActorRenderContext& renderContext, ::ActorRenderData& actorRenderData);
264 MCAPI
void $renderLeash(::BaseActorRenderContext& renderContext, ::ActorRenderData& entityRenderData);
266 MCFOLD
void $renderWaterHole(::BaseActorRenderContext& renderContext, ::ActorRenderData& entityRenderData);
268 MCFOLD
void $addAdditionalRenderingIfNeeded(::std::shared_ptr<::mce::TextureGroup> textureGroup);
270 MCAPI ::AABB $getRenderBounds(::Actor
const& entity)
const;
272 MCAPI
void $getLeashOffsets(
278 ::Bedrock::small_vector_base<::Vec3>&
281 MCFOLD
void $setIsOnScreen(::Actor& actor,
bool const isOnScreen,
float distance)
const;
283 MCFOLD
bool $shouldUpdateBonesAndEffectsIfOffScreen(::RenderParams& renderParams)
const;
285 MCFOLD
bool $shouldUpdateEffectsIfOffScreen(::RenderParams& renderParams)
const;
Definition ActorRenderData.h:5
Definition ActorRenderer.h:5
static MCAPI void ** $vftable()
Definition BaseActorRenderContext.h:5
Definition BaseActorRenderer.h:5
Definition RenderParams.h:30
Definition Tessellator.h:5
Definition TextureGroup.h:7
Definition ActorRenderer.h:13
Definition ActorTextureInfo.h:5
Definition ActorUniqueID.h:10
Definition RopePoints.h:11