Advertisement
Corosus

Untitled

Oct 23rd, 2011
88
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 16.18 KB | None | 0 0
  1. package net.minecraft.src;
  2.  
  3. import net.minecraft.client.Minecraft;
  4. import net.minecraft.src.EntityRenderer;
  5. import net.minecraft.src.ModLoader;
  6. import org.lwjgl.input.Mouse;
  7. import org.lwjgl.opengl.Display;
  8. import org.lwjgl.opengl.GL11;
  9. import org.lwjgl.opengl.GL13;
  10. import org.lwjgl.opengl.GLContext;
  11. import org.lwjgl.util.glu.GLU;
  12. import java.util.Random;
  13.  
  14. public class EntityRendererProxyWeather extends EntityRendererProxy {
  15.  
  16.    private Minecraft mc;
  17.    private Random random = new Random();
  18.    private int rendererUpdateCount;
  19.    public long lastWorldTime = 0;
  20.    
  21.    private int rainSoundCounter = 0;
  22.  
  23.  
  24.    public EntityRendererProxyWeather(Minecraft var1) {
  25.       super(var1);
  26.       this.mc = var1;
  27.       rendererUpdateCount = 0;
  28.    }
  29.  
  30.    public void updateCameraAndRender(float var1) {
  31.       super.updateCameraAndRender(var1);
  32.      
  33.      
  34.       //ModLoader.OnTick(var1, this.game);
  35.    }
  36.    
  37.    public void enableLightMap2(double var1) {
  38.           GL13.glClientActiveTexture('\u84c1');
  39.           GL13.glActiveTexture('\u84c1');
  40.           GL11.glMatrixMode(5890 /*GL_TEXTURE*/);
  41.           GL11.glLoadIdentity();
  42.           float var3 = 0.00390625F;
  43.           GL11.glScalef(var3, var3, var3);
  44.           GL11.glTranslatef(8.0F, 8.0F, 8.0F);
  45.           GL11.glMatrixMode(5888 /*GL_MODELVIEW0_ARB*/);
  46.           this.mc.renderEngine.bindTexture(this.emptyTexture);
  47.           GL11.glTexParameteri(3553 /*GL_TEXTURE_2D*/, 10241 /*GL_TEXTURE_MIN_FILTER*/, 9729 /*GL_LINEAR*/);
  48.           GL11.glTexParameteri(3553 /*GL_TEXTURE_2D*/, 10240 /*GL_TEXTURE_MAG_FILTER*/, 9729 /*GL_LINEAR*/);
  49.           GL11.glTexParameteri(3553 /*GL_TEXTURE_2D*/, 10241 /*GL_TEXTURE_MIN_FILTER*/, 9729 /*GL_LINEAR*/);
  50.           GL11.glTexParameteri(3553 /*GL_TEXTURE_2D*/, 10240 /*GL_TEXTURE_MAG_FILTER*/, 9729 /*GL_LINEAR*/);
  51.           GL11.glTexParameteri(3553 /*GL_TEXTURE_2D*/, 10242 /*GL_TEXTURE_WRAP_S*/, 10496 /*GL_CLAMP*/);
  52.           GL11.glTexParameteri(3553 /*GL_TEXTURE_2D*/, 10243 /*GL_TEXTURE_WRAP_T*/, 10496 /*GL_CLAMP*/);
  53.           GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
  54.           GL11.glEnable(3553 /*GL_TEXTURE_2D*/);
  55.           GL13.glClientActiveTexture('\u84c0');
  56.           GL13.glActiveTexture('\u84c0');
  57.        }
  58.    
  59.    public void disableLightMap2(double var1) {
  60.           GL13.glClientActiveTexture('\u84c1');
  61.           GL13.glActiveTexture('\u84c1');
  62.           GL11.glDisable(3553 /*GL_TEXTURE_2D*/);
  63.           GL13.glClientActiveTexture('\u84c0');
  64.           GL13.glActiveTexture('\u84c0');
  65.        }
  66.    
  67.    protected void renderRainSnow(float var1) {
  68.        //if (true) return;
  69.           float var2 = this.mc.theWorld.getRainStrength(var1);
  70.           if(var2 > 0.0F) {
  71.              this.enableLightMap2((double)var1);
  72.              if(this.field_35822_i == null) {
  73.                 this.field_35822_i = new float[1024 /*GL_FRONT_LEFT*/];
  74.                 this.field_35820_j = new float[1024 /*GL_FRONT_LEFT*/];
  75.  
  76.                 for(int var3 = 0; var3 < 32; ++var3) {
  77.                    for(int var4 = 0; var4 < 32; ++var4) {
  78.                       float var5 = (float)(var4 - 16);
  79.                       float var6 = (float)(var3 - 16);
  80.                       float var7 = MathHelper.sqrt_float(var5 * var5 + var6 * var6);
  81.                       this.field_35822_i[var3 << 5 | var4] = -var6 / var7;
  82.                       this.field_35820_j[var3 << 5 | var4] = var5 / var7;
  83.                    }
  84.                 }
  85.              }
  86.  
  87.              EntityLiving var41 = this.mc.renderViewEntity;
  88.              World var42 = this.mc.theWorld;
  89.              int var43 = MathHelper.floor_double(var41.posX);
  90.              int var44 = MathHelper.floor_double(var41.posY);
  91.              int var45 = MathHelper.floor_double(var41.posZ);
  92.              Tessellator var8 = Tessellator.instance;
  93.              GL11.glDisable(2884 /*GL_CULL_FACE*/);
  94.              GL11.glNormal3f(0.0F, 1.0F, 0.0F);
  95.              GL11.glEnable(3042 /*GL_BLEND*/);
  96.              GL11.glBlendFunc(770, 771);
  97.              GL11.glAlphaFunc(516, 0.01F);
  98.              GL11.glBindTexture(3553 /*GL_TEXTURE_2D*/, this.mc.renderEngine.getTexture("/environment/snow.png"));
  99.              double var9 = var41.lastTickPosX + (var41.posX - var41.lastTickPosX) * (double)var1;
  100.              double var11 = var41.lastTickPosY + (var41.posY - var41.lastTickPosY) * (double)var1;
  101.              double var13 = var41.lastTickPosZ + (var41.posZ - var41.lastTickPosZ) * (double)var1;
  102.              int var15 = MathHelper.floor_double(var11);
  103.              byte var16 = 5;
  104.              if(this.mc.gameSettings.fancyGraphics) {
  105.                 var16 = 10;
  106.              }
  107.              
  108.              
  109.  
  110.              BiomeGenBase[] var17 = var42.getWorldChunkManager().func_4069_a(var43 - var16, var45 - var16, var16 * 2 + 1, var16 * 2 + 1);
  111.              boolean var18 = false;
  112.              byte var19 = -1;
  113.              float var20 = (float)this.rendererUpdateCount + var1;
  114.              if(this.mc.gameSettings.fancyGraphics) {
  115.                 var16 = 10;
  116.              }
  117.  
  118.              GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
  119.              int var46 = 0;
  120.  
  121.              if (mod_ExtendedRenderer.smoothRain) {
  122.                  var16 = 1;
  123.              }
  124.              
  125.              for(int var21 = var43 - var16; var21 <= var43 + var16; ++var21) {
  126.                 for(int var22 = var45 - var16; var22 <= var45 + var16; ++var22) {
  127.                    int var23 = (var22 - var45 + 16) * 32 + var21 - var43 + 16;
  128.                    float var24 = this.field_35822_i[var23] * 0.5F;
  129.                    float var25 = this.field_35820_j[var23] * 0.5F;
  130.                    BiomeGenBase var26 = var17[var46++];
  131.                    if(var26.canSpawnLightningBolt() || var26.getEnableSnow()) {
  132.                       int var27 = var42.func_35461_e(var21, var22);
  133.                       int var28 = var44 - var16;
  134.                       int var29 = var44 + var16;
  135.                       if(var28 < var27) {
  136.                          var28 = var27;
  137.                       }
  138.  
  139.                       if(var29 < var27) {
  140.                          var29 = var27;
  141.                       }
  142.  
  143.                       float var30 = 1.0F;
  144.                       int var31 = var27;
  145.                       if(var27 < var15) {
  146.                          var31 = var15;
  147.                       }
  148.  
  149.                       if(var28 != var29) {
  150.                          this.random.setSeed((long)(var21 * var21 * 3121 /*GL_RGBA_MODE*/ + var21 * 45238971 ^ var22 * var22 * 418711 + var22 * 13761));
  151.                          double var35;
  152.                          float var32;
  153.                          if(var26.canSpawnLightningBolt()) {
  154.                              //var41.posY;
  155.                              //mod_ExtendedRenderer.smoothRain = true;
  156.                              if (mod_ExtendedRenderer.smoothRain) {
  157.                                  if (mc.theWorld != null && mc.theWorld.worldInfo.getWorldTime() != lastWorldTime) {
  158.                                      for (int i = 0; i < 50; i++) {
  159.                                          if (mc.theWorld.rand.nextInt(3) == 0) {
  160.                                              //spawn particle at var21 posY+20 var22
  161.                                             int size = 15;
  162.                                             EntityFX ent = new EntityFallingRainFX(mc.theWorld, (double)var21+mc.theWorld.rand.nextInt(size)-(size/2), (double)var41.posY+10, (double)var22+mc.theWorld.rand.nextInt(size)-(size/2), 0D, -5D-(mc.theWorld.rand.nextInt(5)*-1D), 0D, 8.5D, 3);
  163.                                            
  164.                                             //this.funnelEffects.add(var31);
  165.                                             //mod_EntMover.particleCount++;
  166.                                             ent.renderDistanceWeight = 1.0D;
  167.                                             ent.setSize(1.2F, 1.2F);
  168.                                            
  169.                                             //var31.posY = var6 + 0D;
  170.                                             //var31.setPosition(tryX2, this.posY, tryZ2);
  171.                                            
  172.                                             ent.noClip = false;
  173.                                             ent.particleGravity = 2F;
  174.                                            
  175.                                             //mc.effectRenderer.addEffect(ent);
  176.                                             mod_ExtendedRenderer.rotEffRenderer.addEffect(ent);
  177.                                          }
  178.                                      }
  179.                                  }
  180.                              } else {
  181.                                 if(var19 != 0) {
  182.                                    if(var19 >= 0) {
  183.                                       var8.draw();
  184.                                    }
  185.    
  186.                                    var19 = 0;
  187.                                    GL11.glBindTexture(3553 /*GL_TEXTURE_2D*/, this.mc.renderEngine.getTexture("/environment/rain.png"));
  188.                                    var8.startDrawingQuads();
  189.                                 }
  190.    
  191.                                 var32 = ((float)(this.rendererUpdateCount + var21 * var21 * 3121 /*GL_RGBA_MODE*/ + var21 * 45238971 + var22 * var22 * 418711 + var22 * 13761 & 31) + var1) / 32.0F * (3.0F + this.random.nextFloat());
  192.                                 double var33 = (double)((float)var21 + 0.5F) - var41.posX;
  193.                                 var35 = (double)((float)var22 + 0.5F) - var41.posZ;
  194.                                 float var37 = MathHelper.sqrt_double(var33 * var33 + var35 * var35) / (float)var16;
  195.                                 float var38 = 1.0F;
  196.                                 var8.setBrightness(var42.getLightBrightnessForSkyBlocks(var21, var31, var22, 0));
  197.                                 var8.setColorRGBA_F(var38, var38, var38, ((1.0F - var37 * var37) * 0.5F + 0.5F) * var2);
  198.                                 var8.setTranslationD(-var9 * 1.0D, -var11 * 1.0D, -var13 * 1.0D);
  199.                                 var8.addVertexWithUV((double)((float)var21 - var24) + 0.5D, (double)var28, (double)((float)var22 - var25) + 0.5D, (double)(0.0F * var30), (double)((float)var28 * var30 / 4.0F + var32 * var30));
  200.                                 var8.addVertexWithUV((double)((float)var21 + var24) + 0.5D, (double)var28, (double)((float)var22 + var25) + 0.5D, (double)(1.0F * var30), (double)((float)var28 * var30 / 4.0F + var32 * var30));
  201.                                 var8.addVertexWithUV((double)((float)var21 + var24) + 0.5D, (double)var29, (double)((float)var22 + var25) + 0.5D, (double)(1.0F * var30), (double)((float)var29 * var30 / 4.0F + var32 * var30));
  202.                                 var8.addVertexWithUV((double)((float)var21 - var24) + 0.5D, (double)var29, (double)((float)var22 - var25) + 0.5D, (double)(0.0F * var30), (double)((float)var29 * var30 / 4.0F + var32 * var30));
  203.                                 var8.setTranslationD(0.0D, 0.0D, 0.0D);
  204.                              }
  205.                          } else {
  206.                             if(var19 != 1) {
  207.                                if(var19 >= 0) {
  208.                                   var8.draw();
  209.                                }
  210.  
  211.                                var19 = 1;
  212.                                GL11.glBindTexture(3553 /*GL_TEXTURE_2D*/, this.mc.renderEngine.getTexture("/environment/snow.png"));
  213.                                var8.startDrawingQuads();
  214.                             }
  215.  
  216.                             var32 = ((float)(this.rendererUpdateCount & 511) + var1) / 512.0F;
  217.                             float var47 = this.random.nextFloat() + var20 * 0.01F * (float)this.random.nextGaussian();
  218.                             float var34 = this.random.nextFloat() + var20 * (float)this.random.nextGaussian() * 0.0010F;
  219.                             var35 = (double)((float)var21 + 0.5F) - var41.posX;
  220.                             double var48 = (double)((float)var22 + 0.5F) - var41.posZ;
  221.                             float var39 = MathHelper.sqrt_double(var35 * var35 + var48 * var48) / (float)var16;
  222.                             float var40 = 1.0F;
  223.                             var8.setBrightness((var42.getLightBrightnessForSkyBlocks(var21, var31, var22, 0) * 3 + 15728880) / 4);
  224.                             var8.setColorRGBA_F(var40, var40, var40, ((1.0F - var39 * var39) * 0.3F + 0.5F) * var2);
  225.                             var8.setTranslationD(-var9 * 1.0D, -var11 * 1.0D, -var13 * 1.0D);
  226.                             var8.addVertexWithUV((double)((float)var21 - var24) + 0.5D, (double)var28, (double)((float)var22 - var25) + 0.5D, (double)(0.0F * var30 + var47), (double)((float)var28 * var30 / 4.0F + var32 * var30 + var34));
  227.                             var8.addVertexWithUV((double)((float)var21 + var24) + 0.5D, (double)var28, (double)((float)var22 + var25) + 0.5D, (double)(1.0F * var30 + var47), (double)((float)var28 * var30 / 4.0F + var32 * var30 + var34));
  228.                             var8.addVertexWithUV((double)((float)var21 + var24) + 0.5D, (double)var29, (double)((float)var22 + var25) + 0.5D, (double)(1.0F * var30 + var47), (double)((float)var29 * var30 / 4.0F + var32 * var30 + var34));
  229.                             var8.addVertexWithUV((double)((float)var21 - var24) + 0.5D, (double)var29, (double)((float)var22 - var25) + 0.5D, (double)(0.0F * var30 + var47), (double)((float)var29 * var30 / 4.0F + var32 * var30 + var34));
  230.                             var8.setTranslationD(0.0D, 0.0D, 0.0D);
  231.                          }
  232.                       }
  233.                    }
  234.                 }
  235.              }
  236.  
  237.              if(var19 >= 0) {
  238.                 var8.draw();
  239.              }
  240.  
  241.              GL11.glEnable(2884 /*GL_CULL_FACE*/);
  242.              GL11.glDisable(3042 /*GL_BLEND*/);
  243.              GL11.glAlphaFunc(516, 0.1F);
  244.              this.disableLightMap2((double)var1);
  245.           }
  246.          
  247.           if (mc.theWorld != null && mc.theWorld.worldInfo.getWorldTime() != lastWorldTime) {
  248.               lastWorldTime = mc.theWorld.worldInfo.getWorldTime();
  249.               if(!mc.isGamePaused) {
  250.                   mod_ExtendedRenderer.rotEffRenderer.updateEffects();
  251.                 }
  252.              
  253.           }
  254.          
  255.           mod_ExtendedRenderer.rotEffRenderer.renderParticles((Entity)mc.renderViewEntity, (float)var1);
  256.          
  257.           ++this.rendererUpdateCount;
  258.        }
  259.    
  260.        private void addRainParticles() {
  261.           float var1 = this.mc.theWorld.getRainStrength(1.0F);
  262.           if(!this.mc.gameSettings.fancyGraphics) {
  263.              var1 /= 2.0F;
  264.           }
  265.  
  266.           if(var1 != 0.0F) {
  267.              this.random.setSeed((long)this.rendererUpdateCount * 312987231L);
  268.              EntityLiving var2 = this.mc.renderViewEntity;
  269.              World var3 = this.mc.theWorld;
  270.              int var4 = MathHelper.floor_double(var2.posX);
  271.              int var5 = MathHelper.floor_double(var2.posY);
  272.              int var6 = MathHelper.floor_double(var2.posZ);
  273.              byte var7 = 10;
  274.              double var8 = 0.0D;
  275.              double var10 = 0.0D;
  276.              double var12 = 0.0D;
  277.              int var14 = 0;
  278.  
  279.              for(int var15 = 0; var15 < (int)(100.0F * var1 * var1); ++var15) {
  280.                 int var16 = var4 + this.random.nextInt(var7) - this.random.nextInt(var7);
  281.                 int var17 = var6 + this.random.nextInt(var7) - this.random.nextInt(var7);
  282.                 int var18 = var3.func_35461_e(var16, var17);
  283.                 int var19 = var3.getBlockId(var16, var18 - 1, var17);
  284.                 if(var18 <= var5 + var7 && var18 >= var5 - var7 && var3.getWorldChunkManager().getBiomeGenAt(var16, var17).canSpawnLightningBolt()) {
  285.                    float var20 = this.random.nextFloat();
  286.                    float var21 = this.random.nextFloat();
  287.                    if(var19 > 0) {
  288.                       if(Block.blocksList[var19].blockMaterial == Material.lava) {
  289.                          this.mc.effectRenderer.addEffect(new EntitySmokeFX(var3, (double)((float)var16 + var20), (double)((float)var18 + 0.1F) - Block.blocksList[var19].minY, (double)((float)var17 + var21), 0.0D, 0.0D, 0.0D));
  290.                       } else {
  291.                          ++var14;
  292.                          if(this.random.nextInt(var14) == 0) {
  293.                             var8 = (double)((float)var16 + var20);
  294.                             var10 = (double)((float)var18 + 0.1F) - Block.blocksList[var19].minY;
  295.                             var12 = (double)((float)var17 + var21);
  296.                          }
  297.  
  298.                          this.mc.effectRenderer.addEffect(new EntityRainFX(var3, (double)((float)var16 + var20), (double)((float)var18 + 0.1F) - Block.blocksList[var19].minY, (double)((float)var17 + var21)));
  299.                       }
  300.                    }
  301.                 }
  302.              }
  303.  
  304.              if(var14 > 0 && this.random.nextInt(3) < this.rainSoundCounter++) {
  305.                 this.rainSoundCounter = 0;
  306.                 if(var10 > var2.posY + 1.0D && var3.func_35461_e(MathHelper.floor_double(var2.posX), MathHelper.floor_double(var2.posZ)) > MathHelper.floor_double(var2.posY)) {
  307.                    //this.mc.theWorld.playSoundEffect(var8, var10, var12, "ambient.weather.rain", 0.0F, 0.0F);
  308.                 } else {
  309.                    //this.mc.theWorld.playSoundEffect(var8, var10, var12, "ambient.weather.rain", 0.0F, 0.0F);
  310.                 }
  311.              }
  312.  
  313.           }
  314.        }
  315.        
  316.    
  317. }
  318.  
  319.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement