- 5,018
- 47
- 783
Каким эвентом отрисовывать мою damage-полоску на предмете?
Мне нужно именно на предмете в инвентаре, а не абы где на экране.
Java:
public class NewDamageItemBarEvent {
@SubscribeEvent
public void renderDamage(GuiScreenEvent e) {
Minecraft mc = Minecraft.getMinecraft();
FontRenderer fr = mc.fontRenderer;
ItemStack stack = mc.player.inventory.getItemStack();
if (!stack.isEmpty())
{
if (stack.getItem() instanceof BasicFood)
{
GlStateManager.disableLighting();
GlStateManager.disableDepth();
GlStateManager.disableTexture2D();
GlStateManager.disableAlpha();
GlStateManager.disableBlend();
Tessellator tessellator = Tessellator.getInstance();
BufferBuilder bufferbuilder = tessellator.getBuffer();
double health = stack.getItem().getDurabilityForDisplay(stack);
int rgbfordisplay = stack.getItem().getRGBDurabilityForDisplay(stack);
int i = Math.round(13.0F - (float)health * 13.0F);
int j = rgbfordisplay;
int xPos = e.getGui().width / 2 + 10;
int yPos = e.getGui().height - 49;
draw(bufferbuilder, xPos + 2, yPos + 14, 13, 2, 0, 0, 0, 255);
draw(bufferbuilder, xPos + 2, yPos + 13, i, 1, j >> 16 & 255, j >> 8 & 255, j & 255, 255);
GlStateManager.enableBlend();
GlStateManager.enableAlpha();
GlStateManager.enableTexture2D();
GlStateManager.enableLighting();
GlStateManager.enableDepth();
}
}
}