3#include "mc/_HeaderOutputPredefine.h"
6#include "mc/client/renderer/ActorShaderManager.h"
7#include "mc/deps/core/utility/pub_sub/Connector.h"
8#include "mc/deps/minecraft_renderer/game/ItemContextFlags.h"
9#include "mc/deps/renderer/MatrixStack.h"
10#include "mc/world/item/InHandUpdateType.h"
11#include "mc/world/level/block/BlockShape.h"
16class BaseActorRenderContext;
31namespace dragon {
struct RenderMetadata; }
32namespace mce {
class Camera; }
33namespace mce {
class MaterialPtr; }
34namespace mce {
class TextureGroup; }
35namespace mce {
struct ViewportInfo; }
42 struct OffsetForLowAspectRatio;
54 enum class Direction : uchar {
95 ::ItemInHandRenderer::OffsetForLowAspectRatio::Direction direction,
96 ::MatrixStack::MatrixStackRef& worldMatrix,
97 ::mce::ViewportInfo
const& viewportInfo,
98 ::mce::Camera
const& camera,
162 ::IClientInstance& client,
164 ::std::shared_ptr<::mce::TextureGroup> textureGroup
168 ::MatrixStack::MatrixStackRef& worldMatrix,
169 ::ItemStack
const& item,
171 ::BlockType
const* blockType,
172 ::BlockShape blockShape,
174 bool posAndRotSetByJSON
178 ::BaseActorRenderContext& renderContext,
180 ::MatrixStack::MatrixStackRef& worldMatrix,
182 bool matrixSetFromJson,
183 bool useBlockTransforms
187 ::BaseActorRenderContext& renderContext,
190 ::MatrixStack::MatrixStackRef& worldMatrix,
192 bool matrixSetFromJson,
193 ::ItemContextFlags itemFlags
197 ::BaseActorRenderContext& renderContext,
199 ::MatrixStack::MatrixStackRef& worldMatrix,
209 ::ItemStack& itemBefore,
210 ::ItemStack
const& itemAfter,
215 MCNAPI ::ItemRenderCall*
_getRenderCall(::Mob* mob, ::ItemStack
const& itemInstance,
int fallbackFrame);
220 MCNAPI ::ItemRenderCall&
221 _rebuildItem(::BaseActorRenderContext& renderContext, ::Mob* mob, ::ItemStack
const& item,
int fallbackFrame);
224 ::BaseActorRenderContext& renderContext,
225 ::dragon::RenderMetadata renderMetadata,
226 ::ItemStack
const& item,
228 ::Brightness lightEmission,
234 ::BaseActorRenderContext& renderContext,
235 ::dragon::RenderMetadata renderMetadata,
236 ::BlockType
const* blockType,
242 ::BaseActorRenderContext& renderContext,
243 ::dragon::RenderMetadata renderMetadata,
245 ::Brightness lightEmission,
250 ::BaseActorRenderContext& renderContext,
251 ::dragon::RenderMetadata renderMetadata,
252 ::ItemStack
const& item,
259 ::BaseActorRenderContext& renderContext,
260 ::dragon::RenderMetadata renderMetadata,
261 ::ItemStack
const& item,
267 ::BaseActorRenderContext& renderContext,
270 float inverseArmHeight,
277 _renderFishingRod(::BaseActorRenderContext& renderContext, ::ItemStack
const& item, ::Actor& entity)
const;
280 ::BaseActorRenderContext& renderContext,
281 ::dragon::RenderMetadata renderMetadata,
282 ::ItemStack
const& item,
284 ::Brightness lightEmission,
286 ::ItemContextFlags itemFlags,
291 ::BaseActorRenderContext& renderContext,
294 float inverseArmHeight,
299 ::BaseActorRenderContext& renderContext,
302 float inverseArmHeight,
306 MCNAPI
void _renderMiniMapHand(::BaseActorRenderContext& renderContext, ::Player& player,
bool inOffhand);
309 _renderPhotoMapItem(::BaseActorRenderContext& renderContext, ::Player& player,
float frameAlpha,
bool isMainHand);
312 ::BaseActorRenderContext& renderContext,
313 ::dragon::RenderMetadata renderMetadata,
314 ::ItemStack
const& item,
316 ::Brightness lightEmission,
321 ::BaseActorRenderContext& renderContext,
322 ::dragon::RenderMetadata renderMetadata,
323 ::ItemStack
const& item,
325 ::Brightness lightEmission,
334 ::BaseActorRenderContext& renderContext,
337 ::ItemStack
const& item,
348 ::MatrixStack::MatrixStackRef& worldMatrix,
349 ::ItemStack
const& item,
351 ::ItemContextFlags itemFlags
356 MCNAPI ::mce::MaterialPtr
const&
359 MCNAPI ::ItemRenderCall
const&
362 MCNAPI
void initMaterials(::std::shared_ptr<::mce::TextureGroup> textureGroup);
366 MCNAPI
void renderFirstPerson(::BaseActorRenderContext& renderContext, ::ItemContextFlags itemFlags);
369 ::BaseActorRenderContext& renderContext,
371 ::ItemStack
const& item,
372 bool posAndRotSetByJSON,
373 ::ItemContextFlags itemFlags,
375 bool renderingMainHand
379 ::BaseActorRenderContext& renderContext,
381 ::ItemStack
const& item,
382 ::ItemContextFlags itemFlags,
383 ::Brightness lightEmission
387 renderMainhandItem(::BaseActorRenderContext& renderContext, ::Player& player, ::ItemContextFlags itemFlags);
390 ::BaseActorRenderContext& renderContext,
392 ::dragon::RenderMetadata
const& renderMetadata,
393 ::ItemContextFlags itemFlags
397 renderOffhandItem(::BaseActorRenderContext& renderContext, ::Player& player, ::ItemContextFlags itemFlags);
400 tessellateAtFrame(::BaseActorRenderContext& renderContext, ::Mob* mob, ::ItemStack
const& item,
int frame);
409 ::BaseActorRenderContext
const& renderContext,
410 ::Actor
const& entity,
411 ::ItemStack
const& item
417 ::MatrixStack::MatrixStackRef& worldMatrix,
418 ::mce::ViewportInfo
const& viewportInfo,
419 ::mce::Camera
const& camera,
421 float inverseArmHeight,
430 ::IClientInstance& client,
432 ::std::shared_ptr<::mce::TextureGroup> textureGroup
Definition ActorShaderManager.h:5
Definition ItemInHandRenderer.h:5
MCAPI void _renderChestBlockItem(::BaseActorRenderContext &renderContext, ::dragon::RenderMetadata renderMetadata, ::BlockType const *blockType, ::Actor &entity, bool isInHandItem) const
MCAPI void tessellateAtFrame(::BaseActorRenderContext &renderContext, ::Mob *mob, ::ItemStack const &item, int frame)
MCAPI void _renderItemInOffhand(::BaseActorRenderContext &renderContext, ::Player &player, float xRot, float inverseArmHeight, float attackValue)
MCAPI void _applyOffhandItemTransforms(::BaseActorRenderContext &renderContext, ::ItemRenderCall const *renderObjectCall, ::Player &player, ::MatrixStack::MatrixStackRef &worldMatrix, float frameAlpha, bool matrixSetFromJson, ::ItemContextFlags itemFlags)
MCAPI void * $ctor(::IClientInstance &client, ::BlockTessellator &commonRenderer, ::std::shared_ptr<::mce::TextureGroup > textureGroup)
MCAPI::Vec3 _calculateOffhandWorldTranslation(::Player const &player, ::BaseActorRenderContext const &renderContext) const
MCAPI void initMaterials(::std::shared_ptr<::mce::TextureGroup > textureGroup)
MCAPI void _renderDynamicTexturedItemInHands(::BaseActorRenderContext &renderContext, ::Player &player, float xRot, float inverseArmHeight, float attackValue)
MCAPI::InHandUpdateType _checkAndUpdateIfItemChanged(::ItemStack &itemBefore, ::ItemStack const &itemAfter, bool isMainHand, bool slotChanged)
MCAPI void renderItemNew(::BaseActorRenderContext &renderContext, ::Actor &entity, ::ItemStack const &item, ::ItemContextFlags itemFlags, ::Brightness lightEmission)
MCAPI void _renderConduitBlockItem(::BaseActorRenderContext &renderContext, ::dragon::RenderMetadata renderMetadata, ::Actor &entity, ::Brightness lightEmission, float frameAlpha) const
MCAPI bool _shouldRenderOffhandItem(::Player &player) const
MCAPI void _renderShulkerBoxBlockItem(::BaseActorRenderContext &renderContext, ::dragon::RenderMetadata renderMetadata, ::ItemStack const &item, ::Actor &entity, ::Brightness lightEmission, float frameAlpha) const
MCAPI void _renderFirstPersonHandsAndAttachables(::BaseActorRenderContext &renderContext, ::Player &player)
MCAPI bool _areNotMatchingChemistrySticks(::ItemStack &itemBefore, ::ItemStack const &itemAfter)
MCAPI void _tessellateBlockItem(::Tessellator &tessellator, ::BlockTessellator &t, ::Block const &block)
MCAPI void renderFirstPerson(::BaseActorRenderContext &renderContext, ::ItemContextFlags itemFlags)
static MCAPI void computeMatrixForDynamicTexturedItemInHands(::MatrixStack::MatrixStackRef &worldMatrix, ::mce::ViewportInfo const &viewportInfo, ::mce::Camera const &camera, float xRot, float inverseArmHeight, float attackValue)
MCAPI void _renderBannerBlockItem(::BaseActorRenderContext &renderContext, ::dragon::RenderMetadata renderMetadata, ::ItemStack const &item, ::Actor &entity, ::Brightness lightEmission, float frameAlpha, float scale) const
MCAPI void _renderMiniMapHand(::BaseActorRenderContext &renderContext, ::Player &player, bool inOffhand)
MCAPI void _applyDefaultItemTransforms(::MatrixStack::MatrixStackRef &worldMatrix, ::ItemStack const &item, bool isInHandItem, ::BlockType const *blockType, ::BlockShape blockShape, ::ItemRenderCall const *renderObjectCall, bool posAndRotSetByJSON)
MCAPI void _renderItemInMainHand(::BaseActorRenderContext &renderContext, ::Player &player, float xRot, float inverseArmHeight, float attackValue)
MCAPI void _applyUseAnimation(::BaseActorRenderContext &renderContext, ::Player &player, ::MatrixStack::MatrixStackRef &worldMatrix, float frameAlpha)
MCAPI void renderItem(::BaseActorRenderContext &renderContext, ::Actor &entity, ::ItemStack const &item, bool posAndRotSetByJSON, ::ItemContextFlags itemFlags, bool useMatrixAsIs, bool renderingMainHand)
MCAPI void renderOffhandItem(::BaseActorRenderContext &renderContext, ::Player &player, ::ItemContextFlags itemFlags)
MCAPI void _transformWorldMatrixFromJson(::MatrixStack::MatrixStackRef &worldMatrix, ::ItemStack const &item, bool isMainHand, ::ItemContextFlags itemFlags)
MCAPI::mce::MaterialPtr const & getObjectMaterial(::ItemRenderCall const &renderObject, ::ItemContextFlags itemFlags) const
MCAPI void registerPauseManagerCallback(::Bedrock::PubSub::Connector< void(bool)> &connector)
MCAPI::ItemRenderCall * _getRenderCall(::Mob *mob, ::ItemStack const &itemInstance, int fallbackFrame)
static MCAPI void ** $vftable()
MCAPI void _renderCopperGolemStatueBlockItem(::BaseActorRenderContext &renderContext, ::dragon::RenderMetadata renderMetadata, ::ItemStack const &item, ::Actor &entity, bool isFirstPerson, bool isInHandItem) const
MCAPI::ItemRenderCall const & getRenderCallAtFrame(::BaseActorRenderContext &renderContext, ::ItemStack const &item, int frame)
MCAPI ItemInHandRenderer(::IClientInstance &client, ::BlockTessellator &commonRenderer, ::std::shared_ptr<::mce::TextureGroup > textureGroup)
MCAPI void _transformOffhandItem(::MatrixStack::MatrixStackRef &worldMatrix)
MCAPI void _transformOffhandTool(::MatrixStack::MatrixStackRef &worldMatrix, ::ItemStack const &item, float a)
MCAPI void renderObject(::BaseActorRenderContext &renderContext, ::ItemRenderCall const &renderObject, ::dragon::RenderMetadata const &renderMetadata, ::ItemContextFlags itemFlags)
MCAPI void clearRenderObjects()
MCAPI void _renderPhotoMapItem(::BaseActorRenderContext &renderContext, ::Player &player, float frameAlpha, bool isMainHand)
MCAPI void _renderSkullBlockItem(::BaseActorRenderContext &renderContext, ::dragon::RenderMetadata renderMetadata, ::ItemStack const &item, ::Actor &entity, ::Brightness lightEmission, float frameAlpha) const
MCAPI void _renderFishingRod(::BaseActorRenderContext &renderContext, ::ItemStack const &item, ::Actor &entity) const
MCAPI void _renderDecoratedPotBlockItem(::BaseActorRenderContext &renderContext, ::dragon::RenderMetadata renderMetadata, ::ItemStack const &item, ::Actor &entity, bool isFirstPerson) const
MCAPI void _tessellateTextureItem(::BaseActorRenderContext &renderContext, ::TextureTessellator &textureTessellator, ::Mob *mob, ::ItemStack const &item, int fallbackFrame, ushort &heightOut, ushort &widthOut)
MCAPI::ItemRenderCall & _rebuildItem(::BaseActorRenderContext &renderContext, ::Mob *mob, ::ItemStack const &item, int fallbackFrame)
MCAPI void _renderGlowstickBlockItem(::BaseActorRenderContext &renderContext, ::dragon::RenderMetadata renderMetadata, ::ItemStack const &item, ::Actor &entity, ::Brightness lightEmission, float frameAlpha, ::ItemContextFlags itemFlags, float scale)
static MCAPI bool canTessellateAsBlockItem(::ItemStack const &item)
MCAPI void _pushSparklerParticles(::BaseActorRenderContext &renderContext, ::ItemStack const &item, ::Level &level)
static MCAPI ::dragon::RenderMetadata _createRenderMetadata(::BaseActorRenderContext const &renderContext, ::Actor const &entity, ::ItemStack const &item)
MCAPI void _applyMainhandItemTransforms(::BaseActorRenderContext &renderContext, ::Player &player, ::MatrixStack::MatrixStackRef &worldMatrix, float frameAlpha, bool matrixSetFromJson, bool useBlockTransforms)
MCAPI void renderMainhandItem(::BaseActorRenderContext &renderContext, ::Player &player, ::ItemContextFlags itemFlags)
Definition Tessellator.h:5
Definition TextureTessellator.h:5
Definition BlockTessellator.h:5
Definition ItemInHandRenderFrameId.h:5
Definition ItemInHandRenderer.h:59
Definition ItemInHandRenderer.h:46
static MCAPI bool apply(::ItemInHandRenderer::OffsetForLowAspectRatio::Direction direction, ::MatrixStack::MatrixStackRef &worldMatrix, ::mce::ViewportInfo const &viewportInfo, ::mce::Camera const &camera, bool isFirstPerson, float xScale)
Definition ItemRenderCall.h:5