New hook to allow Items to render Helmet overlays like pumpkins do.

This commit is contained in:
LexManos 2013-04-17 14:03:59 -07:00
parent 718e9b3756
commit d3a2243799
2 changed files with 44 additions and 7 deletions

View file

@ -9,7 +9,27 @@
@SideOnly(Side.CLIENT)
public class GuiIngame extends Gui
{
@@ -170,7 +172,7 @@
@@ -86,9 +88,16 @@
ItemStack itemstack = this.mc.thePlayer.inventory.armorItemInSlot(3);
- if (this.mc.gameSettings.thirdPersonView == 0 && itemstack != null && itemstack.itemID == Block.pumpkin.blockID)
- {
- this.renderPumpkinBlur(k, l);
+ if (this.mc.gameSettings.thirdPersonView == 0 && itemstack != null && itemstack.getItem() != null)
+ {
+ if (itemstack.itemID == Block.pumpkin.blockID)
+ {
+ this.renderPumpkinBlur(k, l);
+ }
+ else
+ {
+ itemstack.getItem().renderHelmetOverlay(itemstack, mc.thePlayer, scaledresolution, par1, par2, par3, par4);
+ }
}
if (!this.mc.thePlayer.isPotionActive(Potion.confusion))
@@ -170,7 +179,7 @@
k3 = l - 39;
l2 = k3 - 10;
@ -18,7 +38,7 @@
i3 = -1;
if (this.mc.thePlayer.isPotionActive(Potion.regeneration))
@@ -431,7 +433,16 @@
@@ -431,7 +440,16 @@
GL11.glPushMatrix();
GL11.glEnable(GL11.GL_BLEND);
GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA);

View file

@ -1,10 +1,12 @@
--- ../src_base/minecraft/net/minecraft/item/Item.java
+++ ../src_work/minecraft/net/minecraft/item/Item.java
@@ -7,13 +7,17 @@
@@ -7,13 +7,19 @@
import java.util.Random;
import net.minecraft.block.Block;
import net.minecraft.block.material.Material;
+import net.minecraft.client.entity.EntityClientPlayerMP;
+import net.minecraft.client.gui.FontRenderer;
+import net.minecraft.client.gui.ScaledResolution;
+import net.minecraft.client.model.ModelBiped;
import net.minecraft.client.renderer.texture.IconRegister;
import net.minecraft.creativetab.CreativeTabs;
@ -18,7 +20,7 @@
import net.minecraft.potion.Potion;
import net.minecraft.potion.PotionHelper;
import net.minecraft.stats.StatList;
@@ -23,7 +27,10 @@
@@ -23,7 +29,10 @@
import net.minecraft.util.StatCollector;
import net.minecraft.util.StringTranslate;
import net.minecraft.util.Vec3;
@ -29,7 +31,7 @@
public class Item
{
@@ -238,13 +245,16 @@
@@ -238,13 +247,16 @@
/** Icon index in the icons table. */
protected Icon itemIcon;
@ -47,7 +49,7 @@
}
itemsList[256 + par1] = this;
@@ -640,6 +650,10 @@
@@ -640,6 +652,10 @@
float f7 = f4 * f5;
float f8 = f3 * f5;
double d3 = 5.0D;
@ -58,7 +60,7 @@
Vec3 vec31 = vec3.addVector((double)f7 * d3, (double)f6 * d3, (double)f8 * d3);
return par1World.rayTraceBlocks_do_do(vec3, vec31, par3, !par3);
}
@@ -720,4 +734,419 @@
@@ -720,4 +736,434 @@
{
StatList.initStats();
}
@ -477,4 +479,19 @@
+ {
+ return false;
+ }
+
+ /**
+ * Called when the client starts rendering the HUD, for whatever item the player currently has as a helmet.
+ * This is where pumpkins would render there overlay.
+ *
+ * @param stack The ItemStack that is equipped
+ * @param player Reference to the current client entity
+ * @param resolution Resolution information about the current viewport and configured GUI Scale
+ * @param partialTicks Partial ticks for the renderer, useful for interpolation
+ * @param hasScreen If the player has a screen up, which will be rendered after this.
+ * @param mouseX Mouse's X position on screen
+ * @param mouseY Mouse's Y position on screen
+ */
+ @SideOnly(Side.CLIENT)
+ public void renderHelmetOverlay(ItemStack stack, EntityPlayer player, ScaledResolution resolution, float partialTicks, boolean hasScreen, int mouseX, int mouseY){}
}