1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
|
package fyresmodjam.entities.renderers;
import org.lwjgl.opengl.GL11;
import org.lwjgl.opengl.GL12;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import fyresmodjam.entities.EntityMysteryPotion;
import net.minecraft.client.renderer.Tessellator;
import net.minecraft.client.renderer.entity.Render;
import net.minecraft.client.renderer.texture.TextureMap;
import net.minecraft.entity.Entity;
import net.minecraft.entity.projectile.EntityPotion;
import net.minecraft.item.Item;
import net.minecraft.item.ItemPotion;
import net.minecraft.potion.PotionHelper;
import net.minecraft.util.IIcon;
import net.minecraft.util.ResourceLocation;
@SideOnly(Side.CLIENT)
public class RenderMysteryPotion extends Render {
private Item field_94151_a;
public RenderMysteryPotion(Item par1Item) {
field_94151_a = par1Item;
}
@Override
public void doRender(Entity par1Entity, double par2, double par4, double par6, float par8, float par9) {
IIcon icon = (par1Entity instanceof EntityMysteryPotion)
? field_94151_a.getIconFromDamage(par1Entity.getDataWatcher().getWatchableObjectInt(24))
: field_94151_a.getIconFromDamage(0);
if (icon != null) {
GL11.glPushMatrix();
GL11.glTranslatef((float) par2, (float) par4, (float) par6);
GL11.glEnable(GL12.GL_RESCALE_NORMAL);
GL11.glScalef(0.5F, 0.5F, 0.5F);
bindEntityTexture(par1Entity);
Tessellator tessellator = Tessellator.instance;
if (icon == ItemPotion.func_94589_d("bottle_splash")) {
int i = PotionHelper.func_77915_a(((EntityPotion) par1Entity).getPotionDamage(), false);
float f2 = (i >> 16 & 255) / 255.0F;
float f3 = (i >> 8 & 255) / 255.0F;
float f4 = (i & 255) / 255.0F;
GL11.glColor3f(f2, f3, f4);
GL11.glPushMatrix();
func_77026_a(tessellator, ItemPotion.func_94589_d("overlay"));
GL11.glPopMatrix();
GL11.glColor3f(1.0F, 1.0F, 1.0F);
}
func_77026_a(tessellator, icon);
GL11.glDisable(GL12.GL_RESCALE_NORMAL);
GL11.glPopMatrix();
}
}
@Override
protected ResourceLocation getEntityTexture(Entity par1Entity) {
return TextureMap.locationItemsTexture;
}
private void func_77026_a(Tessellator par1Tessellator, IIcon par2Icon) {
float f = par2Icon.getMinU();
float f1 = par2Icon.getMaxU();
float f2 = par2Icon.getMinV();
float f3 = par2Icon.getMaxV();
float f4 = 1.0F;
float f5 = 0.5F;
float f6 = 0.25F;
GL11.glRotatef(180.0F - renderManager.playerViewY, 0.0F, 1.0F, 0.0F);
GL11.glRotatef(-renderManager.playerViewX, 1.0F, 0.0F, 0.0F);
par1Tessellator.startDrawingQuads();
par1Tessellator.setNormal(0.0F, 1.0F, 0.0F);
par1Tessellator.addVertexWithUV(0.0F - f5, 0.0F - f6, 0.0D, f, f3);
par1Tessellator.addVertexWithUV(f4 - f5, 0.0F - f6, 0.0D, f1, f3);
par1Tessellator.addVertexWithUV(f4 - f5, f4 - f6, 0.0D, f1, f2);
par1Tessellator.addVertexWithUV(0.0F - f5, f4 - f6, 0.0D, f, f2);
par1Tessellator.draw();
}
}
|