LeviLamina
Loading...
Searching...
No Matches
ActorSkeletalAnimationPlayer.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4
5// auto generated inclusion list
6#include "mc/deps/core/string/HashedString.h"
7#include "mc/world/actor/SkeletalHierarchyIndex.h"
8#include "mc/world/actor/animation/ActorAnimationPlayer.h"
9#include "mc/world/actor/animation/ActorAnimationType.h"
10#include "mc/world/actor/animation/ActorSkeletalAnimationPtr.h"
11
12// auto generated forward declare list
13// clang-format off
16class BoneOrientation;
17class ExpressionNode;
18class RenderParams;
19struct AnimationVisitor;
21// clang-format on
22
23class ActorSkeletalAnimationPlayer : public ::ActorAnimationPlayer {
24public:
25 // member variables
26 // NOLINTBEGIN
27 ::ll::TypedStorage<8, 16, ::ActorSkeletalAnimationPtr> mAnimationData;
28 ::ll::TypedStorage<8, 24, ::std::vector<::BoneAnimationPlayer>> mBoneAnimationPlayers;
29 ::ll::TypedStorage<8, 64, ::std::unordered_map<::SkeletalHierarchyIndex, ::std::vector<int>>> mBoneToPartMapping;
30 ::ll::TypedStorage<8, 8, ::std::unordered_map<::HashedString, ::HashedString> const*> mActorParticleEffectMap;
31 ::ll::TypedStorage<8, 8, ::std::unordered_map<::HashedString, ::std::string> const*> mActorSoundEffectMap;
32 ::ll::TypedStorage<4, 4, float> mAnimTime;
33 ::ll::TypedStorage<4, 4, float> mLastAnimTime;
34 ::ll::TypedStorage<4, 4, float> mStartDelay;
35 // NOLINTEND
36
37public:
38 // prevent constructor by default
39 ActorSkeletalAnimationPlayer();
40
41public:
42 // virtual functions
43 // NOLINTBEGIN
44 virtual void applyToPose(
45 ::ApplyAnimationContext const& applyContext,
46 ::RenderParams& renderParams,
47 ::std::unordered_map<::SkeletalHierarchyIndex, ::std::vector<::BoneOrientation>>& destBoneOrientationMap,
48 float blendWeight
49 ) /*override*/;
50
51 virtual void resetAnimation() /*override*/;
52
53 virtual void buildBoneToPartMapping(::AnimationComponent& animationComponent) /*override*/;
54
55 virtual void bindParticleEffects(
56 ::std::unordered_map<::HashedString, ::HashedString> const& actorParticleEffectMap
57 ) /*override*/;
58
59 virtual void
60 bindSoundEffects(::std::unordered_map<::HashedString, ::std::string> const& actorSoundEffectMap) /*override*/;
61
62 virtual bool hasAnimationFinished() const /*override*/;
63
64 virtual ::std::shared_ptr<::ActorAnimationPlayer> findAnimation(::HashedString const&) /*override*/;
65
66 virtual ::ActorAnimationType getAnimationType() const /*override*/;
67
68 virtual ::HashedString const& getRawName() const /*override*/;
69
70 virtual void visit(::AnimationVisitor&& dispatcher) /*override*/;
71
72 virtual ~ActorSkeletalAnimationPlayer() /*override*/;
73 // NOLINTEND
74
75public:
76 // member functions
77 // NOLINTBEGIN
78 MCAPI ActorSkeletalAnimationPlayer(
79 ::HashedString const& friendlyName,
80 ::ActorSkeletalAnimationPtr animationData,
81 ::AnimationComponent& animationComponent,
82 ::ExpressionNode const& blendExpression
83 );
84
85 MCAPI void _animateBones(
86 ::RenderParams& renderParams,
87 ::std::unordered_map<::SkeletalHierarchyIndex, ::std::vector<::BoneOrientation>>& destBoneOrientationMap,
88 float blendWeight
89 );
90
91#ifdef LL_PLAT_C
92 MCAPI void _fireSoundEvents(::RenderParams& renderParams);
93
94 MCAPI void _rebuildBoneAnimationPlayers();
95#endif
96
97 MCAPI void _setDefaultPose(
98 ::RenderParams& renderParams,
99 ::std::unordered_map<::SkeletalHierarchyIndex, ::std::vector<::BoneOrientation>>& destBoneOrientationMap
100 ) const;
101
102 MCAPI bool _updateAnimTime(::RenderParams& renderParams);
103 // NOLINTEND
104
105public:
106 // constructor thunks
107 // NOLINTBEGIN
108 MCAPI void* $ctor(
109 ::HashedString const& friendlyName,
110 ::ActorSkeletalAnimationPtr animationData,
111 ::AnimationComponent& animationComponent,
112 ::ExpressionNode const& blendExpression
113 );
114 // NOLINTEND
115
116public:
117 // destructor thunk
118 // NOLINTBEGIN
119 MCAPI void $dtor();
120 // NOLINTEND
121
122public:
123 // virtual function thunks
124 // NOLINTBEGIN
125 MCAPI void $applyToPose(
126 ::ApplyAnimationContext const& applyContext,
127 ::RenderParams& renderParams,
128 ::std::unordered_map<::SkeletalHierarchyIndex, ::std::vector<::BoneOrientation>>& destBoneOrientationMap,
129 float blendWeight
130 );
131
132 MCAPI void $resetAnimation();
133
134 MCFOLD void $buildBoneToPartMapping(::AnimationComponent& animationComponent);
135
136 MCAPI void $bindParticleEffects(::std::unordered_map<::HashedString, ::HashedString> const& actorParticleEffectMap);
137
138 MCAPI void $bindSoundEffects(::std::unordered_map<::HashedString, ::std::string> const& actorSoundEffectMap);
139
140 MCFOLD bool $hasAnimationFinished() const;
141
142 MCFOLD ::std::shared_ptr<::ActorAnimationPlayer> $findAnimation(::HashedString const&);
143
144 MCFOLD ::ActorAnimationType $getAnimationType() const;
145
146 MCAPI ::HashedString const& $getRawName() const;
147
148 MCAPI void $visit(::AnimationVisitor&& dispatcher);
149
150
151 // NOLINTEND
152
153public:
154 // vftables
155 // NOLINTBEGIN
156 MCNAPI static void** $vftable();
157 // NOLINTEND
158};
static MCAPI void ** $vftable()
Definition ActorSkeletalAnimationPtr.h:10
Definition AnimationComponent.h:36
Definition ApplyAnimationContext.h:16
Definition BoneOrientation.h:19
Definition ExpressionNode.h:34
Definition HashedString.h:5
Definition RenderParams.h:30
Definition AnimationVisitor.h:16
Definition BoneAnimationPlayer.h:10