Guest User

RenderNuke

a guest
Feb 10th, 2016
60
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.49 KB | None | 0 0
  1. package TheMod;
  2. import net.minecraft.client.Minecraft;
  3. import net.minecraft.client.renderer.BlockRendererDispatcher;
  4. import net.minecraft.client.renderer.GlStateManager;
  5. import net.minecraft.client.renderer.entity.Render;
  6. import net.minecraft.client.renderer.entity.RenderManager;
  7. import net.minecraft.client.renderer.entity.RenderTNTPrimed;
  8. import net.minecraft.client.renderer.texture.TextureMap;
  9. import net.minecraft.init.Blocks;
  10. import net.minecraft.util.MathHelper;
  11. import net.minecraft.util.ResourceLocation;
  12. import net.minecraftforge.fml.relauncher.Side;
  13. import net.minecraftforge.fml.relauncher.SideOnly;
  14.  
  15. @SideOnly(Side.CLIENT)
  16. public class RenderNuke extends Render<EntityNukePrimed>
  17. {
  18. public RenderNuke(RenderManager renderManagerIn)
  19. {
  20. super(renderManagerIn);
  21. this.shadowSize = 0.5F;
  22. }
  23.  
  24. /**
  25. * Actually renders the given argument. This is a synthetic bridge method, always casting down its argument and then
  26. * handing it off to a worker function which does the actual work. In all probabilty, the class Render is generic
  27. * (Render<T extends Entity>) and this method has signature public void func_76986_a(T entity, double d, double d1,
  28. * double d2, float f, float f1). But JAD is pre 1.5 so doe
  29. */
  30. public void doRender(EntityNukePrimed entity, double x, double y, double z, float entityYaw, float partialTicks)
  31. {
  32. BlockRendererDispatcher blockrendererdispatcher = Minecraft.getMinecraft().getBlockRendererDispatcher();
  33. GlStateManager.pushMatrix();
  34. GlStateManager.translate((float)x, (float)y + 0.5F, (float)z);
  35.  
  36. if ((float)entity.fuse - partialTicks + 1.0F < 10.0F)
  37. {
  38. float f = 1.0F - ((float)entity.fuse - partialTicks + 1.0F) / 10.0F;
  39. f = MathHelper.clamp_float(f, 0.0F, 1.0F);
  40. f = f * f;
  41. f = f * f;
  42. float f1 = 1.0F + f * 0.3F;
  43. GlStateManager.scale(f1, f1, f1);
  44. }
  45.  
  46. float f2 = (1.0F - ((float)entity.fuse - partialTicks + 1.0F) / 100.0F) * 0.8F;
  47. this.bindEntityTexture(entity);
  48. GlStateManager.translate(-0.5F, -0.5F, 0.5F);
  49. blockrendererdispatcher.renderBlockBrightness(Blocks.tnt.getDefaultState(), entity.getBrightness(partialTicks));
  50. GlStateManager.translate(0.0F, 0.0F, 1.0F);
  51.  
  52. if (entity.fuse / 5 % 2 == 0)
  53. {
  54. GlStateManager.disableTexture2D();
  55. GlStateManager.disableLighting();
  56. GlStateManager.enableBlend();
  57. GlStateManager.blendFunc(770, 772);
  58. GlStateManager.color(1.0F, 1.0F, 1.0F, f2);
  59. GlStateManager.doPolygonOffset(-3.0F, -3.0F);
  60. GlStateManager.enablePolygonOffset();
  61. blockrendererdispatcher.renderBlockBrightness(Blocks.tnt.getDefaultState(), 1.0F);
  62. GlStateManager.doPolygonOffset(0.0F, 0.0F);
  63. GlStateManager.disablePolygonOffset();
  64. GlStateManager.color(1.0F, 1.0F, 1.0F, 1.0F);
  65. GlStateManager.disableBlend();
  66. GlStateManager.enableLighting();
  67. GlStateManager.enableTexture2D();
  68. }
  69.  
  70. GlStateManager.popMatrix();
  71. super.doRender(entity, x, y, z, entityYaw, partialTicks);
  72. }
  73.  
  74. /**
  75. * Returns the location of an entity's texture. Doesn't seem to be called unless you call Render.bindEntityTexture.
  76. */
  77. protected ResourceLocation getEntityTexture(EntityNukePrimed entity)
  78. {
  79. return TextureMap.locationBlocksTexture;
  80. }
  81. }
Add Comment
Please, Sign In to add comment