LeviLamina
Loading...
Searching...
No Matches
HudHeartRenderer.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4
5// auto generated inclusion list
6#include "mc/client/gui/controls/renderers/MinecraftUICustomRenderer.h"
7#include "mc/deps/minecraft_renderer/renderer/Mesh.h"
8#include "mc/deps/minecraft_renderer/renderer/TexturePtr.h"
9
10// auto generated forward declare list
11// clang-format off
12class IClientInstance;
14class Player;
15class ScreenContext;
16class UIControl;
18class UIScene;
19namespace mce { class TextureGroup; }
20// clang-format on
21
23public:
24 // HudHeartRenderer inner types declare
25 // clang-format off
27 struct HeartIconData;
28 // clang-format on
29
30 // HudHeartRenderer inner types define
31 enum class HeartType : int {
32 Background = 0,
33 BackgroundBlink = 1,
34 Full = 2,
35 FullPoison = 3,
36 FullWither = 4,
37 FullFrozen = 5,
38 FullFlash = 6,
39 FullPoisonFlash = 7,
40 FullWitherFlash = 8,
41 FullFrozenFlash = 9,
42 Half = 10,
43 HalfPoison = 11,
44 HalfWither = 12,
45 HalfFrozen = 13,
46 HalfFlash = 14,
47 HalfPoisonFlash = 15,
48 HalfWitherFlash = 16,
49 HalfFrozenFlash = 17,
50 FullAbsorption = 18,
51 HalfAbsorption = 19,
52 Count = 20,
53 };
54
55 struct SanitizedHealthData {
56 public:
57 // member variables
58 // NOLINTBEGIN
59 ::ll::TypedStorage<4, 4, int> mHealth;
60 ::ll::TypedStorage<4, 4, int> mOldHealth;
61 ::ll::TypedStorage<4, 4, int> mMaxHealth;
62 ::ll::TypedStorage<4, 4, int> mAbsorption;
63 // NOLINTEND
64 };
65
66 struct HeartIconData {
67 public:
68 // member variables
69 // NOLINTBEGIN
70 ::ll::TypedStorage<4, 4, ::HudHeartRenderer::HeartType> mType;
71 ::ll::TypedStorage<8, 8, uint64> mOffset;
72 ::ll::TypedStorage<8, 8, uint64> mCount;
73 // NOLINTEND
74 };
75
76public:
77 // member variables
78 // NOLINTBEGIN
79 ::ll::TypedStorage<1, 1, bool> mHasLoadedTextures;
80 ::ll::TypedStorage<1, 1, bool> mShouldRender;
81 ::ll::TypedStorage<8, 24, ::HudHeartRenderer::HeartIconData> mBackgroundIcon;
82 ::ll::TypedStorage<8, 24, ::HudHeartRenderer::HeartIconData> mFullFlashIcon;
83 ::ll::TypedStorage<8, 24, ::HudHeartRenderer::HeartIconData> mHalfFlashIcon;
84 ::ll::TypedStorage<8, 24, ::HudHeartRenderer::HeartIconData> mFullAbsorptionIcon;
85 ::ll::TypedStorage<8, 24, ::HudHeartRenderer::HeartIconData> mHalfAbsorptionIcon;
86 ::ll::TypedStorage<8, 24, ::HudHeartRenderer::HeartIconData> mFullIcon;
87 ::ll::TypedStorage<8, 24, ::HudHeartRenderer::HeartIconData> mHalfIcon;
88 ::ll::TypedStorage<8, 640, ::std::array<::mce::TexturePtr, 20>> mHeartTextures;
89 ::ll::TypedStorage<8, 10560, ::std::array<::mce::Mesh, 20>> mHeartMeshes;
90 ::ll::TypedStorage<8, 24, ::std::vector<::glm::vec3>> mIconPosition;
91 // NOLINTEND
92
93public:
94 // virtual functions
95 // NOLINTBEGIN
96 virtual ~HudHeartRenderer() /*override*/ = default;
97
98 virtual ::std::shared_ptr<::UICustomRenderer> clone() const /*override*/;
99
100 virtual void
101 render(::MinecraftUIRenderContext& renderContext, ::IClientInstance&, ::UIControl& owner, int) /*override*/;
102
103 virtual bool update(::IClientInstance& client, ::UIControl& owner, ::UIScene const& scene) /*override*/;
104 // NOLINTEND
105
106public:
107 // member functions
108 // NOLINTBEGIN
109 MCAPI HudHeartRenderer();
110
111 MCAPI void _loadHeartTextures(::mce::TextureGroup& textureGroup, bool isHardcore);
112
113 MCAPI bool _validateHeartMeshes(::ScreenContext& screenContext);
114 // NOLINTEND
115
116public:
117 // static functions
118 // NOLINTBEGIN
119 MCAPI static ::HudHeartRenderer::SanitizedHealthData getSanitizedHealthData(::Player const& player);
120 // NOLINTEND
121
122public:
123 // constructor thunks
124 // NOLINTBEGIN
125 MCAPI void* $ctor();
126 // NOLINTEND
127
128public:
129 // virtual function thunks
130 // NOLINTBEGIN
131 MCAPI ::std::shared_ptr<::UICustomRenderer> $clone() const;
132
133 MCAPI void $render(::MinecraftUIRenderContext& renderContext, ::IClientInstance&, ::UIControl& owner, int);
134
135 MCAPI bool $update(::IClientInstance& client, ::UIControl& owner, ::UIScene const& scene);
136 // NOLINTEND
137
138public:
139 // vftables
140 // NOLINTBEGIN
141 MCNAPI static void** $vftable();
142 // NOLINTEND
143};
Definition HudHeartRenderer.h:5
static MCAPI void ** $vftable()
Definition IClientInstance.h:5
Definition MinecraftUICustomRenderer.h:5
Definition MinecraftUIRenderContext.h:5
Definition Player.h:129
Definition ScreenContext.h:5
Definition UIControl.h:5
Definition UICustomRenderer.h:5
Definition UIScene.h:5
Definition TextureGroup.h:7
Definition HudHeartRenderer.h:18
Definition HudHeartRenderer.h:16