diff --git a/src/main/java/net/minecraft/src/EntityRenderer.java b/src/main/java/net/minecraft/src/EntityRenderer.java index 38d3c71..abbf59a 100644 --- a/src/main/java/net/minecraft/src/EntityRenderer.java +++ b/src/main/java/net/minecraft/src/EntityRenderer.java @@ -557,7 +557,9 @@ public class EntityRenderer { var6.func_1187_b(var4, var1); RenderHelper.disableStandardItemLighting(); this.setupFog(0, var1); - var6.renderParticles(var4, var1); + if(this.mc.gameSettings.particles) { + var6.renderParticles(var4, var1); + } EntityPlayer var21; if(this.mc.objectMouseOver != null && var4.isInsideOfMaterial(Material.water) && var4 instanceof EntityPlayer) { var21 = (EntityPlayer)var4; @@ -629,6 +631,10 @@ public class EntityRenderer { } private void addRainParticles() { + if(!this.mc.gameSettings.particles) { + return; + } + float var1 = this.mc.theWorld.func_27162_g(1.0F); if(!this.mc.gameSettings.fancyGraphics) { var1 /= 2.0F; diff --git a/src/main/java/net/minecraft/src/EnumOptions.java b/src/main/java/net/minecraft/src/EnumOptions.java index 00b715a..2054530 100644 --- a/src/main/java/net/minecraft/src/EnumOptions.java +++ b/src/main/java/net/minecraft/src/EnumOptions.java @@ -13,7 +13,8 @@ public enum EnumOptions { DIFFICULTY("options.difficulty", false, false), GRAPHICS("options.graphics", false, false), AMBIENT_OCCLUSION("options.ao", false, true), - GUI_SCALE("options.guiScale", false, false); + GUI_SCALE("options.guiScale", false, false), + PARTICLES("Particles", false, true); private final boolean enumFloat; private final boolean enumBoolean; diff --git a/src/main/java/net/minecraft/src/EnumOptionsMappingHelper.java b/src/main/java/net/minecraft/src/EnumOptionsMappingHelper.java index 96beef5..f82a11d 100644 --- a/src/main/java/net/minecraft/src/EnumOptionsMappingHelper.java +++ b/src/main/java/net/minecraft/src/EnumOptionsMappingHelper.java @@ -28,6 +28,11 @@ class EnumOptionsMappingHelper { enumOptionsMappingHelperArray[EnumOptions.AMBIENT_OCCLUSION.ordinal()] = 5; } catch (NoSuchFieldError var1) { } + + try { + enumOptionsMappingHelperArray[EnumOptions.PARTICLES.ordinal()] = 6; + } catch (NoSuchFieldError var1) { + } } } diff --git a/src/main/java/net/minecraft/src/GameSettings.java b/src/main/java/net/minecraft/src/GameSettings.java index 971c1d5..229c312 100644 --- a/src/main/java/net/minecraft/src/GameSettings.java +++ b/src/main/java/net/minecraft/src/GameSettings.java @@ -27,6 +27,7 @@ public class GameSettings { public int limitFramerate = 1; public boolean fancyGraphics = true; public boolean ambientOcclusion = true; + public boolean particles = true; public String skin = "Default"; public KeyBinding keyBindForward = new KeyBinding("key.forward", 17); public KeyBinding keyBindLeft = new KeyBinding("key.left", 30); @@ -138,6 +139,10 @@ public class GameSettings { this.ambientOcclusion = !this.ambientOcclusion; this.mc.renderGlobal.loadRenderers(); } + + if(var1 == EnumOptions.PARTICLES) { + this.particles = !this.particles; + } this.saveOptions(); } @@ -147,6 +152,7 @@ public class GameSettings { } public boolean getOptionOrdinalValue(EnumOptions var1) { + System.out.println(EnumOptionsMappingHelper.enumOptionsMappingHelperArray[var1.ordinal()]); switch(EnumOptionsMappingHelper.enumOptionsMappingHelperArray[var1.ordinal()]) { case 1: return this.invertMouse; @@ -158,6 +164,8 @@ public class GameSettings { return this.advancedOpengl; case 5: return this.ambientOcclusion; + case 6: + return this.particles; default: return false; } @@ -256,6 +264,10 @@ public class GameSettings { if(var3[0].equals("lastServer") && var3.length >= 2) { this.lastServer = var3[1]; } + + if(var3[0].equals("particles")) { + this.particles = var3[1].equals("true"); + } for(int var4 = 0; var4 < this.keyBindings.length; ++var4) { if(var3[0].equals("key_" + this.keyBindings[var4].keyDescription)) { @@ -296,6 +308,7 @@ public class GameSettings { var1.println("ao:" + this.ambientOcclusion); var1.println("skin:" + this.skin); var1.println("lastServer:" + this.lastServer); + var1.println("particles:" + this.particles); for(int var2 = 0; var2 < this.keyBindings.length; ++var2) { var1.println("key_" + this.keyBindings[var2].keyDescription + ":" + this.keyBindings[var2].keyCode); diff --git a/src/main/java/net/minecraft/src/GuiVideoSettings.java b/src/main/java/net/minecraft/src/GuiVideoSettings.java index e54c3c8..ab8d231 100644 --- a/src/main/java/net/minecraft/src/GuiVideoSettings.java +++ b/src/main/java/net/minecraft/src/GuiVideoSettings.java @@ -4,7 +4,7 @@ public class GuiVideoSettings extends GuiScreen { private GuiScreen field_22110_h; protected String field_22107_a = "Video Settings"; private GameSettings guiGameSettings; - private static EnumOptions[] field_22108_k = new EnumOptions[]{EnumOptions.GRAPHICS, EnumOptions.RENDER_DISTANCE, EnumOptions.AMBIENT_OCCLUSION, EnumOptions.FRAMERATE_LIMIT, EnumOptions.ANAGLYPH, EnumOptions.VIEW_BOBBING, EnumOptions.GUI_SCALE, EnumOptions.ADVANCED_OPENGL}; + private static EnumOptions[] field_22108_k = new EnumOptions[]{EnumOptions.GRAPHICS, EnumOptions.RENDER_DISTANCE, EnumOptions.AMBIENT_OCCLUSION, EnumOptions.FRAMERATE_LIMIT, EnumOptions.ANAGLYPH, EnumOptions.VIEW_BOBBING, EnumOptions.PARTICLES, EnumOptions.GUI_SCALE, EnumOptions.ADVANCED_OPENGL}; public GuiVideoSettings(GuiScreen var1, GameSettings var2) { this.field_22110_h = var1; diff --git a/src/main/java/net/minecraft/src/NetworkManager.java b/src/main/java/net/minecraft/src/NetworkManager.java index 3e2f673..3dd29c3 100644 --- a/src/main/java/net/minecraft/src/NetworkManager.java +++ b/src/main/java/net/minecraft/src/NetworkManager.java @@ -186,7 +186,6 @@ public class NetworkManager { } private void onNetworkError(Exception var1) { - var1.printStackTrace(); this.networkShutdown("disconnect.genericReason", new Object[]{"Internal exception: " + var1.toString()}); } diff --git a/src/main/java/net/minecraft/src/RenderGlobal.java b/src/main/java/net/minecraft/src/RenderGlobal.java index c73f355..642b37b 100644 --- a/src/main/java/net/minecraft/src/RenderGlobal.java +++ b/src/main/java/net/minecraft/src/RenderGlobal.java @@ -1064,6 +1064,10 @@ public class RenderGlobal implements IWorldAccess { public void spawnParticle(String var1, double var2, double var4, double var6, double var8, double var10, double var12) { if(this.mc != null && this.mc.renderViewEntity != null && this.mc.effectRenderer != null) { + if(!this.mc.gameSettings.particles) { + return; + } + double var14 = this.mc.renderViewEntity.posX - var2; double var16 = this.mc.renderViewEntity.posY - var4; double var18 = this.mc.renderViewEntity.posZ - var6;