Advertisement
Corosus

Waves so far

May 10th, 2012
48
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 18.03 KB | None | 0 0
  1. public static void renderHook(float var1) {
  2.         //Map test = new HashMap();
  3.        
  4.         //RenderManager.instance.renderEngine = mc.renderGlobal.renderEngine;
  5.        
  6.         if (RenderManager.instance.renderEngine == null) return;
  7.        
  8.         //Wave Renderer stuff
  9.         c_w_WaveRenderer wr = new c_w_WaveRenderer();
  10.         wr.setRenderManager(RenderManager.instance);
  11.         Entity player = mc.thePlayer;
  12.         if (true) {
  13.             float[] heights = {0.2f,0.3f,0.5f,0.8f,1.0f,1.1f,0.9f,0.3f};
  14.             float time = ModLoader.getMinecraftInstance().theWorld.getWorldTime();
  15.            
  16.             float str = weatherMan.wind.strengthSmooth;
  17.             float dir = weatherMan.wind.directionSmooth;
  18.            
  19.             str += 0.2F;
  20.             //dir = 45F;
  21.            
  22.             if (lastTime != time) {
  23.                 //if (weatherMan.wind.strengthSmooth > 0.15F) {
  24.                     waveTime += ((float)(time - lastTime)) * str * 0.1F;
  25.                 //}
  26.                 lastTime = (long)time;
  27.             }
  28.            
  29.            
  30.            
  31.             float magnitude = 0.8F * str;
  32.             float angle = (float) ((float)(Math.PI*2)/360F) * /*player.rotationYaw*/dir;
  33.            
  34.             //System.out.println(weatherMan.wind.strengthSmooth);
  35.            
  36.             int x = (int)player.posX;
  37.             //int y = (int)player.posY;
  38.             int z = (int)player.posZ;
  39.            
  40.             int range = 70;
  41.            
  42.             boolean renderVBOWaves = true;
  43.            
  44.             Tessellator var12 = Tessellator.instance;
  45.             if (renderVBOWaves) {
  46.                
  47.                 int var9 = mod_ExtendedRenderer.rotEffRenderer.renderer.getTexture("/terrain.png");
  48.                
  49.  
  50.                 GL11.glBindTexture(3553, var9);
  51.                 GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
  52.                 var12.startDrawingQuads();
  53.                 //wr.loadTexture("/terrain.png");
  54.                 //GL11.glDisable(GL11.GL_LIGHTING);
  55.                
  56.                 GL11.glDisable(GL11.GL_CULL_FACE);
  57.                
  58.                 GL11.glEnable(GL11.GL_BLEND);
  59.                 GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA);
  60.             }
  61.            
  62.             float height;
  63.             for (int xx = x-(range/2); xx < x+(range/2); xx+=1) {
  64.                 for (int zz = z-(range/2); zz < z+(range/2); zz+=1) {
  65.                    
  66.                     waveTicks += (System.currentTimeMillis() - prevTicks) / 1000F;
  67.                    
  68.                     //time = System.currentTimeMillis() / 100000000000F;
  69.                     //waveTicks = time;
  70.                     //System.out.println(var1);
  71.                     //height = (heights[(int)(((waveTime)-xx % 8)+var1) % 8]) * 0.1F;
  72.                    
  73.                     int yy = worldRef.getHeightValue(xx, zz);
  74.                    
  75.                     float vecX = (float)Math.sin(angle) * magnitude;
  76.                     float vecZ = (float)Math.cos(angle) * magnitude;
  77.                    
  78.                     float maxheight = 1F;
  79.                     //float coordadj = 0.3F;
  80.                    
  81.                     height = ((float)Math.sin(waveTime-xx*vecX-(zz*vecZ)) + 1F) * magnitude * maxheight;
  82.                    
  83.                     //System.out.println(height);
  84.                     //if (true) continue;
  85.                     float half = (float)Math.cos(0) / 2;
  86.                    
  87.                     wr.renderX = xx + 0.5F;
  88.                     wr.renderY = yy - 0.10F;///* + (float)Math.PI*/ + (height);//-1.827F + (height*2F)/* + (xx/10F)*/;
  89.                     wr.renderZ = zz + 0.5F;
  90.                    
  91.                     int id = worldRef.getBlockId(xx, yy-1, zz);
  92.                    
  93.                     //SETUP A VERTEX OBJECT BUFFER JUST LIKE PARTICLES!!!
  94.                    
  95.                     if (id != 0 && Block.blocksList[id].blockMaterial == Material.water) {
  96.                         double dist = player.getDistance(wr.renderX, wr.renderY, wr.renderZ);
  97.                         if (dist < range/2) {
  98.                             if (!renderVBOWaves) {
  99.                                 wr.tryRender(xx, yy, zz, (float)var1);
  100.                             } else {                       
  101.                                 float rotationYaw = 0F;
  102.                                 float rotationPitch = 90F;
  103.                                
  104.                                 float var3 = MathHelper.cos(rotationYaw * (float)Math.PI / 180.0F);
  105.                                 float var4 = MathHelper.sin(rotationYaw * (float)Math.PI / 180.0F);
  106.                                 float var5 = -var4 * MathHelper.sin(rotationPitch * (float)Math.PI / 180.0F);
  107.                                 float var6 = var3 * MathHelper.sin(rotationPitch * (float)Math.PI / 180.0F);
  108.                                 float var7 = MathHelper.cos(rotationPitch * (float)Math.PI / 180.0F);
  109.                                
  110.                                
  111.                                
  112.                                 //var12.setBrightness(mod_ExtendedRenderer.plBrightness);
  113.                                
  114.                                 wr.vboRender((float)var1, height, magnitude, angle, waveTime, xx, zz, var3, var7, var4, var5, var6);
  115.                             }
  116.                         }
  117.                     }
  118.                 }
  119.             }
  120.            
  121.             if (renderVBOWaves) {
  122.                 var12.draw();
  123.                 GL11.glDisable(GL11.GL_BLEND);
  124.                 //GL11.glEnable(GL11.GL_LIGHTING);
  125.                 GL11.glEnable(GL11.GL_CULL_FACE);
  126.             }
  127.             //
  128.         }
  129.        
  130.         c_w_MovingBlockStructure mbs = new c_w_MovingBlockStructure(mc.theWorld);
  131.        
  132.        
  133.     }
  134.  
  135.  
  136.  
  137.  
  138.  
  139. //then!
  140.  
  141.  
  142.  
  143.  
  144.  
  145.  
  146.  
  147.  
  148. package net.minecraft.src;
  149.  
  150. import org.lwjgl.opengl.GL11;
  151.  
  152. public class c_w_WaveRenderer extends Render {
  153.     private RenderBlocks rb;
  154.     public Entity entRef;
  155.     public float renderX;
  156.     public float renderY;
  157.     public float renderZ;
  158.    
  159.     public float red = 1F;
  160.     public float green = 1F;
  161.     public float blue = 1F;
  162.  
  163.     public c_w_WaveRenderer() {
  164.         this.shadowSize = 0.5F;
  165.         this.rb = new RenderBlocks();
  166.         entRef = ModLoader.getMinecraftInstance().thePlayer;
  167.     }
  168.    
  169.     public int getParticleTextureIndex() {
  170.         return 205;//Block.waterStill.getBlockTextureFromSideAndMetadata(1, 0);
  171.     }
  172.    
  173.     public void vboRender(float var2, float height, float magnitude, float angle, float waveTime, int xx, int zz, float var3, float var4, float var5, float var6, float var7) {
  174.         //this.rotationYaw = ModLoader.getMinecraftInstance().thePlayer.rotationYaw;
  175.         //this.rotationPitch += this.rand.nextInt(4) - 2;//ModLoader.getMinecraftInstance().thePlayer.rotationPitch;
  176.  
  177.         Tessellator var1 = Tessellator.instance;
  178.        
  179.         float var8 = (float)(this.getParticleTextureIndex() % 16) / 16.0F;
  180.         float var9 = var8 + 0.0624375F;
  181.         float var10 = (float)(this.getParticleTextureIndex() / 16) / 16.0F;
  182.         float var11 = var10 + 0.0624375F;
  183.         float var12 = 0.5F;// * this.particleScale;
  184.        
  185.         float var13 = renderX - (float)EntityFX.interpPosX;//(float)(this.prevPosX + (this.posX - this.prevPosX) * (double)var2 - interpPosX);
  186.         float var14 = renderY - (float)EntityFX.interpPosY;//(float)(this.prevPosY + (this.posY - this.prevPosY) * (double)var2 - interpPosY) + 0.0F;
  187.         float var15 = renderZ - (float)EntityFX.interpPosZ;//(float)(this.prevPosZ + (this.posZ - this.prevPosZ) * (double)var2 - interpPosZ);
  188.         //var13 += i;//rand.nextInt(6)-3;
  189.         //var14 += j;
  190.         //var15 += k;
  191.         //System.out.println(height);
  192.         //float var16 = /*this.getEntityBrightness(var2) * */brightness;
  193.         float br = entRef.getBrightness(var2);
  194.         if (ModLoader.getMinecraftInstance().theWorld.isDaytime()/*ModLoader.getMinecraftInstance().gameSettings.gammaSetting == 1F*/) {
  195.             br = br - (height * 0.5F);
  196.         }
  197.         if (br < 0.5F) br = 0.5F;
  198.         float var16 = 0.35F * br * (1F + ModLoader.getMinecraftInstance().gameSettings.gammaSetting);//mod_ExtendedRenderer.plBrightness * 0.0000001F;
  199.         //System.out.println(br);
  200.         int var18 = Block.waterStill.colorMultiplier(entRef.worldObj, (int)renderX, (int)renderY, (int)renderZ);
  201.         this.red = (float)(var18 >> 16 & 255) / 255.0F;
  202.         this.green = (float)(var18 >> 8 & 255) / 255.0F;
  203.         this.blue = (float)(var18 & 255) / 255.0F;
  204.        
  205.  
  206.         //var16 = this.getBrightness(var2) * (1F + ModLoader.getMinecraftInstance().gameSettings.gammaSetting);
  207.        
  208.         float vecX = (float)Math.sin(angle) * magnitude;
  209.         float vecZ = (float)Math.cos(angle) * magnitude;
  210.        
  211.         float maxheight = 1.0F;
  212.        
  213.         float adj = 0.5F;
  214.        
  215.         xx -= 0.5F;
  216.         zz -= 0.5F;
  217.        
  218.         float height0 = ((float)Math.sin(waveTime-(xx-adj)*vecX-((zz-adj)*vecZ)) + 1F) * magnitude * maxheight;
  219.         float height1 = ((float)Math.sin(waveTime-(xx-adj)*vecX-((zz+adj)*vecZ)) + 1F) * magnitude * maxheight;
  220.         float height2 = ((float)Math.sin(waveTime-(xx+adj)*vecX-((zz+adj)*vecZ)) + 1F) * magnitude * maxheight;
  221.         float height3 = ((float)Math.sin(waveTime-(xx+adj)*vecX-((zz-adj)*vecZ)) + 1F) * magnitude * maxheight;
  222.        
  223.         //height0 = height1 = height2 = height3 = 0F;
  224.        
  225.         //height0 = ((float)Math.sin(vecX*vecZ)) * magnitude * maxheight;
  226.         //height0 = ((float)Math.sin(waveTime-xx*vecX-(zz*vecZ)) + 1F) * magnitude * maxheight;
  227.  
  228.         //System.out.println(height0);
  229.        
  230.         var1.setColorOpaque_F(this.red * var16, this.green * var16, this.blue * var16);
  231.         var1.addVertexWithUV((double)(var13 - var3 * var12 - var6 * var12), (double)(height0 + var14 - var4 * var12), (double)(var15 - var5 * var12 - var7 * var12), (double)var9, (double)var11);
  232.         var1.addVertexWithUV((double)(var13 - var3 * var12 + var6 * var12), (double)(height1 + var14 + var4 * var12), (double)(var15 - var5 * var12 + var7 * var12), (double)var9, (double)var10);
  233.         var1.addVertexWithUV((double)(var13 + var3 * var12 + var6 * var12), (double)(height2 + var14 + var4 * var12), (double)(var15 + var5 * var12 + var7 * var12), (double)var8, (double)var10);
  234.         var1.addVertexWithUV((double)(var13 + var3 * var12 - var6 * var12), (double)(height3 + var14 - var4 * var12), (double)(var15 + var5 * var12 - var7 * var12), (double)var8, (double)var11);
  235.         /*}
  236.         }
  237.         }*/
  238.     }
  239.  
  240.     public void tryRender(int x, int y, int z, float var2) {
  241.         Entity var1 = ModLoader.getMinecraftInstance().thePlayer;
  242.         double var3 = renderX;
  243.         double var5 = renderY;
  244.         double var7 = renderZ;
  245.         /*double var3 = var1.lastTickPosX + renderX + (var1.posX - var1.lastTickPosX) * (double)var2;
  246.         double var5 = var1.lastTickPosY + renderY + (var1.posY - var1.lastTickPosY) * (double)var2;
  247.         double var7 = var1.lastTickPosZ + renderZ + (var1.posZ - var1.lastTickPosZ) * (double)var2;*/
  248.         float var9 = var1.prevRotationYaw + (var1.rotationYaw - var1.prevRotationYaw) * var2;
  249.         //'caching'
  250.         int var10 = 1;//var1.getEntityBrightnessForRender(var2);
  251.         int var11 = var10 % 65536;
  252.         int var12 = var10 / 65536;
  253.         //OpenGlHelper.setLightmapTextureCoords(OpenGlHelper.lightmapEnabled, (float)var11 / 1.0F, (float)var12 / 1.0F);
  254.         GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
  255.         this.doRender(var3 - RenderManager.renderPosX, var5 - RenderManager.renderPosY, var7 - RenderManager.renderPosZ, var9, var2);
  256.     }
  257.  
  258.     public void preRender(double var2, double var4, double var6, float var8, float var9) {
  259.         GL11.glPushMatrix();
  260.         GL11.glTranslatef((float)var2, (float)var4, (float)var6);
  261.         this.loadTexture("/terrain.png");
  262.         Block var10 = Block.waterStill;
  263.         World var11 = ModLoader.getMinecraftInstance().theWorld;
  264.        
  265.         GL11.glDisable(GL11.GL_LIGHTING);
  266.         GL11.glEnable(GL11.GL_BLEND);
  267.         GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA);
  268.        
  269.         float vecX = 0F;
  270.         float vecY = 0F;
  271.         float vecZ = 0F;
  272.         int meta = 0;
  273.         GL11.glRotatef((float)(vecX * 180.0D / 12.566370964050293D - 0.0D), 1.0F, 0.0F, 0.0F);
  274.         GL11.glRotatef((float)(vecY * 180.0D / (Math.PI * 2D) - 0.0D), 0.0F, 1.0F, 0.0F);
  275.         GL11.glRotatef((float)(vecZ * 180.0D / (Math.PI * 2D) - 0.0D), 0.0F, 0.0F, 1.0F);
  276.         this.renderFallingCube(var10, var11, renderX, renderY, renderZ, meta);
  277.         try {
  278.             RenderBlocks rb = (RenderBlocks)ModLoader.getPrivateValue(RenderGlobal.class, mod_Weather.mc.renderGlobal, "globalRenderBlocks");
  279.             if (rb.blockAccess != null) {
  280.                 //rb.renderBlockFluids(var10, (int)renderX, (int)70, (int)renderZ);
  281.             }
  282.         } catch (Exception ex) { }
  283.        
  284.         GL11.glDisable(GL11.GL_BLEND);
  285.        
  286.         GL11.glEnable(GL11.GL_LIGHTING);
  287.         GL11.glPopMatrix();
  288.     }
  289.  
  290.     public void renderFallingCube(Block var2, World var3, float var4, float var5, float var6, int var7) {
  291.         float var8 = 0.5F;
  292.         float var9 = 1.0F;
  293.         float var10 = 0.8F;
  294.         float var11 = 0.6F;
  295.         Tessellator var12 = Tessellator.instance;
  296.         var12.startDrawingQuads();
  297.         float var13;// = var2.getBlockBrightness(var3, (int)var4, (int)var5, (int)var6);
  298.         float var14;//= var2.getBlockBrightness(var3, (int)var4, (int)var5 - 1, (int)var6);
  299.         //var12.setBrightness(999+var2.getMixedBrightnessForBlock(var3, (int)var4, (int)var5, (int)var6));
  300.         //var12.setBrightness(999);
  301.  
  302.         var13 = 0.7F;
  303.         var14 = 0.7F;
  304.        
  305.         float uh = var2.getMixedBrightnessForBlock(var3, (int)var4, (int)var5+20, (int)var6);
  306.        
  307.         //System.out.println(uh);
  308.        
  309.         //var14 = uh * 1.5F;
  310.        
  311.         float var15 = 1.0F;
  312.         float var16 = 1.0F;
  313.         float var17 = 1.0F;
  314.        
  315.         if(var2.blockMaterial == Material.water) {
  316.             int var18 = var2.colorMultiplier(var3, (int)var4, (int)var5, (int)var6);
  317.             var15 = (float)(var18 >> 16 & 255) / 255.0F;
  318.             var16 = (float)(var18 >> 8 & 255) / 255.0F;
  319.             var17 = (float)(var18 & 255) / 255.0F;
  320.         }
  321.  
  322.         if(var2.blockID == Block.leaves.blockID) {
  323.             int var18 = 0xFFFFFF;//var2.colorMultiplier(var3, (int)var1.posX, (int)var1.posY, (int)var1.posZ);
  324.             var15 = (float)(var18 >> 16 & 255) / 255.0F;
  325.             var16 = (float)(var18 >> 8 & 255) / 255.0F;
  326.             var17 = (float)(var18 & 255) / 255.0F;
  327.  
  328.             if(EntityRenderer.anaglyphEnable) {
  329.                 float var19 = (var15 * 30.0F + var16 * 59.0F + var17 * 11.0F) / 100.0F;
  330.                 float var20 = (var15 * 30.0F + var16 * 70.0F) / 100.0F;
  331.                 float var21 = (var15 * 30.0F + var17 * 70.0F) / 100.0F;
  332.                 var15 = var19;
  333.                 var16 = var20;
  334.                 var17 = var21;
  335.             }
  336.         }
  337.        
  338.         if(var14 < var13) {
  339.             var14 = var13;
  340.         }
  341.  
  342.         //var12.setColorOpaque_F(var15 * var8 * var14, var16 * var8 * var14, var17 * var8 * var14);
  343.  
  344.         /**/
  345.         //this.rb.renderBottomFace(var2, -0.5D, -0.5D, -0.5D, var2.getBlockTextureFromSideAndMetadata(0, var7));
  346.  
  347.         if(var14 < var13) {
  348.             var14 = var13;
  349.         }
  350.  
  351.         var12.setColorOpaque_F(var15 * var9 * var14, var16 * var9 * var14, var17 * var9 * var14);
  352.         renderTopFace(var2, -0.5D, -0.5D, -0.5D, var2.getBlockTextureFromSideAndMetadata(1, var7));
  353.  
  354.        
  355.  
  356.         //var12.setColorOpaque_F(var15 * var10 * var14, var16 * var10 * var14, var17 * var10 * var14);
  357.         //this.rb.renderEastFace(var2, -0.5D, -0.5D, -0.5D, var2.getBlockTextureFromSideAndMetadata(2, var7));
  358.  
  359.         if(var14 < var13) {
  360.             var14 = var13;
  361.         }
  362.  
  363.         //var12.setColorOpaque_F(var15 * var10 * var14, var16 * var10 * var14, var17 * var10 * var14);
  364.         //this.rb.renderWestFace(var2, -0.5D, -0.5D, -0.5D, var2.getBlockTextureFromSideAndMetadata(3, var7));
  365.  
  366.         if(var14 < var13) {
  367.             var14 = var13;
  368.         }
  369.  
  370.         //var12.setColorOpaque_F(var15 * var11 * var14, var16 * var11 * var14, var17 * var11 * var14);
  371.         //this.rb.renderNorthFace(var2, -0.5D, -0.5D, -0.5D, var2.getBlockTextureFromSideAndMetadata(4, var7));
  372.  
  373.         if(var14 < var13) {
  374.             var14 = var13;
  375.         }
  376.  
  377.         //var12.setColorOpaque_F(var15 * var11 * var14, var16 * var11 * var14, var17 * var11 * var14);
  378.         //this.rb.renderSouthFace(var2, -0.5D, -0.5D, -0.5D, var2.getBlockTextureFromSideAndMetadata(5, var7));
  379.         var12.draw();
  380.     }
  381.  
  382.     public void doRender(double var2, double var4, double var6, float var8, float var9) {
  383.         this.preRender(var2, var4, var6, var8, var9);
  384.     }
  385.  
  386.     public void doRender(Entity var1, double var2, double var4, double var6, float var8, float var9) {
  387.         this.preRender(var2, var4, var6, var8, var9);
  388.     }
  389.    
  390.     public void renderTopFace(Block par1Block, double par2, double par4, double par6, int par8)
  391.     {
  392.         Tessellator var9 = Tessellator.instance;
  393.  
  394.         /*if (this.overrideBlockTexture >= 0)
  395.         {
  396.             par8 = this.overrideBlockTexture;
  397.         }*/
  398.  
  399.         int var10 = (par8 & 15) << 4;
  400.         int var11 = par8 & 240;
  401.         double var12 = ((double)var10 + par1Block.minX * 16.0D) / 256.0D;
  402.         double var14 = ((double)var10 + par1Block.maxX * 16.0D - 0.01D) / 256.0D;
  403.         double var16 = ((double)var11 + par1Block.minZ * 16.0D) / 256.0D;
  404.         double var18 = ((double)var11 + par1Block.maxZ * 16.0D - 0.01D) / 256.0D;
  405.  
  406.         if (par1Block.minX < 0.0D || par1Block.maxX > 1.0D)
  407.         {
  408.             var12 = (double)(((float)var10 + 0.0F) / 256.0F);
  409.             var14 = (double)(((float)var10 + 15.99F) / 256.0F);
  410.         }
  411.  
  412.         if (par1Block.minZ < 0.0D || par1Block.maxZ > 1.0D)
  413.         {
  414.             var16 = (double)(((float)var11 + 0.0F) / 256.0F);
  415.             var18 = (double)(((float)var11 + 15.99F) / 256.0F);
  416.         }
  417.  
  418.         double var20 = var14;
  419.         double var22 = var12;
  420.         double var24 = var16;
  421.         double var26 = var18;
  422.  
  423.        
  424.  
  425.         double var28 = par2 + par1Block.minX;
  426.         double var30 = par2 + par1Block.maxX;
  427.         double var32 = par4 + par1Block.maxY;
  428.         double var34 = par6 + par1Block.minZ;
  429.         double var36 = par6 + par1Block.maxZ;
  430.        
  431.         //Weather code change
  432.         /*c_w_BlockWaveHelper.calcSide(par1Block);
  433.         var30 += c_w_BlockWaveHelper.x;
  434.         var32 += c_w_BlockWaveHelper.y;
  435.         var36 += c_w_BlockWaveHelper.z;*/
  436.         var9.addVertexWithUV(var30, var32, var36, var14, var18);
  437.         var9.addVertexWithUV(var30, var32, var34, var20, var24);
  438.         var9.addVertexWithUV(var28, var32, var34, var12, var16);
  439.         var9.addVertexWithUV(var28, var32, var36, var22, var26);
  440.        
  441.     }
  442. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement