Follow along with the video below to see how to install our site as a web app on your home screen.
Примечание: This feature may not be available in some browsers.
private static final RenderItem itemRenderer = new RenderItem();
Привет.Всем привет,
как добавить описание при наведении на броню ?
@Override
public void addInformation(ItemStack itemStack, EntityPlayer player, List list, boolean flag) {
list.add(StatCollector.translateToLocal("money2b.none.desc"));
}
И как вывести прочность одетой брони на экран ?
@SubscribeEvent
public void drawText(RenderGameOverlayEvent.Post event) {
switch(event.type) {
case ALL:
renderHotbar(event.resolution.getScaledWidth(), event.resolution.getScaledHeight(), event.partialTicks);
default:
break;
}
}
private static void renderHotbar(int width, int height, float partialTicks) {
InventoryPlayer inv = mc.thePlayer.inventory;
GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
GL11.glEnable(GL12.GL_RESCALE_NORMAL);
RenderHelper.enableGUIStandardItemLighting();
itemRenderer.zLevel += 200;
int x = width / 2 - 66 + 0 * 25 + 2;
int z = height - 72;
renderInventorySlot(inv.mainInventory.length + 3, x, z, partialTicks);
x = width / 2 - 66 + 1 * 25 + 2;
renderInventorySlot(inv.mainInventory.length + 2, x, z, partialTicks);
x = width / 2 - 38 + 2 * 25 + 2;
renderInventorySlot(inv.mainInventory.length + 1, x, z, partialTicks);
x = width / 2 - 38 + 3 * 25 + 2;
renderInventorySlot(inv.mainInventory.length + 0, x, z, partialTicks);
itemRenderer.zLevel -= 200;
RenderHelper.disableStandardItemLighting();
GL11.glDisable(GL12.GL_RESCALE_NORMAL);
}
private static void renderInventorySlot(int slotID, int x, int y, float par4) {
ItemStack itemstack = mc.thePlayer.inventory.getStackInSlot(slotID);
if (itemstack != null) {
float f1 = (float)itemstack.animationsToGo - par4;
if (f1 > 0.0F) {
GL11.glPushMatrix();
float f2 = 1.0F + f1 / 5.0F;
GL11.glTranslatef((float)(x + 8), (float)(y + 12), 0.0F);
GL11.glScalef(1.0F / f2, (f2 + 1.0F) / 2.0F, 1.0F);
GL11.glTranslatef((float)(-(x + 8)), (float)(-(y + 12)), 0.0F);
}
itemRenderer.renderItemAndEffectIntoGUI(mc.fontRenderer, mc.getTextureManager(), itemstack, x, y);
if (f1 > 0.0F) GL11.glPopMatrix();
itemRenderer.renderItemOverlayIntoGUI(mc.fontRenderer, mc.getTextureManager(), itemstack, x, y);
}
}
private static final RenderItem itemRenderer = new RenderItem();
Эм... Ну типа да. Создай две переменных тип int, один будет отвечать за сумму прочности, вторая за сумму максимальной прочности и выводи.
int p = 0, pm = 0;
for (int i = 0; i < 4; ++i) {
ItemStack item = Minecraft.getMinecraft().thePlayer.getCurrentArmor(i);
p += item.getItemDamage();
pm += item.getMaxDamage();
}
mc.fontRenderer.drawStringWithShadow(p + "/" + pm, 3, 2, 0xFFFFFF);