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;
17class BlockPos;
18class BlockSource;
20class Experiments;
21class Font;
22class GeometryGroup;
26class Tessellator;
27class Vec3;
29namespace dragon { struct RenderMetadata; }
30namespace mce { class MaterialPtr; }
31namespace mce { class TextureGroup; }
32namespace mce { struct ClientTexture; }
33// clang-format on
34
36public:
37 // BlockActorRenderDispatcher inner types define
38 using RendererMap = ::Bedrock::DenseEnumMap<::BlockActorRendererId, ::std::unique_ptr<::BlockActorRenderer>, 28>;
39
40public:
41 // member variables
42 // NOLINTBEGIN
43 ::ll::TypedStorage<
44 8,
45 224,
46 ::Bedrock::DenseEnumMap<::BlockActorRendererId, ::std::unique_ptr<::BlockActorRenderer>, 28>>
47 mRenderers;
48 ::ll::TypedStorage<
49 8,
50 24,
51 ::std::vector<::std::function<void(
52 ::Bedrock::NotNullNonOwnerPtr<::ActorResourceDefinitionGroup const> const&,
53 ::std::shared_ptr<::mce::TextureGroup>
54 )>>>
55 mGameSpecificRegistrationCallbacks;
56 // NOLINTEND
57
58public:
59 // member functions
60 // NOLINTBEGIN
61 MCAPI ::std::vector<::NameTagRenderObject> extractRenderTextObjects(
62 ::Font& font,
63 ::Tessellator& tessellator,
64 ::IVanillaRenderBlockActorComponent& renderComponent,
65 ::std::string const& str,
66 ::Vec3 camTargetPos
67 );
68
69 MCAPI void initializeBlockEntityRenderers(
70 ::Bedrock::NotNullNonOwnerPtr<::GeometryGroup> const& geometryGroup,
71 ::std::shared_ptr<::mce::TextureGroup> textureGroup,
72 ::BlockTessellator& blockTessellator,
73 ::Bedrock::NotNullNonOwnerPtr<::ActorResourceDefinitionGroup const> const& actorResourceDefinitionGroup,
74 ::ResourcePackManager& resourcePackManager,
75 ::Bedrock::NotNullNonOwnerPtr<::ResourceLoadManager> resourceLoadManager,
76 ::BaseGameVersion const& baseGameVersion,
77 ::Experiments const& experiments
78 );
79
80 MCAPI void registerGameSpecificBlockActorRendererCallback(
81 ::std::function<void(
82 ::Bedrock::NotNullNonOwnerPtr<::ActorResourceDefinitionGroup const> const&,
83 ::std::shared_ptr<::mce::TextureGroup>
84 )> callback
85 );
86
87 MCAPI void render(
88 ::BaseActorRenderContext& entityRenderContext,
89 ::BlockSource& renderSource,
90 ::IVanillaRenderBlockActorComponent& renderComponent,
91 ::Block const& block,
92 bool renderAlphaLayer,
93 ::mce::MaterialPtr const& forcedMat,
94 ::mce::ClientTexture const* forceTex,
95 int breakingAmount,
96 ::std::optional<::dragon::RenderMetadata> renderMetadata
97 );
98
99 MCAPI void render(
100 ::BaseActorRenderContext& entityRenderContext,
101 ::BlockSource& renderSource,
102 ::IVanillaRenderBlockActorComponent& renderComponent,
103 ::Block const& block,
104 ::Vec3 const& renderPos,
105 ::BlockPos const& worldPos,
106 bool renderAlphaLayer,
107 ::mce::MaterialPtr const& forcedMat,
108 ::mce::ClientTexture const* forceTex,
109 int breakingAmount,
110 ::std::optional<::dragon::RenderMetadata> renderMetadata
111 );
112 // NOLINTEND
113};
Definition ActorResourceDefinitionGroup.h:5
Definition BaseActorRenderContext.h:5
Definition BaseGameVersion.h:8
Definition BlockActorRenderDispatcher.h:5
Definition BlockActorRenderer.h:5
Definition BlockPos.h:17
Definition BlockSource.h:71
Definition BlockTessellator.h:5
Definition Block.h:42
Definition Experiments.h:14
Definition Font.h:5
Definition GeometryGroup.h:5
Definition IVanillaRenderBlockActorComponent.h:19
Definition ResourceLoadManager.h:18
Definition ResourcePackManager.h:38
Definition Tessellator.h:5
Definition Vec3.h:10
Definition MaterialPtr.h:14
Definition TextureGroup.h:7
Definition NameTagRenderObject.h:5
Definition RenderMetadata.h:7
Definition ClientTexture.h:7