3#include "mc/_HeaderOutputPredefine.h"
6#include "mc/deps/core/container/DenseEnumMap.h"
7#include "mc/deps/core/utility/NonOwnerPointer.h"
8#include "mc/world/level/block/actor/BlockActorRendererId.h"
40 using RendererMap = ::Bedrock::DenseEnumMap<::BlockActorRendererId, ::std::unique_ptr<::BlockActorRenderer>, 28>;
48 ::Bedrock::DenseEnumMap<::BlockActorRendererId, ::std::unique_ptr<::BlockActorRenderer>, 28>>
53 ::std::vector<::std::function<void(
54 ::Bedrock::NotNullNonOwnerPtr<::ActorResourceDefinitionGroup const>
const&,
55 ::std::shared_ptr<::mce::TextureGroup>
57 mGameSpecificRegistrationCallbacks;
63 MCAPI BlockActorRenderDispatcher();
65 MCAPI
void clearEntityRenderers();
67 MCAPI ::std::vector<::NameTagRenderObject> extractRenderTextObjects(
69 ::Tessellator& tessellator,
71 ::std::string
const& str,
75 MCAPI ::BlockActorRenderer* getRenderer(::BlockActor& entity);
77 MCAPI ::BlockActorRenderer* getRenderer(::BlockActorRendererId rendererId);
79 MCAPI
void initializeBlockEntityRenderers(
80 ::Bedrock::NotNullNonOwnerPtr<::GeometryGroup>
const& geometryGroup,
81 ::std::shared_ptr<::mce::TextureGroup> textureGroup,
82 ::BlockTessellator& blockTessellator,
83 ::Bedrock::NotNullNonOwnerPtr<::ActorResourceDefinitionGroup const>
const& actorResourceDefinitionGroup,
84 ::ResourcePackManager& resourcePackManager,
85 ::Bedrock::NotNullNonOwnerPtr<::ResourceLoadManager> resourceLoadManager,
86 ::BaseGameVersion
const& baseGameVersion,
87 ::Experiments
const& experiments
90 MCAPI
void registerAdditionalBlockActorRenderers(
91 ::BlockActorRendererId
const&
id,
92 ::std::unique_ptr<::BlockActorRenderer> blockActorRenderer
95 MCAPI
void registerGameSpecificBlockActorRendererCallback(
97 ::Bedrock::NotNullNonOwnerPtr<::ActorResourceDefinitionGroup const>
const&,
98 ::std::shared_ptr<::mce::TextureGroup>
103 ::BaseActorRenderContext& entityRenderContext,
104 ::BlockSource& renderSource,
106 ::Block
const& block,
107 bool renderAlphaLayer,
108 ::mce::MaterialPtr
const& forcedMat,
109 ::mce::ClientTexture
const* forceTex,
111 ::std::optional<::dragon::RenderMetadata> renderMetadata
115 ::BaseActorRenderContext& entityRenderContext,
116 ::BlockSource& renderSource,
118 ::Block
const& block,
119 ::Vec3
const& renderPos,
120 ::BlockPos
const& worldPos,
121 bool renderAlphaLayer,
122 ::mce::MaterialPtr
const& forcedMat,
123 ::mce::ClientTexture
const* forceTex,
125 ::std::optional<::dragon::RenderMetadata> renderMetadata
128 MCAPI
void renderBanner(
129 ::BaseActorRenderContext& entityRenderContext,
130 ::dragon::RenderMetadata
const& renderMetadata,
131 ::ItemStack
const& instance,
135 MCAPI
void renderShulkerBox(
136 ::BaseActorRenderContext& entityRenderContext,
137 ::dragon::RenderMetadata
const& renderMetadata,
138 ::ItemStack
const& instance
141 MCAPI
void renderSkull(
142 ::BaseActorRenderContext& entityRenderContext,
143 ::dragon::RenderMetadata
const& renderMetadata,
147 ::HashedString
const& hashedString,
148 ::mce::MaterialPtr
const* forcedMat,
149 ::mce::ClientTexture
const* forceTex,
151 float animationValue,
Definition ActorResourceDefinitionGroup.h:5
Definition BaseActorRenderContext.h:5
Definition BaseGameVersion.h:13
Definition BlockActorRenderDispatcher.h:5
Definition BlockActorRenderer.h:5
Definition BlockActor.h:30
Definition BlockSource.h:72
Definition BlockTessellator.h:5
Definition Experiments.h:14
Definition GeometryGroup.h:5
Definition HashedString.h:5
Definition ItemStack.h:35
Definition ResourceLoadManager.h:19
Definition ResourcePackManager.h:35
Definition Tessellator.h:5
Definition MaterialPtr.h:15
Definition TextureGroup.h:7
Definition ClientTexture.h:7