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"
24namespace mce {
class Mesh; }
40 ::ll::UntypedStorage<4, 12> mUnkadd485;
41 ::ll::UntypedStorage<4, 12> mUnk9c3e04;
42 ::ll::UntypedStorage<4, 12> mUnk95cfb7;
43 ::ll::UntypedStorage<4, 12> mUnkc010bc;
44 ::ll::UntypedStorage<4, 12> mUnk8a6402;
49 LeashPins& operator=(LeashPins
const&);
50 LeashPins(LeashPins
const&);
57 ::ll::TypedStorage<1, 1, bool> mRenderingInventory;
58 ::ll::TypedStorage<1, 1, bool const> mHasWaterHole;
59 ::ll::TypedStorage<8, 16, ::mce::MaterialPtr> mEntityAlphatestMaterial;
60 ::ll::TypedStorage<8, 16, ::mce::MaterialPtr> mEntityAlphatestGlintMaterial;
61 ::ll::TypedStorage<8, 32, ::mce::TexturePtr> mGlintTexture;
62 ::ll::TypedStorage<8, 32, ::mce::TexturePtr> mAtlasTexture;
63 ::ll::TypedStorage<8, 16, ::std::shared_ptr<::mce::TextureGroup>> mTextureGroup;
64 ::ll::TypedStorage<4, 24, ::AABB> mBaseRenderBounds;
65 ::ll::TypedStorage<8, 16, ::std::shared_ptr<::Model>> mModel;
75 virtual ~ActorRenderer() ;
77 virtual void render(::BaseActorRenderContext& renderContext, ::ActorRenderData& actorRenderData) = 0;
79 virtual void renderDebug(::BaseActorRenderContext& renderContext, ::ActorRenderData& entityRenderData);
81 virtual void renderEffects(::BaseActorRenderContext& renderContext, ::ActorRenderData& actorRenderData);
83 virtual void renderLeash(::BaseActorRenderContext& renderContext, ::ActorRenderData& entityRenderData);
85 virtual void renderWaterHole(::BaseActorRenderContext& renderContext, ::ActorRenderData& entityRenderData);
87 virtual void addAdditionalRenderingIfNeeded(::std::shared_ptr<::mce::TextureGroup> textureGroup);
89 virtual ::AABB getRenderBounds(::Actor
const& entity)
const;
91 virtual void getLeashOffsets(
97 ::Bedrock::small_vector_base<::Vec3>& output
100 virtual void setIsOnScreen(::Actor&,
bool,
float)
const;
102 virtual bool shouldUpdateBonesAndEffectsIfOffScreen(::RenderParams& renderParams)
const;
104 virtual bool shouldUpdateEffectsIfOffScreen(::RenderParams& renderParams)
const;
106 virtual bool shouldHideHeldItems(::RenderParams& renderParams)
const;
113 ::std::shared_ptr<::mce::TextureGroup> textureGroup,
114 ::Vec2
const& renderDim,
115 ::Vec3
const& renderDimOffset,
120 ::std::shared_ptr<::Model> model,
121 ::std::shared_ptr<::mce::TextureGroup> textureGroup,
122 ::Vec2
const& renderDim,
123 ::Vec3
const& renderDimOffset,
127 MCAPI
void renderGui(::BaseActorRenderContext& renderContext, ::ActorRenderData& actorRenderData);
133 MCAPI
static void _addLeashPinToOutput(
134 ::Vec3
const& fromLeashes,
135 ::Vec3
const& toLeashes,
136 ::Actor
const& actor,
137 ::Actor
const* roper,
138 ::ActorUniqueID
const roperID,
139 uint64
const ropeIndex,
140 float const actorFrameAlpha,
141 ::Bedrock::small_vector_base<::ActorRenderer::LeashPins>& output
144 MCAPI
static void _drawRopeRange(
145 ::BaseActorRenderContext& renderContext,
148 ::Vec3
const& basisX,
149 ::Vec3
const& basisY,
150 ::Vec3
const& deltaNorm,
151 ::RopePoints
const& nodes,
152 ::mce::TexturePtr& tex,
158 MCAPI
static void _getLeashPins(
159 float actorFrameAlpha,
160 ::BaseActorRenderContext& renderContext,
162 ::Bedrock::small_vector_base<::ActorRenderer::LeashPins>& output,
163 ::Bedrock::small_vector_base<::Vec3>& leashFromOffsets
166 MCAPI
static bool isDitheringEnabled(::BaseActorRenderContext
const& renderContext, ::Actor
const& actor);
168 MCAPI
static void renderDebugAttachPos(
int renderAttachPos, ::Actor
const& mob);
170 MCAPI
static void renderFlame(::BaseActorRenderContext& renderContext, ::ActorRenderData& entityRenderData);
172 MCAPI
static void renderLeash(
173 ::BaseActorRenderContext& renderContext,
174 ::ActorRenderData& entityRenderData,
175 ::Bedrock::small_vector_base<::ActorRenderer::LeashPins>& allLeashPins
178 MCAPI
static void resetTextures();
184 MCAPI static ::Vec2
const& DEFAULT_RENDER_BOUNDS();
186 MCAPI static ::mce::MaterialPtr& mFlameMaterial();
188 MCAPI static ::mce::Mesh& mFlameMesh();
190 MCAPI static ::ActorTextureInfo& mFlameTexture();
192 MCAPI static ::mce::MaterialPtr& mLeashMat();
194 MCAPI static ::mce::TexturePtr& mLeashTexture();
201 ::std::shared_ptr<::mce::TextureGroup> textureGroup,
202 ::Vec2
const& renderDim,
203 ::Vec3
const& renderDimOffset,
208 ::std::shared_ptr<::Model> model,
209 ::std::shared_ptr<::mce::TextureGroup> textureGroup,
210 ::Vec2
const& renderDim,
211 ::Vec3
const& renderDimOffset,
225 MCAPI
void $renderDebug(::BaseActorRenderContext& renderContext, ::ActorRenderData& entityRenderData);
227 MCFOLD
void $renderEffects(::BaseActorRenderContext& renderContext, ::ActorRenderData& actorRenderData);
229 MCAPI
void $renderLeash(::BaseActorRenderContext& renderContext, ::ActorRenderData& entityRenderData);
231 MCFOLD
void $renderWaterHole(::BaseActorRenderContext& renderContext, ::ActorRenderData& entityRenderData);
233 MCFOLD
void $addAdditionalRenderingIfNeeded(::std::shared_ptr<::mce::TextureGroup> textureGroup);
235 MCAPI ::AABB $getRenderBounds(::Actor
const& entity)
const;
237 MCAPI
void $getLeashOffsets(
243 ::Bedrock::small_vector_base<::Vec3>& output
246 MCFOLD
void $setIsOnScreen(::Actor&,
bool,
float)
const;
248 MCFOLD
bool $shouldUpdateBonesAndEffectsIfOffScreen(::RenderParams& renderParams)
const;
250 MCFOLD
bool $shouldUpdateEffectsIfOffScreen(::RenderParams& renderParams)
const;
252 MCFOLD
bool $shouldHideHeldItems(::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:29
Definition TextureGroup.h:7
Definition ActorRenderer.h:13
Definition ActorTextureInfo.h:5
Definition ActorUniqueID.h:5
Definition RopePoints.h:10