Advertisement
Guest User

Untitled

a guest
Jul 21st, 2017
52
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 24.83 KB | None | 0 0
  1. package net.minecraft.client.renderer;
  2.  
  3. import net.minecraft.block.Block;
  4. import net.minecraft.block.material.Material;
  5. import net.minecraft.block.state.IBlockState;
  6. import net.minecraft.client.Minecraft;
  7. import net.minecraft.client.entity.AbstractClientPlayer;
  8. import net.minecraft.client.entity.EntityPlayerSP;
  9. import net.minecraft.client.renderer.block.model.ItemCameraTransforms;
  10. import net.minecraft.client.renderer.entity.Render;
  11. import net.minecraft.client.renderer.entity.RenderItem;
  12. import net.minecraft.client.renderer.entity.RenderManager;
  13. import net.minecraft.client.renderer.entity.RenderPlayer;
  14. import net.minecraft.client.renderer.texture.TextureAtlasSprite;
  15. import net.minecraft.client.renderer.texture.TextureMap;
  16. import net.minecraft.entity.EntityLivingBase;
  17. import net.minecraft.init.Items;
  18. import net.minecraft.item.EnumAction;
  19. import net.minecraft.item.Item;
  20. import net.minecraft.item.ItemStack;
  21. import net.minecraft.util.BlockPos;
  22. import net.minecraft.util.EnumWorldBlockLayer;
  23. import net.minecraft.util.MathHelper;
  24. import net.minecraft.util.ResourceLocation;
  25. import net.minecraft.world.storage.MapData;
  26. import org.lwjgl.opengl.GL11;
  27.  
  28. public class ItemRenderer
  29. {
  30. private static final ResourceLocation RES_MAP_BACKGROUND = new ResourceLocation("textures/map/map_background.png");
  31. private static final ResourceLocation RES_UNDERWATER_OVERLAY = new ResourceLocation("textures/misc/underwater.png");
  32.  
  33. /** A reference to the Minecraft object. */
  34. private final Minecraft mc;
  35. private ItemStack itemToRender;
  36.  
  37. /**
  38. * How far the current item has been equipped (0 disequipped and 1 fully up)
  39. */
  40. private float equippedProgress;
  41. private float prevEquippedProgress;
  42. private final RenderManager field_178111_g;
  43. private final RenderItem itemRenderer;
  44.  
  45. /** The index of the currently held item (0-8, or -1 if not yet updated) */
  46. private int equippedItemSlot = -1;
  47. private static final String __OBFID = "CL_00000953";
  48.  
  49. public ItemRenderer(Minecraft mcIn)
  50. {
  51. this.mc = mcIn;
  52. this.field_178111_g = mcIn.getRenderManager();
  53. this.itemRenderer = mcIn.getRenderItem();
  54. }
  55.  
  56. public void renderItem(EntityLivingBase p_178099_1_, ItemStack p_178099_2_, ItemCameraTransforms.TransformType p_178099_3_)
  57. {
  58. if (p_178099_2_ != null)
  59. {
  60. Item var4 = p_178099_2_.getItem();
  61. Block var5 = Block.getBlockFromItem(var4);
  62. GlStateManager.pushMatrix();
  63.  
  64. if (this.itemRenderer.func_175050_a(p_178099_2_))
  65. {
  66. GlStateManager.scale(2.0F, 2.0F, 2.0F);
  67.  
  68. if (this.func_178107_a(var5))
  69. {
  70. GlStateManager.depthMask(false);
  71. }
  72. }
  73.  
  74. this.itemRenderer.func_175049_a(p_178099_2_, p_178099_1_, p_178099_3_);
  75.  
  76. if (this.func_178107_a(var5))
  77. {
  78. GlStateManager.depthMask(true);
  79. }
  80.  
  81. GlStateManager.popMatrix();
  82. }
  83. }
  84.  
  85. private boolean func_178107_a(Block p_178107_1_)
  86. {
  87. return p_178107_1_ != null && p_178107_1_.getBlockLayer() == EnumWorldBlockLayer.TRANSLUCENT;
  88. }
  89.  
  90. private void func_178101_a(float p_178101_1_, float p_178101_2_)
  91. {
  92. GlStateManager.pushMatrix();
  93. GlStateManager.rotate(p_178101_1_, 1.0F, 0.0F, 0.0F);
  94. GlStateManager.rotate(p_178101_2_, 0.0F, 1.0F, 0.0F);
  95. RenderHelper.enableStandardItemLighting();
  96. GlStateManager.popMatrix();
  97. }
  98.  
  99. private void func_178109_a(AbstractClientPlayer p_178109_1_)
  100. {
  101. int var2 = this.mc.theWorld.getCombinedLight(new BlockPos(p_178109_1_.posX, p_178109_1_.posY + (double)p_178109_1_.getEyeHeight(), p_178109_1_.posZ), 0);
  102. float var3 = (float)(var2 & 65535);
  103. float var4 = (float)(var2 >> 16);
  104. OpenGlHelper.setLightmapTextureCoords(OpenGlHelper.lightmapTexUnit, var3, var4);
  105. }
  106.  
  107. private void func_178110_a(EntityPlayerSP p_178110_1_, float p_178110_2_)
  108. {
  109. float var3 = p_178110_1_.prevRenderArmPitch + (p_178110_1_.renderArmPitch - p_178110_1_.prevRenderArmPitch) * p_178110_2_;
  110. float var4 = p_178110_1_.prevRenderArmYaw + (p_178110_1_.renderArmYaw - p_178110_1_.prevRenderArmYaw) * p_178110_2_;
  111. GlStateManager.rotate((p_178110_1_.rotationPitch - var3) * 0.1F, 1.0F, 0.0F, 0.0F);
  112. GlStateManager.rotate((p_178110_1_.rotationYaw - var4) * 0.1F, 0.0F, 1.0F, 0.0F);
  113. }
  114.  
  115. private float func_178100_c(float p_178100_1_)
  116. {
  117. float var2 = 1.0F - p_178100_1_ / 45.0F + 0.1F;
  118. var2 = MathHelper.clamp_float(var2, 0.0F, 1.0F);
  119. var2 = -MathHelper.cos(var2 * (float)Math.PI) * 0.5F + 0.5F;
  120. return var2;
  121. }
  122.  
  123. private void func_180534_a(RenderPlayer p_180534_1_)
  124. {
  125. GlStateManager.pushMatrix();
  126. GlStateManager.rotate(54.0F, 0.0F, 1.0F, 0.0F);
  127. GlStateManager.rotate(64.0F, 1.0F, 0.0F, 0.0F);
  128. GlStateManager.rotate(-62.0F, 0.0F, 0.0F, 1.0F);
  129. GlStateManager.translate(0.25F, -0.85F, 0.75F);
  130. p_180534_1_.func_177138_b(this.mc.thePlayer);
  131. GlStateManager.popMatrix();
  132. }
  133.  
  134. private void func_178106_b(RenderPlayer p_178106_1_)
  135. {
  136. GlStateManager.pushMatrix();
  137. GlStateManager.rotate(92.0F, 0.0F, 1.0F, 0.0F);
  138. GlStateManager.rotate(45.0F, 1.0F, 0.0F, 0.0F);
  139. GlStateManager.rotate(41.0F, 0.0F, 0.0F, 1.0F);
  140. GlStateManager.translate(-0.3F, -1.1F, 0.45F);
  141. p_178106_1_.func_177139_c(this.mc.thePlayer);
  142. GlStateManager.popMatrix();
  143. }
  144.  
  145. private void func_178102_b(AbstractClientPlayer p_178102_1_)
  146. {
  147. this.mc.getTextureManager().bindTexture(p_178102_1_.getLocationSkin());
  148. Render var2 = this.field_178111_g.getEntityRenderObject(this.mc.thePlayer);
  149. RenderPlayer var3 = (RenderPlayer)var2;
  150.  
  151. if (!p_178102_1_.isInvisible())
  152. {
  153. this.func_180534_a(var3);
  154. this.func_178106_b(var3);
  155. }
  156. }
  157.  
  158. private void func_178097_a(AbstractClientPlayer p_178097_1_, float p_178097_2_, float p_178097_3_, float p_178097_4_)
  159. {
  160. float var5 = -0.4F * MathHelper.sin(MathHelper.sqrt_float(p_178097_4_) * (float)Math.PI);
  161. float var6 = 0.2F * MathHelper.sin(MathHelper.sqrt_float(p_178097_4_) * (float)Math.PI * 2.0F);
  162. float var7 = -0.2F * MathHelper.sin(p_178097_4_ * (float)Math.PI);
  163. GlStateManager.translate(var5, var6, var7);
  164. float var8 = this.func_178100_c(p_178097_2_);
  165. GlStateManager.translate(0.0F, 0.04F, -0.72F);
  166. GlStateManager.translate(0.0F, p_178097_3_ * -1.2F, 0.0F);
  167. GlStateManager.translate(0.0F, var8 * -0.5F, 0.0F);
  168. GlStateManager.rotate(90.0F, 0.0F, 1.0F, 0.0F);
  169. GlStateManager.rotate(var8 * -85.0F, 0.0F, 0.0F, 1.0F);
  170. GlStateManager.rotate(0.0F, 1.0F, 0.0F, 0.0F);
  171. this.func_178102_b(p_178097_1_);
  172. float var9 = MathHelper.sin(p_178097_4_ * p_178097_4_ * (float)Math.PI);
  173. float var10 = MathHelper.sin(MathHelper.sqrt_float(p_178097_4_) * (float)Math.PI);
  174. GlStateManager.rotate(var9 * -20.0F, 0.0F, 1.0F, 0.0F);
  175. GlStateManager.rotate(var10 * -20.0F, 0.0F, 0.0F, 1.0F);
  176. GlStateManager.rotate(var10 * -80.0F, 1.0F, 0.0F, 0.0F);
  177. GlStateManager.scale(0.38F, 0.38F, 0.38F);
  178. GlStateManager.rotate(90.0F, 0.0F, 1.0F, 0.0F);
  179. GlStateManager.rotate(180.0F, 0.0F, 0.0F, 1.0F);
  180. GlStateManager.rotate(0.0F, 1.0F, 0.0F, 0.0F);
  181. GlStateManager.translate(-1.0F, -1.0F, 0.0F);
  182. GlStateManager.scale(0.015625F, 0.015625F, 0.015625F);
  183. this.mc.getTextureManager().bindTexture(RES_MAP_BACKGROUND);
  184. Tessellator var11 = Tessellator.getInstance();
  185. WorldRenderer var12 = var11.getWorldRenderer();
  186. GL11.glNormal3f(0.0F, 0.0F, -1.0F);
  187. var12.startDrawingQuads();
  188. var12.addVertexWithUV(-7.0D, 135.0D, 0.0D, 0.0D, 1.0D);
  189. var12.addVertexWithUV(135.0D, 135.0D, 0.0D, 1.0D, 1.0D);
  190. var12.addVertexWithUV(135.0D, -7.0D, 0.0D, 1.0D, 0.0D);
  191. var12.addVertexWithUV(-7.0D, -7.0D, 0.0D, 0.0D, 0.0D);
  192. var11.draw();
  193. MapData var13 = Items.filled_map.getMapData(this.itemToRender, this.mc.theWorld);
  194.  
  195. if (var13 != null)
  196. {
  197. this.mc.entityRenderer.getMapItemRenderer().func_148250_a(var13, false);
  198. }
  199. }
  200.  
  201. private void func_178095_a(AbstractClientPlayer p_178095_1_, float p_178095_2_, float p_178095_3_)
  202. {
  203. float var4 = -0.3F * MathHelper.sin(MathHelper.sqrt_float(p_178095_3_) * (float)Math.PI);
  204. float var5 = 0.4F * MathHelper.sin(MathHelper.sqrt_float(p_178095_3_) * (float)Math.PI * 2.0F);
  205. float var6 = -0.4F * MathHelper.sin(p_178095_3_ * (float)Math.PI);
  206. GlStateManager.translate(var4, var5, var6);
  207. GlStateManager.translate(0.64000005F, -0.6F, -0.71999997F);
  208. GlStateManager.translate(0.0F, p_178095_2_ * -0.6F, 0.0F);
  209. GlStateManager.rotate(45.0F, 0.0F, 1.0F, 0.0F);
  210. float var7 = MathHelper.sin(p_178095_3_ * p_178095_3_ * (float)Math.PI);
  211. float var8 = MathHelper.sin(MathHelper.sqrt_float(p_178095_3_) * (float)Math.PI);
  212. GlStateManager.rotate(var8 * 70.0F, 0.0F, 1.0F, 0.0F);
  213. GlStateManager.rotate(var7 * -20.0F, 0.0F, 0.0F, 1.0F);
  214. this.mc.getTextureManager().bindTexture(p_178095_1_.getLocationSkin());
  215. GlStateManager.translate(-1.0F, 3.6F, 3.5F);
  216. GlStateManager.rotate(120.0F, 0.0F, 0.0F, 1.0F);
  217. GlStateManager.rotate(200.0F, 1.0F, 0.0F, 0.0F);
  218. GlStateManager.rotate(-135.0F, 0.0F, 1.0F, 0.0F);
  219. GlStateManager.scale(1.0F, 1.0F, 1.0F);
  220. GlStateManager.translate(5.6F, 0.0F, 0.0F);
  221. Render var9 = this.field_178111_g.getEntityRenderObject(this.mc.thePlayer);
  222. RenderPlayer var10 = (RenderPlayer)var9;
  223. var10.func_177138_b(this.mc.thePlayer);
  224. }
  225.  
  226. private void func_178105_d(float p_178105_1_)
  227. {
  228. float var2 = -0.4F * MathHelper.sin(MathHelper.sqrt_float(p_178105_1_) * (float)Math.PI);
  229. float var3 = 0.2F * MathHelper.sin(MathHelper.sqrt_float(p_178105_1_) * (float)Math.PI * 2.0F);
  230. float var4 = -0.2F * MathHelper.sin(p_178105_1_ * (float)Math.PI);
  231. GlStateManager.translate(var2, var3, var4);
  232. }
  233.  
  234. private void func_178104_a(AbstractClientPlayer p_178104_1_, float p_178104_2_)
  235. {
  236. float var3 = (float)p_178104_1_.getItemInUseCount() - p_178104_2_ + 1.0F;
  237. float var4 = var3 / (float)this.itemToRender.getMaxItemUseDuration();
  238. float var5 = MathHelper.abs(MathHelper.cos(var3 / 4.0F * (float)Math.PI) * 0.1F);
  239.  
  240. if (var4 >= 0.8F)
  241. {
  242. var5 = 0.0F;
  243. }
  244.  
  245. GlStateManager.translate(0.0F, var5, 0.0F);
  246. float var6 = 1.0F - (float)Math.pow((double)var4, 27.0D);
  247. GlStateManager.translate(var6 * 0.6F, var6 * -0.5F, var6 * 0.0F);
  248. GlStateManager.rotate(var6 * 90.0F, 0.0F, 1.0F, 0.0F);
  249. GlStateManager.rotate(var6 * 10.0F, 1.0F, 0.0F, 0.0F);
  250. GlStateManager.rotate(var6 * 30.0F, 0.0F, 0.0F, 1.0F);
  251. }
  252.  
  253. private void func_178096_b(float p_178096_1_, float p_178096_2_)
  254. {
  255. GlStateManager.translate(0.56F, -0.52F, -0.71999997F);
  256. GlStateManager.translate(0.0F, p_178096_1_ * -0.6F, 0.0F);
  257. GlStateManager.rotate(45.0F, 0.0F, 1.0F, 0.0F);
  258. float var3 = MathHelper.sin(p_178096_2_ * p_178096_2_ * (float)Math.PI);
  259. float var4 = MathHelper.sin(MathHelper.sqrt_float(p_178096_2_) * (float)Math.PI);
  260. GlStateManager.rotate(var3 * -20.0F, 0.0F, 1.0F, 0.0F);
  261. GlStateManager.rotate(var4 * -20.0F, 0.0F, 0.0F, 1.0F);
  262. GlStateManager.rotate(var4 * -80.0F, 1.0F, 0.0F, 0.0F);
  263. GlStateManager.scale(0.4F, 0.4F, 0.4F);
  264. }
  265.  
  266. private void func_178098_a(float p_178098_1_, AbstractClientPlayer p_178098_2_)
  267. {
  268. GlStateManager.rotate(-18.0F, 0.0F, 0.0F, 1.0F);
  269. GlStateManager.rotate(-12.0F, 0.0F, 1.0F, 0.0F);
  270. GlStateManager.rotate(-8.0F, 1.0F, 0.0F, 0.0F);
  271. GlStateManager.translate(-0.9F, 0.2F, 0.0F);
  272. float var3 = (float)this.itemToRender.getMaxItemUseDuration() - ((float)p_178098_2_.getItemInUseCount() - p_178098_1_ + 1.0F);
  273. float var4 = var3 / 20.0F;
  274. var4 = (var4 * var4 + var4 * 2.0F) / 3.0F;
  275.  
  276. if (var4 > 1.0F)
  277. {
  278. var4 = 1.0F;
  279. }
  280.  
  281. if (var4 > 0.1F)
  282. {
  283. float var5 = MathHelper.sin((var3 - 0.1F) * 1.3F);
  284. float var6 = var4 - 0.1F;
  285. float var7 = var5 * var6;
  286. GlStateManager.translate(var7 * 0.0F, var7 * 0.01F, var7 * 0.0F);
  287. }
  288.  
  289. GlStateManager.translate(var4 * 0.0F, var4 * 0.0F, var4 * 0.1F);
  290. GlStateManager.scale(1.0F, 1.0F, 1.0F + var4 * 0.2F);
  291. }
  292.  
  293. private void func_178103_d()
  294. {
  295. GlStateManager.translate(-0.5F, 0.2F, 0.0F);
  296. GlStateManager.rotate(30.0F, 0.0F, 1.0F, 0.0F);
  297. GlStateManager.rotate(-80.0F, 1.0F, 0.0F, 0.0F);
  298. GlStateManager.rotate(60.0F, 0.0F, 1.0F, 0.0F);
  299. }
  300.  
  301. /**
  302. * Renders the active item in the player's hand when in first person mode. Args: partialTickTime
  303. */
  304. public void renderItemInFirstPerson(float p_78440_1_)
  305. {
  306. float var2 = 1.0F - (this.prevEquippedProgress + (this.equippedProgress - this.prevEquippedProgress) * p_78440_1_);
  307. EntityPlayerSP var3 = this.mc.thePlayer;
  308. float var4 = var3.getSwingProgress(p_78440_1_);
  309. float var5 = var3.prevRotationPitch + (var3.rotationPitch - var3.prevRotationPitch) * p_78440_1_;
  310. float var6 = var3.prevRotationYaw + (var3.rotationYaw - var3.prevRotationYaw) * p_78440_1_;
  311. this.func_178101_a(var5, var6);
  312. this.func_178109_a(var3);
  313. this.func_178110_a((EntityPlayerSP)var3, p_78440_1_);
  314. GlStateManager.enableRescaleNormal();
  315. GlStateManager.pushMatrix();
  316.  
  317. if (this.itemToRender != null)
  318. {
  319. if (this.itemToRender.getItem() == Items.filled_map)
  320. {
  321. this.func_178097_a(var3, var5, var2, var4);
  322. }
  323. else if (var3.getItemInUseCount() > 0)
  324. {
  325. EnumAction var7 = this.itemToRender.getItemUseAction();
  326.  
  327. switch (ItemRenderer.SwitchEnumAction.field_178094_a[var7.ordinal()])
  328. {
  329. case 1:
  330. this.func_178096_b(0.2F, var4);
  331. GlStateManager.translate(0.2F, 0.5F, 0.0F);
  332. break;
  333.  
  334. case 2:
  335. case 3:
  336. this.func_178104_a(var3, p_78440_1_);
  337. this.func_178096_b(var2, 0.0F);
  338. break;
  339.  
  340. case 4:
  341. this.func_178096_b(var2, 0.0F);
  342. this.func_178103_d();
  343. break;
  344.  
  345. case 5:
  346. this.func_178096_b(var2, 0.0F);
  347. this.func_178098_a(p_78440_1_, var3);
  348. }
  349. }
  350. else
  351. {
  352. this.func_178105_d(var4);
  353. this.func_178096_b(var2, var4);
  354. }
  355.  
  356. this.renderItem(var3, this.itemToRender, ItemCameraTransforms.TransformType.FIRST_PERSON);
  357. }
  358. else if (!var3.isInvisible())
  359. {
  360. this.func_178095_a(var3, var2, var4);
  361. }
  362.  
  363. GlStateManager.popMatrix();
  364. GlStateManager.disableRescaleNormal();
  365. RenderHelper.disableStandardItemLighting();
  366. }
  367.  
  368. /**
  369. * Renders all the overlays that are in first person mode. Args: partialTickTime
  370. */
  371. public void renderOverlays(float p_78447_1_)
  372. {
  373. GlStateManager.disableAlpha();
  374.  
  375. if (this.mc.thePlayer.isEntityInsideOpaqueBlock())
  376. {
  377. IBlockState var2 = this.mc.theWorld.getBlockState(new BlockPos(this.mc.thePlayer));
  378. EntityPlayerSP var3 = this.mc.thePlayer;
  379.  
  380. for (int var4 = 0; var4 < 8; ++var4)
  381. {
  382. double var5 = var3.posX + (double)(((float)((var4 >> 0) % 2) - 0.5F) * var3.width * 0.8F);
  383. double var7 = var3.posY + (double)(((float)((var4 >> 1) % 2) - 0.5F) * 0.1F);
  384. double var9 = var3.posZ + (double)(((float)((var4 >> 2) % 2) - 0.5F) * var3.width * 0.8F);
  385. BlockPos var11 = new BlockPos(var5, var7 + (double)var3.getEyeHeight(), var9);
  386. IBlockState var12 = this.mc.theWorld.getBlockState(var11);
  387.  
  388. if (var12.getBlock().isVisuallyOpaque())
  389. {
  390. var2 = var12;
  391. }
  392. }
  393.  
  394. if (var2.getBlock().getRenderType() != -1)
  395. {
  396. this.func_178108_a(p_78447_1_, this.mc.getBlockRendererDispatcher().func_175023_a().func_178122_a(var2));
  397. }
  398. }
  399.  
  400. if (!this.mc.thePlayer.func_175149_v())
  401. {
  402. if (this.mc.thePlayer.isInsideOfMaterial(Material.water))
  403. {
  404. this.renderWaterOverlayTexture(p_78447_1_);
  405. }
  406.  
  407. if (this.mc.thePlayer.isBurning())
  408. {
  409. this.renderFireInFirstPerson(p_78447_1_);
  410. }
  411. }
  412.  
  413. GlStateManager.enableAlpha();
  414. }
  415.  
  416. private void func_178108_a(float p_178108_1_, TextureAtlasSprite p_178108_2_)
  417. {
  418. this.mc.getTextureManager().bindTexture(TextureMap.locationBlocksTexture);
  419. Tessellator var3 = Tessellator.getInstance();
  420. WorldRenderer var4 = var3.getWorldRenderer();
  421. float var5 = 0.1F;
  422. GlStateManager.color(var5, var5, var5, 0.5F);
  423. GlStateManager.pushMatrix();
  424. float var6 = -1.0F;
  425. float var7 = 1.0F;
  426. float var8 = -1.0F;
  427. float var9 = 1.0F;
  428. float var10 = -0.5F;
  429. float var11 = p_178108_2_.getMinU();
  430. float var12 = p_178108_2_.getMaxU();
  431. float var13 = p_178108_2_.getMinV();
  432. float var14 = p_178108_2_.getMaxV();
  433. var4.startDrawingQuads();
  434. var4.addVertexWithUV((double)var6, (double)var8, (double)var10, (double)var12, (double)var14);
  435. var4.addVertexWithUV((double)var7, (double)var8, (double)var10, (double)var11, (double)var14);
  436. var4.addVertexWithUV((double)var7, (double)var9, (double)var10, (double)var11, (double)var13);
  437. var4.addVertexWithUV((double)var6, (double)var9, (double)var10, (double)var12, (double)var13);
  438. var3.draw();
  439. GlStateManager.popMatrix();
  440. GlStateManager.color(1.0F, 1.0F, 1.0F, 1.0F);
  441. }
  442.  
  443. /**
  444. * Renders a texture that warps around based on the direction the player is looking. Texture needs to be bound
  445. * before being called. Used for the water overlay. Args: parialTickTime
  446. */
  447. private void renderWaterOverlayTexture(float p_78448_1_)
  448. {
  449. this.mc.getTextureManager().bindTexture(RES_UNDERWATER_OVERLAY);
  450. Tessellator var2 = Tessellator.getInstance();
  451. WorldRenderer var3 = var2.getWorldRenderer();
  452. float var4 = this.mc.thePlayer.getBrightness(p_78448_1_);
  453. GlStateManager.color(var4, var4, var4, 0.5F);
  454. GlStateManager.enableBlend();
  455. GlStateManager.tryBlendFuncSeparate(770, 771, 1, 0);
  456. GlStateManager.pushMatrix();
  457. float var5 = 4.0F;
  458. float var6 = -1.0F;
  459. float var7 = 1.0F;
  460. float var8 = -1.0F;
  461. float var9 = 1.0F;
  462. float var10 = -0.5F;
  463. float var11 = -this.mc.thePlayer.rotationYaw / 64.0F;
  464. float var12 = this.mc.thePlayer.rotationPitch / 64.0F;
  465. var3.startDrawingQuads();
  466. var3.addVertexWithUV((double)var6, (double)var8, (double)var10, (double)(var5 + var11), (double)(var5 + var12));
  467. var3.addVertexWithUV((double)var7, (double)var8, (double)var10, (double)(0.0F + var11), (double)(var5 + var12));
  468. var3.addVertexWithUV((double)var7, (double)var9, (double)var10, (double)(0.0F + var11), (double)(0.0F + var12));
  469. var3.addVertexWithUV((double)var6, (double)var9, (double)var10, (double)(var5 + var11), (double)(0.0F + var12));
  470. var2.draw();
  471. GlStateManager.popMatrix();
  472. GlStateManager.color(1.0F, 1.0F, 1.0F, 1.0F);
  473. GlStateManager.disableBlend();
  474. }
  475.  
  476. /**
  477. * Renders the fire on the screen for first person mode. Arg: partialTickTime
  478. */
  479. private void renderFireInFirstPerson(float p_78442_1_)
  480. {
  481. Tessellator var2 = Tessellator.getInstance();
  482. WorldRenderer var3 = var2.getWorldRenderer();
  483. GlStateManager.color(1.0F, 1.0F, 1.0F, 0.9F);
  484. GlStateManager.depthFunc(519);
  485. GlStateManager.depthMask(false);
  486. GlStateManager.enableBlend();
  487. GlStateManager.tryBlendFuncSeparate(770, 771, 1, 0);
  488. float var4 = 1.0F;
  489.  
  490. for (int var5 = 0; var5 < 2; ++var5)
  491. {
  492. GlStateManager.pushMatrix();
  493. TextureAtlasSprite var6 = this.mc.getTextureMapBlocks().getAtlasSprite("minecraft:blocks/fire_layer_1");
  494. this.mc.getTextureManager().bindTexture(TextureMap.locationBlocksTexture);
  495. float var7 = var6.getMinU();
  496. float var8 = var6.getMaxU();
  497. float var9 = var6.getMinV();
  498. float var10 = var6.getMaxV();
  499. float var11 = (0.0F - var4) / 2.0F;
  500. float var12 = var11 + var4;
  501. float var13 = 0.0F - var4 / 2.0F;
  502. float var14 = var13 + var4;
  503. float var15 = -0.5F;
  504. GlStateManager.translate((float)(-(var5 * 2 - 1)) * 0.24F, -0.3F, 0.0F);
  505. GlStateManager.rotate((float)(var5 * 2 - 1) * 10.0F, 0.0F, 1.0F, 0.0F);
  506. var3.startDrawingQuads();
  507. var3.addVertexWithUV((double)var11, (double)var13, (double)var15, (double)var8, (double)var10);
  508. var3.addVertexWithUV((double)var12, (double)var13, (double)var15, (double)var7, (double)var10);
  509. var3.addVertexWithUV((double)var12, (double)var14, (double)var15, (double)var7, (double)var9);
  510. var3.addVertexWithUV((double)var11, (double)var14, (double)var15, (double)var8, (double)var9);
  511. var2.draw();
  512. GlStateManager.popMatrix();
  513. }
  514.  
  515. GlStateManager.color(1.0F, 1.0F, 1.0F, 1.0F);
  516. GlStateManager.disableBlend();
  517. GlStateManager.depthMask(true);
  518. GlStateManager.depthFunc(515);
  519. }
  520.  
  521. public void updateEquippedItem()
  522. {
  523. this.prevEquippedProgress = this.equippedProgress;
  524. EntityPlayerSP var1 = this.mc.thePlayer;
  525. ItemStack var2 = var1.inventory.getCurrentItem();
  526. boolean var3 = false;
  527.  
  528. if (this.itemToRender != null && var2 != null)
  529. {
  530. if (!this.itemToRender.getIsItemStackEqual(var2))
  531. {
  532. var3 = true;
  533. }
  534. }
  535. else if (this.itemToRender == null && var2 == null)
  536. {
  537. var3 = false;
  538. }
  539. else
  540. {
  541. var3 = true;
  542. }
  543.  
  544. float var4 = 0.4F;
  545. float var5 = var3 ? 0.0F : 1.0F;
  546. float var6 = MathHelper.clamp_float(var5 - this.equippedProgress, -var4, var4);
  547. this.equippedProgress += var6;
  548.  
  549. if (this.equippedProgress < 0.1F)
  550. {
  551. this.itemToRender = var2;
  552. this.equippedItemSlot = var1.inventory.currentItem;
  553. }
  554. }
  555.  
  556. /**
  557. * Resets equippedProgress
  558. */
  559. public void resetEquippedProgress()
  560. {
  561. this.equippedProgress = 0.0F;
  562. }
  563.  
  564. /**
  565. * Resets equippedProgress
  566. */
  567. public void resetEquippedProgress2()
  568. {
  569. this.equippedProgress = 0.0F;
  570. }
  571.  
  572. static final class SwitchEnumAction
  573. {
  574. static final int[] field_178094_a = new int[EnumAction.values().length];
  575. private static final String __OBFID = "CL_00002537";
  576.  
  577. static
  578. {
  579. try
  580. {
  581. field_178094_a[EnumAction.NONE.ordinal()] = 1;
  582. }
  583. catch (NoSuchFieldError var5)
  584. {
  585. ;
  586. }
  587.  
  588. try
  589. {
  590. field_178094_a[EnumAction.EAT.ordinal()] = 2;
  591. }
  592. catch (NoSuchFieldError var4)
  593. {
  594. ;
  595. }
  596.  
  597. try
  598. {
  599. field_178094_a[EnumAction.DRINK.ordinal()] = 3;
  600. }
  601. catch (NoSuchFieldError var3)
  602. {
  603. ;
  604. }
  605.  
  606. try
  607. {
  608. field_178094_a[EnumAction.BLOCK.ordinal()] = 4;
  609. }
  610. catch (NoSuchFieldError var2)
  611. {
  612. ;
  613. }
  614.  
  615. try
  616. {
  617. field_178094_a[EnumAction.BOW.ordinal()] = 5;
  618. }
  619. catch (NoSuchFieldError var1)
  620. {
  621. ;
  622. }
  623. }
  624. }
  625. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement