Advertisement
Corosus

RenderScent code

Jul 27th, 2011
89
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.86 KB | None | 0 0
  1. package net.minecraft.src;
  2.  
  3. import net.minecraft.src.AxisAlignedBB;
  4. import net.minecraft.src.Entity;
  5. import net.minecraft.src.EntityScent;
  6. import net.minecraft.src.Render;
  7. import net.minecraft.src.Tessellator;
  8. import org.lwjgl.opengl.GL11;
  9.  
  10. public class RenderScent extends Render {
  11.  
  12. public static final boolean renderLine = true;
  13. public static final boolean renderBobber = false;
  14. public static float yoffset = 0.4F;
  15. public static float caughtOffset = 0.8F;
  16. public static int stringColor = 8947848;
  17.  
  18.  
  19. public void doRenderNode(Entity var1, double var2, double var4, double var6, float var8, float var9) {
  20. //System.out.println("1");
  21.  
  22. //System.out.println("2");
  23. if (((EntityScent)var1).type == 1) {
  24. //renderImage(var1, var2, var4, var6, var8, var9, "/misc/shadow.png");
  25. } else {
  26. renderImage(var1, var2, var4, var6, var8, var9, "/misc/blood.png");
  27.  
  28. }
  29. //}
  30. }
  31.  
  32. public void doRender(Entity var1, double var2, double var4, double var6, float var8, float var9) {
  33.  
  34.  
  35. //if (((EntityScent)var1).type == 0) {
  36. shadowSize = 1.0F;
  37. //System.out.println("!!!!!!!!!!!!!! - " + (double)(((double)((EntityScent)var1).strength)/100.0D));
  38. //}
  39. GL11.glPushMatrix();
  40.  
  41. this.doRenderNode(var1, var2, var4, var6, var8, var9);
  42. shadowSize = 0.0F;
  43. //renderOffsetAABB(var1.boundingBox, var2 - var1.lastTickPosX, var4 - var1.lastTickPosY, var6 - var1.lastTickPosZ, ((EntityScent)var1).isUsed);
  44. GL11.glPopMatrix();
  45.  
  46. }
  47.  
  48. private void renderImage(Entity var1, double var2, double var4, double var6, float var8, float var9, String img) {
  49. GL11.glEnable(3042 /*GL_BLEND*/);
  50. GL11.glBlendFunc(770, 771);
  51. RenderEngine var10 = this.renderManager.renderEngine;
  52. this.loadTexture(img);
  53. //var10.bindTexture(var10.getTexture(img));
  54. World var11 = this.getWorldFromRenderManager();
  55. GL11.glDepthMask(false);
  56. float var12 = this.shadowSize;
  57. double var13 = var1.lastTickPosX + (var1.posX - var1.lastTickPosX) * (double)var9;
  58. double var15 = var1.lastTickPosY + (var1.posY - var1.lastTickPosY) * (double)var9 + (double)var1.getShadowSize();
  59. double var17 = var1.lastTickPosZ + (var1.posZ - var1.lastTickPosZ) * (double)var9;
  60. int var19 = MathHelper.floor_double(var13 - (double)var12);
  61. int var20 = MathHelper.floor_double(var13 + (double)var12);
  62. int var21 = MathHelper.floor_double(var15 - (double)var12);
  63. int var22 = MathHelper.floor_double(var15);
  64. int var23 = MathHelper.floor_double(var17 - (double)var12);
  65. int var24 = MathHelper.floor_double(var17 + (double)var12);
  66. double var25 = var2 - var13;
  67. double var27 = var4 - var15;
  68. double var29 = var6 - var17;
  69. Tessellator var31 = Tessellator.instance;
  70. var31.startDrawingQuads();
  71. double str = (double)(((double)((EntityScent)var1).strength)/100.0D);
  72. //System.out.println("hmmm? - " + var1 + " - " + str);
  73. for(int var32 = var19; var32 <= var20; ++var32) {
  74. for(int var33 = var21; var33 <= var22; ++var33) {
  75. for(int var34 = var23; var34 <= var24; ++var34) {
  76. int var35 = var11.getBlockId(var32, var33 - 1, var34);
  77. //System.out.println("1 - " + var35 + " - " + var11.getBlockLightValue(var32, var33, var34));
  78. if(var35 > 0 && var11.getBlockLightValue(var32, var33, var34) > 3) {
  79. //System.out.println("2");
  80. this.renderImageOnBlock(Block.blocksList[var35], var2, var4 + (double)var1.getShadowSize(), var6, var32, var33, var34, var8, var12, var25, var27 + (double)var1.getShadowSize(), var29, str);
  81. }
  82. }
  83. }
  84. }
  85.  
  86. var31.draw();
  87. GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
  88. GL11.glDisable(3042 /*GL_BLEND*/);
  89. GL11.glDepthMask(true);
  90. }
  91.  
  92. private World getWorldFromRenderManager() {
  93. return this.renderManager.worldObj;
  94. }
  95.  
  96. private void renderImageOnBlock(Block var1, double var2, double var4, double var6, int var8, int var9, int var10, float var11, float var12, double var13, double var15, double var17, double transparency) {
  97. Tessellator var19 = Tessellator.instance;
  98. //System.out.println("3");
  99. if(var1.renderAsNormalBlock()) {
  100. double var20 = transparency;//((double)var11 - (var4 - ((double)var9 + var15)) / 2.0D) * 0.5D * (double)this.getWorldFromRenderManager().getLightBrightness(var8, var9, var10);
  101. //System.out.println("4");
  102. //if(var20 >= 0.0D) {
  103. //System.out.println("5");
  104. if(var20 > 1.0D) {
  105. var20 = 1.0D;
  106. }
  107. //System.out.println(var20);
  108. var19.setColorRGBA_F(1.0F, 1.0F, 1.0F, (float)var20);
  109. double var22 = (double)var8 + var1.minX + var13;
  110. double var24 = (double)var8 + var1.maxX + var13;
  111. double var26 = (double)var9 + var1.minY + var15 + 0.015625D;
  112. double var28 = (double)var10 + var1.minZ + var17;
  113. double var30 = (double)var10 + var1.maxZ + var17;
  114. float var32 = (float)((var2 - var22) / 2.0D / (double)var12 + 0.5D);
  115. float var33 = (float)((var2 - var24) / 2.0D / (double)var12 + 0.5D);
  116. float var34 = (float)((var6 - var28) / 2.0D / (double)var12 + 0.5D);
  117. float var35 = (float)((var6 - var30) / 2.0D / (double)var12 + 0.5D);
  118. var19.addVertexWithUV(var22, var26, var28, (double)var32, (double)var34);
  119. var19.addVertexWithUV(var22, var26, var30, (double)var32, (double)var35);
  120. var19.addVertexWithUV(var24, var26, var30, (double)var33, (double)var35);
  121. var19.addVertexWithUV(var24, var26, var28, (double)var33, (double)var34);
  122. //}
  123. }
  124. }
  125.  
  126. public static void renderOffsetAABB(AxisAlignedBB var0, double var1, double var3, double var5, boolean var7) {
  127. GL11.glDisable(3553 /*GL_TEXTURE_2D*/);
  128. Tessellator var8 = Tessellator.instance;
  129. if(var7) {
  130. GL11.glColor4f(0.0F, 0.0F, 1.0F, 1.0F);
  131. } else {
  132. GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
  133. }
  134.  
  135. var8.startDrawingQuads();
  136. var8.setTranslationD(var1, var3, var5);
  137. var8.setNormal(0.0F, 0.0F, -1.0F);
  138. var8.addVertex(var0.minX, var0.maxY, var0.minZ);
  139. var8.addVertex(var0.maxX, var0.maxY, var0.minZ);
  140. var8.addVertex(var0.maxX, var0.minY, var0.minZ);
  141. var8.addVertex(var0.minX, var0.minY, var0.minZ);
  142. var8.setNormal(0.0F, 0.0F, 1.0F);
  143. var8.addVertex(var0.minX, var0.minY, var0.maxZ);
  144. var8.addVertex(var0.maxX, var0.minY, var0.maxZ);
  145. var8.addVertex(var0.maxX, var0.maxY, var0.maxZ);
  146. var8.addVertex(var0.minX, var0.maxY, var0.maxZ);
  147. var8.setNormal(0.0F, -1.0F, 0.0F);
  148. var8.addVertex(var0.minX, var0.minY, var0.minZ);
  149. var8.addVertex(var0.maxX, var0.minY, var0.minZ);
  150. var8.addVertex(var0.maxX, var0.minY, var0.maxZ);
  151. var8.addVertex(var0.minX, var0.minY, var0.maxZ);
  152. var8.setNormal(0.0F, 1.0F, 0.0F);
  153. var8.addVertex(var0.minX, var0.maxY, var0.maxZ);
  154. var8.addVertex(var0.maxX, var0.maxY, var0.maxZ);
  155. var8.addVertex(var0.maxX, var0.maxY, var0.minZ);
  156. var8.addVertex(var0.minX, var0.maxY, var0.minZ);
  157. var8.setNormal(-1.0F, 0.0F, 0.0F);
  158. var8.addVertex(var0.minX, var0.minY, var0.maxZ);
  159. var8.addVertex(var0.minX, var0.maxY, var0.maxZ);
  160. var8.addVertex(var0.minX, var0.maxY, var0.minZ);
  161. var8.addVertex(var0.minX, var0.minY, var0.minZ);
  162. var8.setNormal(1.0F, 0.0F, 0.0F);
  163. var8.addVertex(var0.maxX, var0.minY, var0.minZ);
  164. var8.addVertex(var0.maxX, var0.maxY, var0.minZ);
  165. var8.addVertex(var0.maxX, var0.maxY, var0.maxZ);
  166. var8.addVertex(var0.maxX, var0.minY, var0.maxZ);
  167. var8.setTranslationD(0.0D, 0.0D, 0.0D);
  168. var8.draw();
  169. GL11.glEnable(3553 /*GL_TEXTURE_2D*/);
  170. }
  171.  
  172. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement