4jcraft/Minecraft.Client/Rendering/EntityRenderers/ItemInHandRenderer.h
2026-03-21 22:28:58 -05:00

55 lines
1.4 KiB
C++

#pragma once
class Minecraft;
class ItemInstance;
class Minimap;
class LivingEntity;
class TileRenderer;
class Tesselator;
class ItemInHandRenderer {
public:
// 4J - made these public
static ResourceLocation ENCHANT_GLINT_LOCATION;
static ResourceLocation MAP_BACKGROUND_LOCATION;
static ResourceLocation UNDERWATER_LOCATION;
private:
Minecraft* minecraft;
std::shared_ptr<ItemInstance> selectedItem;
float height;
float oHeight;
TileRenderer* tileRenderer;
static int listItem, listGlint, listTerrain;
public:
// 4J Stu - Made public so we can use it from ItemFramRenderer
Minimap* minimap;
public:
ItemInHandRenderer(
Minecraft* mc,
bool optimisedMinimap = true); // 4J Added optimisedMinimap param
void renderItem(std::shared_ptr<LivingEntity> mob,
std::shared_ptr<ItemInstance> item, int layer,
bool setColor = true); // 4J added setColor parameter
static void renderItem3D(
Tesselator* t, float u0, float v0, float u1, float v1, int width,
int height, float depth, bool isGlint,
bool isTerrain); // 4J added isGlint and isTerrain parameter
public:
void render(float a);
void renderScreenEffect(float a);
private:
void renderTex(float a, Icon* slot);
void renderWater(float a);
void renderFire(float a);
int lastSlot;
public:
void tick();
void itemPlaced();
void itemUsed();
};