3#include "mc/_HeaderOutputPredefine.h"
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"
24 enum class BubbleType :
int {
34 ::ll::TypedStorage<1, 1, bool> mHasLoadedTextures;
35 ::ll::TypedStorage<8, 8, uint64> mNumFullIcons;
36 ::ll::TypedStorage<8, 8, uint64> mNumPoppedIcons;
37 ::ll::TypedStorage<8, 8, uint64> mNumEmptyIcons;
38 ::ll::TypedStorage<1, 1, bool> mPopSoundReady;
39 ::ll::TypedStorage<1, 1, bool> mWobblingLastFrame;
40 ::ll::TypedStorage<8, 96, ::std::array<::mce::TexturePtr, 3>> mBubbleTextures;
41 ::ll::TypedStorage<8, 1584, ::std::array<::mce::Mesh, 3>> mBubbleMeshes;
42 ::ll::TypedStorage<4, 120, ::std::array<::glm::vec3, 10>> mIconPosition;
48 virtual ~HudBubblesRenderer() =
default;
50 virtual ::std::shared_ptr<::UICustomRenderer> clone() const ;
53 render(::MinecraftUIRenderContext& renderContext, ::IClientInstance&, ::UIControl& owner,
int) ;
55 virtual
bool update(::IClientInstance& client, ::UIControl& owner, ::UIScene const& scene) ;
61 MCAPI HudBubblesRenderer();
63 MCAPI
void _loadBubbleTextures(::std::shared_ptr<::mce::TextureGroup> textureGroup);
65 MCAPI
void _tryPlayPopSound(::IClientInstance& client);
67 MCFOLD
bool _validateBubbleMeshes(::ScreenContext& screenContext);
73 MCAPI static ::std::tuple<
int,
int,
int>
74 calculateBubbleData(
bool isBreathing,
bool isCreativeOrSpectator,
short supply,
short maxSupply);
86 MCAPI ::std::shared_ptr<::UICustomRenderer> $clone() const;
88 MCAPI
void $render(::MinecraftUIRenderContext& renderContext, ::IClientInstance&, ::UIControl& owner,
int);
90 MCAPI
bool $update(::IClientInstance& client, ::UIControl& owner, ::UIScene const& scene);
Definition HudBubblesRenderer.h:5
static MCAPI void ** $vftable()
Definition IClientInstance.h:5
Definition MinecraftUICustomRenderer.h:5
Definition MinecraftUIRenderContext.h:5
Definition ScreenContext.h:5
Definition UICustomRenderer.h:5
Definition TextureGroup.h:7