Skip to content
LeviMC
English
AutoLightDark
LeviLamina
Loading...
Searching...
No Matches
DataDrivenModel.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4
5// auto generated inclusion list
6#include "mc/client/model/models/Model.h"
7#include "mc/deps/core/string/HashedString.h"
8#include "mc/world/actor/animation/AttachableSlotIndex.h"
9#include "mc/world/phys/AABB.h"
10
11// auto generated forward declare list
12// clang-format off
13class Actor;
14class ActorRenderData;
18class ExpressionNode;
19class GameVersion;
20class ItemStack;
21class RenderParams;
22class Vec3;
23// clang-format on
24
25class DataDrivenModel : public ::Model {
26public:
27 // member variables
28 // NOLINTBEGIN
29 ::ll::TypedStorage<8, 16, ::std::weak_ptr<::ActorResourceDefinition>> mResourceDefinition;
30 ::ll::TypedStorage<8, 48, ::HashedString> mName;
31 ::ll::TypedStorage<8, 64, ::std::unordered_map<int, ::std::weak_ptr<::DataDrivenRenderer>>> mItemToRendererMap;
32 ::ll::TypedStorage<4, 24, ::AABB> mDefaultPoseAABB;
33 ::ll::TypedStorage<1, 1, bool> mEnableAttachables;
34 ::ll::TypedStorage<1, 1, bool> mHideArmor;
35 // NOLINTEND
36
37public:
38 // prevent constructor by default
39 DataDrivenModel();
40
41public:
42 // virtual functions
43 // NOLINTBEGIN
44 virtual ~DataDrivenModel() /*override*/ = default;
45 // NOLINTEND
46
47public:
48 // member functions
49 // NOLINTBEGIN
50 MCNAPI explicit DataDrivenModel(::std::weak_ptr<::ActorResourceDefinition> definitionWeakPtr);
51
52 MCNAPI bool _setArmorTrim(
53 ::ItemStack const& itemInstance,
54 ::std::shared_ptr<::DataDrivenModel> model,
55 ::Actor& actor,
56 ::RenderParams& renderParams,
57 ::RenderParams& childRenderParams
58 );
59
60 MCNAPI ::AABB calculateDefaultPoseAABB() const;
61
62 MCNAPI ::ExpressionNode getCopyOfScript_defaultIfNone(::HashedString const& name) const;
63
64 MCNAPI ::std::weak_ptr<::DataDrivenRenderer>
65 getDataDrivenRenderer(::RenderParams& renderParams, ::ItemStack const& itemInstance);
66
68
69 MCAPI ::std::string getResourceDefinitionName() const;
70
71 MCNAPI bool hasScript(::HashedString const& name) const;
72
73 MCNAPI void render(
74 ::std::shared_ptr<::DataDrivenRenderer> renderer,
75 ::ActorRenderData& actorRenderData,
76 ::Vec3 const& modelTranslationWithWorldRotation,
77 ::Vec3 const& cameraTargetPos
78 );
79
80 MCAPI void renderAttachable(
81 ::ItemStack const& itemInstance,
82 ::AttachableSlotIndex const& attachableSlotIndex,
83 ::RenderParams& renderParams,
84 ::Actor& actor
85 );
86
87 MCAPI void renderAttachableNoChecks(
88 ::ItemStack const& itemInstance,
89 ::AttachableSlotIndex const& attachableSlotIndex,
90 ::RenderParams& renderParams,
91 ::Actor& actor
92 );
93
94 MCNAPI void resolveHeldItemScaleForRender(::RenderParams& renderParams) const;
95
96 MCAPI void setupAttachable(
97 ::ItemStack const& itemInstance,
98 ::AttachableSlotIndex const& attachableSlotIndex,
99 ::RenderParams& renderParams,
100 ::Actor& actor
101 );
102
104 ::ItemStack const& itemInstance,
105 ::AttachableSlotIndex const& attachableSlotIndex,
106 ::RenderParams& renderParams,
107 ::Actor& actor,
108 bool isFirstPerson,
109 bool runParentSetup
110 );
111
112 MCNAPI bool tryExecuteScript(::HashedString const& scriptName, ::RenderParams& renderParams, float& result);
113 // NOLINTEND
114
115public:
116 // static functions
117 // NOLINTBEGIN
119 ::ItemStack const& itemInstance,
120 ::AttachableSlotIndex const& attachableSlotIndex,
121 bool isSpectator,
122 bool isFirstPerson,
123 bool isRenderingOnMap,
124 bool lessThanOrEqualToVersion_1_16_210,
125 bool hideArmor
126 );
127 // NOLINTEND
128
129public:
130 // static variables
131 // NOLINTBEGIN
132 MCNAPI static ::GameVersion& Version_1_16_210();
133 // NOLINTEND
134
135public:
136 // constructor thunks
137 // NOLINTBEGIN
138 MCNAPI void* $ctor(::std::weak_ptr<::ActorResourceDefinition> definitionWeakPtr);
139 // NOLINTEND
140};
Definition ActorRenderData.h:5
Definition ActorResourceDefinition.h:5
Definition Actor.h:116
Definition BaseActorRenderContext.h:5
Definition DataDrivenModel.h:5
MCAPI::AABB getOrCalculateDefaultPoseAABB(::BaseActorRenderContext &renderContext)
static MCAPI bool shouldRenderAttachableOnActor(::ItemStack const &itemInstance, ::AttachableSlotIndex const &attachableSlotIndex, bool isSpectator, bool isFirstPerson, bool isRenderingOnMap, bool lessThanOrEqualToVersion_1_16_210, bool hideArmor)
MCAPI void render(::std::shared_ptr<::DataDrivenRenderer > renderer, ::ActorRenderData &actorRenderData, ::Vec3 const &modelTranslationWithWorldRotation, ::Vec3 const &cameraTargetPos)
MCAPI DataDrivenModel(::std::weak_ptr<::ActorResourceDefinition > definitionWeakPtr)
MCAPI void * $ctor(::std::weak_ptr<::ActorResourceDefinition > definitionWeakPtr)
MCAPI void resolveHeldItemScaleForRender(::RenderParams &renderParams) const
MCAPI bool tryExecuteScript(::HashedString const &scriptName, ::RenderParams &renderParams, float &result)
MCAPI bool hasScript(::HashedString const &name) const
MCAPI bool _setArmorTrim(::ItemStack const &itemInstance, ::std::shared_ptr<::DataDrivenModel > model, ::Actor &actor, ::RenderParams &renderParams, ::RenderParams &childRenderParams)
MCAPI void setupAttachableNoChecks(::ItemStack const &itemInstance, ::AttachableSlotIndex const &attachableSlotIndex, ::RenderParams &renderParams, ::Actor &actor, bool isFirstPerson, bool runParentSetup)
MCAPI::AABB calculateDefaultPoseAABB() const
MCAPI ::std::weak_ptr<::DataDrivenRenderer > getDataDrivenRenderer(::RenderParams &renderParams, ::ItemStack const &itemInstance)
MCAPI::ExpressionNode getCopyOfScript_defaultIfNone(::HashedString const &name) const
static MCAPI ::GameVersion & Version_1_16_210()
Definition DataDrivenRenderer.h:5
Definition ExpressionNode.h:35
Definition GameVersion.h:10
Definition HashedString.h:5
Definition ItemStack.h:26
Definition Model.h:5
Definition RenderParams.h:29
Definition Vec3.h:10