3#include "mc/_HeaderOutputPredefine.h"
6#include "mc/client/renderer/ActorShaderManager.h"
7#include "mc/client/renderer/game/ItemInHandRenderFrameId.h"
8#include "mc/deps/core/math/Matrix.h"
9#include "mc/deps/core/utility/pub_sub/Connector.h"
10#include "mc/deps/core/utility/pub_sub/Subscription.h"
11#include "mc/deps/minecraft_renderer/game/ItemContextFlags.h"
12#include "mc/deps/minecraft_renderer/renderer/MaterialPtr.h"
13#include "mc/deps/minecraft_renderer/renderer/TexturePtr.h"
14#include "mc/deps/renderer/MatrixStack.h"
15#include "mc/world/item/ItemStack.h"
16#include "mc/world/level/block/BlockShape.h"
58 enum class Direction : uchar {
67 ::ll::UntypedStorage<1, 1> mUnk8b3a1f;
68 ::ll::UntypedStorage<8, 8> mUnkad04bd;
69 ::ll::UntypedStorage<8, 8> mUnk711535;
70 ::ll::UntypedStorage<8, 8> mUnk673c3d;
71 ::ll::UntypedStorage<1, 1> mUnk70d991;
72 ::ll::UntypedStorage<4, 4> mUnk1a7539;
73 ::ll::UntypedStorage<1, 1> mUnkb8460a;
78 Scoped& operator=(Scoped
const&);
79 Scoped(Scoped
const&);
96 using RenderMap = ::std::map<::ItemInHandRenderFrameId, ::ItemRenderCall>;
101 ::ll::TypedStorage<8, 152, ::ItemStack> mItem;
102 ::ll::TypedStorage<8, 152, ::ItemStack> mOffHandItem;
103 ::ll::TypedStorage<4, 4, int> mSlot;
104 ::ll::TypedStorage<8, 8, ::IClientInstance&> mClient;
105 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::TextureTessellator>> mTextureTessellator;
106 ::ll::TypedStorage<4, 4, float> mHeight;
107 ::ll::TypedStorage<4, 4, float> mOldHeight;
108 ::ll::TypedStorage<4, 4, float> mHeightOffHand;
109 ::ll::TypedStorage<4, 4, float> mOldHeightOffHand;
110 ::ll::TypedStorage<8, 8, ::BlockTessellator&> mBlockTessellator;
111 ::ll::TypedStorage<8, 16, ::mce::MaterialPtr> mMatOpaqueBlock;
112 ::ll::TypedStorage<8, 16, ::mce::MaterialPtr> mMatOpaqueBlockColor;
113 ::ll::TypedStorage<8, 16, ::mce::MaterialPtr> mMatAlphaBlock;
114 ::ll::TypedStorage<8, 16, ::mce::MaterialPtr> mMatItem;
115 ::ll::TypedStorage<8, 16, ::mce::MaterialPtr> mMatBlendBlock;
116 ::ll::TypedStorage<8, 16, ::mce::MaterialPtr> mMatBlendBlockNoColor;
117 ::ll::TypedStorage<8, 16, ::mce::MaterialPtr> mMatAlphaColoredBlock;
118 ::ll::TypedStorage<8, 16, ::mce::MaterialPtr> mMatItemMultiColorTint;
119 ::ll::TypedStorage<8, 16, ::mce::MaterialPtr> mMatAlphaOneSidedBlock;
120 ::ll::TypedStorage<8, 16, ::mce::MaterialPtr> mMatAlphaOneSidedColoredBlock;
121 ::ll::TypedStorage<8, 16, ::mce::MaterialPtr> mMatOpaqueBlockGlint;
122 ::ll::TypedStorage<8, 16, ::mce::MaterialPtr> mMatAlphaBlockGlint;
123 ::ll::TypedStorage<8, 16, ::mce::MaterialPtr> mMatItemGlint;
124 ::ll::TypedStorage<8, 16, ::mce::MaterialPtr> mMatFishingLine;
125 ::ll::TypedStorage<8, 128, ::std::array<::mce::MaterialPtr const*, 16>> mMaterialMatrix;
126 ::ll::TypedStorage<8, 32, ::mce::TexturePtr> mGlintTexture;
127 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::BannerBlockActor>> mBannerEntity;
128 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::DecoratedPotBlockActor>> mDecoratedPotEntity;
129 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::SerializedActorBlockActor>> mCopperGolemStatueEntity;
130 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::ConduitBlockActor>> mConduitEntity;
131 ::ll::TypedStorage<8, 16, ::std::map<::ItemInHandRenderFrameId, ::ItemRenderCall>> mRenderObjects;
132 ::ll::TypedStorage<4, 64, ::Matrix> mTransform;
133 ::ll::TypedStorage<4, 64, ::Matrix> mPreFirstPersonItemRenderProj;
134 ::ll::TypedStorage<8, 16, ::Bedrock::PubSub::Subscription> mPauseStateChange;
135 ::ll::TypedStorage<8, 8, ::std::chrono::duration<double, ::std::ratio<1, 1>>> mTimer;
136 ::ll::TypedStorage<8, 8, ::std::chrono::steady_clock::time_point> mLastTime;
137 ::ll::TypedStorage<1, 1, bool> mIsDeferredEnabled;
142 ItemInHandRenderer& operator=(ItemInHandRenderer
const&);
143 ItemInHandRenderer(ItemInHandRenderer
const&);
144 ItemInHandRenderer();
149 virtual ~ItemInHandRenderer() =
default;
155 MCAPI ItemInHandRenderer(
158 ::std::shared_ptr<::mce::TextureGroup> textureGroup
161 MCAPI
void _applyDefaultItemTransforms(
166 ::BlockShape blockShape,
169 bool posAndRotSetByJSON
172 MCAPI ::ItemRenderCall* _getRenderCall(
::Mob* mob,
::ItemStack const& itemInstance,
int fallbackFrame);
176 MCAPI ::ItemRenderCall&
179 MCAPI
void _renderBannerBlockItem(
185 ::std::optional<::glm::vec3>
const& lightEmissionColor,
190 MCAPI
void _renderChestBlockItem(
195 bool const isInHandItem
198 MCAPI
void _renderConduitBlockItem(
203 ::std::optional<::glm::vec3>
const& lightEmissionColor,
207 MCAPI
void _renderCopperGolemStatueBlockItem(
212 bool const isFirstPerson,
213 bool const isInHandItem
216 MCAPI
void _renderDecoratedPotBlockItem(
221 bool const isFirstPerson
227 MCAPI
void _renderGlowstickBlockItem(
233 ::std::optional<::glm::vec3>
const& lightEmissionColor,
235 ::ItemContextFlags itemFlags,
241 MCAPI
void _renderPhotoMapItem(
244 float const frameAlpha,
245 bool const isMainHand
248 MCAPI
void _renderShulkerBoxBlockItem(
254 ::std::optional<::glm::vec3>
const& lightEmissionColor,
258 MCAPI
void _tessellateBlockItem(
265 MCAPI
void _transformWorldMatrixFromJson(
268 bool const isMainHand,
269 ::ItemContextFlags itemFlags,
273 MCAPI
void clearRenderObjects();
275 MCAPI ::ItemRenderCall
const&
283 MCAPI
void renderItem(
287 bool posAndRotSetByJSON,
288 ::ItemContextFlags itemFlags,
290 bool renderingMainHand
293 MCAPI
void renderItemNew(
297 ::ItemContextFlags itemFlags,
301 MCAPI
void renderObject(
305 ::ItemContextFlags itemFlags
322 MCAPI static ::dragon::RenderMetadata _createRenderMetadata(
328 MCAPI
static void _tessellateTextureItem(
338 MCAPI
static bool canTessellateAsBlockItem(
::ItemStack const& item);
347 ::std::shared_ptr<::mce::TextureGroup> textureGroup
Definition ActorShaderManager.h:5
Definition BannerBlockActor.h:21
Definition BaseActorRenderContext.h:5
Definition Connector.h:15
Definition BlockTessellator.h:5
Definition BlockType.h:79
Definition ConduitBlockActor.h:20
Definition DecoratedPotBlockActor.h:23
Definition IClientInstance.h:5
Definition ItemInHandRenderer.h:5
Definition ItemRenderCall.h:5
Definition ItemStack.h:24
Definition SerializedActorBlockActor.h:26
Definition Tessellator.h:5
Definition TextureTessellator.h:5
Definition TextureGroup.h:7
Definition Brightness.h:8
Definition ItemInHandRenderer.h:23
Definition ItemInHandRenderer.h:13
Definition MatrixStack.h:13
Definition FrameLightingModelCapabilities.h:7