LeviLamina
Loading...
Searching...
No Matches
DataDrivenRenderer.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4
5// auto generated inclusion list
6#include "mc/client/renderer/actor/ActorRenderer.h"
7#include "mc/client/renderer/actor/V2TempComponentRequirements.h"
8#include "mc/deps/core/container/small_vector_base.h"
9#include "mc/deps/core/string/HashedString.h"
10#include "mc/deps/minecraft_renderer/renderer/TexturePtr.h"
11#include "mc/util/molang/ExpressionNode.h"
12
13// auto generated forward declare list
14// clang-format off
15class AABB;
16class Actor;
17class ActorRenderData;
20class Model;
21class RenderParams;
22class Vec3;
24struct BlockTessellator;
25namespace mce { class TextureGroup; }
26// clang-format on
27
29public:
30 // member variables
31 // NOLINTBEGIN
32 ::ll::TypedStorage<8, 24, ::std::vector<::std::unique_ptr<::DataDrivenRenderer_tempComponent>>> mTempComponents;
33 ::ll::TypedStorage<8, 48, ::HashedString const> mName;
34 ::ll::TypedStorage<1, 1, bool const> mIsAttachable;
35 ::ll::TypedStorage<8, 32, ::mce::TexturePtr> mDefaultSkin;
36 ::ll::TypedStorage<8, 16, ::ExpressionNode> mUpdateBonesAndEffectsIfOffScreen;
37 ::ll::TypedStorage<8, 16, ::ExpressionNode> mUpdateEffectsIfOffScreen;
38 // NOLINTEND
39
40public:
41 // prevent constructor by default
42 DataDrivenRenderer();
43
44public:
45 // virtual functions
46 // NOLINTBEGIN
47 virtual void getLeashOffsets(
48 ::Actor& actor,
49 float,
50 float,
51 float,
52 bool legacyOffset,
53 ::Bedrock::small_vector_base<::Vec3>& output
54 ) const /*override*/;
55
56 virtual void render(::BaseActorRenderContext& renderContext, ::ActorRenderData& actorRenderData) /*override*/;
57
58 virtual void
59 renderEffects(::BaseActorRenderContext& renderContext, ::ActorRenderData& actorRenderData) /*override*/;
60
61 virtual ::AABB getRenderBounds(::Actor const& entity) const /*override*/;
62
63 virtual void addAdditionalRenderingIfNeeded(::std::shared_ptr<::mce::TextureGroup> textureGroup) /*override*/;
64
65 virtual void setIsOnScreen(::Actor& actor, bool const isOnScreen, float distance) const /*override*/;
66
67 virtual bool shouldUpdateBonesAndEffectsIfOffScreen(::RenderParams& renderParams) const /*override*/;
68
69 virtual bool shouldUpdateEffectsIfOffScreen(::RenderParams& renderParams) const /*override*/;
70
71 virtual ~DataDrivenRenderer() /*override*/;
72 // NOLINTEND
73
74public:
75 // member functions
76 // NOLINTBEGIN
77 MCAPI DataDrivenRenderer(
78 ::std::shared_ptr<::ActorResourceDefinition> definition,
79 ::std::shared_ptr<::mce::TextureGroup> textureGroup
80 );
81
82 MCAPI void addAgentAdditionalRendering();
83
84 MCAPI void addBalloonAdditionalRendering();
85
86 MCAPI void addEnderCrystalAdditionalRendering();
87
88 MCAPI void addEnderDragonAdditionalRendering();
89
90 MCAPI void addEnderManAdditionalRendering(::BlockTessellator* blockTesselator);
91
92 MCAPI void addGuardianAdditionalRendering();
93
94 MCAPI void addHumanoidAdditionalRendering(::std::shared_ptr<::mce::TextureGroup> textureGroup);
95
96 MCAPI void addIronGolemAdditionalRendering(::BlockTessellator* blockTesselator);
97
98 MCAPI void addMinecartAdditionalRendering(::BlockTessellator& commonBlockRenderer);
99
100 MCAPI void addMushroomCowAdditionalRendering(::BlockTessellator& commonBlockRenderer);
101
102 MCAPI void addSnowGolemAdditionalRendering(::BlockTessellator* blockTesselator);
103
104 MCAPI void addVexAdditionalRendering();
105
106 MCAPI void addVillagerAdditionalRendering();
107
108 MCFOLD void addVillagerV2AdditionalRendering();
109
110 MCFOLD void addWanderingTraderAdditionalRendering();
111
112 MCAPI void addWitchAdditionalRendering();
113
114 MCAPI bool armorHidden() const;
115
116 MCAPI bool attachablesEnabled() const;
117
118 MCAPI ::V2TempComponentRequirements getV2TempComponentRequirement() const;
119
120 MCAPI bool isAttachable() const;
121
122 MCAPI void renderModel(::BaseActorRenderContext& renderContext, ::ActorRenderData& actorRenderData, ::Model&);
123
124 MCAPI void setupModel(
125 ::ActorRenderData& actorRenderData,
126 ::BaseActorRenderContext* baseActorRenderContext,
127 float actorFrameAlpha
128 );
129 // NOLINTEND
130
131public:
132 // static functions
133 // NOLINTBEGIN
134 MCAPI static void getLeashOffsets(::Actor& actor, bool legacyOffset, ::Bedrock::small_vector_base<::Vec3>& output);
135 // NOLINTEND
136
137public:
138 // constructor thunks
139 // NOLINTBEGIN
140 MCAPI void*
141 $ctor(::std::shared_ptr<::ActorResourceDefinition> definition, ::std::shared_ptr<::mce::TextureGroup> textureGroup);
142 // NOLINTEND
143
144public:
145 // destructor thunk
146 // NOLINTBEGIN
147 MCAPI void $dtor();
148 // NOLINTEND
149
150public:
151 // virtual function thunks
152 // NOLINTBEGIN
153 MCAPI void $getLeashOffsets(
154 ::Actor& actor,
155 float,
156 float,
157 float,
158 bool legacyOffset,
159 ::Bedrock::small_vector_base<::Vec3>& output
160 ) const;
161
162 MCAPI void $render(::BaseActorRenderContext& renderContext, ::ActorRenderData& actorRenderData);
163
164 MCAPI void $renderEffects(::BaseActorRenderContext& renderContext, ::ActorRenderData& actorRenderData);
165
166 MCAPI ::AABB $getRenderBounds(::Actor const& entity) const;
167
168 MCAPI void $addAdditionalRenderingIfNeeded(::std::shared_ptr<::mce::TextureGroup> textureGroup);
169
170 MCAPI void $setIsOnScreen(::Actor& actor, bool const isOnScreen, float distance) const;
171
172 MCAPI bool $shouldUpdateBonesAndEffectsIfOffScreen(::RenderParams& renderParams) const;
173
174 MCAPI bool $shouldUpdateEffectsIfOffScreen(::RenderParams& renderParams) const;
175 // NOLINTEND
176
177public:
178 // vftables
179 // NOLINTBEGIN
180 MCNAPI static void** $vftable();
181 // NOLINTEND
182};
Definition AABB.h:18
Definition ActorRenderData.h:5
Definition ActorRenderer.h:5
MCAPI void $dtor()
Definition Actor.h:105
Definition BaseActorRenderContext.h:34
Definition DataDrivenRenderer_tempComponent.h:5
Definition DataDrivenRenderer.h:5
static MCAPI void ** $vftable()
Definition Model.h:5
Definition RenderParams.h:30
Definition Vec3.h:10
Definition TextureGroup.h:7
Definition ActorResourceDefinition.h:5
Definition BlockTessellator.h:5