LeviLamina
Loading...
Searching...
No Matches
ActorRenderDispatcher.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4
5// auto generated inclusion list
6#include "mc/common/SubClientId.h"
7#include "mc/deps/core/string/HashedString.h"
8#include "mc/deps/core/utility/NonOwnerPointer.h"
9
10// auto generated forward declare list
11// clang-format off
12class Actor;
13class ActorRenderer;
19class Font;
20class GeometryGroup;
23class Tessellator;
24class Vec2;
25class Vec3;
27namespace mce { class Color; }
28namespace mce { class TextureGroup; }
29// clang-format on
30
32public:
33 // member variables
34 // NOLINTBEGIN
35 ::ll::TypedStorage<8, 64, ::std::unordered_map<::HashedString, ::std::shared_ptr<::ActorRenderer>>>
36 mNonDataDrivenRenderers;
37 ::ll::TypedStorage<8, 64, ::std::unordered_map<::HashedString, ::std::shared_ptr<::DataDrivenRenderer>>>
38 mDataDrivenRenderers;
39 ::ll::TypedStorage<
40 8,
41 24,
42 ::std::vector<::std::function<void(
43 ::Bedrock::NotNullNonOwnerPtr<::ActorResourceDefinitionGroup> const&,
44 ::std::shared_ptr<::mce::TextureGroup>
45 )>>>
46 mGameSpecificRegistrationCallbacks;
47 ::ll::TypedStorage<1, 1, ::SubClientId> mClientSubId;
48 ::ll::TypedStorage<8, 8, int64 const> mResourceLoadTimeStamp;
49 // NOLINTEND
50
51public:
52 // prevent constructor by default
53 ActorRenderDispatcher();
54
55public:
56 // virtual functions
57 // NOLINTBEGIN
58 virtual ~ActorRenderDispatcher();
59 // NOLINTEND
60
61public:
62 // member functions
63 // NOLINTBEGIN
64 MCAPI explicit ActorRenderDispatcher(::SubClientId clientId);
65
66 MCAPI ::std::shared_ptr<::ActorRenderer> _getRenderer(::Actor& actor) const;
67
68 MCAPI void cleanupRenderer(::HashedString const& name);
69
70 MCAPI void clearEntityRenderers();
71
72 MCAPI ::std::vector<::NameTagRenderObject> extractRenderTextObjects(
73 ::Font& font,
74 ::Tessellator& tessellator,
75 ::Actor& actor,
76 ::std::string const& str,
77 ::Vec3 camTargetPos,
78 float a,
79 ::mce::Color color
80 );
81
82 MCAPI ::std::shared_ptr<::DataDrivenRenderer> getDataDrivenRenderer(::HashedString const& rendererName) const;
83
84 MCFOLD ::std::unordered_map<::HashedString, ::std::shared_ptr<::DataDrivenRenderer>>& getDataDrivenRenderers();
85
86 MCAPI ::std::shared_ptr<::ActorRenderer> getRenderer(::Actor const& actor) const;
87
88 MCAPI ::std::shared_ptr<::ActorRenderer> getRenderer(::HashedString const& rendererName) const;
89
90 MCAPI bool hasWaterHole(::Actor& actor) const;
91
92 MCAPI void initializeEntityRenderers(
93 ::Bedrock::NotNullNonOwnerPtr<::GeometryGroup> const& geometryGroup,
94 ::std::shared_ptr<::mce::TextureGroup> textureGroup,
95 ::BlockTessellator& commonBlockRenderer,
96 ::Bedrock::NotNullNonOwnerPtr<::ActorResourceDefinitionGroup> const& entityResourceDefGroup,
97 ::ResourcePackManager& resourcePackManager,
98 ::Bedrock::NotNullNonOwnerPtr<::ResourceLoadManager> resourceLoadManager,
99 bool supportsNewVertexFormat
100 );
101
102 MCAPI bool initializePlayerRenderer(
103 ::std::shared_ptr<::ActorResourceDefinition> resources,
104 ::std::shared_ptr<::mce::TextureGroup> textureGroup
105 );
106
107 MCAPI void render(::BaseActorRenderContext& entityRenderContext, ::Actor& entity, bool ignoreLighting);
108
109 MCAPI void render(
110 ::BaseActorRenderContext& entityRenderContext,
111 ::Actor& entity,
112 ::Vec3 const& pos,
113 ::Vec2 const& rot,
114 bool ignoreLighting
115 );
116
117 MCAPI void render(
118 ::BaseActorRenderContext& entityRenderContext,
119 ::Actor& entity,
120 ::Vec3 const& cameraTargetPos,
121 ::Vec3 const& pos,
122 ::Vec2 const& rot,
123 bool ignoreLighting
124 );
125
126 MCAPI void renderEffects(::BaseActorRenderContext& actorRenderContext, ::Actor& actor);
127
128 MCAPI void
129 renderWaterHole(::BaseActorRenderContext& actorRenderContext, ::Actor& actor, ::Vec3 const& cameraTargetPos);
130 // NOLINTEND
131
132public:
133 // constructor thunks
134 // NOLINTBEGIN
135 MCAPI void* $ctor(::SubClientId clientId);
136 // NOLINTEND
137
138public:
139 // destructor thunk
140 // NOLINTBEGIN
141 MCAPI void $dtor();
142 // NOLINTEND
143
144public:
145 // vftables
146 // NOLINTBEGIN
147 MCNAPI static void** $vftable();
148 // NOLINTEND
149};
Definition ActorRenderDispatcher.h:5
static MCAPI void ** $vftable()
Definition ActorRenderer.h:5
Definition ActorResourceDefinitionGroup.h:5
Definition ActorResourceDefinition.h:5
Definition Actor.h:123
Definition BaseActorRenderContext.h:5
Definition BlockTessellator.h:5
Definition DataDrivenRenderer.h:5
Definition Font.h:5
Definition GeometryGroup.h:5
Definition ResourceLoadManager.h:19
Definition ResourcePackManager.h:35
Definition Tessellator.h:5
Definition Vec2.h:5
Definition Vec3.h:10
Definition Color.h:13
Definition TextureGroup.h:7
Definition NameTagRenderObject.h:5