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&, ::ActorRenderData&) = 0;
82 virtual void renderDebug(::BaseActorRenderContext& renderContext, ::ActorRenderData& entityRenderData);
84 virtual void renderEffects(::BaseActorRenderContext&, ::ActorRenderData&);
86 virtual void renderLeash(::BaseActorRenderContext& renderContext, ::ActorRenderData& entityRenderData);
88 virtual void renderWaterHole(::BaseActorRenderContext&, ::ActorRenderData&);
90 virtual void addAdditionalRenderingIfNeeded(::std::shared_ptr<::mce::TextureGroup>);
92 virtual ::AABB getRenderBounds(::Actor
const& entity)
const;
94 virtual void getLeashOffsets(
100 ::Bedrock::small_vector_base<::Vec3>& output
103 virtual void setIsOnScreen(::Actor&,
bool const,
float)
const;
105 virtual bool shouldUpdateBonesAndEffectsIfOffScreen(::RenderParams&)
const;
107 virtual bool shouldUpdateEffectsIfOffScreen(::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 ::std::vector<::NameTagRenderObject> extractText(
129 ::Tessellator& tessellator,
130 ::Actor
const& entity,
131 ::std::string
const& str,
132 ::std::vector<int>
const& widths,
138 MCAPI ::mce::TexturePtr getAtlasTexture();
140 MCAPI
void renderGui(::BaseActorRenderContext& renderContext, ::ActorRenderData& actorRenderData);
142 MCAPI
void setBaseRenderBounds(::Vec2
const& dims, ::Vec3
const& offset);
148 MCAPI
static void _addLeashPinToOutput(
149 ::Vec3
const& fromLeashes,
150 ::Vec3
const& toLeashes,
151 ::Actor
const& actor,
152 ::Actor
const* roper,
153 ::ActorUniqueID roperID,
155 float actorFrameAlpha,
156 ::Bedrock::small_vector_base<::ActorRenderer::LeashPins>& output
159 MCAPI
static void _buildFlameMesh(::Tessellator& tessellator, ::std::shared_ptr<::mce::TextureGroup> textureGroup);
161 MCAPI
static void _drawClassicLeash(
162 ::BaseActorRenderContext& renderContext,
163 ::Vec3
const& ropeStart,
165 ::mce::TexturePtr& tex
168 MCAPI
static void _drawRopeRange(
169 ::BaseActorRenderContext& renderContext,
172 ::Vec3
const& basisX,
173 ::Vec3
const& basisY,
174 ::Vec3
const& deltaNorm,
175 ::RopePoints
const& nodes,
176 ::mce::TexturePtr& tex,
182 MCAPI
static void _getLeashPins(
183 float actorFrameAlpha,
184 ::BaseActorRenderContext& renderContext,
186 ::Bedrock::small_vector_base<::ActorRenderer::LeashPins>& output,
187 ::Bedrock::small_vector_base<::Vec3>& leashFromOffsets
190 MCAPI
static bool isDitheringEnabled(::BaseActorRenderContext
const& renderContext, ::Actor
const& actor);
192 MCAPI
static void renderDebugAttachPos(
int renderAttachPos, ::Actor
const& mob);
194 MCAPI
static void renderFlame(::BaseActorRenderContext& renderContext, ::ActorRenderData& entityRenderData);
196 MCAPI
static void renderLeash(
197 ::BaseActorRenderContext& renderContext,
198 ::ActorRenderData& entityRenderData,
199 ::Bedrock::small_vector_base<::ActorRenderer::LeashPins>& allLeashPins
202 MCAPI
static void resetTextures();
208 MCAPI static ::Vec2
const& DEFAULT_RENDER_BOUNDS();
210 MCAPI static ::mce::MaterialPtr& mFlameMaterial();
212 MCAPI static ::mce::Mesh& mFlameMesh();
214 MCAPI static ::ActorTextureInfo& mFlameTexture();
216 MCAPI static ::mce::MaterialPtr& mLeashMat();
218 MCAPI static ::mce::TexturePtr& mLeashTexture();
225 ::std::shared_ptr<::mce::TextureGroup> textureGroup,
226 ::Vec2
const& renderDim,
227 ::Vec3
const& renderDimOffset,
232 ::std::shared_ptr<::Model> model,
233 ::std::shared_ptr<::mce::TextureGroup> textureGroup,
234 ::Vec2
const& renderDim,
235 ::Vec3
const& renderDimOffset,
249 MCAPI
void $renderDebug(::BaseActorRenderContext& renderContext, ::ActorRenderData& entityRenderData);
251 MCFOLD
void $renderEffects(::BaseActorRenderContext&, ::ActorRenderData&);
253 MCAPI
void $renderLeash(::BaseActorRenderContext& renderContext, ::ActorRenderData& entityRenderData);
255 MCFOLD
void $renderWaterHole(::BaseActorRenderContext&, ::ActorRenderData&);
257 MCFOLD
void $addAdditionalRenderingIfNeeded(::std::shared_ptr<::mce::TextureGroup>);
259 MCAPI ::AABB $getRenderBounds(::Actor
const& entity)
const;
261 MCAPI
void $getLeashOffsets(
267 ::Bedrock::small_vector_base<::Vec3>& output
270 MCFOLD
void $setIsOnScreen(::Actor&,
bool const,
float)
const;
272 MCFOLD
bool $shouldUpdateBonesAndEffectsIfOffScreen(::RenderParams&)
const;
274 MCFOLD
bool $shouldUpdateEffectsIfOffScreen(::RenderParams&)
const;
Definition ActorRenderData.h:5
Definition ActorRenderer.h:5
static MCAPI void ** $vftable()
Definition BaseActorRenderContext.h:34
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:5
Definition RopePoints.h:10