From f3f7398a8bc962ca130dd4fae363bbef358c7aa0 Mon Sep 17 00:00:00 2001 From: Christian Date: Tue, 7 Aug 2012 23:11:37 -0400 Subject: [PATCH] Revert dumb stuff with commands patch - lots of gfx patching --- .../cpw/mods/fml/client/FMLClientHandler.java | 1 + .../cpw/mods/fml/client/TextureFXManager.java | 7 +- commands.patch | 67 +++++++-- .../fml/common/network/FMLNetworkHandler.java | 15 +- .../mods/fml/relauncher/FMLCorePlugin.java | 2 +- .../fml/relauncher/RelaunchClassLoader.java | 5 +- common/fml_marker.cfg | 6 +- .../minecraft/src/MemoryConnection.java.patch | 19 +++ .../net/minecraft/src/RenderEngine.java.patch | 139 ++++++++++++++++++ .../minecraft/src/TcpConnection.java.patch | 19 +++ .../minecraft/src/TextureCompassFX.java.patch | 80 ++++++++++ .../minecraft/src/TextureFlamesFX.java.patch | 88 +++++++++++ .../minecraft/src/TextureLavaFX.java.patch | 86 +++++++++++ .../src/TextureLavaFlowFX.java.patch | 90 ++++++++++++ .../minecraft/src/TexturePortalFX.java.patch | 70 +++++++++ .../minecraft/src/TextureWatchFX.java.patch | 118 +++++++++++++++ .../minecraft/src/TextureWaterFX.java.patch | 95 ++++++++++++ .../src/TextureWaterFlowFX.java.patch | 96 ++++++++++++ .../minecraft/src/TcpConnection.java.patch | 19 +++ 19 files changed, 1004 insertions(+), 18 deletions(-) create mode 100644 patches/minecraft/net/minecraft/src/MemoryConnection.java.patch create mode 100644 patches/minecraft/net/minecraft/src/RenderEngine.java.patch create mode 100644 patches/minecraft/net/minecraft/src/TcpConnection.java.patch create mode 100644 patches/minecraft/net/minecraft/src/TextureCompassFX.java.patch create mode 100644 patches/minecraft/net/minecraft/src/TextureFlamesFX.java.patch create mode 100644 patches/minecraft/net/minecraft/src/TextureLavaFX.java.patch create mode 100644 patches/minecraft/net/minecraft/src/TextureLavaFlowFX.java.patch create mode 100644 patches/minecraft/net/minecraft/src/TexturePortalFX.java.patch create mode 100644 patches/minecraft/net/minecraft/src/TextureWatchFX.java.patch create mode 100644 patches/minecraft/net/minecraft/src/TextureWaterFX.java.patch create mode 100644 patches/minecraft/net/minecraft/src/TextureWaterFlowFX.java.patch create mode 100644 patches/minecraft_server/net/minecraft/src/TcpConnection.java.patch diff --git a/client/cpw/mods/fml/client/FMLClientHandler.java b/client/cpw/mods/fml/client/FMLClientHandler.java index 8a119e550d..488270e587 100644 --- a/client/cpw/mods/fml/client/FMLClientHandler.java +++ b/client/cpw/mods/fml/client/FMLClientHandler.java @@ -164,6 +164,7 @@ public class FMLClientHandler implements IFMLSidedHandler client = minecraft; ObfuscationReflectionHelper.detectObfuscation(World.class); + TextureFXManager.instance().setClient(client); FMLCommonHandler.instance().beginLoading(this); try { diff --git a/client/cpw/mods/fml/client/TextureFXManager.java b/client/cpw/mods/fml/client/TextureFXManager.java index dbb27cdf67..c0367944e1 100644 --- a/client/cpw/mods/fml/client/TextureFXManager.java +++ b/client/cpw/mods/fml/client/TextureFXManager.java @@ -53,7 +53,12 @@ public class TextureFXManager private List addedTextureFX = new ArrayList(); private Minecraft client; - + + void setClient(Minecraft client) + { + this.client = client; + } + public boolean onUpdateTextureEffect(TextureFX effect) { ITextureFX ifx = (effect instanceof ITextureFX ? ((ITextureFX)effect) : null); diff --git a/commands.patch b/commands.patch index 3853cbc06c..7e0d92bad4 100644 --- a/commands.patch +++ b/commands.patch @@ -1,6 +1,6 @@ --- commands.py +++ commands.py -@@ -584,6 +584,9 @@ +@@ -582,6 +582,9 @@ self.has_astyle_cfg = False if os.path.isfile(self.astyleconf): self.has_astyle_cfg = True @@ -10,7 +10,15 @@ def creatergcfg(self, reobf=False, keep_lvt=False, keep_generics=False, rg_update=False): """Create the files necessary for RetroGuard""" -@@ -1198,20 +1201,20 @@ +@@ -1039,6 +1042,7 @@ + all_files = True + append_pattern = False + pkglist = filterdirs(pathsrclk[side], '*.java', append_pattern=append_pattern, all_files=all_files) ++ pkglist = pkglist + filterdirs(self.srcshared, '*.java', append_pattern=append_pattern, all_files=all_files) #FML, Add Common folder + dirs = ' '.join(pkglist) + classpath = os.pathsep.join(cplk[side]) + forkcmd = self.cmdrecomp.format(classpath=classpath, sourcepath=pathsrclk[side], outpath=pathbinlk[side], +@@ -1195,20 +1199,20 @@ with open(self.csvmethods, 'rb') as fh: methodsreader = csv.DictReader(fh) for row in methodsreader: @@ -34,7 +42,7 @@ names['params'][row['param']] = row['name'] regexps = { -@@ -1309,6 +1312,11 @@ +@@ -1238,6 +1242,11 @@ # HINT: We pathwalk the sources for path, _, filelist in os.walk(pathsrclk[side], followlinks=True): @@ -46,9 +54,24 @@ for cur_file in fnmatch.filter(filelist, '*.java'): updatefile(os.path.normpath(os.path.join(path, cur_file))) return True -@@ -1442,6 +1450,21 @@ - if not self.has_astyle_cfg: - self.logger.warning('!! reformatting disabled due to no config !!') +@@ -1320,12 +1329,14 @@ + pathsrclk = {CLIENT: self.srcclient, SERVER: self.srcserver} + + strip_comments(pathsrclk[side]) ++ strip_comments(self.srcshared) + + def process_cleanup(self, side): + """Do lots of random cleanups including stripping comments, trailing whitespace and extra blank lines""" + pathsrclk = {CLIENT: self.srcclient, SERVER: self.srcserver} + + src_cleanup(pathsrclk[side], fix_imports=True, fix_unicode=True, fix_charval=True, fix_pi=True, fix_round=False) ++ src_cleanup(self.srcshared, fix_imports=True, fix_unicode=True, fix_charval=True, fix_pi=True, fix_round=False) + + def process_javadoc(self, side): + """Add CSV descriptions to methods and fields as javadoc""" +@@ -1334,6 +1345,21 @@ + if not self.has_doc_csv: + self.logger.warning('!! javadoc disabled due to no csvs !!') return False + + #FML Recall this function on the common folder @@ -66,15 +89,39 @@ + self.srcserver = tmp + + #HINT: We read the relevant CSVs + methodsreader = csv.DictReader(open(self.csvmethods, 'r')) +@@ -1342,13 +1368,13 @@ + methods = {} + for row in methodsreader: + #HINT: Only include methods that have a non-empty description +- if int(row['side']) == side and row['desc']: ++ if (int(row['side']) == side or int(row['side']) == 2) and row['desc']: + methods[row['searge']] = row['desc'].replace('*/', '* /') + + fields = {} + for row in fieldsreader: + #HINT: Only include fields that have a non-empty description +- if int(row['side']) == side and row['desc']: ++ if (int(row['side']) == side or int(row['side']) == 2) and row['desc']: + fields[row['searge']] = row['desc'].replace('*/', '* /') + + regexps = { +@@ -1420,6 +1446,7 @@ + # HINT: We create the list of source directories based on the list of packages pkglist = filterdirs(pathsrclk[side], '*.java', append_pattern=True) -@@ -1591,6 +1614,9 @@ - return ++ pkglist = pkglist + filterdirs(self.srcshared, '*.java', append_pattern=True) #FML, Add Common folder + dirs = ' '.join(pkglist) + forkcmd = self.cmdastyle.format(classes=dirs, conffile=self.astyleconf) + self.runcmd(forkcmd) +@@ -1592,6 +1619,9 @@ + sys.exit(1) for entry in newfiles: + if 'commands.py' in entry[0]: #FML, Disable updating of Commands.py + print 'Update to runtime/commands.py found, but disbled due to using fml' + continue if entry[3] == 'U': - self.logger.info('New version found for : %s', entry[0]) - elif entry[3] == 'D': + self.logger.info('Retrieving file from server : %s', entry[0]) + cur_file = os.path.normpath(entry[0]) diff --git a/common/cpw/mods/fml/common/network/FMLNetworkHandler.java b/common/cpw/mods/fml/common/network/FMLNetworkHandler.java index a78156013f..e12dd80880 100644 --- a/common/cpw/mods/fml/common/network/FMLNetworkHandler.java +++ b/common/cpw/mods/fml/common/network/FMLNetworkHandler.java @@ -7,6 +7,7 @@ import java.util.Map; import java.util.Set; import net.minecraft.server.MinecraftServer; +import net.minecraft.src.EntityPlayer; import net.minecraft.src.EntityPlayerMP; import net.minecraft.src.EnumGameType; import net.minecraft.src.IntegratedServer; @@ -14,6 +15,7 @@ import net.minecraft.src.NetHandler; import net.minecraft.src.NetLoginHandler; import net.minecraft.src.NetServerHandler; import net.minecraft.src.NetworkManager; +import net.minecraft.src.Packet; import net.minecraft.src.Packet1Login; import net.minecraft.src.Packet250CustomPayload; import net.minecraft.src.ServerConfigurationManager; @@ -196,13 +198,17 @@ public class FMLNetworkHandler return pkt; } + public void registerNetworkMod(NetworkModHandler handler) + { + networkModHandlers.put(handler.getContainer(), handler); + networkIdLookup.put(handler.getNetworkId(), handler); + } public boolean registerNetworkMod(ModContainer container, Class networkModClass, ASMDataTable asmData) { NetworkModHandler handler = new NetworkModHandler(container, networkModClass, asmData); if (handler.isNetworkMod()) { - networkModHandlers.put(container, handler); - networkIdLookup.put(handler.getNetworkId(), handler); + registerNetworkMod(handler); } return handler.isNetworkMod(); @@ -261,4 +267,9 @@ public class FMLNetworkHandler { NetworkRegistry.instance().connectionClosed(manager); } + + + public static void sendPacket(Player player, Packet packet) + { + } } \ No newline at end of file diff --git a/common/cpw/mods/fml/relauncher/FMLCorePlugin.java b/common/cpw/mods/fml/relauncher/FMLCorePlugin.java index e64a2a85c9..758fb3cae2 100644 --- a/common/cpw/mods/fml/relauncher/FMLCorePlugin.java +++ b/common/cpw/mods/fml/relauncher/FMLCorePlugin.java @@ -13,7 +13,7 @@ public class FMLCorePlugin implements IFMLLoadingPlugin @Override public String[] getASMTransformerClass() { - return new String[] {"cpw.mods.fml.common.asm.ASMTransformer", "cpw.mods.fml.common.asm.MarkerTransformer"}; + return new String[] {"cpw.mods.fml.common.asm.transformers.AccessTransformer", "cpw.mods.fml.common.asm.transformers.MarkerTransformer"}; } @Override diff --git a/common/cpw/mods/fml/relauncher/RelaunchClassLoader.java b/common/cpw/mods/fml/relauncher/RelaunchClassLoader.java index 7c08511c5b..b1d1b82838 100644 --- a/common/cpw/mods/fml/relauncher/RelaunchClassLoader.java +++ b/common/cpw/mods/fml/relauncher/RelaunchClassLoader.java @@ -1,17 +1,16 @@ package cpw.mods.fml.relauncher; import java.io.ByteArrayOutputStream; -import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; import java.net.URL; import java.net.URLClassLoader; -import java.nio.ByteBuffer; import java.util.ArrayList; import java.util.Arrays; import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.logging.Level; public class RelaunchClassLoader extends URLClassLoader { @@ -49,7 +48,7 @@ public class RelaunchClassLoader extends URLClassLoader } catch (Exception e) { - // error registering transformer + FMLRelaunchLog.log(Level.SEVERE, e, "A critical problem occured registering the ASM transformer class %s", transformerClassName); } } @Override diff --git a/common/fml_marker.cfg b/common/fml_marker.cfg index f238e26e2a..0ab256dddb 100644 --- a/common/fml_marker.cfg +++ b/common/fml_marker.cfg @@ -1,8 +1,12 @@ # Marker interfaces to add to minecraft - helps in bukkit and client/server unification # Only runs at runtime because it's not necessary at compile time +# has deobf and obf mappings so it runs OK in mcp # entityplayer -> network/player of cpw/mods/fml/common/network/Player +net.minecraft.src.EntityPlayer cpw/mods/fml/common/network/Player # block -> blockproxy aif cpw/mods/fml/common/registry/BlockProxy +net/minecraft/src/Block cpw/mods/fml/common/registry/BlockProxy # item -> itemproxy -rg cpw/mods/fml/common/registry/ItemProxy \ No newline at end of file +rg cpw/mods/fml/common/registry/ItemProxy +net/minecraft/src/Item cpw/mods/fml/common/registry/ItemProxy \ No newline at end of file diff --git a/patches/minecraft/net/minecraft/src/MemoryConnection.java.patch b/patches/minecraft/net/minecraft/src/MemoryConnection.java.patch new file mode 100644 index 0000000000..95003d7935 --- /dev/null +++ b/patches/minecraft/net/minecraft/src/MemoryConnection.java.patch @@ -0,0 +1,19 @@ +--- ../src-base/minecraft/net/minecraft/src/MemoryConnection.java ++++ ../src-work/minecraft/net/minecraft/src/MemoryConnection.java +@@ -6,6 +6,8 @@ + import java.util.ArrayList; + import java.util.Collections; + import java.util.List; ++ ++import cpw.mods.fml.common.network.FMLNetworkHandler; + + public class MemoryConnection implements NetworkManager + { +@@ -67,6 +69,7 @@ + if (this.field_74441_e && this.field_74442_b.isEmpty()) + { + this.field_74440_d.func_72515_a(this.field_74438_f, this.field_74439_g); ++ FMLNetworkHandler.onConnectionClosed(this); + } + } + diff --git a/patches/minecraft/net/minecraft/src/RenderEngine.java.patch b/patches/minecraft/net/minecraft/src/RenderEngine.java.patch new file mode 100644 index 0000000000..9a861a1276 --- /dev/null +++ b/patches/minecraft/net/minecraft/src/RenderEngine.java.patch @@ -0,0 +1,139 @@ +--- ../src-base/minecraft/net/minecraft/src/RenderEngine.java ++++ ../src-work/minecraft/net/minecraft/src/RenderEngine.java +@@ -1,6 +1,7 @@ + package net.minecraft.src; + + import java.awt.Color; ++import java.awt.Dimension; + import java.awt.Graphics; + import java.awt.image.BufferedImage; + import java.awt.image.ImageObserver; +@@ -13,8 +14,14 @@ + import java.util.Iterator; + import java.util.List; + import java.util.Map; ++import java.util.logging.Level; ++import java.util.logging.Logger; ++ + import javax.imageio.ImageIO; + import org.lwjgl.opengl.GL11; ++ ++import cpw.mods.fml.client.TextureFXManager; ++import cpw.mods.fml.common.FMLLog; + + public class RenderEngine + { +@@ -30,6 +37,7 @@ + public boolean field_78361_b = false; + private TexturePackList field_78366_k; + private BufferedImage field_78364_l = new BufferedImage(64, 64, 2); ++ public static Logger log = FMLLog.getLogger(); + + public RenderEngine(TexturePackList p_i3192_1_, GameSettings p_i3192_2_) + { +@@ -94,8 +102,9 @@ + this.field_78359_d.put(p_78346_1_, var7); + return var7; + } +- catch (IOException var6) +- { ++ catch (Exception var6) ++ { ++ log.log(Level.INFO, String.format("An error occured reading texture file %s (getTexture)", p_78346_1_), var6); + var6.printStackTrace(); + int[] var5 = this.func_78348_b(this.field_78364_l); + this.field_78359_d.put(p_78346_1_, var5); +@@ -242,6 +251,7 @@ + + int var3 = p_78351_1_.getWidth(); + int var4 = p_78351_1_.getHeight(); ++ TextureFXManager.instance().setTextureDimensions(p_78351_2_, var3, var4, (List)field_78367_h); + int[] var5 = new int[var3 * var4]; + byte[] var6 = new byte[var3 * var4 * 4]; + p_78351_1_.getRGB(0, 0, var3, var4, var5, 0, var3); +@@ -397,6 +407,7 @@ + + public void func_78355_a(TextureFX p_78355_1_) + { ++ TextureFXManager.instance().onPreRegisterEffect(p_78355_1_); + this.field_78367_h.add(p_78355_1_); + p_78355_1_.func_76846_a(); + } +@@ -404,16 +415,31 @@ + public void func_78343_a() + { + int var1 = -1; +- Iterator var2 = this.field_78367_h.iterator(); +- +- while (var2.hasNext()) +- { +- TextureFX var3 = (TextureFX)var2.next(); ++ ++ for (int var2 = 0; var2 < this.field_78367_h.size(); ++var2) ++ { ++ TextureFX var3 = (TextureFX)this.field_78367_h.get(var2); + var3.field_76851_c = this.field_78365_j.field_74337_g; +- var3.func_76846_a(); +- this.field_78358_g.clear(); +- this.field_78358_g.put(var3.field_76852_a); +- this.field_78358_g.position(0).limit(var3.field_76852_a.length); ++ if (!TextureFXManager.instance().onUpdateTextureEffect(var3)) ++ { ++ continue; ++ } ++ ++ Dimension dim = TextureFXManager.instance().getTextureDimensions(var3); ++ int tWidth = dim.width >> 4; ++ int tHeight = dim.height >> 4; ++ int tLen = tWidth * tHeight << 2; ++ ++ if (var3.field_76852_a.length == tLen) ++ { ++ this.field_78358_g.clear(); ++ this.field_78358_g.put(var3.field_76852_a); ++ this.field_78358_g.position(0).limit(var3.field_76852_a.length); ++ } ++ else ++ { ++ TextureFXManager.instance().scaleTextureFXData(var3.field_76852_a, field_78358_g, tWidth, tLen); ++ } + + if (var3.field_76850_b != var1) + { +@@ -423,9 +449,11 @@ + + for (int var4 = 0; var4 < var3.field_76849_e; ++var4) + { ++ int xOffset = var3.field_76850_b % 16 * tWidth + var4 * tWidth; + for (int var5 = 0; var5 < var3.field_76849_e; ++var5) + { +- GL11.glTexSubImage2D(GL11.GL_TEXTURE_2D, 0, var3.field_76850_b % 16 * 16 + var4 * 16, var3.field_76850_b / 16 * 16 + var5 * 16, 16, 16, GL11.GL_RGBA, GL11.GL_UNSIGNED_BYTE, this.field_78358_g); ++ int yOffset = var3.field_76850_b / 16 * tHeight + var5 * tHeight; ++ GL11.glTexSubImage2D(GL11.GL_TEXTURE_2D, 0, xOffset, yOffset, tWidth, tHeight, GL11.GL_RGBA, GL11.GL_UNSIGNED_BYTE, this.field_78358_g); + } + } + } +@@ -490,8 +518,9 @@ + this.field_78361_b = false; + this.field_78363_a = false; + } +- catch (IOException var7) +- { ++ catch (Exception var7) ++ { ++ log.log(Level.INFO,String.format("An error occured reading texture file %s (refreshTexture)", var9),var7); + var7.printStackTrace(); + } + } +@@ -527,8 +556,9 @@ + this.field_78361_b = false; + this.field_78363_a = false; + } +- catch (IOException var6) +- { ++ catch (Exception var6) ++ { ++ log.log(Level.INFO,String.format("An error occured reading texture file data %s (refreshTexture)", var9),var6); + var6.printStackTrace(); + } + } diff --git a/patches/minecraft/net/minecraft/src/TcpConnection.java.patch b/patches/minecraft/net/minecraft/src/TcpConnection.java.patch new file mode 100644 index 0000000000..e7fdad6141 --- /dev/null +++ b/patches/minecraft/net/minecraft/src/TcpConnection.java.patch @@ -0,0 +1,19 @@ +--- ../src-base/minecraft/net/minecraft/src/TcpConnection.java ++++ ../src-work/minecraft/net/minecraft/src/TcpConnection.java +@@ -14,6 +14,8 @@ + import java.util.List; + import java.util.concurrent.atomic.AtomicInteger; + import javax.crypto.SecretKey; ++ ++import cpw.mods.fml.common.network.FMLNetworkHandler; + + public class TcpConnection implements NetworkManager + { +@@ -373,6 +375,7 @@ + if (this.field_74472_n && this.field_74473_o.isEmpty()) + { + this.field_74485_r.func_72515_a(this.field_74481_v, this.field_74480_w); ++ FMLNetworkHandler.onConnectionClosed(this); + } + } + diff --git a/patches/minecraft/net/minecraft/src/TextureCompassFX.java.patch b/patches/minecraft/net/minecraft/src/TextureCompassFX.java.patch new file mode 100644 index 0000000000..5e13964c7a --- /dev/null +++ b/patches/minecraft/net/minecraft/src/TextureCompassFX.java.patch @@ -0,0 +1,80 @@ +--- ../src-base/minecraft/net/minecraft/src/TextureCompassFX.java ++++ ../src-work/minecraft/net/minecraft/src/TextureCompassFX.java +@@ -3,9 +3,10 @@ + import java.awt.image.BufferedImage; + import java.io.IOException; + import javax.imageio.ImageIO; ++import cpw.mods.fml.client.FMLTextureFX; + import net.minecraft.client.Minecraft; + +-public class TextureCompassFX extends TextureFX ++public class TextureCompassFX extends FMLTextureFX + { + private Minecraft field_76865_g; + private int[] field_76867_h = new int[256]; +@@ -17,13 +18,19 @@ + super(Item.field_77750_aQ.func_77617_a(0)); + this.field_76865_g = p_i3212_1_; + this.field_76847_f = 1; +- ++ setup(); ++ } ++ @Override ++ public void setup() ++ { ++ super.setup(); ++ field_76867_h = new int[tileSizeSquare]; + try + { +- BufferedImage var2 = ImageIO.read(Minecraft.class.getResource("/gui/items.png")); +- int var3 = this.field_76850_b % 16 * 16; +- int var4 = this.field_76850_b / 16 * 16; +- var2.getRGB(var3, var4, 16, 16, this.field_76867_h, 0, 16); ++ BufferedImage var2 = ImageIO.read(field_76865_g.field_71418_C.func_77292_e().func_77532_a("/gui/items.png")); ++ int var3 = this.field_76850_b % 16 * tileSizeBase; ++ int var4 = this.field_76850_b / 16 * tileSizeBase; ++ var2.getRGB(var3, var4, tileSizeBase, tileSizeBase, this.field_76867_h, 0, tileSizeBase); + } + catch (IOException var5) + { +@@ -33,7 +40,7 @@ + + public void func_76846_a() + { +- for (int var1 = 0; var1 < 256; ++var1) ++ for (int var1 = 0; var1 < tileSizeSquare; ++var1) + { + int var2 = this.field_76867_h[var1] >> 24 & 255; + int var3 = this.field_76867_h[var1] >> 16 & 255; +@@ -110,11 +117,11 @@ + int var19; + int var18; + +- for (var9 = -4; var9 <= 4; ++var9) ++ for (var9 = -(tileSizeBase >> 2); var9 <= (tileSizeBase >> 2); ++var9) + { +- var10 = (int)(8.5D + var26 * (double)var9 * 0.3D); +- var11 = (int)(7.5D - var24 * (double)var9 * 0.3D * 0.5D); +- var12 = var11 * 16 + var10; ++ var10 = (int)((tileSizeBase >> 1) + 0.5D + var26 * (double)var9 * 0.3D); ++ var11 = (int)((tileSizeBase >> 1) - 0.5D - var24 * (double)var9 * 0.3D * 0.5D); ++ var12 = var11 * tileSizeBase + var10; + var13 = 100; + var14 = 100; + var15 = 100; +@@ -136,11 +143,11 @@ + this.field_76852_a[var12 * 4 + 3] = (byte)var16; + } + +- for (var9 = -8; var9 <= 16; ++var9) ++ for (var9 = -(tileSizeBase>>2); var9 <= tileSizeBase; ++var9) + { +- var10 = (int)(8.5D + var24 * (double)var9 * 0.3D); +- var11 = (int)(7.5D + var26 * (double)var9 * 0.3D * 0.5D); +- var12 = var11 * 16 + var10; ++ var10 = (int)((tileSizeBase >> 1) + 0.5D + var24 * (double)var9 * 0.3D); ++ var11 = (int)((tileSizeBase >> 1) - 0.5D + var26 * (double)var9 * 0.3D * 0.5D); ++ var12 = var11 * tileSizeBase + var10; + var13 = var9 >= 0 ? 255 : 100; + var14 = var9 >= 0 ? 20 : 100; + var15 = var9 >= 0 ? 20 : 100; diff --git a/patches/minecraft/net/minecraft/src/TextureFlamesFX.java.patch b/patches/minecraft/net/minecraft/src/TextureFlamesFX.java.patch new file mode 100644 index 0000000000..dc667c213e --- /dev/null +++ b/patches/minecraft/net/minecraft/src/TextureFlamesFX.java.patch @@ -0,0 +1,88 @@ +--- ../src-base/minecraft/net/minecraft/src/TextureFlamesFX.java ++++ ../src-work/minecraft/net/minecraft/src/TextureFlamesFX.java +@@ -1,13 +1,29 @@ + package net.minecraft.src; + +-public class TextureFlamesFX extends TextureFX ++import cpw.mods.fml.client.FMLTextureFX; ++ ++public class TextureFlamesFX extends FMLTextureFX + { + protected float[] field_76869_g = new float[320]; + protected float[] field_76870_h = new float[320]; ++ private int fireTileSize = 20; ++ private int fireGridSize = 320; ++ + + public TextureFlamesFX(int p_i3215_1_) + { + super(Block.field_72067_ar.field_72059_bZ + p_i3215_1_ * 16); ++ setup(); ++ } ++ ++ @Override ++ public void setup() ++ { ++ super.setup(); ++ fireTileSize = tileSizeBase + (tileSizeBase >> 2); ++ fireGridSize = fireTileSize * tileSizeBase; ++ field_76869_g = new float[fireGridSize]; ++ field_76870_h = new float[fireGridSize]; + } + + public void func_76846_a() +@@ -16,31 +32,36 @@ + float var4; + int var6; + +- for (int var1 = 0; var1 < 16; ++var1) ++ float fireFactor1 = 3.0F + (float)(tileSizeBase >> 4); ++ ++ float fireFactor2 = 1.01F + (0.8F / tileSizeBase); ++ ++ for (int var1 = 0; var1 < tileSizeBase; ++var1) + { +- for (int var2 = 0; var2 < 20; ++var2) ++ for (int var2 = 0; var2 < fireTileSize; ++var2) + { +- var3 = 18; +- var4 = this.field_76869_g[var1 + (var2 + 1) % 20 * 16] * (float)var3; ++ var3 = fireTileSize - (tileSizeBase >> 3); ++ ++ var4 = this.field_76869_g[var1 + (var2 + 1) % fireTileSize * tileSizeBase] * (float)var3; + + for (int var5 = var1 - 1; var5 <= var1 + 1; ++var5) + { + for (var6 = var2; var6 <= var2 + 1; ++var6) + { +- if (var5 >= 0 && var6 >= 0 && var5 < 16 && var6 < 20) ++ if (var5 >= 0 && var6 >= 0 && var5 < tileSizeBase && var6 < fireTileSize) + { +- var4 += this.field_76869_g[var5 + var6 * 16]; ++ var4 += this.field_76869_g[var5 + var6 * tileSizeBase]; + } + + ++var3; + } + } + +- this.field_76870_h[var1 + var2 * 16] = var4 / ((float)var3 * 1.0600001F); ++ this.field_76870_h[var1 + var2 * tileSizeBase] = var4 / ((float)var3 * fireFactor2); + +- if (var2 >= 19) ++ if (var2 >= fireTileSize - (tileSizeBase >> 4)) + { +- this.field_76870_h[var1 + var2 * 16] = (float)(Math.random() * Math.random() * Math.random() * 4.0D + Math.random() * 0.10000000149011612D + 0.20000000298023224D); ++ this.field_76870_h[var1 + var2 * tileSizeBase] = (float)(Math.random() * Math.random() * Math.random() * fireFactor1 + Math.random() * 0.1F + 0.2F); + } + } + } +@@ -49,7 +70,7 @@ + this.field_76870_h = this.field_76869_g; + this.field_76869_g = var13; + +- for (var3 = 0; var3 < 256; ++var3) ++ for (var3 = 0; var3 < tileSizeSquare; ++var3) + { + var4 = this.field_76869_g[var3] * 1.8F; + diff --git a/patches/minecraft/net/minecraft/src/TextureLavaFX.java.patch b/patches/minecraft/net/minecraft/src/TextureLavaFX.java.patch new file mode 100644 index 0000000000..4c69b43803 --- /dev/null +++ b/patches/minecraft/net/minecraft/src/TextureLavaFX.java.patch @@ -0,0 +1,86 @@ +--- ../src-base/minecraft/net/minecraft/src/TextureLavaFX.java ++++ ../src-work/minecraft/net/minecraft/src/TextureLavaFX.java +@@ -1,6 +1,8 @@ + package net.minecraft.src; + +-public class TextureLavaFX extends TextureFX ++import cpw.mods.fml.client.FMLTextureFX; ++ ++public class TextureLavaFX extends FMLTextureFX + { + protected float[] field_76876_g = new float[256]; + protected float[] field_76878_h = new float[256]; +@@ -10,6 +12,17 @@ + public TextureLavaFX() + { + super(Block.field_71944_C.field_72059_bZ); ++ setup(); ++ } ++ ++ @Override ++ public void setup() ++ { ++ super.setup(); ++ field_76876_g = new float[tileSizeSquare]; ++ field_76878_h = new float[tileSizeSquare]; ++ field_76879_i = new float[tileSizeSquare]; ++ field_76877_j = new float[tileSizeSquare]; + } + + public void func_76846_a() +@@ -22,9 +35,9 @@ + int var8; + int var9; + +- for (int var1 = 0; var1 < 16; ++var1) ++ for (int var1 = 0; var1 < tileSizeBase; ++var1) + { +- for (var2 = 0; var2 < 16; ++var2) ++ for (var2 = 0; var2 < tileSizeBase; ++var2) + { + var3 = 0.0F; + int var4 = (int)(MathHelper.func_76126_a((float)var2 * (float)Math.PI * 2.0F / 16.0F) * 1.2F); +@@ -34,25 +47,25 @@ + { + for (var7 = var2 - 1; var7 <= var2 + 1; ++var7) + { +- var8 = var6 + var4 & 15; +- var9 = var7 + var5 & 15; +- var3 += this.field_76876_g[var8 + var9 * 16]; ++ var8 = var6 + var4 & tileSizeMask; ++ var9 = var7 + var5 & tileSizeMask; ++ var3 += this.field_76876_g[var8 + var9 * tileSizeBase]; + } + } + +- this.field_76878_h[var1 + var2 * 16] = var3 / 10.0F + (this.field_76879_i[(var1 + 0 & 15) + (var2 + 0 & 15) * 16] + this.field_76879_i[(var1 + 1 & 15) + (var2 + 0 & 15) * 16] + this.field_76879_i[(var1 + 1 & 15) + (var2 + 1 & 15) * 16] + this.field_76879_i[(var1 + 0 & 15) + (var2 + 1 & 15) * 16]) / 4.0F * 0.8F; +- this.field_76879_i[var1 + var2 * 16] += this.field_76877_j[var1 + var2 * 16] * 0.01F; ++ this.field_76878_h[var1 + var2 * tileSizeBase] = var3 / 10.0F + (this.field_76879_i[(var1 + 0 & tileSizeMask) + (var2 + 0 & tileSizeMask) * tileSizeBase] + this.field_76879_i[(var1 + 1 & tileSizeMask) + (var2 + 0 & tileSizeMask) * tileSizeBase] + this.field_76879_i[(var1 + 1 & tileSizeMask) + (var2 + 1 & tileSizeMask) * tileSizeBase] + this.field_76879_i[(var1 + 0 & tileSizeMask) + (var2 + 1 & tileSizeMask) * tileSizeBase]) / 4.0F * 0.8F; ++ this.field_76879_i[var1 + var2 * tileSizeBase] += this.field_76877_j[var1 + var2 * tileSizeBase] * 0.01F; + +- if (this.field_76879_i[var1 + var2 * 16] < 0.0F) ++ if (this.field_76879_i[var1 + var2 * tileSizeBase] < 0.0F) + { +- this.field_76879_i[var1 + var2 * 16] = 0.0F; ++ this.field_76879_i[var1 + var2 * tileSizeBase] = 0.0F; + } + +- this.field_76877_j[var1 + var2 * 16] -= 0.06F; ++ this.field_76877_j[var1 + var2 * tileSizeBase] -= 0.06F; + + if (Math.random() < 0.005D) + { +- this.field_76877_j[var1 + var2 * 16] = 1.5F; ++ this.field_76877_j[var1 + var2 * tileSizeBase] = 1.5F; + } + } + } +@@ -61,7 +74,7 @@ + this.field_76878_h = this.field_76876_g; + this.field_76876_g = var11; + +- for (var2 = 0; var2 < 256; ++var2) ++ for (var2 = 0; var2 < tileSizeSquare; ++var2) + { + var3 = this.field_76876_g[var2] * 2.0F; + diff --git a/patches/minecraft/net/minecraft/src/TextureLavaFlowFX.java.patch b/patches/minecraft/net/minecraft/src/TextureLavaFlowFX.java.patch new file mode 100644 index 0000000000..a7e74849e5 --- /dev/null +++ b/patches/minecraft/net/minecraft/src/TextureLavaFlowFX.java.patch @@ -0,0 +1,90 @@ +--- ../src-base/minecraft/net/minecraft/src/TextureLavaFlowFX.java ++++ ../src-work/minecraft/net/minecraft/src/TextureLavaFlowFX.java +@@ -1,6 +1,8 @@ + package net.minecraft.src; + +-public class TextureLavaFlowFX extends TextureFX ++import cpw.mods.fml.client.FMLTextureFX; ++ ++public class TextureLavaFlowFX extends FMLTextureFX + { + protected float[] field_76871_g = new float[256]; + protected float[] field_76874_h = new float[256]; +@@ -12,6 +14,18 @@ + { + super(Block.field_71944_C.field_72059_bZ + 1); + this.field_76849_e = 2; ++ setup(); ++ } ++ ++ @Override ++ public void setup() ++ { ++ super.setup(); ++ field_76871_g = new float[tileSizeSquare]; ++ field_76874_h = new float[tileSizeSquare]; ++ field_76875_i = new float[tileSizeSquare]; ++ field_76872_j = new float[tileSizeSquare]; ++ field_76873_k = 0; + } + + public void func_76846_a() +@@ -25,9 +39,9 @@ + int var8; + int var9; + +- for (int var1 = 0; var1 < 16; ++var1) ++ for (int var1 = 0; var1 < tileSizeBase; ++var1) + { +- for (var2 = 0; var2 < 16; ++var2) ++ for (var2 = 0; var2 < tileSizeBase; ++var2) + { + var3 = 0.0F; + int var4 = (int)(MathHelper.func_76126_a((float)var2 * (float)Math.PI * 2.0F / 16.0F) * 1.2F); +@@ -37,25 +51,25 @@ + { + for (var7 = var2 - 1; var7 <= var2 + 1; ++var7) + { +- var8 = var6 + var4 & 15; +- var9 = var7 + var5 & 15; +- var3 += this.field_76871_g[var8 + var9 * 16]; ++ var8 = var6 + var4 & tileSizeMask; ++ var9 = var7 + var5 & tileSizeMask; ++ var3 += this.field_76871_g[var8 + var9 * tileSizeBase]; + } + } + +- this.field_76874_h[var1 + var2 * 16] = var3 / 10.0F + (this.field_76875_i[(var1 + 0 & 15) + (var2 + 0 & 15) * 16] + this.field_76875_i[(var1 + 1 & 15) + (var2 + 0 & 15) * 16] + this.field_76875_i[(var1 + 1 & 15) + (var2 + 1 & 15) * 16] + this.field_76875_i[(var1 + 0 & 15) + (var2 + 1 & 15) * 16]) / 4.0F * 0.8F; +- this.field_76875_i[var1 + var2 * 16] += this.field_76872_j[var1 + var2 * 16] * 0.01F; ++ this.field_76874_h[var1 + var2 * tileSizeBase] = var3 / 10.0F + (this.field_76875_i[(var1 + 0 & tileSizeMask) + (var2 + 0 & tileSizeMask) * tileSizeBase] + this.field_76875_i[(var1 + 1 & tileSizeMask) + (var2 + 0 & tileSizeMask) * tileSizeBase] + this.field_76875_i[(var1 + 1 & tileSizeMask) + (var2 + 1 & tileSizeMask) * tileSizeBase] + this.field_76875_i[(var1 + 0 & tileSizeMask) + (var2 + 1 & tileSizeMask) * tileSizeBase]) / 4.0F * 0.8F; ++ this.field_76875_i[var1 + var2 * tileSizeBase] += this.field_76872_j[var1 + var2 * tileSizeBase] * 0.01F; + +- if (this.field_76875_i[var1 + var2 * 16] < 0.0F) ++ if (this.field_76875_i[var1 + var2 * tileSizeBase] < 0.0F) + { +- this.field_76875_i[var1 + var2 * 16] = 0.0F; ++ this.field_76875_i[var1 + var2 * tileSizeBase] = 0.0F; + } + +- this.field_76872_j[var1 + var2 * 16] -= 0.06F; ++ this.field_76872_j[var1 + var2 * tileSizeBase] -= 0.06F; + + if (Math.random() < 0.005D) + { +- this.field_76872_j[var1 + var2 * 16] = 1.5F; ++ this.field_76872_j[var1 + var2 * tileSizeBase] = 1.5F; + } + } + } +@@ -64,9 +78,9 @@ + this.field_76874_h = this.field_76871_g; + this.field_76871_g = var11; + +- for (var2 = 0; var2 < 256; ++var2) ++ for (var2 = 0; var2 < tileSizeSquare; ++var2) + { +- var3 = this.field_76871_g[var2 - this.field_76873_k / 3 * 16 & 255] * 2.0F; ++ var3 = this.field_76871_g[(var2 - this.field_76873_k / 3 * tileSizeBase) & tileSizeSquareMask] * 2.0F; + + if (var3 > 1.0F) + { diff --git a/patches/minecraft/net/minecraft/src/TexturePortalFX.java.patch b/patches/minecraft/net/minecraft/src/TexturePortalFX.java.patch new file mode 100644 index 0000000000..ef9f054224 --- /dev/null +++ b/patches/minecraft/net/minecraft/src/TexturePortalFX.java.patch @@ -0,0 +1,70 @@ +--- ../src-base/minecraft/net/minecraft/src/TexturePortalFX.java ++++ ../src-work/minecraft/net/minecraft/src/TexturePortalFX.java +@@ -2,31 +2,41 @@ + + import java.util.Random; + +-public class TexturePortalFX extends TextureFX ++import cpw.mods.fml.client.FMLTextureFX; ++ ++public class TexturePortalFX extends FMLTextureFX + { + private int field_76853_g = 0; +- private byte[][] field_76854_h = new byte[32][1024]; ++ private byte[][] field_76854_h; + + public TexturePortalFX() + { + super(Block.field_72015_be.field_72059_bZ); ++ setup(); ++ } ++ ++ @Override ++ public void setup() ++ { ++ super.setup(); ++ field_76854_h = new byte[32][tileSizeSquare << 4]; + Random var1 = new Random(100L); + + for (int var2 = 0; var2 < 32; ++var2) + { +- for (int var3 = 0; var3 < 16; ++var3) ++ for (int var3 = 0; var3 < tileSizeBase; ++var3) + { +- for (int var4 = 0; var4 < 16; ++var4) ++ for (int var4 = 0; var4 < tileSizeBase; ++var4) + { + float var5 = 0.0F; + int var6; + + for (var6 = 0; var6 < 2; ++var6) + { +- float var7 = (float)(var6 * 16) * 0.5F; +- float var8 = (float)(var6 * 16) * 0.5F; +- float var9 = ((float)var3 - var7) / 16.0F * 2.0F; +- float var10 = ((float)var4 - var8) / 16.0F * 2.0F; ++ float var7 = (float)(var6 * tileSizeBase) * 0.5F; ++ float var8 = (float)(var6 * tileSizeBase) * 0.5F; ++ float var9 = ((float)var3 - var7) / (float)tileSizeBase * 2.0F; ++ float var10 = ((float)var4 - var8) / (float)tileSizeBase * 2.0F; + + if (var9 < -1.0F) + { +@@ -60,7 +70,7 @@ + int var13 = (int)(var5 * var5 * 200.0F + 55.0F); + int var14 = (int)(var5 * var5 * var5 * var5 * 255.0F); + int var15 = (int)(var5 * 100.0F + 155.0F); +- int var16 = var4 * 16 + var3; ++ int var16 = var4 * tileSizeBase + var3; + this.field_76854_h[var2][var16 * 4 + 0] = (byte)var13; + this.field_76854_h[var2][var16 * 4 + 1] = (byte)var14; + this.field_76854_h[var2][var16 * 4 + 2] = (byte)var6; +@@ -75,7 +85,7 @@ + ++this.field_76853_g; + byte[] var1 = this.field_76854_h[this.field_76853_g & 31]; + +- for (int var2 = 0; var2 < 256; ++var2) ++ for (int var2 = 0; var2 < tileSizeSquare; ++var2) + { + int var3 = var1[var2 * 4 + 0] & 255; + int var4 = var1[var2 * 4 + 1] & 255; diff --git a/patches/minecraft/net/minecraft/src/TextureWatchFX.java.patch b/patches/minecraft/net/minecraft/src/TextureWatchFX.java.patch new file mode 100644 index 0000000000..8ca3c4ce99 --- /dev/null +++ b/patches/minecraft/net/minecraft/src/TextureWatchFX.java.patch @@ -0,0 +1,118 @@ +--- ../src-base/minecraft/net/minecraft/src/TextureWatchFX.java ++++ ../src-work/minecraft/net/minecraft/src/TextureWatchFX.java +@@ -1,11 +1,17 @@ + package net.minecraft.src; + ++import java.awt.Graphics2D; + import java.awt.image.BufferedImage; ++import java.awt.image.ImageObserver; + import java.io.IOException; ++import java.util.logging.Level; ++ + import javax.imageio.ImageIO; ++ ++import cpw.mods.fml.client.FMLTextureFX; + import net.minecraft.client.Minecraft; + +-public class TextureWatchFX extends TextureFX ++public class TextureWatchFX extends FMLTextureFX + { + private Minecraft field_76860_g; + private int[] field_76863_h = new int[256]; +@@ -18,19 +24,37 @@ + super(Item.field_77752_aS.func_77617_a(0)); + this.field_76860_g = p_i3214_1_; + this.field_76847_f = 1; ++ setup(); ++ } + ++ @Override ++ public void setup() ++ { ++ super.setup(); ++ field_76863_h = new int[tileSizeSquare]; ++ field_76864_i = new int[tileSizeSquare]; + try + { +- BufferedImage var2 = ImageIO.read(Minecraft.class.getResource("/gui/items.png")); +- int var3 = this.field_76850_b % 16 * 16; +- int var4 = this.field_76850_b / 16 * 16; +- var2.getRGB(var3, var4, 16, 16, this.field_76863_h, 0, 16); +- var2 = ImageIO.read(Minecraft.class.getResource("/misc/dial.png")); +- var2.getRGB(0, 0, 16, 16, this.field_76864_i, 0, 16); ++ BufferedImage var2 = ImageIO.read(field_76860_g.field_71418_C.func_77292_e().func_77532_a("/gui/items.png")); ++ int var3 = this.field_76850_b % 16 * tileSizeBase; ++ int var4 = this.field_76850_b / 16 * tileSizeBase; ++ var2.getRGB(var3, var4, tileSizeBase, tileSizeBase, this.field_76863_h, 0, tileSizeBase); ++ var2 = ImageIO.read(field_76860_g.field_71418_C.func_77292_e().func_77532_a("/misc/dial.png")); ++ if (var2.getWidth() != tileSizeBase) ++ { ++ BufferedImage tmp = new BufferedImage(tileSizeBase, tileSizeBase, 6); ++ Graphics2D gfx = tmp.createGraphics(); ++ gfx.drawImage(var2, 0, 0, tileSizeBase, tileSizeBase, 0, 0, var2.getWidth(), var2.getHeight(), (ImageObserver) null); ++ gfx.dispose(); ++ var2 = tmp; ++ } ++ ++ var2.getRGB(0, 0, tileSizeBase, tileSizeBase, this.field_76864_i, 0, tileSizeBase); + } +- catch (IOException var5) ++ catch (Exception var5) + { +- var5.printStackTrace(); ++ log.log(Level.WARNING, String.format("A problem occurred with the watch texture: animation will be disabled"), var5); ++ setErrored(true); + } + } + +@@ -41,7 +65,7 @@ + if (this.field_76860_g.field_71441_e != null && this.field_76860_g.field_71439_g != null) + { + float var3 = this.field_76860_g.field_71441_e.func_72826_c(1.0F); +- var1 = (double)(-var3 * (float)Math.PI * 2.0F); ++ var1 = (double) (-var3 * (float) Math.PI * 2.0F); + + if (!this.field_76860_g.field_71441_e.field_73011_w.func_76569_d()) + { +@@ -77,7 +101,7 @@ + double var5 = Math.sin(this.field_76861_j); + double var7 = Math.cos(this.field_76861_j); + +- for (int var9 = 0; var9 < 256; ++var9) ++ for (int var9 = 0; var9 < tileSizeSquare; ++var9) + { + int var10 = this.field_76863_h[var9] >> 24 & 255; + int var11 = this.field_76863_h[var9] >> 16 & 255; +@@ -86,12 +110,12 @@ + + if (var11 == var13 && var12 == 0 && var13 > 0) + { +- double var14 = -((double)(var9 % 16) / 15.0D - 0.5D); +- double var16 = (double)(var9 / 16) / 15.0D - 0.5D; ++ double var14 = -((double) (var9 % tileSizeBase) / tileSizeMask - 0.5D); ++ double var16 = (double) (var9 / tileSizeBase) / tileSizeMask - 0.5D; + int var18 = var11; +- int var19 = (int)((var14 * var7 + var16 * var5 + 0.5D) * 16.0D); +- int var20 = (int)((var16 * var7 - var14 * var5 + 0.5D) * 16.0D); +- int var21 = (var19 & 15) + (var20 & 15) * 16; ++ int var19 = (int) ((var14 * var7 + var16 * var5 + 0.5D) * tileSizeBase); ++ int var20 = (int) ((var16 * var7 - var14 * var5 + 0.5D) * tileSizeBase); ++ int var21 = (var19 & tileSizeMask) + (var20 & tileSizeMask) * tileSizeBase; + var10 = this.field_76864_i[var21] >> 24 & 255; + var11 = (this.field_76864_i[var21] >> 16 & 255) * var11 / 255; + var12 = (this.field_76864_i[var21] >> 8 & 255) * var18 / 255; +@@ -108,10 +132,10 @@ + var13 = var24; + } + +- this.field_76852_a[var9 * 4 + 0] = (byte)var11; +- this.field_76852_a[var9 * 4 + 1] = (byte)var12; +- this.field_76852_a[var9 * 4 + 2] = (byte)var13; +- this.field_76852_a[var9 * 4 + 3] = (byte)var10; ++ this.field_76852_a[var9 * 4 + 0] = (byte) var11; ++ this.field_76852_a[var9 * 4 + 1] = (byte) var12; ++ this.field_76852_a[var9 * 4 + 2] = (byte) var13; ++ this.field_76852_a[var9 * 4 + 3] = (byte) var10; + } + } + } diff --git a/patches/minecraft/net/minecraft/src/TextureWaterFX.java.patch b/patches/minecraft/net/minecraft/src/TextureWaterFX.java.patch new file mode 100644 index 0000000000..67049f5d1e --- /dev/null +++ b/patches/minecraft/net/minecraft/src/TextureWaterFX.java.patch @@ -0,0 +1,95 @@ +--- ../src-base/minecraft/net/minecraft/src/TextureWaterFX.java ++++ ../src-work/minecraft/net/minecraft/src/TextureWaterFX.java +@@ -1,6 +1,8 @@ + package net.minecraft.src; + +-public class TextureWaterFX extends TextureFX ++import cpw.mods.fml.client.FMLTextureFX; ++ ++public class TextureWaterFX extends FMLTextureFX + { + protected float[] field_76855_g = new float[256]; + protected float[] field_76858_h = new float[256]; +@@ -11,8 +13,20 @@ + public TextureWaterFX() + { + super(Block.field_71942_A.field_72059_bZ); ++ setup(); + } + ++ @Override ++ public void setup() ++ { ++ super.setup(); ++ field_76855_g = new float[tileSizeSquare]; ++ field_76858_h = new float[tileSizeSquare]; ++ field_76859_i = new float[tileSizeSquare]; ++ field_76856_j = new float[tileSizeSquare]; ++ field_76857_k = 0; ++ } ++ + public void func_76846_a() + { + ++this.field_76857_k; +@@ -22,39 +36,39 @@ + int var5; + int var6; + +- for (var1 = 0; var1 < 16; ++var1) ++ for (var1 = 0; var1 < tileSizeBase; ++var1) + { +- for (var2 = 0; var2 < 16; ++var2) ++ for (var2 = 0; var2 < tileSizeBase; ++var2) + { + var3 = 0.0F; + + for (int var4 = var1 - 1; var4 <= var1 + 1; ++var4) + { +- var5 = var4 & 15; +- var6 = var2 & 15; +- var3 += this.field_76855_g[var5 + var6 * 16]; ++ var5 = var4 & tileSizeMask; ++ var6 = var2 & tileSizeMask; ++ var3 += this.field_76855_g[var5 + var6 * tileSizeBase]; + } + +- this.field_76858_h[var1 + var2 * 16] = var3 / 3.3F + this.field_76859_i[var1 + var2 * 16] * 0.8F; ++ this.field_76858_h[var1 + var2 * tileSizeBase] = var3 / 3.3F + this.field_76859_i[var1 + var2 * tileSizeBase] * 0.8F; + } + } + +- for (var1 = 0; var1 < 16; ++var1) ++ for (var1 = 0; var1 < tileSizeBase; ++var1) + { +- for (var2 = 0; var2 < 16; ++var2) ++ for (var2 = 0; var2 < tileSizeBase; ++var2) + { +- this.field_76859_i[var1 + var2 * 16] += this.field_76856_j[var1 + var2 * 16] * 0.05F; ++ this.field_76859_i[var1 + var2 * tileSizeBase] += this.field_76856_j[var1 + var2 * tileSizeBase] * 0.05F; + +- if (this.field_76859_i[var1 + var2 * 16] < 0.0F) ++ if (this.field_76859_i[var1 + var2 * tileSizeBase] < 0.0F) + { +- this.field_76859_i[var1 + var2 * 16] = 0.0F; ++ this.field_76859_i[var1 + var2 * tileSizeBase] = 0.0F; + } + +- this.field_76856_j[var1 + var2 * 16] -= 0.1F; ++ this.field_76856_j[var1 + var2 * tileSizeBase] -= 0.1F; + + if (Math.random() < 0.05D) + { +- this.field_76856_j[var1 + var2 * 16] = 0.5F; ++ this.field_76856_j[var1 + var2 * tileSizeBase] = 0.5F; + } + } + } +@@ -63,7 +77,7 @@ + this.field_76858_h = this.field_76855_g; + this.field_76855_g = var12; + +- for (var2 = 0; var2 < 256; ++var2) ++ for (var2 = 0; var2 < tileSizeSquare; ++var2) + { + var3 = this.field_76855_g[var2]; + diff --git a/patches/minecraft/net/minecraft/src/TextureWaterFlowFX.java.patch b/patches/minecraft/net/minecraft/src/TextureWaterFlowFX.java.patch new file mode 100644 index 0000000000..d86a37fa7c --- /dev/null +++ b/patches/minecraft/net/minecraft/src/TextureWaterFlowFX.java.patch @@ -0,0 +1,96 @@ +--- ../src-base/minecraft/net/minecraft/src/TextureWaterFlowFX.java ++++ ../src-work/minecraft/net/minecraft/src/TextureWaterFlowFX.java +@@ -1,6 +1,8 @@ + package net.minecraft.src; + +-public class TextureWaterFlowFX extends TextureFX ++import cpw.mods.fml.client.FMLTextureFX; ++ ++public class TextureWaterFlowFX extends FMLTextureFX + { + protected float[] field_76880_g = new float[256]; + protected float[] field_76883_h = new float[256]; +@@ -12,6 +14,18 @@ + { + super(Block.field_71942_A.field_72059_bZ + 1); + this.field_76849_e = 2; ++ setup(); ++ } ++ ++ @Override ++ public void setup() ++ { ++ super.setup(); ++ field_76880_g = new float[tileSizeSquare]; ++ field_76883_h = new float[tileSizeSquare]; ++ field_76884_i = new float[tileSizeSquare]; ++ field_76881_j = new float[tileSizeSquare]; ++ field_76882_k = 0; + } + + public void func_76846_a() +@@ -23,39 +37,39 @@ + int var5; + int var6; + +- for (var1 = 0; var1 < 16; ++var1) ++ for (var1 = 0; var1 < tileSizeBase; ++var1) + { +- for (var2 = 0; var2 < 16; ++var2) ++ for (var2 = 0; var2 < tileSizeBase; ++var2) + { + var3 = 0.0F; + + for (int var4 = var2 - 2; var4 <= var2; ++var4) + { +- var5 = var1 & 15; +- var6 = var4 & 15; +- var3 += this.field_76880_g[var5 + var6 * 16]; ++ var5 = var1 & tileSizeMask; ++ var6 = var4 & tileSizeMask; ++ var3 += this.field_76880_g[var5 + var6 * tileSizeBase]; + } + +- this.field_76883_h[var1 + var2 * 16] = var3 / 3.2F + this.field_76884_i[var1 + var2 * 16] * 0.8F; ++ this.field_76883_h[var1 + var2 * tileSizeBase] = var3 / 3.2F + this.field_76884_i[var1 + var2 * tileSizeBase] * 0.8F; + } + } + +- for (var1 = 0; var1 < 16; ++var1) ++ for (var1 = 0; var1 < tileSizeBase; ++var1) + { +- for (var2 = 0; var2 < 16; ++var2) ++ for (var2 = 0; var2 < tileSizeBase; ++var2) + { +- this.field_76884_i[var1 + var2 * 16] += this.field_76881_j[var1 + var2 * 16] * 0.05F; ++ this.field_76884_i[var1 + var2 * tileSizeBase] += this.field_76881_j[var1 + var2 * tileSizeBase] * 0.05F; + +- if (this.field_76884_i[var1 + var2 * 16] < 0.0F) ++ if (this.field_76884_i[var1 + var2 * tileSizeBase] < 0.0F) + { +- this.field_76884_i[var1 + var2 * 16] = 0.0F; ++ this.field_76884_i[var1 + var2 * tileSizeBase] = 0.0F; + } + +- this.field_76881_j[var1 + var2 * 16] -= 0.3F; ++ this.field_76881_j[var1 + var2 * tileSizeBase] -= 0.3F; + + if (Math.random() < 0.2D) + { +- this.field_76881_j[var1 + var2 * 16] = 0.5F; ++ this.field_76881_j[var1 + var2 * tileSizeBase] = 0.5F; + } + } + } +@@ -64,9 +78,9 @@ + this.field_76883_h = this.field_76880_g; + this.field_76880_g = var12; + +- for (var2 = 0; var2 < 256; ++var2) ++ for (var2 = 0; var2 < tileSizeSquare; ++var2) + { +- var3 = this.field_76880_g[var2 - this.field_76882_k * 16 & 255]; ++ var3 = this.field_76880_g[var2 - this.field_76882_k * tileSizeBase & tileSizeSquareMask]; + + if (var3 > 1.0F) + { diff --git a/patches/minecraft_server/net/minecraft/src/TcpConnection.java.patch b/patches/minecraft_server/net/minecraft/src/TcpConnection.java.patch new file mode 100644 index 0000000000..91a1da4542 --- /dev/null +++ b/patches/minecraft_server/net/minecraft/src/TcpConnection.java.patch @@ -0,0 +1,19 @@ +--- ../src-base/minecraft_server/net/minecraft/src/TcpConnection.java ++++ ../src-work/minecraft_server/net/minecraft/src/TcpConnection.java +@@ -14,6 +14,8 @@ + import java.util.List; + import java.util.concurrent.atomic.AtomicInteger; + import javax.crypto.SecretKey; ++ ++import cpw.mods.fml.common.network.FMLNetworkHandler; + + public class TcpConnection implements NetworkManager + { +@@ -345,6 +347,7 @@ + if (this.field_74472_n && this.field_74473_o.isEmpty()) + { + this.field_74485_r.func_72515_a(this.field_74481_v, this.field_74480_w); ++ FMLNetworkHandler.onConnectionClosed(this); + } + } +