LeviLamina
Loading...
Searching...
No Matches
BlockActorRenderDispatcher.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4
5// auto generated inclusion list
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"
9
10// auto generated forward declare list
11// clang-format off
14class BaseGameVersion;
15class Block;
16class BlockActor;
18class BlockPos;
19class BlockSource;
21class Experiments;
22class Font;
23class GeometryGroup;
24class HashedString;
25class ItemStack;
28class Tessellator;
29class Vec3;
31namespace dragon { struct RenderMetadata; }
32namespace mce { class MaterialPtr; }
33namespace mce { class TextureGroup; }
34namespace mce { struct ClientTexture; }
35// clang-format on
36
38public:
39 // BlockActorRenderDispatcher inner types define
40 using RendererMap = ::Bedrock::DenseEnumMap<::BlockActorRendererId, ::std::unique_ptr<::BlockActorRenderer>, 28>;
41
42public:
43 // member variables
44 // NOLINTBEGIN
45 ::ll::TypedStorage<
46 8,
47 224,
48 ::Bedrock::DenseEnumMap<::BlockActorRendererId, ::std::unique_ptr<::BlockActorRenderer>, 28>>
49 mRenderers;
50 ::ll::TypedStorage<
51 8,
52 24,
53 ::std::vector<::std::function<void(
54 ::Bedrock::NotNullNonOwnerPtr<::ActorResourceDefinitionGroup const> const&,
55 ::std::shared_ptr<::mce::TextureGroup>
56 )>>>
57 mGameSpecificRegistrationCallbacks;
58 // NOLINTEND
59
60public:
61 // member functions
62 // NOLINTBEGIN
63 MCAPI BlockActorRenderDispatcher();
64
65 MCAPI void clearEntityRenderers();
66
67 MCAPI ::std::vector<::NameTagRenderObject> extractRenderTextObjects(
68 ::Font& font,
69 ::Tessellator& tessellator,
70 ::BlockActor& entity,
71 ::std::string const& str,
72 ::Vec3 camTargetPos
73 );
74
75 MCAPI ::BlockActorRenderer* getRenderer(::BlockActor& entity);
76
77 MCAPI ::BlockActorRenderer* getRenderer(::BlockActorRendererId rendererId);
78
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
88 );
89
90 MCAPI void registerAdditionalBlockActorRenderers(
91 ::BlockActorRendererId const& id,
92 ::std::unique_ptr<::BlockActorRenderer> blockActorRenderer
93 );
94
95 MCAPI void registerGameSpecificBlockActorRendererCallback(
96 ::std::function<void(
97 ::Bedrock::NotNullNonOwnerPtr<::ActorResourceDefinitionGroup const> const&,
98 ::std::shared_ptr<::mce::TextureGroup>
99 )> callback
100 );
101
102 MCAPI void render(
103 ::BaseActorRenderContext& entityRenderContext,
104 ::BlockSource& renderSource,
105 ::BlockActor& e,
106 ::Block const& block,
107 bool renderAlphaLayer,
108 ::mce::MaterialPtr const& forcedMat,
109 ::mce::ClientTexture const* forceTex,
110 int breakingAmount,
111 ::std::optional<::dragon::RenderMetadata> renderMetadata
112 );
113
114 MCAPI void render(
115 ::BaseActorRenderContext& entityRenderContext,
116 ::BlockSource& renderSource,
117 ::BlockActor& e,
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,
124 int breakingAmount,
125 ::std::optional<::dragon::RenderMetadata> renderMetadata
126 );
127
128 MCAPI void renderBanner(
129 ::BaseActorRenderContext& entityRenderContext,
130 ::dragon::RenderMetadata const& renderMetadata,
131 ::ItemStack const& instance,
132 bool longPole
133 );
134
135 MCAPI void renderShulkerBox(
136 ::BaseActorRenderContext& entityRenderContext,
137 ::dragon::RenderMetadata const& renderMetadata,
138 ::ItemStack const& instance
139 );
140
141 MCAPI void renderSkull(
142 ::BaseActorRenderContext& entityRenderContext,
143 ::dragon::RenderMetadata const& renderMetadata,
144 ::Vec3 const& pos,
145 int face,
146 float rot,
147 ::HashedString const& hashedString,
148 ::mce::MaterialPtr const* forcedMat,
149 ::mce::ClientTexture const* forceTex,
150 int breakingAmount,
151 float animationValue,
152 bool isGlint
153 );
154 // NOLINTEND
155
156public:
157 // constructor thunks
158 // NOLINTBEGIN
159 MCAPI void* $ctor();
160 // NOLINTEND
161};
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 BlockPos.h:21
Definition BlockSource.h:72
Definition BlockTessellator.h:5
Definition Block.h:69
Definition Experiments.h:14
Definition Font.h:5
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 Vec3.h:10
Definition MaterialPtr.h:15
Definition TextureGroup.h:7
Definition NameTagRenderObject.h:5
Definition RenderMetadata.h:7
Definition ClientTexture.h:7