Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package net.minecraft.src;
- import net.minecraft.client.Minecraft;
- import net.minecraft.src.EntityRenderer;
- import net.minecraft.src.ModLoader;
- import org.lwjgl.input.Mouse;
- import org.lwjgl.opengl.Display;
- import org.lwjgl.opengl.GL11;
- import org.lwjgl.opengl.GL13;
- import org.lwjgl.opengl.GLContext;
- import org.lwjgl.util.glu.GLU;
- import java.util.Random;
- public class EntityRendererProxyWeather extends EntityRendererProxy {
- private Minecraft mc;
- private Random random = new Random();
- private int rendererUpdateCount;
- public long lastWorldTime = 0;
- private int rainSoundCounter = 0;
- public EntityRendererProxyWeather(Minecraft var1) {
- super(var1);
- this.mc = var1;
- rendererUpdateCount = 0;
- }
- public void updateCameraAndRender(float var1) {
- super.updateCameraAndRender(var1);
- //ModLoader.OnTick(var1, this.game);
- }
- public void enableLightMap2(double var1) {
- GL13.glClientActiveTexture('\u84c1');
- GL13.glActiveTexture('\u84c1');
- GL11.glMatrixMode(5890 /*GL_TEXTURE*/);
- GL11.glLoadIdentity();
- float var3 = 0.00390625F;
- GL11.glScalef(var3, var3, var3);
- GL11.glTranslatef(8.0F, 8.0F, 8.0F);
- GL11.glMatrixMode(5888 /*GL_MODELVIEW0_ARB*/);
- this.mc.renderEngine.bindTexture(this.emptyTexture);
- GL11.glTexParameteri(3553 /*GL_TEXTURE_2D*/, 10241 /*GL_TEXTURE_MIN_FILTER*/, 9729 /*GL_LINEAR*/);
- GL11.glTexParameteri(3553 /*GL_TEXTURE_2D*/, 10240 /*GL_TEXTURE_MAG_FILTER*/, 9729 /*GL_LINEAR*/);
- GL11.glTexParameteri(3553 /*GL_TEXTURE_2D*/, 10241 /*GL_TEXTURE_MIN_FILTER*/, 9729 /*GL_LINEAR*/);
- GL11.glTexParameteri(3553 /*GL_TEXTURE_2D*/, 10240 /*GL_TEXTURE_MAG_FILTER*/, 9729 /*GL_LINEAR*/);
- GL11.glTexParameteri(3553 /*GL_TEXTURE_2D*/, 10242 /*GL_TEXTURE_WRAP_S*/, 10496 /*GL_CLAMP*/);
- GL11.glTexParameteri(3553 /*GL_TEXTURE_2D*/, 10243 /*GL_TEXTURE_WRAP_T*/, 10496 /*GL_CLAMP*/);
- GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
- GL11.glEnable(3553 /*GL_TEXTURE_2D*/);
- GL13.glClientActiveTexture('\u84c0');
- GL13.glActiveTexture('\u84c0');
- }
- public void disableLightMap2(double var1) {
- GL13.glClientActiveTexture('\u84c1');
- GL13.glActiveTexture('\u84c1');
- GL11.glDisable(3553 /*GL_TEXTURE_2D*/);
- GL13.glClientActiveTexture('\u84c0');
- GL13.glActiveTexture('\u84c0');
- }
- protected void renderRainSnow(float var1) {
- //if (true) return;
- float var2 = this.mc.theWorld.getRainStrength(var1);
- if(var2 > 0.0F) {
- this.enableLightMap2((double)var1);
- if(this.field_35822_i == null) {
- this.field_35822_i = new float[1024 /*GL_FRONT_LEFT*/];
- this.field_35820_j = new float[1024 /*GL_FRONT_LEFT*/];
- for(int var3 = 0; var3 < 32; ++var3) {
- for(int var4 = 0; var4 < 32; ++var4) {
- float var5 = (float)(var4 - 16);
- float var6 = (float)(var3 - 16);
- float var7 = MathHelper.sqrt_float(var5 * var5 + var6 * var6);
- this.field_35822_i[var3 << 5 | var4] = -var6 / var7;
- this.field_35820_j[var3 << 5 | var4] = var5 / var7;
- }
- }
- }
- EntityLiving var41 = this.mc.renderViewEntity;
- World var42 = this.mc.theWorld;
- int var43 = MathHelper.floor_double(var41.posX);
- int var44 = MathHelper.floor_double(var41.posY);
- int var45 = MathHelper.floor_double(var41.posZ);
- Tessellator var8 = Tessellator.instance;
- GL11.glDisable(2884 /*GL_CULL_FACE*/);
- GL11.glNormal3f(0.0F, 1.0F, 0.0F);
- GL11.glEnable(3042 /*GL_BLEND*/);
- GL11.glBlendFunc(770, 771);
- GL11.glAlphaFunc(516, 0.01F);
- GL11.glBindTexture(3553 /*GL_TEXTURE_2D*/, this.mc.renderEngine.getTexture("/environment/snow.png"));
- double var9 = var41.lastTickPosX + (var41.posX - var41.lastTickPosX) * (double)var1;
- double var11 = var41.lastTickPosY + (var41.posY - var41.lastTickPosY) * (double)var1;
- double var13 = var41.lastTickPosZ + (var41.posZ - var41.lastTickPosZ) * (double)var1;
- int var15 = MathHelper.floor_double(var11);
- byte var16 = 5;
- if(this.mc.gameSettings.fancyGraphics) {
- var16 = 10;
- }
- BiomeGenBase[] var17 = var42.getWorldChunkManager().func_4069_a(var43 - var16, var45 - var16, var16 * 2 + 1, var16 * 2 + 1);
- boolean var18 = false;
- byte var19 = -1;
- float var20 = (float)this.rendererUpdateCount + var1;
- if(this.mc.gameSettings.fancyGraphics) {
- var16 = 10;
- }
- GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
- int var46 = 0;
- if (mod_ExtendedRenderer.smoothRain) {
- var16 = 1;
- }
- for(int var21 = var43 - var16; var21 <= var43 + var16; ++var21) {
- for(int var22 = var45 - var16; var22 <= var45 + var16; ++var22) {
- int var23 = (var22 - var45 + 16) * 32 + var21 - var43 + 16;
- float var24 = this.field_35822_i[var23] * 0.5F;
- float var25 = this.field_35820_j[var23] * 0.5F;
- BiomeGenBase var26 = var17[var46++];
- if(var26.canSpawnLightningBolt() || var26.getEnableSnow()) {
- int var27 = var42.func_35461_e(var21, var22);
- int var28 = var44 - var16;
- int var29 = var44 + var16;
- if(var28 < var27) {
- var28 = var27;
- }
- if(var29 < var27) {
- var29 = var27;
- }
- float var30 = 1.0F;
- int var31 = var27;
- if(var27 < var15) {
- var31 = var15;
- }
- if(var28 != var29) {
- this.random.setSeed((long)(var21 * var21 * 3121 /*GL_RGBA_MODE*/ + var21 * 45238971 ^ var22 * var22 * 418711 + var22 * 13761));
- double var35;
- float var32;
- if(var26.canSpawnLightningBolt()) {
- //var41.posY;
- //mod_ExtendedRenderer.smoothRain = true;
- if (mod_ExtendedRenderer.smoothRain) {
- if (mc.theWorld != null && mc.theWorld.worldInfo.getWorldTime() != lastWorldTime) {
- for (int i = 0; i < 50; i++) {
- if (mc.theWorld.rand.nextInt(3) == 0) {
- //spawn particle at var21 posY+20 var22
- int size = 15;
- 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);
- //this.funnelEffects.add(var31);
- //mod_EntMover.particleCount++;
- ent.renderDistanceWeight = 1.0D;
- ent.setSize(1.2F, 1.2F);
- //var31.posY = var6 + 0D;
- //var31.setPosition(tryX2, this.posY, tryZ2);
- ent.noClip = false;
- ent.particleGravity = 2F;
- //mc.effectRenderer.addEffect(ent);
- mod_ExtendedRenderer.rotEffRenderer.addEffect(ent);
- }
- }
- }
- } else {
- if(var19 != 0) {
- if(var19 >= 0) {
- var8.draw();
- }
- var19 = 0;
- GL11.glBindTexture(3553 /*GL_TEXTURE_2D*/, this.mc.renderEngine.getTexture("/environment/rain.png"));
- var8.startDrawingQuads();
- }
- 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());
- double var33 = (double)((float)var21 + 0.5F) - var41.posX;
- var35 = (double)((float)var22 + 0.5F) - var41.posZ;
- float var37 = MathHelper.sqrt_double(var33 * var33 + var35 * var35) / (float)var16;
- float var38 = 1.0F;
- var8.setBrightness(var42.getLightBrightnessForSkyBlocks(var21, var31, var22, 0));
- var8.setColorRGBA_F(var38, var38, var38, ((1.0F - var37 * var37) * 0.5F + 0.5F) * var2);
- var8.setTranslationD(-var9 * 1.0D, -var11 * 1.0D, -var13 * 1.0D);
- 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));
- 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));
- 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));
- 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));
- var8.setTranslationD(0.0D, 0.0D, 0.0D);
- }
- } else {
- if(var19 != 1) {
- if(var19 >= 0) {
- var8.draw();
- }
- var19 = 1;
- GL11.glBindTexture(3553 /*GL_TEXTURE_2D*/, this.mc.renderEngine.getTexture("/environment/snow.png"));
- var8.startDrawingQuads();
- }
- var32 = ((float)(this.rendererUpdateCount & 511) + var1) / 512.0F;
- float var47 = this.random.nextFloat() + var20 * 0.01F * (float)this.random.nextGaussian();
- float var34 = this.random.nextFloat() + var20 * (float)this.random.nextGaussian() * 0.0010F;
- var35 = (double)((float)var21 + 0.5F) - var41.posX;
- double var48 = (double)((float)var22 + 0.5F) - var41.posZ;
- float var39 = MathHelper.sqrt_double(var35 * var35 + var48 * var48) / (float)var16;
- float var40 = 1.0F;
- var8.setBrightness((var42.getLightBrightnessForSkyBlocks(var21, var31, var22, 0) * 3 + 15728880) / 4);
- var8.setColorRGBA_F(var40, var40, var40, ((1.0F - var39 * var39) * 0.3F + 0.5F) * var2);
- var8.setTranslationD(-var9 * 1.0D, -var11 * 1.0D, -var13 * 1.0D);
- 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));
- 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));
- 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));
- 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));
- var8.setTranslationD(0.0D, 0.0D, 0.0D);
- }
- }
- }
- }
- }
- if(var19 >= 0) {
- var8.draw();
- }
- GL11.glEnable(2884 /*GL_CULL_FACE*/);
- GL11.glDisable(3042 /*GL_BLEND*/);
- GL11.glAlphaFunc(516, 0.1F);
- this.disableLightMap2((double)var1);
- }
- if (mc.theWorld != null && mc.theWorld.worldInfo.getWorldTime() != lastWorldTime) {
- lastWorldTime = mc.theWorld.worldInfo.getWorldTime();
- if(!mc.isGamePaused) {
- mod_ExtendedRenderer.rotEffRenderer.updateEffects();
- }
- }
- mod_ExtendedRenderer.rotEffRenderer.renderParticles((Entity)mc.renderViewEntity, (float)var1);
- ++this.rendererUpdateCount;
- }
- private void addRainParticles() {
- float var1 = this.mc.theWorld.getRainStrength(1.0F);
- if(!this.mc.gameSettings.fancyGraphics) {
- var1 /= 2.0F;
- }
- if(var1 != 0.0F) {
- this.random.setSeed((long)this.rendererUpdateCount * 312987231L);
- EntityLiving var2 = this.mc.renderViewEntity;
- World var3 = this.mc.theWorld;
- int var4 = MathHelper.floor_double(var2.posX);
- int var5 = MathHelper.floor_double(var2.posY);
- int var6 = MathHelper.floor_double(var2.posZ);
- byte var7 = 10;
- double var8 = 0.0D;
- double var10 = 0.0D;
- double var12 = 0.0D;
- int var14 = 0;
- for(int var15 = 0; var15 < (int)(100.0F * var1 * var1); ++var15) {
- int var16 = var4 + this.random.nextInt(var7) - this.random.nextInt(var7);
- int var17 = var6 + this.random.nextInt(var7) - this.random.nextInt(var7);
- int var18 = var3.func_35461_e(var16, var17);
- int var19 = var3.getBlockId(var16, var18 - 1, var17);
- if(var18 <= var5 + var7 && var18 >= var5 - var7 && var3.getWorldChunkManager().getBiomeGenAt(var16, var17).canSpawnLightningBolt()) {
- float var20 = this.random.nextFloat();
- float var21 = this.random.nextFloat();
- if(var19 > 0) {
- if(Block.blocksList[var19].blockMaterial == Material.lava) {
- 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));
- } else {
- ++var14;
- if(this.random.nextInt(var14) == 0) {
- var8 = (double)((float)var16 + var20);
- var10 = (double)((float)var18 + 0.1F) - Block.blocksList[var19].minY;
- var12 = (double)((float)var17 + var21);
- }
- this.mc.effectRenderer.addEffect(new EntityRainFX(var3, (double)((float)var16 + var20), (double)((float)var18 + 0.1F) - Block.blocksList[var19].minY, (double)((float)var17 + var21)));
- }
- }
- }
- }
- if(var14 > 0 && this.random.nextInt(3) < this.rainSoundCounter++) {
- this.rainSoundCounter = 0;
- 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)) {
- //this.mc.theWorld.playSoundEffect(var8, var10, var12, "ambient.weather.rain", 0.0F, 0.0F);
- } else {
- //this.mc.theWorld.playSoundEffect(var8, var10, var12, "ambient.weather.rain", 0.0F, 0.0F);
- }
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement