package net.minecraft.client.renderer.entity; import java.util.Random; import net.minecraft.client.renderer.GlStateManager; import net.minecraft.client.renderer.texture.TextureMap; import net.minecraft.client.resources.model.IBakedModel; import net.minecraft.entity.Entity; import net.minecraft.entity.item.EntityItem; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.util.MathHelper; import net.minecraft.util.ResourceLocation; public class RenderEntityItem extends Render { private final RenderItem field_177080_a; private Random field_177079_e = new Random(); private static final String __OBFID = "CL_00002442"; public RenderEntityItem(RenderManager p_i46167_1_, RenderItem p_i46167_2_) { super(p_i46167_1_); this.field_177080_a = p_i46167_2_; this.shadowSize = 0.15F; this.shadowOpaque = 0.75F; } private int func_177077_a(EntityItem p_177077_1_, double p_177077_2_, double p_177077_4_, double p_177077_6_, float p_177077_8_, IBakedModel p_177077_9_) { ItemStack var10 = p_177077_1_.getEntityItem(); Item var11 = var10.getItem(); if (var11 == null) { return 0; } else { boolean var12 = p_177077_9_.isAmbientOcclusionEnabled(); int var13 = this.func_177078_a(var10); float var14 = 0.25F; float var15 = MathHelper.sin(((float)p_177077_1_.func_174872_o() + p_177077_8_) / 10.0F + p_177077_1_.hoverStart) * 0.1F + 0.1F; GlStateManager.translate((float)p_177077_2_, (float)p_177077_4_ + var15 + 0.25F, (float)p_177077_6_); float var16; if (var12 || this.renderManager.options != null && this.renderManager.options.fancyGraphics) { var16 = (((float)p_177077_1_.func_174872_o() + p_177077_8_) / 20.0F + p_177077_1_.hoverStart) * (180F / (float)Math.PI); GlStateManager.rotate(var16, 0.0F, 1.0F, 0.0F); } if (!var12) { var16 = -0.0F * (float)(var13 - 1) * 0.5F; float var17 = -0.0F * (float)(var13 - 1) * 0.5F; float var18 = -0.046875F * (float)(var13 - 1) * 0.5F; GlStateManager.translate(var16, var17, var18); } GlStateManager.color(1.0F, 1.0F, 1.0F, 1.0F); return var13; } } private int func_177078_a(ItemStack p_177078_1_) { byte var2 = 1; if (p_177078_1_.stackSize > 48) { var2 = 5; } else if (p_177078_1_.stackSize > 32) { var2 = 4; } else if (p_177078_1_.stackSize > 16) { var2 = 3; } else if (p_177078_1_.stackSize > 1) { var2 = 2; } return var2; } public void func_177075_a(EntityItem p_177075_1_, double p_177075_2_, double p_177075_4_, double p_177075_6_, float p_177075_8_, float p_177075_9_) { ItemStack var10 = p_177075_1_.getEntityItem(); this.field_177079_e.setSeed(187L); boolean var11 = false; if (this.bindEntityTexture(p_177075_1_)) { this.renderManager.renderEngine.getTexture(this.func_177076_a(p_177075_1_)).func_174936_b(false, false); var11 = true; } GlStateManager.enableRescaleNormal(); GlStateManager.alphaFunc(516, 0.1F); GlStateManager.enableBlend(); GlStateManager.tryBlendFuncSeparate(770, 771, 1, 0); GlStateManager.pushMatrix(); IBakedModel var12 = this.field_177080_a.getItemModelMesher().getItemModel(var10); int var13 = this.func_177077_a(p_177075_1_, p_177075_2_, p_177075_4_, p_177075_6_, p_177075_9_, var12); for (int var14 = 0; var14 < var13; ++var14) { if (var12.isAmbientOcclusionEnabled()) { GlStateManager.pushMatrix(); if (var14 > 0) { float var15 = (this.field_177079_e.nextFloat() * 2.0F - 1.0F) * 0.15F; float var16 = (this.field_177079_e.nextFloat() * 2.0F - 1.0F) * 0.15F; float var17 = (this.field_177079_e.nextFloat() * 2.0F - 1.0F) * 0.15F; GlStateManager.translate(var15, var16, var17); } GlStateManager.scale(0.5F, 0.5F, 0.5F); this.field_177080_a.func_180454_a(var10, var12); GlStateManager.popMatrix(); } else { this.field_177080_a.func_180454_a(var10, var12); GlStateManager.translate(0.0F, 0.0F, 0.046875F); } } GlStateManager.popMatrix(); GlStateManager.disableRescaleNormal(); GlStateManager.disableBlend(); this.bindEntityTexture(p_177075_1_); if (var11) { this.renderManager.renderEngine.getTexture(this.func_177076_a(p_177075_1_)).func_174935_a(); } super.doRender(p_177075_1_, p_177075_2_, p_177075_4_, p_177075_6_, p_177075_8_, p_177075_9_); } protected ResourceLocation func_177076_a(EntityItem p_177076_1_) { return TextureMap.locationBlocksTexture; } /** * Returns the location of an entity's texture. Doesn't seem to be called unless you call Render.bindEntityTexture. */ protected ResourceLocation getEntityTexture(Entity p_110775_1_) { return this.func_177076_a((EntityItem)p_110775_1_); } /** * Actually renders the given argument. This is a synthetic bridge method, always casting down its argument and then * handing it off to a worker function which does the actual work. In all probabilty, the class Render is generic * (Render<T extends Entity) and this method has signature public void doRender(T entity, double d, double d1, * double d2, float f, float f1). But JAD is pre 1.5 so doesn't do that. */ public void doRender(Entity p_76986_1_, double p_76986_2_, double p_76986_4_, double p_76986_6_, float p_76986_8_, float p_76986_9_) { this.func_177075_a((EntityItem)p_76986_1_, p_76986_2_, p_76986_4_, p_76986_6_, p_76986_8_, p_76986_9_); } }