Revert dumb stuff with commands patch - lots of gfx patching

This commit is contained in:
Christian 2012-08-07 23:11:37 -04:00
parent 0ddf61cee2
commit 8998d4c5e0
19 changed files with 1004 additions and 18 deletions

View File

@ -164,6 +164,7 @@ public class FMLClientHandler implements IFMLSidedHandler
client = minecraft;
ObfuscationReflectionHelper.detectObfuscation(World.class);
TextureFXManager.instance().setClient(client);
FMLCommonHandler.instance().beginLoading(this);
try
{

View File

@ -53,7 +53,12 @@ public class TextureFXManager
private List<TextureFX> addedTextureFX = new ArrayList<TextureFX>();
private Minecraft client;
void setClient(Minecraft client)
{
this.client = client;
}
public boolean onUpdateTextureEffect(TextureFX effect)
{
ITextureFX ifx = (effect instanceof ITextureFX ? ((ITextureFX)effect) : null);

View File

@ -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])

View File

@ -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)
{
}
}

View File

@ -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

View File

@ -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

View File

@ -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
rg cpw/mods/fml/common/registry/ItemProxy
net/minecraft/src/Item cpw/mods/fml/common/registry/ItemProxy

View File

@ -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);
}
}

View File

@ -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<TextureFX>)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();
}
}

View File

@ -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);
}
}

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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)
{

View File

@ -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;

View File

@ -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;
}
}
}

View File

@ -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];

View File

@ -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)
{

View File

@ -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);
}
}