Compare commits

...
19 Commits
Author SHA1 Message Date
Christian 2140cd8cb6 Temporary hosting 2013-01-12 00:38:42 -05:00
Christian 4a6245a215 Another packaging update. I think we're done now. 2013-01-12 00:33:32 -05:00
Christian 48544db690 Fix modlist to use the new texture binding functions, i think 2013-01-12 00:27:11 -05:00
Christian 2c89b3def3 A couple of packaging tweaks, clean up more junk. It may come back but for now it's gone 2013-01-12 00:17:35 -05:00
Christian 5689182088 Delete old patches not needed anymore 2013-01-11 23:53:14 -05:00
Christian 4a1f4b90fd Initial patch update for snapshot 2013-01-11 23:47:05 -05:00
Christian f2d42d1134 Initial setup for snapshot- the client compiles, but patches fail to apply. 2013-01-11 22:49:09 -05:00
LexManos 51e7606e74 Updated patches for new JAD style names. 2013-01-11 13:16:40 -08:00
LexManos 723c2d98eb FML will now rename local variables to have JAD-style names instead of FernFlower var## names. New script to do this, to allow for modders to run it over there own code: python rename_vars.py -mcp [folders to rename]... 2013-01-11 13:16:23 -08:00
Christian 7dee072e1a Fix incorrect end length calculation. Closes #161 Thanks BStramke! 2013-01-11 09:41:47 -05:00
Christian 3e18c4160f Fix LanguageRegistry loading files in UTF-8 format. loadLocalization should work for non-xml in
all languages now (assumes UTF-8)
2013-01-08 08:46:50 -05:00
cpw 513ad19187 Merge pull request #158 from CovertJaguar/patch-2
Added an accessor for villagers
2013-01-08 05:36:45 -08:00
CovertJaguar eabede2203 Added an accessor for villagers 2013-01-07 14:55:17 -08:00
LexManos b22dbc12a2 New python script to update java files for new package names. Usage: paython update_packages.py --mcp-dir <mcp folder> [Folders To Repackage] 2013-01-06 22:10:19 -08:00
LexManos 708e86adfb New python script for signing partial jar files. See comments inside for details. 2013-01-06 22:09:12 -08:00
Christian 6f1b762c9d Move server stopped *after* the server has actually stopped. *sigh* 2012-12-31 01:20:35 -05:00
Christian d9bfb29d6c Add in a "server stopped" event 2012-12-30 23:52:38 -05:00
Christian 6fc7bc4941 Add in some classloader debugging information: use fml.debugClassLoading=true as a system property
to track down problems with classes not being found or loading erratically.
2012-12-30 21:32:37 -05:00
Christian fb701cdc5e Revert MCP name change for canConnectRedstone - it conflicts with a forge method of the same name and breaks 1.4.6 to 1.4.7 compatibility 2012-12-29 00:00:24 -05:00
84 changed files with 16390 additions and 15972 deletions

No files matched your search

@@ -140,7 +140,7 @@ public class FMLClientHandler implements IFMLSidedHandler
loading = true;
client = minecraft;
ObfuscationReflectionHelper.detectObfuscation(World.class);
TextureFXManager.instance().setClient(client);
// TextureFXManager.instance().setClient(client);
FMLCommonHandler.instance().beginLoading(this);
new ModLoaderClientHelper(client);
try
@@ -244,7 +244,7 @@ public class FMLClientHandler implements IFMLSidedHandler
}
else
{
TextureFXManager.instance().loadTextures(client.field_71418_C.func_77292_e());
// TextureFXManager.instance().loadTextures(client.field_71418_C.func_77292_e());
}
}
/**
@@ -1,70 +0,0 @@
/*
* The FML Forge Mod Loader suite.
* Copyright (C) 2012 cpw
*
* This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free
* Software Foundation; either version 2.1 of the License, or any later version.
*
* This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
* A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 51
* Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
package cpw.mods.fml.client;
import java.awt.Dimension;
import java.util.List;
import java.util.logging.Logger;
import net.minecraft.client.renderer.RenderEngine;
import net.minecraft.client.renderer.texturefx.TextureFX;
import net.minecraft.client.texturepacks.ITexturePack;
import cpw.mods.fml.common.FMLCommonHandler;
import cpw.mods.fml.common.FMLLog;
public class FMLTextureFX extends TextureFX implements ITextureFX
{
public int tileSizeBase = 16;
public int tileSizeSquare = 256;
public int tileSizeMask = 15;
public int tileSizeSquareMask = 255;
public boolean errored = false;
protected Logger log = FMLLog.getLogger();
public FMLTextureFX(int icon)
{
super(icon);
}
@Override public void setErrored(boolean err){ errored = err; }
@Override public boolean getErrored(){ return errored; }
@Override
public void onTexturePackChanged(RenderEngine engine, ITexturePack texturepack, Dimension dimensions)
{
onTextureDimensionsUpdate(dimensions.width, dimensions.height);
}
@Override
public void onTextureDimensionsUpdate(int width, int height)
{
tileSizeBase = width >> 4;
tileSizeSquare = tileSizeBase * tileSizeBase;
tileSizeMask = tileSizeBase - 1;
tileSizeSquareMask = tileSizeSquare - 1;
setErrored(false);
setup();
}
protected void setup()
{
field_76852_a = new byte[tileSizeSquare << 2];
}
public boolean unregister(RenderEngine engine, List<TextureFX> effects)
{
effects.remove(this);
return true;
}
}
+10 -8
View File
@@ -16,6 +16,7 @@ package cpw.mods.fml.client;
import java.awt.Dimension;
import java.util.ArrayList;
import java.util.List;
import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.FontRenderer;
@@ -23,6 +24,8 @@ import net.minecraft.client.gui.GuiButton;
import net.minecraft.client.gui.GuiScreen;
import net.minecraft.client.gui.GuiSmallButton;
import net.minecraft.client.renderer.Tessellator;
import net.minecraft.client.renderer.texture.Texture;
import net.minecraft.client.renderer.texture.TextureManager;
import net.minecraft.util.StringTranslate;
import org.lwjgl.opengl.GL11;
@@ -118,17 +121,16 @@ public class GuiModList extends GuiScreen
int shifty = 35;
if (!selectedMod.getMetadata().logoFile.isEmpty())
{
int texture = this.field_73882_e.field_71446_o.func_78341_b(selectedMod.getMetadata().logoFile);
GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
this.field_73882_e.field_71446_o.func_78342_b(texture);
Dimension dim = TextureFXManager.instance().getTextureDimensions(texture);
List<Texture> texList = TextureManager.func_94267_b().func_94266_e(selectedMod.getMetadata().logoFile);
Texture texture = texList.get(0);
texture.func_94277_a(0);
int top = 32;
Tessellator tess = Tessellator.field_78398_a;
tess.func_78382_b();
tess.func_78374_a(offset, top + dim.height, field_73735_i, 0, 1);
tess.func_78374_a(offset + dim.width, top + dim.height, field_73735_i, 1, 1);
tess.func_78374_a(offset + dim.width, top, field_73735_i, 1, 0);
tess.func_78374_a(offset, top, field_73735_i, 0, 0);
tess.func_78374_a(offset, top + texture.func_94284_b(), field_73735_i, 0, 1);
tess.func_78374_a(offset + texture.func_94282_c(), top + texture.func_94284_b(), field_73735_i, 1, 1);
tess.func_78374_a(offset + texture.func_94282_c(), top, field_73735_i, 1, 0);
tess.func_78374_a(offset, top, field_73735_i, 0, 0);
tess.func_78381_a();
shifty += 65;
@@ -1,44 +0,0 @@
/*
* The FML Forge Mod Loader suite.
* Copyright (C) 2012 cpw
*
* This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free
* Software Foundation; either version 2.1 of the License, or any later version.
*
* This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
* A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 51
* Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
package cpw.mods.fml.client;
import net.minecraft.client.renderer.texturefx.TextureFX;
class OverrideInfo
{
public String texture;
public String override;
public int index;
public int imageIndex;
public TextureFX textureFX;
public boolean added;
@Override
public boolean equals(Object obj)
{
try {
OverrideInfo inf=(OverrideInfo) obj;
return index==inf.index && imageIndex==inf.imageIndex;
} catch (Exception e) {
return false;
}
}
@Override
public int hashCode()
{
return index+imageIndex;
}
}
@@ -1,302 +1,24 @@
package cpw.mods.fml.client;
import static org.lwjgl.opengl.GL11.GL_TEXTURE_2D;
import static org.lwjgl.opengl.GL11.GL_TEXTURE_BINDING_2D;
import java.awt.Dimension;
import java.awt.image.BufferedImage;
import java.io.IOException;
import java.io.InputStream;
import java.nio.ByteBuffer;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.HashSet;
import java.util.IdentityHashMap;
import java.util.List;
import java.util.ListIterator;
import java.util.Map;
import javax.imageio.ImageIO;
import net.minecraft.client.Minecraft;
import net.minecraft.client.renderer.RenderEngine;
import net.minecraft.client.renderer.texturefx.TextureFX;
import net.minecraft.client.texturepacks.ITexturePack;
import net.minecraft.src.ModTextureStatic;
import org.lwjgl.opengl.GL11;
import com.google.common.collect.ArrayListMultimap;
import com.google.common.collect.Maps;
import com.google.common.collect.Multimap;
import cpw.mods.fml.common.FMLCommonHandler;
import cpw.mods.fml.common.FMLLog;
import cpw.mods.fml.common.ModContainer;
public class TextureFXManager
{
private static final TextureFXManager INSTANCE = new TextureFXManager();
private class TextureProperties
{
private int textureId;
private Dimension dim;
}
private Map<Integer,TextureProperties> textureProperties = Maps.newHashMap();
private Multimap<String, OverrideInfo> overrideInfo = ArrayListMultimap.create();
private HashSet<OverrideInfo> animationSet = new HashSet<OverrideInfo>();
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);
if (ifx != null && ifx.getErrored())
{
return false;
}
String name = effect.getClass().getSimpleName();
client.field_71424_I.func_76320_a(name);
try
{
if (!FMLClientHandler.instance().hasOptifine())
{
effect.func_76846_a();
}
}
catch (Exception e)
{
FMLLog.warning("Texture FX %s has failed to animate. Likely caused by a texture pack change that they did not respond correctly to", name);
if (ifx != null)
{
ifx.setErrored(true);
}
client.field_71424_I.func_76319_b();
return false;
}
client.field_71424_I.func_76319_b();
if (ifx != null)
{
Dimension dim = getTextureDimensions(effect);
int target = ((dim.width >> 4) * (dim.height >> 4)) << 2;
if (effect.field_76852_a.length != target)
{
FMLLog.warning("Detected a texture FX sizing discrepancy in %s (%d, %d)", name, effect.field_76852_a.length, target);
ifx.setErrored(true);
return false;
}
}
return true;
}
//Quick and dirty image scaling, no smoothing or fanciness, meant for speed as it will be called every tick.
public void scaleTextureFXData(byte[] data, ByteBuffer buf, int target, int length)
{
int sWidth = (int)Math.sqrt(data.length / 4);
int factor = target / sWidth;
byte[] tmp = new byte[4];
buf.clear();
if (factor > 1)
{
for (int y = 0; y < sWidth; y++)
{
int sRowOff = sWidth * y;
int tRowOff = target * y * factor;
for (int x = 0; x < sWidth; x++)
{
int sPos = (x + sRowOff) * 4;
tmp[0] = data[sPos + 0];
tmp[1] = data[sPos + 1];
tmp[2] = data[sPos + 2];
tmp[3] = data[sPos + 3];
int tPosTop = (x * factor) + tRowOff;
for (int y2 = 0; y2 < factor; y2++)
{
buf.position((tPosTop + (y2 * target)) * 4);
for (int x2 = 0; x2 < factor; x2++)
{
buf.put(tmp);
}
}
}
}
}
buf.position(0).limit(length);
}
public void onPreRegisterEffect(TextureFX effect)
{
Dimension dim = getTextureDimensions(effect);
if (effect instanceof ITextureFX)
{
((ITextureFX)effect).onTextureDimensionsUpdate(dim.width, dim.height);
}
}
public int getEffectTexture(TextureFX effect)
{
Integer id = effectTextures.get(effect);
if (id != null)
{
return id;
}
int old = GL11.glGetInteger(GL_TEXTURE_BINDING_2D);
effect.func_76845_a(client.field_71446_o);
id = GL11.glGetInteger(GL_TEXTURE_BINDING_2D);
GL11.glBindTexture(GL_TEXTURE_2D, old);
effectTextures.put(effect, id);
effect.field_76848_d = id;
return id;
}
public void onTexturePackChange(RenderEngine engine, ITexturePack texturepack, List<TextureFX> effects)
{
pruneOldTextureFX(texturepack, effects);
for (TextureFX tex : effects)
{
if (tex instanceof ITextureFX)
{
((ITextureFX)tex).onTexturePackChanged(engine, texturepack, getTextureDimensions(tex));
}
}
loadTextures(texturepack);
}
private HashMap<Integer, Dimension> textureDims = new HashMap<Integer, Dimension>();
private IdentityHashMap<TextureFX, Integer> effectTextures = new IdentityHashMap<TextureFX, Integer>();
private ITexturePack earlyTexturePack;
public void setTextureDimensions(int id, int width, int height, List<TextureFX> effects)
{
Dimension dim = new Dimension(width, height);
textureDims.put(id, dim);
for (TextureFX tex : effects)
{
if (getEffectTexture(tex) == id && tex instanceof ITextureFX)
{
((ITextureFX)tex).onTextureDimensionsUpdate(width, height);
}
}
}
public Dimension getTextureDimensions(TextureFX effect)
{
return getTextureDimensions(getEffectTexture(effect));
}
public Dimension getTextureDimensions(int id)
{
return textureDims.get(id);
}
public void addAnimation(TextureFX anim)
{
OverrideInfo info=new OverrideInfo();
info.index=anim.field_76850_b;
info.imageIndex=anim.field_76847_f;
info.textureFX=anim;
if (animationSet.contains(info)) {
animationSet.remove(info);
}
animationSet.add(info);
}
public void loadTextures(ITexturePack texturePack)
{
registerTextureOverrides(client.field_71446_o);
}
public void registerTextureOverrides(RenderEngine renderer) {
for (OverrideInfo animationOverride : animationSet) {
renderer.func_78355_a(animationOverride.textureFX);
addedTextureFX.add(animationOverride.textureFX);
FMLCommonHandler.instance().getFMLLogger().finer(String.format("Registered texture override %d (%d) on %s (%d)", animationOverride.index, animationOverride.textureFX.field_76850_b, animationOverride.textureFX.getClass().getSimpleName(), animationOverride.textureFX.field_76847_f));
}
for (String fileToOverride : overrideInfo.keySet()) {
for (OverrideInfo override : overrideInfo.get(fileToOverride)) {
try
{
BufferedImage image=loadImageFromTexturePack(renderer, override.override);
ModTextureStatic mts=new ModTextureStatic(override.index, 1, override.texture, image);
renderer.func_78355_a(mts);
addedTextureFX.add(mts);
FMLCommonHandler.instance().getFMLLogger().finer(String.format("Registered texture override %d (%d) on %s (%d)", override.index, mts.field_76850_b, override.texture, mts.field_76847_f));
}
catch (IOException e)
{
FMLCommonHandler.instance().getFMLLogger().throwing("FMLClientHandler", "registerTextureOverrides", e);
}
}
}
}
protected void registerAnimatedTexturesFor(ModContainer mod)
{
}
public void onEarlyTexturePackLoad(ITexturePack fallback)
{
if (client==null) {
// We're far too early- let's wait
this.earlyTexturePack = fallback;
} else {
loadTextures(fallback);
}
}
public void pruneOldTextureFX(ITexturePack var1, List<TextureFX> effects)
{
ListIterator<TextureFX> li = addedTextureFX.listIterator();
while (li.hasNext())
{
TextureFX tex = li.next();
if (tex instanceof FMLTextureFX)
{
if (((FMLTextureFX)tex).unregister(client.field_71446_o, effects))
{
li.remove();
}
}
else
{
effects.remove(tex);
li.remove();
}
}
}
public void addNewTextureOverride(String textureToOverride, String overridingTexturePath, int location) {
OverrideInfo info = new OverrideInfo();
info.index = location;
info.override = overridingTexturePath;
info.texture = textureToOverride;
overrideInfo.put(textureToOverride, info);
FMLLog.fine("Overriding %s @ %d with %s. %d slots remaining",textureToOverride, location, overridingTexturePath, SpriteHelper.freeSlotCount(textureToOverride));
}
public BufferedImage loadImageFromTexturePack(RenderEngine renderEngine, String path) throws IOException
{
InputStream image=client.field_71418_C.func_77292_e().func_77532_a(path);
@@ -106,7 +106,7 @@ public class RenderingRegistry
*/
public static void addTextureOverride(String path, String overlayPath, int index)
{
TextureFXManager.instance().addNewTextureOverride(path, overlayPath, index);
// TextureFXManager.instance().addNewTextureOverride(path, overlayPath, index);
}
/**
@@ -22,7 +22,6 @@ import java.util.logging.Logger;
import net.minecraft.block.Block;
import net.minecraft.client.renderer.RenderBlocks;
import net.minecraft.client.renderer.RenderEngine;
import net.minecraft.client.renderer.texturefx.TextureFX;
import net.minecraft.client.texturepacks.ITexturePack;
import net.minecraft.world.IBlockAccess;
@@ -54,31 +53,6 @@ public class FMLRenderAccessLibrary
FMLLog.log(level, throwable, message);
}
public static void setTextureDimensions(int textureId, int width, int height, List<TextureFX> textureFXList)
{
TextureFXManager.instance().setTextureDimensions(textureId, width, height, textureFXList);
}
public static void preRegisterEffect(TextureFX textureFX)
{
TextureFXManager.instance().onPreRegisterEffect(textureFX);
}
public static boolean onUpdateTextureEffect(TextureFX textureFX)
{
return TextureFXManager.instance().onUpdateTextureEffect(textureFX);
}
public static Dimension getTextureDimensions(TextureFX textureFX)
{
return TextureFXManager.instance().getTextureDimensions(textureFX);
}
public static void onTexturePackChange(RenderEngine engine, ITexturePack texturePack, List<TextureFX> textureFXList)
{
TextureFXManager.instance().onTexturePackChange(engine, texturePack, textureFXList);
}
@SuppressWarnings("deprecation")
public static boolean renderWorldBlock(RenderBlocks renderer, IBlockAccess world, int x, int y, int z, Block block, int modelId)
{
-7
View File
@@ -28,7 +28,6 @@ import net.minecraft.client.multiplayer.NetClientHandler;
import net.minecraft.client.renderer.RenderBlocks;
import net.minecraft.client.renderer.RenderEngine;
import net.minecraft.client.renderer.entity.Render;
import net.minecraft.client.renderer.texturefx.TextureFX;
import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer;
import net.minecraft.client.settings.KeyBinding;
import net.minecraft.command.ICommand;
@@ -120,12 +119,6 @@ public class ModLoader
{
}
@SideOnly(CLIENT)
public static void addAnimation(TextureFX anim)
{
TextureFXManager.instance().addAnimation(anim);
}
/**
* Adds a new prefix to the armor texture list
*
@@ -1,141 +0,0 @@
/*
* The FML Forge Mod Loader suite.
* Copyright (C) 2012 cpw
*
* This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free
* Software Foundation; either version 2.1 of the License, or any later version.
*
* This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
* A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 51
* Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
package net.minecraft.src;
import java.awt.Graphics2D;
import java.awt.image.BufferedImage;
import java.awt.image.ImageObserver;
import net.minecraft.client.renderer.RenderEngine;
import org.lwjgl.opengl.GL11;
import cpw.mods.fml.client.FMLClientHandler;
import cpw.mods.fml.client.FMLTextureFX;
/**
* A texture override for animations, it takes a vertical image of
* texture frames and constantly rotates them in the texture.
*/
public class ModTextureAnimation extends FMLTextureFX
{
private final int tickRate;
private byte[][] images;
private int index = 0;
private int ticks = 0;
private String targetTex = null;
private BufferedImage imgData = null;
public ModTextureAnimation(int icon, int target, BufferedImage image, int tickCount)
{
this(icon, 1, target, image, tickCount);
}
public ModTextureAnimation(int icon, int size, int target, BufferedImage image, int tickCount)
{
this(icon, size, (target == 0 ? "/terrain.png" : "/gui/items.png"), image, tickCount);
}
public ModTextureAnimation(int icon, int size, String target, BufferedImage image, int tickCount)
{
super(icon);
RenderEngine re = FMLClientHandler.instance().getClient().field_71446_o;
targetTex = target;
field_76849_e = size;
field_76847_f = re.func_78341_b(target);
tickRate = tickCount;
ticks = tickCount;
imgData = image;
}
@Override
public void setup()
{
super.setup();
int sWidth = imgData.getWidth();
int sHeight = imgData.getHeight();
int tWidth = tileSizeBase;
int tHeight = tileSizeBase;
int frames = (int)Math.floor((double)(sHeight / sWidth));
if (frames < 1)
{
throw new IllegalArgumentException(String.format("Attempted to create a TextureAnimation with no complete frames: %dx%d", sWidth, sHeight));
}
else
{
images = new byte[frames][];
BufferedImage image = imgData;
if (sWidth != tWidth)
{
BufferedImage b = new BufferedImage(tWidth, tHeight * frames, 6);
Graphics2D g = b.createGraphics();
g.drawImage(imgData, 0, 0, tWidth, tHeight * frames, 0, 0, sWidth, sHeight, (ImageObserver)null);
g.dispose();
image = b;
}
for (int frame = 0; frame < frames; frame++)
{
int[] pixels = new int[tileSizeSquare];
image.getRGB(0, tHeight * frame, tWidth, tHeight, pixels, 0, tWidth);
images[frame] = new byte[tileSizeSquare << 2];
for (int i = 0; i < pixels.length; i++)
{
int i4 = i * 4;
images[frame][i4 + 0] = (byte)(pixels[i] >> 16 & 255);
images[frame][i4 + 1] = (byte)(pixels[i] >> 8 & 255);
images[frame][i4 + 2] = (byte)(pixels[i] >> 0 & 255);
images[frame][i4 + 3] = (byte)(pixels[i] >> 24 & 255);
}
}
}
}
public void func_76846_a()
{
if (++ticks >= tickRate)
{
if (++index >= images.length)
{
index = 0;
}
field_76852_a = images[index];
ticks = 0;
}
}
public void func_76845_a(RenderEngine renderEngine)
{
GL11.glBindTexture(GL11.GL_TEXTURE_2D, field_76847_f);
}
// TODO: REMOVE THIS - just for you dan200
@Deprecated
public void func_783_a()
{
func_76846_a();
}
}
@@ -1,183 +0,0 @@
/*
* The FML Forge Mod Loader suite.
* Copyright (C) 2012 cpw
*
* This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free
* Software Foundation; either version 2.1 of the License, or any later version.
*
* This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
* A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 51
* Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
package net.minecraft.src;
import static org.lwjgl.opengl.GL11.GL_TEXTURE_2D;
import java.awt.Graphics2D;
import java.awt.image.BufferedImage;
import java.awt.image.ImageObserver;
import net.minecraft.client.renderer.RenderEngine;
import org.lwjgl.opengl.GL11;
import cpw.mods.fml.client.FMLClientHandler;
import cpw.mods.fml.client.FMLTextureFX;
public class ModTextureStatic extends FMLTextureFX
{
private boolean oldanaglyph = false;
private int[] pixels = null;
private String targetTex = null;
private int storedSize;
private BufferedImage overrideData = null;
private int needApply = 10;
public ModTextureStatic(int icon, int target, BufferedImage image)
{
this(icon, 1, target, image);
}
public ModTextureStatic(int icon, int size, int target, BufferedImage image)
{
this(icon, size, (target == 0 ? "/terrain.png" : "/gui/items.png"), image);
}
public ModTextureStatic(int icon, int size, String target, BufferedImage image)
{
super(icon);
RenderEngine re = FMLClientHandler.instance().getClient().field_71446_o;
targetTex = target;
storedSize = size;
field_76849_e = size;
field_76847_f = re.func_78341_b(target);
overrideData = image;
}
@Override
public void setup()
{
super.setup();
int sWidth = overrideData.getWidth();
int sHeight = overrideData.getHeight();
pixels = new int[tileSizeSquare];
if (tileSizeBase == sWidth && tileSizeBase == sHeight)
{
overrideData.getRGB(0, 0, sWidth, sHeight, pixels, 0, sWidth);
}
else
{
BufferedImage tmp = new BufferedImage(tileSizeBase, tileSizeBase, 6);
Graphics2D gfx = tmp.createGraphics();
gfx.drawImage(overrideData, 0, 0, tileSizeBase, tileSizeBase, 0, 0, sWidth, sHeight, (ImageObserver)null);
tmp.getRGB(0, 0, tileSizeBase, tileSizeBase, pixels, 0, tileSizeBase);
gfx.dispose();
}
update();
}
@Override
public void func_76846_a()
{
if (oldanaglyph != field_76851_c)
{
update();
}
// This makes it so we only apply the texture to the target texture when we need to,
//due to the fact that update is called when the Effect is first registered, we actually
//need to wait for the next one.
field_76849_e = (needApply == 0 ? 0 : storedSize);
if (needApply > 0)
{
needApply--;
}
}
@Override
public void func_76845_a(RenderEngine p_76845_1_)
{
GL11.glBindTexture(GL_TEXTURE_2D, p_76845_1_.func_78341_b(targetTex));
}
public void update()
{
needApply = 10;
for (int idx = 0; idx < pixels.length; idx++)
{
int i = idx * 4;
int a = pixels[idx] >> 24 & 255;
int r = pixels[idx] >> 16 & 255;
int g = pixels[idx] >> 8 & 255;
int b = pixels[idx] >> 0 & 255;
if (field_76851_c)
{
r = g = b = (r + g + b) / 3;
}
field_76852_a[i + 0] = (byte)r;
field_76852_a[i + 1] = (byte)g;
field_76852_a[i + 2] = (byte)b;
field_76852_a[i + 3] = (byte)a;
}
oldanaglyph = field_76851_c;
}
//Implementation of http://scale2x.sourceforge.net/algorithm.html
public static BufferedImage scale2x(BufferedImage image)
{
int w = image.getWidth();
int h = image.getHeight();
BufferedImage tmp = new BufferedImage(w * 2, h * 2, 2);
for (int x = 0; x < h; ++x)
{
int x2 = x * 2;
for (int y = 0; y < w; ++y)
{
int y2 = y * 2;
int E = image.getRGB(y, x);
int D = (x == 0 ? E : image.getRGB(y, x - 1));
int B = (y == 0 ? E : image.getRGB(y - 1, x ));
int H = (y >= w - 1 ? E : image.getRGB(y + 1, x ));
int F = (x >= h - 1 ? E : image.getRGB(y, x + 1));
int e0, e1, e2, e3;
if (B != H && D != F)
{
e0 = D == B ? D : E;
e1 = B == F ? F : E;
e2 = D == H ? D : E;
e3 = H == F ? F : E;
}
else
{
e0 = e1 = e2 = e3 = E;
}
tmp.setRGB(y2, x2, e0);
tmp.setRGB(y2 + 1, x2, e1);
tmp.setRGB(y2, x2 + 1, e2);
tmp.setRGB(y2 + 1, x2 + 1, e3);
}
}
return tmp;
}
@Override
public String toString()
{
return String.format("ModTextureStatic %s @ %d", targetTex, field_76850_b);
}
}
@@ -453,4 +453,9 @@ public class FMLCommonHandler
{
sidedDelegate.disconnectIDMismatch(serverDifference, toKill, network);
}
public void handleServerStopped()
{
Loader.instance().serverStopped();
}
}
@@ -60,6 +60,7 @@ import cpw.mods.fml.common.event.FMLPostInitializationEvent;
import cpw.mods.fml.common.event.FMLPreInitializationEvent;
import cpw.mods.fml.common.event.FMLServerStartedEvent;
import cpw.mods.fml.common.event.FMLServerStartingEvent;
import cpw.mods.fml.common.event.FMLServerStoppedEvent;
import cpw.mods.fml.common.event.FMLServerStoppingEvent;
import cpw.mods.fml.common.event.FMLStateEvent;
import cpw.mods.fml.common.network.FMLNetworkHandler;
@@ -92,6 +93,7 @@ public class FMLModContainer implements ModContainer
.put(FMLServerStartingEvent.class, Mod.ServerStarting.class)
.put(FMLServerStartedEvent.class, Mod.ServerStarted.class)
.put(FMLServerStoppingEvent.class, Mod.ServerStopping.class)
.put(FMLServerStoppedEvent.class, Mod.ServerStopped.class)
.put(IMCEvent.class,Mod.IMCCallback.class)
.put(FMLFingerprintViolationEvent.class, Mod.FingerprintWarning.class)
.build();
+8 -2
View File
@@ -27,6 +27,7 @@ import java.util.concurrent.Callable;
import java.util.logging.Level;
import net.minecraft.crash.CallableMinecraftVersion;
import net.minecraft.server.MinecraftServer;
import com.google.common.base.CharMatcher;
import com.google.common.base.Function;
@@ -710,8 +711,6 @@ public class Loader
{
modController.distributeStateMessage(LoaderState.SERVER_STOPPING);
modController.transition(LoaderState.SERVER_STOPPING);
modController.transition(LoaderState.AVAILABLE);
}
public BiMap<ModContainer, Object> getModObjectList()
@@ -746,4 +745,11 @@ public class Loader
public String getMCPVersionString() {
return String.format("MCP v%s", mcpversion);
}
public void serverStopped()
{
modController.distributeStateMessage(LoaderState.SERVER_STOPPED);
modController.transition(LoaderState.SERVER_STOPPED);
modController.transition(LoaderState.AVAILABLE);
}
}
+3 -1
View File
@@ -10,6 +10,7 @@ import cpw.mods.fml.common.event.FMLPostInitializationEvent;
import cpw.mods.fml.common.event.FMLPreInitializationEvent;
import cpw.mods.fml.common.event.FMLServerStartedEvent;
import cpw.mods.fml.common.event.FMLServerStartingEvent;
import cpw.mods.fml.common.event.FMLServerStoppedEvent;
import cpw.mods.fml.common.event.FMLServerStoppingEvent;
import cpw.mods.fml.common.event.FMLStateEvent;
@@ -30,6 +31,7 @@ public enum LoaderState
SERVER_STARTING("Server starting", FMLServerStartingEvent.class),
SERVER_STARTED("Server started", FMLServerStartedEvent.class),
SERVER_STOPPING("Server stopping", FMLServerStoppingEvent.class),
SERVER_STOPPED("Server stopped", FMLServerStoppedEvent.class),
ERRORED("Mod Loading errored",null);
@@ -49,7 +51,7 @@ public enum LoaderState
return ERRORED;
}
// stopping -> available
if (this == SERVER_STOPPING)
if (this == SERVER_STOPPED)
{
return AVAILABLE;
}
+8
View File
@@ -168,6 +168,14 @@ public @interface Mod
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.METHOD)
public @interface ServerStopping {}
/**
* Mark the designated method as being called at the "server-stopped" phase
* @author cpw
*
*/
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.METHOD)
public @interface ServerStopped {}
/**
* Mark the designated method as the receiver for {@link FMLInterModComms} messages
* Called between {@link Init} and {@link PostInit}
@@ -0,0 +1,18 @@
package cpw.mods.fml.common.event;
import cpw.mods.fml.common.LoaderState;
import cpw.mods.fml.common.LoaderState.ModState;
public class FMLServerStoppedEvent extends FMLStateEvent {
public FMLServerStoppedEvent(Object... data)
{
super(data);
}
@Override
public ModState getModState()
{
return ModState.AVAILABLE;
}
}
@@ -17,7 +17,7 @@ public class ModLoaderPickupNotifier implements IPickupNotifier
@Override
public void notifyPickup(EntityItem item, EntityPlayer player)
{
mod.onItemPickup(player, item.func_92014_d());
mod.onItemPickup(player, item.func_92059_d());
}
}
@@ -110,7 +110,7 @@ public abstract class FMLPacket
for (int i = 0; i < packetData.length / 32000 + 1; i++)
{
int len = Math.min(32000, packetData.length - i* 32000);
chunks[i] = Bytes.concat(new byte[] { UnsignedBytes.checkedCast(type.ordinal()), UnsignedBytes.checkedCast(i), UnsignedBytes.checkedCast(chunks.length)}, Ints.toByteArray(len), Arrays.copyOfRange(packetData, i * 32000, len));
chunks[i] = Bytes.concat(new byte[] { UnsignedBytes.checkedCast(type.ordinal()), UnsignedBytes.checkedCast(i), UnsignedBytes.checkedCast(chunks.length)}, Ints.toByteArray(len), Arrays.copyOfRange(packetData, i * 32000, len + i * 32000));
}
return chunks;
}
@@ -250,7 +250,7 @@ public class GameRegistry
public static void addRecipe(ItemStack output, Object... params)
{
CraftingManager.func_77594_a().func_92051_a(output, params);
CraftingManager.func_77594_a().func_92103_a(output, params);
}
public static void addShapelessRecipe(ItemStack output, Object... params)
@@ -2,11 +2,14 @@ package cpw.mods.fml.common.registry;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.URL;
import java.util.HashMap;
import java.util.Map;
import java.util.Properties;
import com.google.common.base.Charsets;
import cpw.mods.fml.common.FMLLog;
import net.minecraft.block.Block;
@@ -77,8 +80,7 @@ public class LanguageRegistry
{
// reload language table by forcing lang to null and reloading the properties file
String lang = StringTranslate.func_74808_a().func_74811_c();
StringTranslate.func_74808_a().field_74813_d = null;
StringTranslate.func_74808_a().func_74810_a(lang);
StringTranslate.func_74808_a().func_74810_a(lang, true);
}
@@ -133,7 +135,7 @@ public class LanguageRegistry
langPack.loadFromXML(langStream);
}
else {
langPack.load(langStream);
langPack.load(new InputStreamReader(langStream,Charsets.UTF_8));
}
addStringLocalization(langPack, lang);
@@ -4,6 +4,8 @@ import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.Random;
import java.util.Collection;
import java.util.Collections;
import net.minecraft.entity.passive.EntityVillager;
import net.minecraft.item.Item;
@@ -148,7 +150,16 @@ public class VillagerRegistry
}
return defaultSkin;
}
/**
* Returns a list of all added villager types
*
* @return newVillagerIds
*/
public static Collection<Integer> getRegisteredVillagers()
{
return Collections.unmodifiableCollection(instance().newVillagerIds);
}
/**
* Callback to handle trade setup for villagers
*
@@ -44,6 +44,8 @@ public class RelaunchClassLoader extends URLClassLoader
private static final String[] RESERVED = {"CON", "PRN", "AUX", "NUL", "COM1", "COM2", "COM3", "COM4", "COM5", "COM6", "COM7", "COM8", "COM9", "LPT1", "LPT2", "LPT3", "LPT4", "LPT5", "LPT6", "LPT7", "LPT8", "LPT9"};
private static final boolean DEBUG_CLASSLOADING = Boolean.parseBoolean(System.getProperty("fml.debugClassLoading", "false"));
public RelaunchClassLoader(URL[] sources)
{
super(sources, null);
@@ -176,6 +178,10 @@ public class RelaunchClassLoader extends URLClassLoader
catch (Throwable e)
{
invalidClasses.add(name);
if (DEBUG_CLASSLOADING)
{
FMLLog.log(Level.FINEST, e, "Exception encountered attempting classloading of %s", name);
}
throw new ClassNotFoundException(name, e);
}
}
@@ -295,9 +301,17 @@ public class RelaunchClassLoader extends URLClassLoader
URL classResource = findResource(name.replace('.', '/').concat(".class"));
if (classResource == null)
{
if (DEBUG_CLASSLOADING)
{
FMLLog.finest("Failed to find class resource %s", name.replace('.', '/').concat(".class"));
}
return null;
}
classStream = classResource.openStream();
if (DEBUG_CLASSLOADING)
{
FMLLog.finest("Loading class %s from resource %s", name, classResource.toString());
}
return readFully(classStream);
}
finally
+37 -37
View File
@@ -1,32 +1,32 @@
#Main FML Access Transformer configuration file
# TileEntity addMapping
public any.a(Ljava/lang/Class;Ljava/lang/String;)V #MD:TileEntity/func_70306_a
public aox.a(Ljava/lang/Class;Ljava/lang/String;)V #MD:TileEntity/func_70306_a
# EntityList addMappings
public lv.a(Ljava/lang/Class;Ljava/lang/String;I)V #MD:EntityList/func_75618_a
public lv.a(Ljava/lang/Class;Ljava/lang/String;III)V #MD:EntityList/func_75614_a
public lv.b #FD:EntityList/field_75625_b #nameToClassMap
public lv.c #FD:EntityList/field_75626_c #classToNameMap
public lv.d #FD:EntityList/field_75623_d #idToClassMap
public ma.a(Ljava/lang/Class;Ljava/lang/String;I)V #MD:EntityList/func_75618_a
public ma.a(Ljava/lang/Class;Ljava/lang/String;III)V #MD:EntityList/func_75614_a
public ma.b #FD:EntityList/field_75625_b #nameToClassMap
public ma.c #FD:EntityList/field_75626_c #classToNameMap
public ma.d #FD:EntityList/field_75623_d #idToClassMap
# RenderEngine
public bba.h #FD:RenderEngine/field_78367_h #textureList
public bba.k #FD:RenderEngine/field_78366_k #texturePack
#public bba.h #FD:RenderEngine/field_78367_h #textureList # -- MISSING MAPPING # -- MISSING MAPPING
public bcd.j #FD:RenderEngine/field_78366_k #texturePack
# RenderManager
public bbu.p #FD:RenderManager/field_78729_o #renderers
public bcx.p #FD:RenderManager/field_78729_o #renderers
# RenderBlocks - everything
public bbb.* #FD:RenderBlocks/*
public bbb.*() #MD:RenderBlocks/*
public bce.* #FD:RenderBlocks/*
public bce.*() #MD:RenderBlocks/*
#RenderPlayer
public-f bco.h #FD:RenderPlayer/field_77110_j #armorlist
public-f bdr.h #FD:RenderPlayer/field_77110_j #armorlist
#RenderBiped
public-f bcc.k #FD:RenderBiped/field_82424_k #armorlist
public-f bdf.k #FD:RenderBiped/field_82424_k #armorlist
#StringTranslate
public bn.b #FD:StringTranslate/field_74815_b
public bn.d #FD:StringTranslate/field_74813_d
public bn.e #FD:StringTranslate/field_74813_d
# TileEntityRenderer
public bdw.m #FD:TileEntityRenderer/field_76966_m
public bfa.m #FD:TileEntityRenderer/field_76966_m
# CraftingManager - make the add recipe methods public
public wn.a(Lur;[Ljava/lang/Object;)Lwq; #MD:CraftingManager/func_92051_a
public wn.b(Lur;[Ljava/lang/Object;)V #MD:CraftingManager/func_77596_b
public wy.a(Lvc;[Ljava/lang/Object;)Lxb; #MD:CraftingManager/func_92103_a
public wy.b(Lvc;[Ljava/lang/Object;)V #MD:CraftingManager/func_77596_b
# WeightedRandomItem
public kv.a #FD:WeightedRandomItem/field_76292_a #probability
# ItemStack
@@ -37,37 +37,37 @@ public jl.a #FD:StatBase/field_75978_a #statName
public it.a(Lit;Z)Z #MD:NetLoginHandler/func_72531_a #'complete connection'
public it.h #FD:NetLoginHandler/field_72543_h #userName
# EntityPlayerMP getNextWindowId
public iq.cg()V #MD:EntityPlayerMP/func_71117_bO
public iq.ct #FD:EntityPlayerMP/field_71139_cq
public iq.cl()V #MD:EntityPlayerMP/func_71117_bO
public iq.cu #FD:EntityPlayerMP/field_71139_cq
# EntityAITaskEntry
public ne #CL:EntityAITaskEntry
public nk #CL:EntityAITaskEntry
# EntityAITasks
public nd.a #FD:EntityAITasks/field_75782_a #taskList
public nj.a #FD:EntityAITasks/field_75782_a #taskList
# BlockChest
public ajk.n(Lyc;III)Z #MD:BlockChest/func_72292_n #isOcelotBlockingChest
public ajy.m(Lyn;III)Z #MD:BlockChest/func_72292_n #isOcelotBlockingChest
# EntityLiving
public md.aT #FD:EntityLiving/field_70736_aM #carryoverDamage
public md.bn #FD:EntityLiving/field_70714_bg #tasks
public md.bF #FD:EntityLiving/field_70703_bu #isJumping
public mj.aT #FD:EntityLiving/field_70736_aM #carryoverDamage
public mj.bn #FD:EntityLiving/field_70714_bg #tasks
public mj.bG #FD:EntityLiving/field_70703_bu #isJumping
# EntityAIOcelotSit
protected nq.a(Lyc;III)Z #MD:EntityAIOcelotSit/func_75398_a #nearestSittableBlock
protected nq.f()Z #MD:EntityAIOcelotSit/func_75399_f #isblocksittable
protected nw.a(Lyn;III)Z #MD:EntityAIOcelotSit/func_75398_a #nearestSittableBlock
protected nw.f()Z #MD:EntityAIOcelotSit/func_75399_f #isblocksittable
# CallableMinecraftVersion - sanity check the MC version
public b #CL:CallableMinecraftVersion
public b.<init>(La;)V #MD:CallableMinecraftVersion/<init>(Lnet/minecraft/src/CrashReport;) #constructor
# EntityAnimal
public ox.d #FD:EntityAnimal/field_70881_d #inLove
public pd.d #FD:EntityAnimal/field_70881_d #inLove
# WorldType
public yn.<init>(ILjava/lang/String;)V #MD:WorldType/<init>(ILjava/lang/String;)
public yn.<init>(ILjava/lang/String;I)V #MD:WorldType/<init>(ILjava/lang/String;I)
public yx.<init>(ILjava/lang/String;)V #MD:WorldType/<init>(ILjava/lang/String;)
public yx.<init>(ILjava/lang/String;I)V #MD:WorldType/<init>(ILjava/lang/String;I)
# ComponentVillage
public afs #CL:ComponentVillage
public agc #CL:ComponentVillage
# EntityVillager - minmax lists
public qu.a(Lxu;ILjava/util/Random;F)V #MD:EntityVillager/func_70948_a #addBuy
public qu.b(Lxu;ILjava/util/Random;F)V #MD:EntityVillager/func_70949_b #addSell
public qu.bO #FD:EntityVillager/field_70958_bB
public qu.bP #FD:EntityVillager/field_70960_bC
public re.a(Lyf;ILjava/util/Random;F)V #MD:EntityVillager/func_70948_a #addBuy
public re.b(Lyf;ILjava/util/Random;F)V #MD:EntityVillager/func_70949_b #addSell
public re.bP #FD:EntityVillager/field_70958_bB
public re.bQ #FD:EntityVillager/field_70960_bC
# GuiButtonMerchant
public awb #CL:GuiButtonMerchant
public axd #CL:GuiButtonMerchant
protected atf.a #FD:GuiYesNo/field_73942_a #guiScreen
protected aug.a #FD:GuiYesNo/field_73942_a #guiScreen
+3 -3
View File
@@ -2,11 +2,11 @@
# 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
qx cpw/mods/fml/common/network/Player
rh cpw/mods/fml/common/network/Player
net.minecraft.entity.player.EntityPlayer cpw/mods/fml/common/network/Player
# block -> blockproxy
amq cpw/mods/fml/common/registry/BlockProxy
ank cpw/mods/fml/common/registry/BlockProxy
net.minecraft.block.Block cpw/mods/fml/common/registry/BlockProxy
# item -> itemproxy
up cpw/mods/fml/common/registry/ItemProxy
va cpw/mods/fml/common/registry/ItemProxy
net.minecraft.item.Item cpw/mods/fml/common/registry/ItemProxy
+247 -1
View File
@@ -238,6 +238,7 @@ field_70482_c,inventoryContents,2,
field_70483_a,inventoryTitle,2,
field_70484_a,container,2,The brewing stand this slot belongs to.
field_70488_a,associatedChest,2,
field_70499_f,isInReverse,2,
field_70500_g,matrix,2,Minecart rotational logic matrix
field_70501_d,cargoItems,2,Array of item stacks stored in minecart (for storage minecarts).
field_70502_e,fuel,2,
@@ -686,6 +687,154 @@ field_71585_d,offsetsZForSide,2,gives the offset required for this axis to get t
field_71586_b,offsetsXForSide,2,gives the offset required for this axis to get the block at that side.
field_71587_c,offsetsYForSide,2,gives the offset required for this axis to get the block at that side.
field_71588_a,faceToSide,2,Converts a face to a side.
field_71589_f,bc_pbe_sha512,2,
field_71590_g,bc_pbe_sha224,2,
field_71591_d,bc_pbe_sha256,2,
field_71592_e,bc_pbe_sha384,2,
field_71593_b,bc_pbe,2,
field_71594_c,bc_pbe_sha1,2,
field_71595_a,bc,2,
field_71596_n,bc_pbe_sha1_pkcs12_aes256_cbc,2,
field_71597_o,bc_pbe_sha256_pkcs12_aes128_cbc,2,
field_71598_l,bc_pbe_sha1_pkcs12_aes128_cbc,2,
field_71599_m,bc_pbe_sha1_pkcs12_aes192_cbc,2,
field_71600_j,bc_pbe_sha256_pkcs5,2,
field_71601_k,bc_pbe_sha256_pkcs12,2,
field_71602_h,bc_pbe_sha1_pkcs5,2,
field_71603_i,bc_pbe_sha1_pkcs12,2,
field_71604_q,bc_pbe_sha256_pkcs12_aes256_cbc,2,
field_71605_p,bc_pbe_sha256_pkcs12_aes192_cbc,2,
field_71610_b,cache,2,
field_71611_a,identifier,2,
field_71613_D,digestAlgorithm,2,
field_71614_E,md2,2,
field_71615_F,md4,2,
field_71616_G,md5,2,
field_71617_A,encryptionAlgorithm,2,
field_71618_B,des_EDE3_CBC,2,
field_71619_C,RC2_CBC,2,
field_71620_L,id_hmacWithSHA512,2,
field_71621_M,data,2,
field_71622_N,signedData,2,
field_71623_O,envelopedData,2,
field_71624_H,id_hmacWithSHA1,2,
field_71625_I,id_hmacWithSHA224,2,
field_71626_J,id_hmacWithSHA256,2,
field_71627_K,id_hmacWithSHA384,2,
field_71628_U,pkcs_9_at_unstructuredName,2,
field_71629_T,pkcs_9_at_emailAddress,2,
field_71630_W,pkcs_9_at_messageDigest,2,
field_71631_V,pkcs_9_at_contentType,2,
field_71632_Q,digestedData,2,
field_71633_P,signedAndEnvelopedData,2,
field_71634_S,pkcs_9,2,
field_71635_R,encryptedData,2,
field_71636_Y,pkcs_9_at_counterSignature,2,
field_71637_X,pkcs_9_at_signingTime,2,
field_71638_Z,pkcs_9_at_challengePassword,2,
field_71639_f,sha1WithRSAEncryption,2,
field_71640_g,srsaOAEPEncryptionSET,2,
field_71641_d,md4WithRSAEncryption,2,
field_71642_e,md5WithRSAEncryption,2,
field_71643_b,rsaEncryption,2,
field_71644_c,md2WithRSAEncryption,2,
field_71645_a,pkcs_1,2,
field_71646_n,sha512WithRSAEncryption,2,
field_71647_o,sha224WithRSAEncryption,2,
field_71648_l,sha256WithRSAEncryption,2,
field_71649_m,sha384WithRSAEncryption,2,
field_71650_j,id_pSpecified,2,
field_71651_k,id_RSASSA_PSS,2,
field_71652_h,id_RSAES_OAEP,2,
field_71653_i,id_mgf1,2,
field_71654_w,pbeWithSHA1AndDES_CBC,2,
field_71655_v,pbeWithMD5AndRC2_CBC,2,
field_71656_u,pbeWithMD5AndDES_CBC,2,
field_71657_t,pbeWithMD2AndRC2_CBC,2,
field_71658_s,pbeWithMD2AndDES_CBC,2,
field_71659_r,pkcs_5,2,
field_71660_q,dhKeyAgreement,2,
field_71661_p,pkcs_3,2,
field_71662_z,id_PBKDF2,2,
field_71663_y,id_PBES2,2,
field_71664_x,pbeWithSHA1AndRC2_CBC,2,
field_71665_bw,pbewithSHAAnd40BitRC2_CBC,2,
field_71666_bv,pbeWithSHAAnd40BitRC2_CBC,2,
field_71667_by,id_alg_CMSRC2wrap,2,
field_71668_bx,id_alg_CMS3DESwrap,2,
field_71669_bs,pbeWithSHAAnd3_KeyTripleDES_CBC,2,
field_71670_br,pbeWithSHAAnd40BitRC4,2,
field_71671_bu,pbeWithSHAAnd128BitRC2_CBC,2,
field_71672_bt,pbeWithSHAAnd2_KeyTripleDES_CBC,2,
field_71673_bn,secretBag,2,
field_71674_bo,safeContentsBag,2,
field_71675_bp,pkcs_12PbeIds,2,
field_71676_bq,pbeWithSHAAnd128BitRC4,2,
field_71677_bj,keyBag,2,
field_71678_bk,pkcs8ShroudedKeyBag,2,
field_71679_bl,certBag,2,
field_71680_bm,crlBag,2,
field_71681_bf,id_spq_ets_uri,2,
field_71682_bg,id_spq_ets_unotice,2,
field_71683_bh,pkcs_12,2,
field_71684_bi,bagtypes,2,
field_71685_bb,id_aa_sigPolicyId,2,
field_71686_bc,id_aa_commitmentType,2,
field_71687_bd,id_aa_signerLocation,2,
field_71688_be,id_aa_otherSigCert,2,
field_71689_aZ,id_aa_ets_certCRLTimestamp,2,
field_71690_aY,id_aa_ets_escTimeStamp,2,
field_71691_aR,id_aa_ets_signerAttr,2,
field_71692_aQ,id_aa_ets_signerLocation,2,
field_71693_aT,id_aa_ets_contentTimestamp,2,
field_71694_aS,id_aa_ets_otherSigCert,2,
field_71695_aV,id_aa_ets_revocationRefs,2,
field_71696_aU,id_aa_ets_certificateRefs,2,
field_71697_aX,id_aa_ets_revocationValues,2,
field_71698_aW,id_aa_ets_certValues,2,
field_71699_aI,id_aa_contentReference,2,
field_71700_aJ,id_aa_encrypKeyPref,2,
field_71701_aK,id_aa_signingCertificate,2,
field_71702_aL,id_aa_signingCertificateV2,2,
field_71703_aM,id_aa_contentIdentifier,2,
field_71704_aN,id_aa_signatureTimeStampToken,2,
field_71705_aO,id_aa_ets_sigPolicyId,2,
field_71706_aP,id_aa_ets_commitmentType,2,
field_71707_aA,id_cti_ets_proofOfDelivery,2,
field_71708_aB,id_cti_ets_proofOfSender,2,
field_71709_aC,id_cti_ets_proofOfApproval,2,
field_71710_aD,id_cti_ets_proofOfCreation,2,
field_71711_aE,id_aa,2,
field_71712_aF,id_aa_receiptRequest,2,
field_71713_aG,id_aa_contentHint,2,
field_71714_aH,id_aa_msgSigDigest,2,
field_71715_az,id_cti_ets_proofOfReceipt,2,
field_71716_ay,id_cti_ets_proofOfOrigin,2,
field_71717_ba,id_aa_ets_archiveTimestamp,2,
field_71718_at,id_ct_TSTInfo,2,
field_71719_as,id_ct_authData,2,
field_71720_ar,id_ct,2,
field_71721_aq,sMIMECapabilitiesVersions,2,
field_71722_ax,id_cti,2,
field_71723_aw,id_ct_timestampedData,2,
field_71724_av,id_ct_authEnvelopedData,2,
field_71725_au,id_ct_compressedData,2,
field_71726_ak,sdsiCertificate,2,
field_71727_al,crlTypes,2,
field_71728_ai,certTypes,2,
field_71729_aj,x509Certificate,2,
field_71730_ao,preferSignedData,2,
field_71731_ap,canNotDecryptAny,2,
field_71732_am,x509Crl,2,
field_71733_an,id_alg_PWRI_KEK,2,
field_71734_ac,pkcs_9_at_signingDescription,2,
field_71735_ad,pkcs_9_at_extensionRequest,2,
field_71736_aa,pkcs_9_at_unstructuredAddress,2,
field_71737_ab,pkcs_9_at_extendedCertificateAttributes,2,
field_71738_ag,pkcs_9_at_localKeyId,2,
field_71739_ah,x509certType,2,
field_71740_ae,pkcs_9_at_smimeCapabilities,2,
field_71741_af,pkcs_9_at_friendlyName,2,
field_71743_a,theDecitatedServer,2,Reference to the DecitatedServer object.
field_71748_d,connections,2,
field_71749_b,isListening,2,Whether the network listener object is listening.
@@ -708,6 +857,36 @@ field_71782_a,iv,2,
field_71784_a,key,2,
field_71787_b,strength,2,
field_71788_a,random,2,
field_71796_f,pgpCFB,2,
field_71797_d,cipher,2,
field_71798_e,partialBlockOkay,2,
field_71799_b,bufOff,2,
field_71800_c,forEncryption,2,
field_71801_a,buf,2,
field_71809_f,encrypting,2,
field_71810_d,blockSize,2,
field_71811_e,cipher,2,
field_71812_b,cfbV,2,
field_71813_c,cfbOutV,2,
field_71814_a,IV,2,
field_71824_f,T2,2,
field_71825_g,T3,2,
field_71826_d,T0,2,
field_71827_e,T1,2,
field_71828_b,Si,2,
field_71829_c,rcon,2,
field_71830_a,S,2,
field_71831_n,C0,2,
field_71832_o,C1,2,
field_71833_l,ROUNDS,2,
field_71834_m,WorkingKey,2,
field_71835_j,Tinv2,2,
field_71836_k,Tinv3,2,
field_71837_h,Tinv0,2,
field_71838_i,Tinv1,2,
field_71839_r,forEncryption,2,
field_71840_q,C3,2,
field_71841_p,C2,2,
field_71844_b,strength,2,
field_71845_a,random,2,
field_71938_D,lavaStill,2,Stationary lava source block
@@ -1637,6 +1816,7 @@ field_73812_e,height,2,
field_73813_b,xPos,2,
field_73814_c,yPos,2,
field_73815_a,fontRenderer,2,Have the font renderer from GuiScreen to render the textbox text into the screen.
field_73816_n,lineScrollOffset,2,The current character index that should be used as start of the rendered text.
field_73817_o,cursorPosition,2,
field_73818_l,isFocused,2,"If this value is true along isEnabled, keyTyped will process the keys."
field_73819_m,isEnabled,2,"If this value is true along isFocused, keyTyped will process the keys."
@@ -1886,7 +2066,7 @@ field_74263_b,workingMessage,2,
field_74264_c,currentProgress,2,
field_74265_a,progressMessage,2,
field_74267_a,mcServer,2,Reference to the MinecraftServer object.
field_74268_a,simpleDateFormatLogFormatter,2,Date Formatter of Log/Console.
field_74268_a,dateFormat,2,The date format to use in the console log.
field_74270_a,mcServer,2,Reference to the MinecraftServer object.
field_74272_a,mcServer,2,Reference to the MinecraftServer object.
field_74274_a,mcServer,2,Reference to the MinecraftServer object.
@@ -2092,15 +2272,20 @@ field_74756_a,data,2,The byte value for the tag.
field_74784_a,tagMap,2,"The key-value pairs for the tag. Each key is a UTF string, each value is a tag."
field_74790_a,enumJsonNodeTypeMappingArray,2,A mapping helper array for EnumJsonNodeType's values.
field_74791_a,escapedString,2,
field_74801_a,theBouncyCastleProvider,2,
field_74813_d,currentLanguage,2,
field_74814_e,isUnicode,2,
field_74815_b,translateTable,2,Contains all key/value pairs to be translated - is loaded from '/lang/en_US.lang' when the StringTranslate is created.
field_74816_c,languageList,2,
field_74817_a,instance,2,Is the private singleton instance of StringTranslate.
field_74822_f,ASYMMETRIC_GENERIC,2,
field_74823_g,ASYMMETRIC_CIPHERS,2,
field_74824_d,keyInfoConverters,2,
field_74825_e,SYMMETRIC_CIPHERS,2,
field_74826_b,CONFIGURATION,2,
field_74827_c,info,2,
field_74828_a,PROVIDER_NAME,2,
field_74829_h,DIGESTS,2,
field_74831_f,dhThreadSpec,2,
field_74832_d,BC_DH_PERMISSION,2,
field_74833_e,ecThreadSpec,2,
@@ -2111,6 +2296,17 @@ field_74839_a,localizedName,2,
field_74842_b,permissionMask,2,
field_74843_a,actions,2,
field_74845_a,errorObjects,2,
field_74846_d,buf,2,
field_74847_b,theStreamCipher,2,
field_74848_c,oneByte,2,
field_74849_a,theBufferedBlockCipher,2,
field_74853_f,maxBuf,2,
field_74854_g,finalized,2,
field_74855_d,inBuf,2,
field_74856_e,bufOff,2,
field_74857_b,theStreamCipher,2,
field_74858_c,buf,2,
field_74859_a,theBufferedBlockCipher,2,
field_74885_f,coordBaseMode,2,switches the Coordinate System base off the Bounding Box
field_74886_g,componentType,2,The type ID of this component.
field_74887_e,boundingBox,2,
@@ -2486,6 +2682,7 @@ field_75624_e,classToIDMapping,2,provides a mapping between an Entity Class and
field_75625_b,stringToClassMapping,2,Provides a mapping between entity classes and a string
field_75626_c,classToStringMapping,2,Provides a mapping between a string and an entity classes
field_75627_a,entityEggs,2,This is a HashMap of the Creative Entity Eggs/Spawners.
field_75643_f,update,2,
field_75644_d,posZ,2,
field_75645_e,speed,2,The speed at which the entity should move
field_75646_b,posX,2,
@@ -2505,6 +2702,7 @@ field_75675_d,watched,2,
field_75676_b,dataValueId,2,id of max 31
field_75677_c,watchedObject,2,
field_75678_a,objectType,2,
field_75694_d,lock,2,
field_75695_b,watchedObjects,2,
field_75696_c,objectChanged,2,true if one or more object was changed
field_75697_a,dataTypes,2,
@@ -4186,6 +4384,7 @@ field_82134_g,secondaryEffect,2,Secondary potion effect given by this beacon.
field_82136_e,levels,2,Level of this beacon's pyramid.
field_82139_a,effectsList,2,List of effects that Beacon can apply
field_82140_h,payment,2,Item given to this beacon as payment.
field_82153_h,timeInPortal,2,
field_82155_f,isAnvil,2,
field_82156_g,fallHurtMax,2,Maximum amount of damage dealt to entities hit by falling block
field_82157_e,isBreakingAnvil,2,
@@ -4257,6 +4456,7 @@ field_82374_e,facings,2,
field_82387_b,intListPattern,2,"This matches things like ""-1,,4"", and is used for getting x,y,z,range from the token's argument list."
field_82388_c,keyValueListPattern,2,"This matches things like ""rm=4,c=2"" and is used for handling named token arguments."
field_82389_a,tokenPattern,2,"This matches the at-tokens introduced for command blocks, including their arguments, if any."
field_82391_c,instance,2,
field_82397_a,skullRenderer,2,
field_82401_a,skeletonHeadModel,2,The Skeleton's head model.
field_82405_a,renderBlocksInstance,2,
@@ -4265,9 +4465,17 @@ field_82446_a,renderedBatSize,2,"not actually sure this is size, is not used as
field_82453_b,createFlatWorldGui,2,
field_82458_b,flatPresetsGui,2,
field_82470_g,playingSounds,2,Identifiers of all currently playing sounds. Type: HashSet<String>
field_82471_f,minecartIsMoving,2,
field_82472_g,silent,2,
field_82473_d,playerSPRidingMinecart,2,
field_82474_e,minecartIsDead,2,
field_82475_b,theMinecart,2,Minecart which sound is being updated.
field_82476_c,thePlayer,2,The player that is getting the minecart sound updates.
field_82477_a,theSoundManager,2,
field_82478_j,minecartRideSoundVolume,2,
field_82479_k,minecartSpeed,2,
field_82480_h,minecartSoundPitch,2,
field_82481_i,minecartMoveSoundVolume,2,
field_82483_a,itemDispenseBehaviorProvider,2,
field_82484_c,defaultItemDispenseBehavior,2,Reference to the BehaviorDefaultDispenseItem object.
field_82490_b,mcServer,2,
@@ -4311,10 +4519,16 @@ field_82587_b,theNBTTagCompound,2,
field_82592_a,vec3dPool,2,
field_82596_a,registryObjects,2,Objects registered on this registry.
field_82597_b,defaultObject,2,"Default object for this registry, returned when an object is not found."
field_82611_j,frontOffsetY,2,
field_82612_k,frontOffsetZ,2,
field_82614_i,frontOffsetX,2,
field_82624_d,zPos,2,
field_82625_b,xPos,2,
field_82626_c,yPos,2,
field_82627_a,worldObj,2,
field_82628_b,y,2,
field_82629_c,z,2,
field_82630_a,x,2,
field_82635_f,maxSpeedBoostTime,2,Maximum time the entity's speed should be boosted for.
field_82636_d,speedBoosted,2,Whether the entity's speed is boosted.
field_82637_e,speedBoostTime,2,"Counter for speed boosting, upon reaching maxSpeedBoostTime the speed boost will be disabled"
@@ -4338,6 +4552,9 @@ field_82681_h,cropTypeD,2,Fourth crop type for this field.
field_82682_h,hasWitch,2,Whether this swamp hut has a witch.
field_82693_j,playerReputation,2,List of player reputations with this village
field_82694_i,noBreedTicks,2,Timestamp of tick count when villager last bred
field_82696_f,structureGenerators,2,
field_82701_j,lavaLakeGenerator,2,
field_82703_i,waterLakeGenerator,2,
field_82707_i,isAnimal,2,Whether this creature type is an animal.
field_82717_g,anvil,2,
field_82723_d,isSplashPotion,2,Whether the potion is a splash potion
@@ -4390,7 +4607,10 @@ field_82860_h,theWorld,2,
field_82862_h,thePlayer,2,
field_82864_f,beaconSlot,2,"This beacon's slot where you put in Emerald, Diamond, Gold or Iron Ingot."
field_82866_e,theBeacon,2,
field_82871_d,blockPosZ,2,
field_82872_e,anvil,2,The anvil this slot belongs to.
field_82873_b,blockPosX,2,
field_82874_c,blockPosY,2,
field_82875_a,theWorld,2,
field_82876_a,beacon,2,The beacon this slot belongs to.
field_82880_z,showCape,2,Whether to show your cape
@@ -4418,14 +4638,40 @@ field_83024_j,renderMaxY,2,The maximum Y value for rendering (default 1.0).
field_83025_k,renderMinZ,2,The minimum Z value for rendering (default 0.0).
field_83026_h,renderMaxX,2,The maximum X value for rendering (default 1.0).
field_83027_i,renderMinY,2,The minimum Y value for rendering (default 0.0).
field_85037_d,aiArrowAttack,2,
field_85038_e,aiAttackOnCollide,2,
field_85045_v,returningStack,2,Used when touchscreen is enabled
field_85046_u,returningStackTime,2,
field_85047_t,returningStackDestSlot,2,
field_85050_q,draggedStack,2,Used when touchscreen is enabled
field_85051_p,clickedSlot,2,Used when touchscreen is enabled
field_85053_h,throwerName,2,
field_85075_d,stackTrace,2,
field_85109_a,worldInfoInstance,2,
field_85111_a,worldInfoInstance,2,
field_85113_a,worldInfoInstance,2,
field_85115_a,worldInfoInstance,2,
field_85135_a,worldInfoInstance,2,
field_85137_a,worldInfoInstance,2,
field_85139_a,worldInfoInstance,2,
field_85141_a,worldInfoInstance,2,
field_85143_a,worldInfoInstance,2,
field_85180_cf,recordWait,2,
field_85185_A,touchscreen,2,
field_85192_a,worldServerInstance,2,
field_90017_e,isMacOs,2,
field_90018_r,isRightMouseClick,2,Used when touchscreen is enabled
field_90044_b,records,2,List of all record items and their names.
field_92009_j,explosionStrength,2,The explosion radius of spawned fireballs.
field_92010_b,lifetime,2,The lifetime of the firework in ticks. When the age reaches the lifetime the firework explodes.
field_92011_a,fireworkAge,2,The age of the firework in ticks.
field_92014_j,explosionStrength,2,The explosion radius of spawned fireballs.
field_92017_j,spawnedMob,2,
field_92052_bU,firework,2,
field_92053_bW,enchantedBook,2,
field_92054_bV,fireworkCharge,2,
field_92055_b,lifetime,2,The lifetime of the firework in ticks. When the age reaches the lifetime the firework explodes.
field_92056_a,fireworkAge,2,The age of the firework in ticks.
field_92104_bU,firework,2,
field_92105_bW,enchantedBook,2,
field_92106_bV,fireworkCharge,2,
1 searge name side desc
238 field_70483_a inventoryTitle 2
239 field_70484_a container 2 The brewing stand this slot belongs to.
240 field_70488_a associatedChest 2
241 field_70499_f isInReverse 2
242 field_70500_g matrix 2 Minecart rotational logic matrix
243 field_70501_d cargoItems 2 Array of item stacks stored in minecart (for storage minecarts).
244 field_70502_e fuel 2
687 field_71586_b offsetsXForSide 2 gives the offset required for this axis to get the block at that side.
688 field_71587_c offsetsYForSide 2 gives the offset required for this axis to get the block at that side.
689 field_71588_a faceToSide 2 Converts a face to a side.
690 field_71589_f bc_pbe_sha512 2
691 field_71590_g bc_pbe_sha224 2
692 field_71591_d bc_pbe_sha256 2
693 field_71592_e bc_pbe_sha384 2
694 field_71593_b bc_pbe 2
695 field_71594_c bc_pbe_sha1 2
696 field_71595_a bc 2
697 field_71596_n bc_pbe_sha1_pkcs12_aes256_cbc 2
698 field_71597_o bc_pbe_sha256_pkcs12_aes128_cbc 2
699 field_71598_l bc_pbe_sha1_pkcs12_aes128_cbc 2
700 field_71599_m bc_pbe_sha1_pkcs12_aes192_cbc 2
701 field_71600_j bc_pbe_sha256_pkcs5 2
702 field_71601_k bc_pbe_sha256_pkcs12 2
703 field_71602_h bc_pbe_sha1_pkcs5 2
704 field_71603_i bc_pbe_sha1_pkcs12 2
705 field_71604_q bc_pbe_sha256_pkcs12_aes256_cbc 2
706 field_71605_p bc_pbe_sha256_pkcs12_aes192_cbc 2
707 field_71610_b cache 2
708 field_71611_a identifier 2
709 field_71613_D digestAlgorithm 2
710 field_71614_E md2 2
711 field_71615_F md4 2
712 field_71616_G md5 2
713 field_71617_A encryptionAlgorithm 2
714 field_71618_B des_EDE3_CBC 2
715 field_71619_C RC2_CBC 2
716 field_71620_L id_hmacWithSHA512 2
717 field_71621_M data 2
718 field_71622_N signedData 2
719 field_71623_O envelopedData 2
720 field_71624_H id_hmacWithSHA1 2
721 field_71625_I id_hmacWithSHA224 2
722 field_71626_J id_hmacWithSHA256 2
723 field_71627_K id_hmacWithSHA384 2
724 field_71628_U pkcs_9_at_unstructuredName 2
725 field_71629_T pkcs_9_at_emailAddress 2
726 field_71630_W pkcs_9_at_messageDigest 2
727 field_71631_V pkcs_9_at_contentType 2
728 field_71632_Q digestedData 2
729 field_71633_P signedAndEnvelopedData 2
730 field_71634_S pkcs_9 2
731 field_71635_R encryptedData 2
732 field_71636_Y pkcs_9_at_counterSignature 2
733 field_71637_X pkcs_9_at_signingTime 2
734 field_71638_Z pkcs_9_at_challengePassword 2
735 field_71639_f sha1WithRSAEncryption 2
736 field_71640_g srsaOAEPEncryptionSET 2
737 field_71641_d md4WithRSAEncryption 2
738 field_71642_e md5WithRSAEncryption 2
739 field_71643_b rsaEncryption 2
740 field_71644_c md2WithRSAEncryption 2
741 field_71645_a pkcs_1 2
742 field_71646_n sha512WithRSAEncryption 2
743 field_71647_o sha224WithRSAEncryption 2
744 field_71648_l sha256WithRSAEncryption 2
745 field_71649_m sha384WithRSAEncryption 2
746 field_71650_j id_pSpecified 2
747 field_71651_k id_RSASSA_PSS 2
748 field_71652_h id_RSAES_OAEP 2
749 field_71653_i id_mgf1 2
750 field_71654_w pbeWithSHA1AndDES_CBC 2
751 field_71655_v pbeWithMD5AndRC2_CBC 2
752 field_71656_u pbeWithMD5AndDES_CBC 2
753 field_71657_t pbeWithMD2AndRC2_CBC 2
754 field_71658_s pbeWithMD2AndDES_CBC 2
755 field_71659_r pkcs_5 2
756 field_71660_q dhKeyAgreement 2
757 field_71661_p pkcs_3 2
758 field_71662_z id_PBKDF2 2
759 field_71663_y id_PBES2 2
760 field_71664_x pbeWithSHA1AndRC2_CBC 2
761 field_71665_bw pbewithSHAAnd40BitRC2_CBC 2
762 field_71666_bv pbeWithSHAAnd40BitRC2_CBC 2
763 field_71667_by id_alg_CMSRC2wrap 2
764 field_71668_bx id_alg_CMS3DESwrap 2
765 field_71669_bs pbeWithSHAAnd3_KeyTripleDES_CBC 2
766 field_71670_br pbeWithSHAAnd40BitRC4 2
767 field_71671_bu pbeWithSHAAnd128BitRC2_CBC 2
768 field_71672_bt pbeWithSHAAnd2_KeyTripleDES_CBC 2
769 field_71673_bn secretBag 2
770 field_71674_bo safeContentsBag 2
771 field_71675_bp pkcs_12PbeIds 2
772 field_71676_bq pbeWithSHAAnd128BitRC4 2
773 field_71677_bj keyBag 2
774 field_71678_bk pkcs8ShroudedKeyBag 2
775 field_71679_bl certBag 2
776 field_71680_bm crlBag 2
777 field_71681_bf id_spq_ets_uri 2
778 field_71682_bg id_spq_ets_unotice 2
779 field_71683_bh pkcs_12 2
780 field_71684_bi bagtypes 2
781 field_71685_bb id_aa_sigPolicyId 2
782 field_71686_bc id_aa_commitmentType 2
783 field_71687_bd id_aa_signerLocation 2
784 field_71688_be id_aa_otherSigCert 2
785 field_71689_aZ id_aa_ets_certCRLTimestamp 2
786 field_71690_aY id_aa_ets_escTimeStamp 2
787 field_71691_aR id_aa_ets_signerAttr 2
788 field_71692_aQ id_aa_ets_signerLocation 2
789 field_71693_aT id_aa_ets_contentTimestamp 2
790 field_71694_aS id_aa_ets_otherSigCert 2
791 field_71695_aV id_aa_ets_revocationRefs 2
792 field_71696_aU id_aa_ets_certificateRefs 2
793 field_71697_aX id_aa_ets_revocationValues 2
794 field_71698_aW id_aa_ets_certValues 2
795 field_71699_aI id_aa_contentReference 2
796 field_71700_aJ id_aa_encrypKeyPref 2
797 field_71701_aK id_aa_signingCertificate 2
798 field_71702_aL id_aa_signingCertificateV2 2
799 field_71703_aM id_aa_contentIdentifier 2
800 field_71704_aN id_aa_signatureTimeStampToken 2
801 field_71705_aO id_aa_ets_sigPolicyId 2
802 field_71706_aP id_aa_ets_commitmentType 2
803 field_71707_aA id_cti_ets_proofOfDelivery 2
804 field_71708_aB id_cti_ets_proofOfSender 2
805 field_71709_aC id_cti_ets_proofOfApproval 2
806 field_71710_aD id_cti_ets_proofOfCreation 2
807 field_71711_aE id_aa 2
808 field_71712_aF id_aa_receiptRequest 2
809 field_71713_aG id_aa_contentHint 2
810 field_71714_aH id_aa_msgSigDigest 2
811 field_71715_az id_cti_ets_proofOfReceipt 2
812 field_71716_ay id_cti_ets_proofOfOrigin 2
813 field_71717_ba id_aa_ets_archiveTimestamp 2
814 field_71718_at id_ct_TSTInfo 2
815 field_71719_as id_ct_authData 2
816 field_71720_ar id_ct 2
817 field_71721_aq sMIMECapabilitiesVersions 2
818 field_71722_ax id_cti 2
819 field_71723_aw id_ct_timestampedData 2
820 field_71724_av id_ct_authEnvelopedData 2
821 field_71725_au id_ct_compressedData 2
822 field_71726_ak sdsiCertificate 2
823 field_71727_al crlTypes 2
824 field_71728_ai certTypes 2
825 field_71729_aj x509Certificate 2
826 field_71730_ao preferSignedData 2
827 field_71731_ap canNotDecryptAny 2
828 field_71732_am x509Crl 2
829 field_71733_an id_alg_PWRI_KEK 2
830 field_71734_ac pkcs_9_at_signingDescription 2
831 field_71735_ad pkcs_9_at_extensionRequest 2
832 field_71736_aa pkcs_9_at_unstructuredAddress 2
833 field_71737_ab pkcs_9_at_extendedCertificateAttributes 2
834 field_71738_ag pkcs_9_at_localKeyId 2
835 field_71739_ah x509certType 2
836 field_71740_ae pkcs_9_at_smimeCapabilities 2
837 field_71741_af pkcs_9_at_friendlyName 2
838 field_71743_a theDecitatedServer 2 Reference to the DecitatedServer object.
839 field_71748_d connections 2
840 field_71749_b isListening 2 Whether the network listener object is listening.
857 field_71784_a key 2
858 field_71787_b strength 2
859 field_71788_a random 2
860 field_71796_f pgpCFB 2
861 field_71797_d cipher 2
862 field_71798_e partialBlockOkay 2
863 field_71799_b bufOff 2
864 field_71800_c forEncryption 2
865 field_71801_a buf 2
866 field_71809_f encrypting 2
867 field_71810_d blockSize 2
868 field_71811_e cipher 2
869 field_71812_b cfbV 2
870 field_71813_c cfbOutV 2
871 field_71814_a IV 2
872 field_71824_f T2 2
873 field_71825_g T3 2
874 field_71826_d T0 2
875 field_71827_e T1 2
876 field_71828_b Si 2
877 field_71829_c rcon 2
878 field_71830_a S 2
879 field_71831_n C0 2
880 field_71832_o C1 2
881 field_71833_l ROUNDS 2
882 field_71834_m WorkingKey 2
883 field_71835_j Tinv2 2
884 field_71836_k Tinv3 2
885 field_71837_h Tinv0 2
886 field_71838_i Tinv1 2
887 field_71839_r forEncryption 2
888 field_71840_q C3 2
889 field_71841_p C2 2
890 field_71844_b strength 2
891 field_71845_a random 2
892 field_71938_D lavaStill 2 Stationary lava source block
1816 field_73813_b xPos 2
1817 field_73814_c yPos 2
1818 field_73815_a fontRenderer 2 Have the font renderer from GuiScreen to render the textbox text into the screen.
1819 field_73816_n lineScrollOffset 2 The current character index that should be used as start of the rendered text.
1820 field_73817_o cursorPosition 2
1821 field_73818_l isFocused 2 If this value is true along isEnabled, keyTyped will process the keys.
1822 field_73819_m isEnabled 2 If this value is true along isFocused, keyTyped will process the keys.
2066 field_74264_c currentProgress 2
2067 field_74265_a progressMessage 2
2068 field_74267_a mcServer 2 Reference to the MinecraftServer object.
2069 field_74268_a simpleDateFormatLogFormatter dateFormat 2 Date Formatter of Log/Console. The date format to use in the console log.
2070 field_74270_a mcServer 2 Reference to the MinecraftServer object.
2071 field_74272_a mcServer 2 Reference to the MinecraftServer object.
2072 field_74274_a mcServer 2 Reference to the MinecraftServer object.
2272 field_74784_a tagMap 2 The key-value pairs for the tag. Each key is a UTF string, each value is a tag.
2273 field_74790_a enumJsonNodeTypeMappingArray 2 A mapping helper array for EnumJsonNodeType's values.
2274 field_74791_a escapedString 2
2275 field_74801_a theBouncyCastleProvider 2
2276 field_74813_d currentLanguage 2
2277 field_74814_e isUnicode 2
2278 field_74815_b translateTable 2 Contains all key/value pairs to be translated - is loaded from '/lang/en_US.lang' when the StringTranslate is created.
2279 field_74816_c languageList 2
2280 field_74817_a instance 2 Is the private singleton instance of StringTranslate.
2281 field_74822_f ASYMMETRIC_GENERIC 2
2282 field_74823_g ASYMMETRIC_CIPHERS 2
2283 field_74824_d keyInfoConverters 2
2284 field_74825_e SYMMETRIC_CIPHERS 2
2285 field_74826_b CONFIGURATION 2
2286 field_74827_c info 2
2287 field_74828_a PROVIDER_NAME 2
2288 field_74829_h DIGESTS 2
2289 field_74831_f dhThreadSpec 2
2290 field_74832_d BC_DH_PERMISSION 2
2291 field_74833_e ecThreadSpec 2
2296 field_74842_b permissionMask 2
2297 field_74843_a actions 2
2298 field_74845_a errorObjects 2
2299 field_74846_d buf 2
2300 field_74847_b theStreamCipher 2
2301 field_74848_c oneByte 2
2302 field_74849_a theBufferedBlockCipher 2
2303 field_74853_f maxBuf 2
2304 field_74854_g finalized 2
2305 field_74855_d inBuf 2
2306 field_74856_e bufOff 2
2307 field_74857_b theStreamCipher 2
2308 field_74858_c buf 2
2309 field_74859_a theBufferedBlockCipher 2
2310 field_74885_f coordBaseMode 2 switches the Coordinate System base off the Bounding Box
2311 field_74886_g componentType 2 The type ID of this component.
2312 field_74887_e boundingBox 2
2682 field_75625_b stringToClassMapping 2 Provides a mapping between entity classes and a string
2683 field_75626_c classToStringMapping 2 Provides a mapping between a string and an entity classes
2684 field_75627_a entityEggs 2 This is a HashMap of the Creative Entity Eggs/Spawners.
2685 field_75643_f update 2
2686 field_75644_d posZ 2
2687 field_75645_e speed 2 The speed at which the entity should move
2688 field_75646_b posX 2
2702 field_75676_b dataValueId 2 id of max 31
2703 field_75677_c watchedObject 2
2704 field_75678_a objectType 2
2705 field_75694_d lock 2
2706 field_75695_b watchedObjects 2
2707 field_75696_c objectChanged 2 true if one or more object was changed
2708 field_75697_a dataTypes 2
4384 field_82136_e levels 2 Level of this beacon's pyramid.
4385 field_82139_a effectsList 2 List of effects that Beacon can apply
4386 field_82140_h payment 2 Item given to this beacon as payment.
4387 field_82153_h timeInPortal 2
4388 field_82155_f isAnvil 2
4389 field_82156_g fallHurtMax 2 Maximum amount of damage dealt to entities hit by falling block
4390 field_82157_e isBreakingAnvil 2
4456 field_82387_b intListPattern 2 This matches things like "-1,,4", and is used for getting x,y,z,range from the token's argument list.
4457 field_82388_c keyValueListPattern 2 This matches things like "rm=4,c=2" and is used for handling named token arguments.
4458 field_82389_a tokenPattern 2 This matches the at-tokens introduced for command blocks, including their arguments, if any.
4459 field_82391_c instance 2
4460 field_82397_a skullRenderer 2
4461 field_82401_a skeletonHeadModel 2 The Skeleton's head model.
4462 field_82405_a renderBlocksInstance 2
4465 field_82453_b createFlatWorldGui 2
4466 field_82458_b flatPresetsGui 2
4467 field_82470_g playingSounds 2 Identifiers of all currently playing sounds. Type: HashSet<String>
4468 field_82471_f minecartIsMoving 2
4469 field_82472_g silent 2
4470 field_82473_d playerSPRidingMinecart 2
4471 field_82474_e minecartIsDead 2
4472 field_82475_b theMinecart 2 Minecart which sound is being updated.
4473 field_82476_c thePlayer 2 The player that is getting the minecart sound updates.
4474 field_82477_a theSoundManager 2
4475 field_82478_j minecartRideSoundVolume 2
4476 field_82479_k minecartSpeed 2
4477 field_82480_h minecartSoundPitch 2
4478 field_82481_i minecartMoveSoundVolume 2
4479 field_82483_a itemDispenseBehaviorProvider 2
4480 field_82484_c defaultItemDispenseBehavior 2 Reference to the BehaviorDefaultDispenseItem object.
4481 field_82490_b mcServer 2
4519 field_82592_a vec3dPool 2
4520 field_82596_a registryObjects 2 Objects registered on this registry.
4521 field_82597_b defaultObject 2 Default object for this registry, returned when an object is not found.
4522 field_82611_j frontOffsetY 2
4523 field_82612_k frontOffsetZ 2
4524 field_82614_i frontOffsetX 2
4525 field_82624_d zPos 2
4526 field_82625_b xPos 2
4527 field_82626_c yPos 2
4528 field_82627_a worldObj 2
4529 field_82628_b y 2
4530 field_82629_c z 2
4531 field_82630_a x 2
4532 field_82635_f maxSpeedBoostTime 2 Maximum time the entity's speed should be boosted for.
4533 field_82636_d speedBoosted 2 Whether the entity's speed is boosted.
4534 field_82637_e speedBoostTime 2 Counter for speed boosting, upon reaching maxSpeedBoostTime the speed boost will be disabled
4552 field_82682_h hasWitch 2 Whether this swamp hut has a witch.
4553 field_82693_j playerReputation 2 List of player reputations with this village
4554 field_82694_i noBreedTicks 2 Timestamp of tick count when villager last bred
4555 field_82696_f structureGenerators 2
4556 field_82701_j lavaLakeGenerator 2
4557 field_82703_i waterLakeGenerator 2
4558 field_82707_i isAnimal 2 Whether this creature type is an animal.
4559 field_82717_g anvil 2
4560 field_82723_d isSplashPotion 2 Whether the potion is a splash potion
4607 field_82862_h thePlayer 2
4608 field_82864_f beaconSlot 2 This beacon's slot where you put in Emerald, Diamond, Gold or Iron Ingot.
4609 field_82866_e theBeacon 2
4610 field_82871_d blockPosZ 2
4611 field_82872_e anvil 2 The anvil this slot belongs to.
4612 field_82873_b blockPosX 2
4613 field_82874_c blockPosY 2
4614 field_82875_a theWorld 2
4615 field_82876_a beacon 2 The beacon this slot belongs to.
4616 field_82880_z showCape 2 Whether to show your cape
4638 field_83025_k renderMinZ 2 The minimum Z value for rendering (default 0.0).
4639 field_83026_h renderMaxX 2 The maximum X value for rendering (default 1.0).
4640 field_83027_i renderMinY 2 The minimum Y value for rendering (default 0.0).
4641 field_85037_d aiArrowAttack 2
4642 field_85038_e aiAttackOnCollide 2
4643 field_85045_v returningStack 2 Used when touchscreen is enabled
4644 field_85046_u returningStackTime 2
4645 field_85047_t returningStackDestSlot 2
4646 field_85050_q draggedStack 2 Used when touchscreen is enabled
4647 field_85051_p clickedSlot 2 Used when touchscreen is enabled
4648 field_85053_h throwerName 2
4649 field_85075_d stackTrace 2
4650 field_85109_a worldInfoInstance 2
4651 field_85111_a worldInfoInstance 2
4652 field_85113_a worldInfoInstance 2
4653 field_85115_a worldInfoInstance 2
4654 field_85135_a worldInfoInstance 2
4655 field_85137_a worldInfoInstance 2
4656 field_85139_a worldInfoInstance 2
4657 field_85141_a worldInfoInstance 2
4658 field_85143_a worldInfoInstance 2
4659 field_85180_cf recordWait 2
4660 field_85185_A touchscreen 2
4661 field_85192_a worldServerInstance 2
4662 field_90017_e isMacOs 2
4663 field_90018_r isRightMouseClick 2 Used when touchscreen is enabled
4664 field_90044_b records 2 List of all record items and their names.
4665 field_92009_j explosionStrength 2 The explosion radius of spawned fireballs.
4666 field_92010_b lifetime 2 The lifetime of the firework in ticks. When the age reaches the lifetime the firework explodes.
4667 field_92011_a fireworkAge 2 The age of the firework in ticks.
4668 field_92014_j explosionStrength 2 The explosion radius of spawned fireballs.
4669 field_92017_j spawnedMob 2
4670 field_92052_bU firework 2
4671 field_92053_bW enchantedBook 2
4672 field_92054_bV fireworkCharge 2
4673 field_92055_b lifetime 2 The lifetime of the firework in ticks. When the age reaches the lifetime the firework explodes.
4674 field_92056_a fireworkAge 2 The age of the firework in ticks.
4675 field_92104_bU firework 2
4676 field_92105_bW enchantedBook 2
4677 field_92106_bV fireworkCharge 2
+649 -340
View File
File diff suppressed because it is too large. Load diff
+13913 -13177
View File
File diff suppressed because it is too large. Load diff
+63 -7
View File
@@ -237,6 +237,10 @@ func_70487_g,saveInventoryToNBT,2,
func_70490_h,isMinecartPowered,2,Is this minecart powered (Fuel > 0)
func_70491_i,getDamage,2,Gets the current amount of damage the minecart has taken. Decreases over time. The cart breaks when this is over 40.
func_70492_c,setDamage,2,Sets the current amount of damage the minecart has taken. Decreases over time. The cart breaks when this is over 40.
func_70493_k,getRollingDirection,2,Gets the rolling direction the cart rolls while being attacked. Can be 1 or -1.
func_70494_i,setRollingDirection,2,Sets the rolling direction the cart rolls while being attacked. Can be 1 or -1.
func_70496_j,getRollingAmplitude,2,Gets the rolling amplitude the cart rolls while being attacked.
func_70497_h,setRollingAmplitude,2,Sets the rolling amplitude the cart rolls while being attacked.
func_70498_d,setMinecartPowered,2,Set if this minecart is powered (Fuel > 0)
func_70515_d,explode,2,
func_70518_d,onValidSurface,2,checks to make sure painting can be placed there
@@ -376,9 +380,11 @@ func_70814_o,isValidLightLevel,2,Checks to make sure the light is not too bright
func_70816_c,teleportToEntity,2,Teleport the enderman to another entity
func_70817_b,setCarryingData,2,Set the metadata of the block an enderman carries
func_70818_a,setCarried,2,Set the id of the block an enderman carries
func_70819_e,setScreaming,2,
func_70820_n,teleportRandomly,2,Teleport the enderman to a random nearby position
func_70821_d,shouldAttackPlayer,2,Checks to see if this enderman should be attacking this player
func_70822_p,getCarried,2,Get the id of the block an enderman carries
func_70823_r,isScreaming,2,
func_70824_q,getCarryingData,2,Get the metadata of the block an enderman carries
func_70825_j,teleportTo,2,Teleport the enderman
func_70829_a,setCreeperState,2,"Sets the state of creeper, -1 to idle and 1 to be 'in fuse'"
@@ -632,7 +638,7 @@ func_71269_o,setTexturePack,2,
func_71270_I,getFolderName,2,
func_71272_O,deleteWorldAndStopServer,2,WARNING : directly calls getActiveAnvilConverter().deleteWorldDirectory(theWorldServer[0].getSaveHandler().getSaveDirectoryName());
func_71273_Y,getMOTD,2,
func_71274_v,getServerMOTD,2,minecraftServer.getMOTD is used in 2 places instead (it is a non-virtual function which returns the same thing)
func_71274_v,getServerMOTD,2,Returns the server message of the day
func_71275_y,getMaxPlayers,2,Returns the maximum number of players allowed on the server.
func_71276_C,getServer,2,Gets mcServer.
func_71277_t,getHostname,2,Returns the server's hostname.
@@ -779,6 +785,9 @@ func_71571_b,set,2,
func_71575_a,getCrashReport,2,Gets the CrashReport wrapped by this exception.
func_71606_a,toASN1Primitive,2,
func_71607_a,asn1Equals,2,
func_71608_a,isValidIdentifier,2,
func_71609_b,getId,2,
func_71612_a,branch,2,
func_71742_a,getType,2,
func_71744_a,stopListening,2,
func_71745_a,addPlayer,2,adds this connection to the list of currently connected players
@@ -795,8 +804,28 @@ func_71770_b,isLocalHost,2,
func_71779_a,getIV,2,
func_71780_b,getParameters,2,
func_71783_a,getKey,2,
func_71789_b,getOutputSize,2,
func_71790_a,doFinal,2,
func_71791_a,processByte,2,
func_71792_a,getBlockSize,2,
func_71793_a,getUpdateOutputSize,2,
func_71794_b,reset,2,
func_71802_a,getAlgorithmName,2,Return the name of the algorithm the cipher implements.
func_71803_c,reset,2,
func_71804_b,getBlockSize,2,Return the block size for this cipher (in bytes).
func_71805_a,init,2,
func_71806_a,processBlock,2,
func_71807_b,encryptBlock,2,
func_71808_c,decryptBlock,2,
func_71815_c,subWord,2,
func_71816_a,unpackBlock,2,
func_71817_a,FFmulX,2,
func_71818_a,encryptBlock,2,
func_71819_a,shift,2,
func_71820_b,inv_mcol,2,
func_71821_b,packBlock,2,
func_71822_b,decryptBlock,2,
func_71823_a,generateWorkingKey,2,
func_71842_b,getStrength,2,Return the bit strength for keys produced by this generator.
func_71843_a,getRandom,2,Return the random source associated with this generator.
func_71846_a,onBlockHarvested,2,Called when the block is attempted to be harvested
@@ -929,7 +958,7 @@ func_72169_f,isPoweredOrRepeater,2,"Returns true if the block coordinate passed
func_72170_e,getMaxCurrentStrength,2,"Returns the current strength at the specified block if it is greater than the passed value, or the passed value otherwise. Signature: (world, x, y, z, strength)"
func_72171_a,calculateCurrentChanges,2,
func_72172_n,notifyWireNeighborsOfNeighborChange,2,"Calls World.notifyBlocksOfNeighborChange() for all neighboring blocks, but only if the given block is a redstone wire."
func_72173_e,canConnectRedstone,2,"Returns true if redstone wire can connect to the specified block. Params: World, X, Y, Z, side (not a normal notch-side, this can be 0, 1, 2, 3 or -1)"
func_72173_e,isPowerProviderOrWire,2,"Returns true if redstone wire can connect to the specified block. Params: World, X, Y, Z, side (not a normal notch-side, this can be 0, 1, 2, 3 or -1)"
func_72176_l,glow,2,The redstone ore glows.
func_72177_n,sparkle,2,The redstone ore sparkles.
func_72179_a,isPoweredBlockRail,2,Return true if the blocks passed is a power related rail.
@@ -1408,7 +1437,7 @@ func_72896_J,isRaining,2,Returns true if the current rain strength is greater th
func_72897_h,joinEntityInSurroundings,2,spwans an entity and loads surrounding chunks
func_72898_h,notifyBlocksOfNeighborChange,2,"Notifies neighboring blocks that this specified block changed Args: x, y, z, blockID"
func_72899_e,blockExists,2,"Returns whether a block exists at world coordinates x, y, z"
func_72900_e,setEntityDead,2,"Dismounts the entity (and anything riding the entity), sets the dead flag, and removes the player entity from the player entity list. Called by the playerLoggedOut function."
func_72900_e,removeEntity,2,Schedule the entity for removal during the next tick. Marks the entity dead in anticipation.
func_72901_a,rayTraceBlocks_do,2,
func_72902_n,markBlockForRenderUpdate,2,"On the client, re-renders this block. On the server, does nothing. Used for lighting updates."
func_72903_x,setActivePlayerChunksAndCheckLight,2,
@@ -1480,7 +1509,7 @@ func_72969_x,updateAllLightTypes,2,
func_72970_h,createChunkProvider,2,Creates the chunk provider for this world. Called in the constructor. Retrieves provider from worldProvider?
func_72971_b,getSunBrightness,2,"Returns the sun brightness - checks time of day, rain and thunder"
func_72972_b,getSavedLightValue,2,Returns saved light value without taking into account the time of day. Either looks in the sky light map or block light map based on the enumSkyBlock arg.
func_72973_f,removeEntity,2,remove dat player from dem servers
func_72973_f,removePlayerEntityDangerously,2,Do NOT use this method to remove normal entities- use normal removeEntity
func_72974_f,setSpawnLocation,2,"Sets a new spawn location by finding an uncovered block at a random (x,z) location in the chunk."
func_72975_g,markBlocksDirtyVertical,2,marks a vertical line of blocks as dirty
func_72976_f,getHeightValue,2,"Returns the y coordinate with a block in it at this x, z coordinate"
@@ -1705,7 +1734,7 @@ func_73730_a,drawHorizontalLine,2,
func_73731_b,drawString,2,Renders the specified text to the screen.
func_73732_a,drawCenteredString,2,"Renders the specified text to the screen, center-aligned."
func_73733_a,drawGradientRect,2,Draws a rectangle with a vertical gradient between the specified colors.
func_73734_a,drawRect,2,Draws a solid color rectangle with the specified coordinates and color.
func_73734_a,drawRect,2,"Draws a solid color rectangle with the specified coordinates and color. Args: x1, y1, x2, y2, color"
func_73736_c,mousePressed,2,Returns true if the mouse has been pressed on this control. Equivalent of MouseListener.mousePressed(MouseEvent e).
func_73737_a,drawButton,2,Draws this button to the screen.
func_73738_a,getHoverState,2,"Returns 0 if the button is disabled, 1 if the mouse is NOT hovering over this button and 2 if it IS hovering over this button."
@@ -1866,6 +1895,7 @@ func_74191_a,handleMouseClick,2,
func_74192_a,drawSlotInventory,2,Draws an inventory slot
func_74199_h,getIMerchant,2,Gets the Instance of IMerchant interface.
func_74221_h,displayDebuffEffects,2,Displays debuff/potion effects that are currently being applied to the player
func_74223_a,drawPlayerOnGui,2,
func_74226_k,needsScrollBars,2,returns (if you are not on the inventoryTab) and (the flag isn't set) and( you have more than 1 page of items)
func_74227_b,setCurrentCreativeTab,2,
func_74228_j,updateCreativeSearch,2,
@@ -2112,13 +2142,19 @@ func_74809_c,translateNamedKey,2,"Translate a key with a extra '.name' at end ad
func_74810_a,setLanguage,2,
func_74811_c,getCurrentLanguage,2,
func_74812_a,loadLanguage,2,
func_74818_a,setup,2,
func_74819_a,loadAlgorithms,2,
func_74820_b,addMacAlgorithms,2,
func_74821_a,doSetup,2,
func_74830_a,toLowerCase,2,A locale independent version of toLowerCase that returns a US ASCII lowercase String.
func_74837_a,translateToLocalFormatted,2,Translates a Stat name with format args
func_74838_a,translateToLocal,2,Translates a Stat name
func_74840_a,configure,2,
func_74841_a,calculateMask,2,
func_74844_a,getErrorOjbects,2,
func_74850_a,processBytes,2,
func_74851_a,returnByte,2,"Encrypt/decrypt a single byte, returning the result."
func_74852_a,nextChunk,2,
func_74860_a,isLiquidInStructureBoundingBox,2,checks the entire StructureBoundingBox for Liquids
func_74861_a,buildComponent,2,"Initiates construction of the Structure Component picked, at the current Location of StructGen"
func_74862_a,getYWithOffset,2,
@@ -2400,6 +2436,8 @@ func_75620_a,createEntityByName,2,Create a new instance of an entity in the worl
func_75621_b,getEntityString,2,Gets the string representation of a specific entity.
func_75630_a,multiplyBy32AndRound,2,
func_75638_b,getSpeed,2,
func_75639_a,limitAngle,2,Limits the given angle to a upper and lower limit.
func_75640_a,isUpdating,2,
func_75641_c,onUpdateMoveHelper,2,
func_75642_a,setMoveTo,2,Sets the speed and location to move to
func_75649_a,onUpdateLook,2,Updates look
@@ -3312,7 +3350,7 @@ func_77642_a,setContainerItem,2,
func_77643_m_,isMap,2,false for all Items except sub-classes of ItemMapBase
func_77644_a,hitEntity,2,Current implementations of this method in child classes do not use the entry argument beside ev. They just raise the damage on the stack.
func_77645_m,isDamageable,2,
func_77646_a,itemInteractionForEntity,2,"dye sheep, place saddles, etc ..."
func_77646_a,itemInteractionForEntity,2,Called when a player right clicks an entity with an item.
func_77647_b,getMetadata,2,Returns the metadata of the block which this Item (ItemBlock) can place
func_77648_a,onItemUse,2,"Callback for item usage. If the item does something special on right clicking, he will have one of those. Return True if something happen and false if it don't. This is for ITEMS, not BLOCKS"
func_77649_a,getDamageVsEntity,2,Returns the damage against a given entity.
@@ -3334,6 +3372,7 @@ func_77665_c,setIconIndex,2,Sets the icon index for this item. Returns the item.
func_77666_t,getPotionEffect,2,Returns a string representing what this item does to a potion.
func_77667_c,getItemNameIS,2,
func_77668_q,getContainerItem,2,
func_77825_f,getToolMaterialName,2,Return the name for this tool's material.
func_77828_a,validBookTagContents,2,
func_77829_a,validBookTagPages,2,
func_77831_g,isSplash,2,returns wether or not a potion is a throwable splash potion based on damage value
@@ -3535,6 +3574,8 @@ func_78440_a,renderItemInFirstPerson,2,Renders the active item in the player's h
func_78441_a,updateEquippedItem,2,
func_78442_d,renderFireInFirstPerson,2,Renders the fire on the screen for first person mode. Arg: partialTickTime
func_78443_a,renderItem,2,Renders the item stack for being in an entity's hand Args: itemStack
func_78444_b,resetEquippedProgress,2,Resets equippedProgress
func_78445_c,resetEquippedProgress2,2,Resets equippedProgress
func_78446_a,renderInsideOfBlock,2,"Renders the texture of the block the player is inside as an overlay. Args: partialTickTime, blockTextureIndex"
func_78447_b,renderOverlays,2,Renders all the overlays that are in first person mode. Args: partialTickTime
func_78448_c,renderWarpedTextureOverlay,2,Renders a texture that warps around based on the direction the player is looking. Texture needs to be bound before being called. Used for the water overlay. Args: parialTickTime
@@ -3736,11 +3777,12 @@ func_79006_b,getStatsComponent,2,Returns a new JPanel with a new GuiStatsCompone
func_79007_c,getPlayerListComponent,2,Returns a new JScrollPane with a new PlayerListBox inside.
func_79013_a,update,2,Public static accessor to call updateStats.
func_79014_a,updateStats,2,Updates the stat values and calls paint to redraw the component.
func_79015_a,calcArrayAverage,2,Calculates the avarage value of the given long array.
func_80003_ah,getPlayerUsageSnooper,2,
func_80006_f,getUniqueID,2,
func_80007_l,getDimensionName,2,"Returns the dimension's name, e.g. ""The End"", ""Nether"", or ""Overworld""."
func_82011_an,enableGui,2,
func_82114_b,getPlayerCoordinates,2,Return the coordinates for this player as ChunkCoordinates.
func_82114_b,getPlayerCoordinates,2,Return the position for this command sender.
func_82116_a,setSkullRotation,2,Set the skull's rotation
func_82117_a,getSkullType,2,Get the entity type for the skull
func_82118_a,setSkullType,2,Set the entity type for the skull
@@ -3780,6 +3822,7 @@ func_82205_o,isArmored,2,Returns whether the wither is armored with its boss arm
func_82227_f,setChild,2,Set whether this zombie is a child.
func_82228_a,startConversion,2,Starts converting this zombie into a villager. The zombie converts into a villager after the specified time in ticks.
func_82229_g,setVillager,2,Set whether this zombie is a villager.
func_82230_o,isConverting,2,Returns whether this zombie is in the process of converting to a villager
func_82231_m,isVillager,2,Return whether this zombie is a villager.
func_82232_p,convertToVillager,2,Convert this zombie into a villager.
func_82233_q,getConversionTimeBoost,2,Return the amount of time decremented from conversionTime every tick.
@@ -3827,6 +3870,7 @@ func_82366_d,getGameRules,2,Return the game rule set this command should be able
func_82369_d,getAllOnlineUsernames,2,Return all usernames currently connected to the server.
func_82370_a,getUsernameIndex,2,Return a command's first parameter index containing a valid username.
func_82371_e,getDistanceSquaredToChunkCoordinates,2,Return the squared distance between this coordinates and the ChunkCoordinates given as argument.
func_82372_a,getMovementDirection,2,Returns the movement direction from a velocity vector.
func_82375_f,getDefaultMinimumLevel,2,Gets the default minimum experience level (argument lm)
func_82376_e,getDefaultMaximumLevel,2,Gets the default maximum experience level (argument l)
func_82377_a,matchesMultiplePlayers,2,Returns whether the given pattern can match more than one player.
@@ -3884,6 +3928,9 @@ func_82582_d,hasNoTags,2,Return whether this compound has no tags.
func_82591_c,getPoolSize,2,
func_82593_b,getPlaceSound,2,Used when a player places a block.
func_82595_a,putObject,2,Register an object on this registry.
func_82599_e,getFrontOffsetZ,2,Returns a offset that addresses the block in front of this facing.
func_82600_a,getFront,2,Returns the facing that represents the block in front of it.
func_82601_c,getFrontOffsetX,2,Returns a offset that addresses the block in front of this facing.
func_82615_a,getX,2,
func_82616_c,getZ,2,
func_82617_b,getY,2,
@@ -4030,10 +4077,12 @@ func_85104_a,onBlockPlaced,2,"Called when a block is placed using its ItemBlock.
func_85105_g,onPostBlockPlaced,2,Called after a block is placed
func_85106_a,insertRecord,2,Insert the specified music disc in the jukebox at the given coordinates
func_85107_d,updateLadderBounds,2,Update the ladder block bounds based on the given metadata value.
func_85118_a,addToCrashReport,2,Adds this WorldInfo instance to the crash report.
func_85128_b,getMapFeaturesEnabled,2,Return the map feautures enabled of a world
func_85132_a,getTerrainTypeOfWorld,2,Return the terrain type of a world
func_85151_d,getLowerChestInventory,2,Return this chest container's lower chest inventory.
func_85173_a,playSoundToNearExcept,2,Plays sound to all near players except the player reference given
func_85175_e,blockGetRenderType,2,Returns the render type of the block at the given coordinate.
func_85187_a,drawString,2,"Draws the specified string. Args: string, x, y, color, dropShadow"
func_90010_a,isPartOfLargeChest,2,Return whether the given inventory is part of this large chest.
func_90011_a,createChild,2,
@@ -4046,3 +4095,10 @@ func_90036_a,getFireAspectModifier,2,
func_90042_d,getRecord,2,Return the record item corresponding to the given name.
func_90043_g,getRecordTitle,2,Return the title for this record.
func_90999_ad,canRenderOnFire,2,Return whether this entity should be rendered as on fire.
func_92013_a,setEntityItem,2,Sets the ItemStack corresponding to this Entity (and updates the DataWatcher for it)
func_92014_d,getEntityItem,2,"Returns the ItemStack corresponding to the Entity (Note: if no item exists, will log an error but still return an ItemStack containing Block.stone)"
func_92015_a,getMobID,2,
func_92027_k,sendChatMsg,2,Sends the given string to every player as chat message.
func_92059_d,getEntityItem,2,"Returns the ItemStack corresponding to the Entity (Note: if no item exists, will log an error but still return an ItemStack containing Block.stone)"
func_92062_k,sendChatMsg,2,Sends the given string to every player as chat message.
func_92103_a,addRecipe,2,
1 searge name side desc
237 func_70490_h isMinecartPowered 2 Is this minecart powered (Fuel > 0)
238 func_70491_i getDamage 2 Gets the current amount of damage the minecart has taken. Decreases over time. The cart breaks when this is over 40.
239 func_70492_c setDamage 2 Sets the current amount of damage the minecart has taken. Decreases over time. The cart breaks when this is over 40.
240 func_70493_k getRollingDirection 2 Gets the rolling direction the cart rolls while being attacked. Can be 1 or -1.
241 func_70494_i setRollingDirection 2 Sets the rolling direction the cart rolls while being attacked. Can be 1 or -1.
242 func_70496_j getRollingAmplitude 2 Gets the rolling amplitude the cart rolls while being attacked.
243 func_70497_h setRollingAmplitude 2 Sets the rolling amplitude the cart rolls while being attacked.
244 func_70498_d setMinecartPowered 2 Set if this minecart is powered (Fuel > 0)
245 func_70515_d explode 2
246 func_70518_d onValidSurface 2 checks to make sure painting can be placed there
380 func_70816_c teleportToEntity 2 Teleport the enderman to another entity
381 func_70817_b setCarryingData 2 Set the metadata of the block an enderman carries
382 func_70818_a setCarried 2 Set the id of the block an enderman carries
383 func_70819_e setScreaming 2
384 func_70820_n teleportRandomly 2 Teleport the enderman to a random nearby position
385 func_70821_d shouldAttackPlayer 2 Checks to see if this enderman should be attacking this player
386 func_70822_p getCarried 2 Get the id of the block an enderman carries
387 func_70823_r isScreaming 2
388 func_70824_q getCarryingData 2 Get the metadata of the block an enderman carries
389 func_70825_j teleportTo 2 Teleport the enderman
390 func_70829_a setCreeperState 2 Sets the state of creeper, -1 to idle and 1 to be 'in fuse'
638 func_71270_I getFolderName 2
639 func_71272_O deleteWorldAndStopServer 2 WARNING : directly calls getActiveAnvilConverter().deleteWorldDirectory(theWorldServer[0].getSaveHandler().getSaveDirectoryName());
640 func_71273_Y getMOTD 2
641 func_71274_v getServerMOTD 2 minecraftServer.getMOTD is used in 2 places instead (it is a non-virtual function which returns the same thing) Returns the server message of the day
642 func_71275_y getMaxPlayers 2 Returns the maximum number of players allowed on the server.
643 func_71276_C getServer 2 Gets mcServer.
644 func_71277_t getHostname 2 Returns the server's hostname.
785 func_71575_a getCrashReport 2 Gets the CrashReport wrapped by this exception.
786 func_71606_a toASN1Primitive 2
787 func_71607_a asn1Equals 2
788 func_71608_a isValidIdentifier 2
789 func_71609_b getId 2
790 func_71612_a branch 2
791 func_71742_a getType 2
792 func_71744_a stopListening 2
793 func_71745_a addPlayer 2 adds this connection to the list of currently connected players
804 func_71779_a getIV 2
805 func_71780_b getParameters 2
806 func_71783_a getKey 2
807 func_71789_b getOutputSize 2
808 func_71790_a doFinal 2
809 func_71791_a processByte 2
810 func_71792_a getBlockSize 2
811 func_71793_a getUpdateOutputSize 2
812 func_71794_b reset 2
813 func_71802_a getAlgorithmName 2 Return the name of the algorithm the cipher implements.
814 func_71803_c reset 2
815 func_71804_b getBlockSize 2 Return the block size for this cipher (in bytes).
816 func_71805_a init 2
817 func_71806_a processBlock 2
818 func_71807_b encryptBlock 2
819 func_71808_c decryptBlock 2
820 func_71815_c subWord 2
821 func_71816_a unpackBlock 2
822 func_71817_a FFmulX 2
823 func_71818_a encryptBlock 2
824 func_71819_a shift 2
825 func_71820_b inv_mcol 2
826 func_71821_b packBlock 2
827 func_71822_b decryptBlock 2
828 func_71823_a generateWorkingKey 2
829 func_71842_b getStrength 2 Return the bit strength for keys produced by this generator.
830 func_71843_a getRandom 2 Return the random source associated with this generator.
831 func_71846_a onBlockHarvested 2 Called when the block is attempted to be harvested
958 func_72170_e getMaxCurrentStrength 2 Returns the current strength at the specified block if it is greater than the passed value, or the passed value otherwise. Signature: (world, x, y, z, strength)
959 func_72171_a calculateCurrentChanges 2
960 func_72172_n notifyWireNeighborsOfNeighborChange 2 Calls World.notifyBlocksOfNeighborChange() for all neighboring blocks, but only if the given block is a redstone wire.
961 func_72173_e canConnectRedstone isPowerProviderOrWire 2 Returns true if redstone wire can connect to the specified block. Params: World, X, Y, Z, side (not a normal notch-side, this can be 0, 1, 2, 3 or -1)
962 func_72176_l glow 2 The redstone ore glows.
963 func_72177_n sparkle 2 The redstone ore sparkles.
964 func_72179_a isPoweredBlockRail 2 Return true if the blocks passed is a power related rail.
1437 func_72897_h joinEntityInSurroundings 2 spwans an entity and loads surrounding chunks
1438 func_72898_h notifyBlocksOfNeighborChange 2 Notifies neighboring blocks that this specified block changed Args: x, y, z, blockID
1439 func_72899_e blockExists 2 Returns whether a block exists at world coordinates x, y, z
1440 func_72900_e setEntityDead removeEntity 2 Dismounts the entity (and anything riding the entity), sets the dead flag, and removes the player entity from the player entity list. Called by the playerLoggedOut function. Schedule the entity for removal during the next tick. Marks the entity dead in anticipation.
1441 func_72901_a rayTraceBlocks_do 2
1442 func_72902_n markBlockForRenderUpdate 2 On the client, re-renders this block. On the server, does nothing. Used for lighting updates.
1443 func_72903_x setActivePlayerChunksAndCheckLight 2
1509 func_72970_h createChunkProvider 2 Creates the chunk provider for this world. Called in the constructor. Retrieves provider from worldProvider?
1510 func_72971_b getSunBrightness 2 Returns the sun brightness - checks time of day, rain and thunder
1511 func_72972_b getSavedLightValue 2 Returns saved light value without taking into account the time of day. Either looks in the sky light map or block light map based on the enumSkyBlock arg.
1512 func_72973_f removeEntity removePlayerEntityDangerously 2 remove dat player from dem servers Do NOT use this method to remove normal entities- use normal removeEntity
1513 func_72974_f setSpawnLocation 2 Sets a new spawn location by finding an uncovered block at a random (x,z) location in the chunk.
1514 func_72975_g markBlocksDirtyVertical 2 marks a vertical line of blocks as dirty
1515 func_72976_f getHeightValue 2 Returns the y coordinate with a block in it at this x, z coordinate
1734 func_73731_b drawString 2 Renders the specified text to the screen.
1735 func_73732_a drawCenteredString 2 Renders the specified text to the screen, center-aligned.
1736 func_73733_a drawGradientRect 2 Draws a rectangle with a vertical gradient between the specified colors.
1737 func_73734_a drawRect 2 Draws a solid color rectangle with the specified coordinates and color. Draws a solid color rectangle with the specified coordinates and color. Args: x1, y1, x2, y2, color
1738 func_73736_c mousePressed 2 Returns true if the mouse has been pressed on this control. Equivalent of MouseListener.mousePressed(MouseEvent e).
1739 func_73737_a drawButton 2 Draws this button to the screen.
1740 func_73738_a getHoverState 2 Returns 0 if the button is disabled, 1 if the mouse is NOT hovering over this button and 2 if it IS hovering over this button.
1895 func_74192_a drawSlotInventory 2 Draws an inventory slot
1896 func_74199_h getIMerchant 2 Gets the Instance of IMerchant interface.
1897 func_74221_h displayDebuffEffects 2 Displays debuff/potion effects that are currently being applied to the player
1898 func_74223_a drawPlayerOnGui 2
1899 func_74226_k needsScrollBars 2 returns (if you are not on the inventoryTab) and (the flag isn't set) and( you have more than 1 page of items)
1900 func_74227_b setCurrentCreativeTab 2
1901 func_74228_j updateCreativeSearch 2
2142 func_74810_a setLanguage 2
2143 func_74811_c getCurrentLanguage 2
2144 func_74812_a loadLanguage 2
2145 func_74818_a setup 2
2146 func_74819_a loadAlgorithms 2
2147 func_74820_b addMacAlgorithms 2
2148 func_74821_a doSetup 2
2149 func_74830_a toLowerCase 2 A locale independent version of toLowerCase that returns a US ASCII lowercase String.
2150 func_74837_a translateToLocalFormatted 2 Translates a Stat name with format args
2151 func_74838_a translateToLocal 2 Translates a Stat name
2152 func_74840_a configure 2
2153 func_74841_a calculateMask 2
2154 func_74844_a getErrorOjbects 2
2155 func_74850_a processBytes 2
2156 func_74851_a returnByte 2 Encrypt/decrypt a single byte, returning the result.
2157 func_74852_a nextChunk 2
2158 func_74860_a isLiquidInStructureBoundingBox 2 checks the entire StructureBoundingBox for Liquids
2159 func_74861_a buildComponent 2 Initiates construction of the Structure Component picked, at the current Location of StructGen
2160 func_74862_a getYWithOffset 2
2436 func_75621_b getEntityString 2 Gets the string representation of a specific entity.
2437 func_75630_a multiplyBy32AndRound 2
2438 func_75638_b getSpeed 2
2439 func_75639_a limitAngle 2 Limits the given angle to a upper and lower limit.
2440 func_75640_a isUpdating 2
2441 func_75641_c onUpdateMoveHelper 2
2442 func_75642_a setMoveTo 2 Sets the speed and location to move to
2443 func_75649_a onUpdateLook 2 Updates look
3350 func_77643_m_ isMap 2 false for all Items except sub-classes of ItemMapBase
3351 func_77644_a hitEntity 2 Current implementations of this method in child classes do not use the entry argument beside ev. They just raise the damage on the stack.
3352 func_77645_m isDamageable 2
3353 func_77646_a itemInteractionForEntity 2 dye sheep, place saddles, etc ... Called when a player right clicks an entity with an item.
3354 func_77647_b getMetadata 2 Returns the metadata of the block which this Item (ItemBlock) can place
3355 func_77648_a onItemUse 2 Callback for item usage. If the item does something special on right clicking, he will have one of those. Return True if something happen and false if it don't. This is for ITEMS, not BLOCKS
3356 func_77649_a getDamageVsEntity 2 Returns the damage against a given entity.
3372 func_77666_t getPotionEffect 2 Returns a string representing what this item does to a potion.
3373 func_77667_c getItemNameIS 2
3374 func_77668_q getContainerItem 2
3375 func_77825_f getToolMaterialName 2 Return the name for this tool's material.
3376 func_77828_a validBookTagContents 2
3377 func_77829_a validBookTagPages 2
3378 func_77831_g isSplash 2 returns wether or not a potion is a throwable splash potion based on damage value
3574 func_78441_a updateEquippedItem 2
3575 func_78442_d renderFireInFirstPerson 2 Renders the fire on the screen for first person mode. Arg: partialTickTime
3576 func_78443_a renderItem 2 Renders the item stack for being in an entity's hand Args: itemStack
3577 func_78444_b resetEquippedProgress 2 Resets equippedProgress
3578 func_78445_c resetEquippedProgress2 2 Resets equippedProgress
3579 func_78446_a renderInsideOfBlock 2 Renders the texture of the block the player is inside as an overlay. Args: partialTickTime, blockTextureIndex
3580 func_78447_b renderOverlays 2 Renders all the overlays that are in first person mode. Args: partialTickTime
3581 func_78448_c renderWarpedTextureOverlay 2 Renders a texture that warps around based on the direction the player is looking. Texture needs to be bound before being called. Used for the water overlay. Args: parialTickTime
3777 func_79007_c getPlayerListComponent 2 Returns a new JScrollPane with a new PlayerListBox inside.
3778 func_79013_a update 2 Public static accessor to call updateStats.
3779 func_79014_a updateStats 2 Updates the stat values and calls paint to redraw the component.
3780 func_79015_a calcArrayAverage 2 Calculates the avarage value of the given long array.
3781 func_80003_ah getPlayerUsageSnooper 2
3782 func_80006_f getUniqueID 2
3783 func_80007_l getDimensionName 2 Returns the dimension's name, e.g. "The End", "Nether", or "Overworld".
3784 func_82011_an enableGui 2
3785 func_82114_b getPlayerCoordinates 2 Return the coordinates for this player as ChunkCoordinates. Return the position for this command sender.
3786 func_82116_a setSkullRotation 2 Set the skull's rotation
3787 func_82117_a getSkullType 2 Get the entity type for the skull
3788 func_82118_a setSkullType 2 Set the entity type for the skull
3822 func_82227_f setChild 2 Set whether this zombie is a child.
3823 func_82228_a startConversion 2 Starts converting this zombie into a villager. The zombie converts into a villager after the specified time in ticks.
3824 func_82229_g setVillager 2 Set whether this zombie is a villager.
3825 func_82230_o isConverting 2 Returns whether this zombie is in the process of converting to a villager
3826 func_82231_m isVillager 2 Return whether this zombie is a villager.
3827 func_82232_p convertToVillager 2 Convert this zombie into a villager.
3828 func_82233_q getConversionTimeBoost 2 Return the amount of time decremented from conversionTime every tick.
3870 func_82369_d getAllOnlineUsernames 2 Return all usernames currently connected to the server.
3871 func_82370_a getUsernameIndex 2 Return a command's first parameter index containing a valid username.
3872 func_82371_e getDistanceSquaredToChunkCoordinates 2 Return the squared distance between this coordinates and the ChunkCoordinates given as argument.
3873 func_82372_a getMovementDirection 2 Returns the movement direction from a velocity vector.
3874 func_82375_f getDefaultMinimumLevel 2 Gets the default minimum experience level (argument lm)
3875 func_82376_e getDefaultMaximumLevel 2 Gets the default maximum experience level (argument l)
3876 func_82377_a matchesMultiplePlayers 2 Returns whether the given pattern can match more than one player.
3928 func_82591_c getPoolSize 2
3929 func_82593_b getPlaceSound 2 Used when a player places a block.
3930 func_82595_a putObject 2 Register an object on this registry.
3931 func_82599_e getFrontOffsetZ 2 Returns a offset that addresses the block in front of this facing.
3932 func_82600_a getFront 2 Returns the facing that represents the block in front of it.
3933 func_82601_c getFrontOffsetX 2 Returns a offset that addresses the block in front of this facing.
3934 func_82615_a getX 2
3935 func_82616_c getZ 2
3936 func_82617_b getY 2
4077 func_85105_g onPostBlockPlaced 2 Called after a block is placed
4078 func_85106_a insertRecord 2 Insert the specified music disc in the jukebox at the given coordinates
4079 func_85107_d updateLadderBounds 2 Update the ladder block bounds based on the given metadata value.
4080 func_85118_a addToCrashReport 2 Adds this WorldInfo instance to the crash report.
4081 func_85128_b getMapFeaturesEnabled 2 Return the map feautures enabled of a world
4082 func_85132_a getTerrainTypeOfWorld 2 Return the terrain type of a world
4083 func_85151_d getLowerChestInventory 2 Return this chest container's lower chest inventory.
4084 func_85173_a playSoundToNearExcept 2 Plays sound to all near players except the player reference given
4085 func_85175_e blockGetRenderType 2 Returns the render type of the block at the given coordinate.
4086 func_85187_a drawString 2 Draws the specified string. Args: string, x, y, color, dropShadow
4087 func_90010_a isPartOfLargeChest 2 Return whether the given inventory is part of this large chest.
4088 func_90011_a createChild 2
4095 func_90042_d getRecord 2 Return the record item corresponding to the given name.
4096 func_90043_g getRecordTitle 2 Return the title for this record.
4097 func_90999_ad canRenderOnFire 2 Return whether this entity should be rendered as on fire.
4098 func_92013_a setEntityItem 2 Sets the ItemStack corresponding to this Entity (and updates the DataWatcher for it)
4099 func_92014_d getEntityItem 2 Returns the ItemStack corresponding to the Entity (Note: if no item exists, will log an error but still return an ItemStack containing Block.stone)
4100 func_92015_a getMobID 2
4101 func_92027_k sendChatMsg 2 Sends the given string to every player as chat message.
4102 func_92059_d getEntityItem 2 Returns the ItemStack corresponding to the Entity (Note: if no item exists, will log an error but still return an ItemStack containing Block.stone)
4103 func_92062_k sendChatMsg 2 Sends the given string to every player as chat message.
4104 func_92103_a addRecipe 2
+54 -13
View File
@@ -1,17 +1,45 @@
class,package
EntityFireworkOverlayFX,net/minecraft/client/particle
EntityFireworkSparkFX,net/minecraft/client/particle
EntityFireworkStarterFX,net/minecraft/client/particle
ScheduledSound,net/minecraft/client/audio
BehaviorDispenseFirework,net/minecraft/dispenser
EnchantmentThorns,net/minecraft/enchantment
EntityFireworkRocket,net/minecraft/entity/item
ItemBook,net/minecraft/item
ItemEnchantedBook,net/minecraft/item
ItemFirework,net/minecraft/item
ItemFireworkCharge,net/minecraft/item
RecipeFireworks,net/minecraft/item/crafting
TileEntityMobSpawnerSpawnData,net/minecraft/tileentity
IconRegister,net/minecraft/client/renderer/texture
Rect2i,net/minecraft/client/renderer/texture
RenderTntMinecart,net/minecraft/client/renderer/entity
ScreenHopper,net/minecraft/client/gui
StitchHolder,net/minecraft/client/renderer/texture
StitchSlot,net/minecraft/client/renderer/texture
Stitcher,net/minecraft/client/renderer/texture
Texture,net/minecraft/client/renderer/texture
TextureClock,net/minecraft/client/renderer/texture
TextureCompass,net/minecraft/client/renderer/texture
TextureManager,net/minecraft/client/renderer/texture
TextureMap,net/minecraft/client/renderer/texture
TextureStitched,net/minecraft/client/renderer/texture
BlockBasePressurePlate,net/minecraft/block
BlockBaseRail,net/minecraft/block
BlockBaseRailLogic,net/minecraft/block
BlockComparator,net/minecraft/block
BlockDaylightDetector,net/minecraft/block
BlockHopper,net/minecraft/block
BlockPoweredMetal,net/minecraft/block
BlockPoweredRail,net/minecraft/block
BlockQuartz,net/minecraft/block
BlockRepeater,net/minecraft/block
BlockStoneButton,net/minecraft/block
BlockWeightedPressurePlate,net/minecraft/block
BlockWoodButton,net/minecraft/block
CallableTileEntityData,net/minecraft/tileentity
CallableTileEntityID,net/minecraft/tileentity
CombatEntry,net/minecraft/util
CombatTracker,net/minecraft/util
ContainerWorldly,net/minecraft/inventory
EntitySelectorAlive,net/minecraft/command
EntitySelectorHopperInventory,net/minecraft/tileentity
Icon,net/minecraft/util
ItemChestMinecart,net/minecraft/entity
ItemFurnaceMinecart,net/minecraft/entity
ItemRideableMinecart,net/minecraft/entity
ItemTntMinecart,net/minecraft/entity
MenuHopper,net/minecraft/inventory
TileEntityDaylightDetector,net/minecraft/tileentity
TileEntityHopper,net/minecraft/tileentity
Block,net/minecraft/block
BlockAnvil,net/minecraft/block
BlockBeacon,net/minecraft/block
@@ -158,6 +186,7 @@ ThreadClientSleep,net/minecraft/client
ThreadShutdown,net/minecraft/client
CodecMus,net/minecraft/client/audio
MusInputStream,net/minecraft/client/audio
ScheduledSound,net/minecraft/client/audio
SoundManager,net/minecraft/client/audio
SoundPool,net/minecraft/client/audio
SoundPoolEntry,net/minecraft/client/audio
@@ -325,6 +354,9 @@ EntityDropParticleFX,net/minecraft/client/particle
EntityEnchantmentTableParticleFX,net/minecraft/client/particle
EntityExplodeFX,net/minecraft/client/particle
EntityFX,net/minecraft/client/particle
EntityFireworkOverlayFX,net/minecraft/client/particle
EntityFireworkSparkFX,net/minecraft/client/particle
EntityFireworkStarterFX,net/minecraft/client/particle
EntityFlameFX,net/minecraft/client/particle
EntityFootStepFX,net/minecraft/client/particle
EntityHeartFX,net/minecraft/client/particle
@@ -538,6 +570,7 @@ BehaviorBucketFullDispense,net/minecraft/dispenser
BehaviorDefaultDispenseItem,net/minecraft/dispenser
BehaviorDispenseBoat,net/minecraft/dispenser
BehaviorDispenseFireball,net/minecraft/dispenser
BehaviorDispenseFirework,net/minecraft/dispenser
BehaviorDispenseItemProvider,net/minecraft/dispenser
BehaviorDispenseMinecart,net/minecraft/dispenser
BehaviorEggDispense,net/minecraft/dispenser
@@ -574,6 +607,7 @@ EnchantmentModifierDamage,net/minecraft/enchantment
EnchantmentModifierLiving,net/minecraft/enchantment
EnchantmentOxygen,net/minecraft/enchantment
EnchantmentProtection,net/minecraft/enchantment
EnchantmentThorns,net/minecraft/enchantment
EnchantmentUntouching,net/minecraft/enchantment
EnchantmentWaterWorker,net/minecraft/enchantment
EnumEnchantmentType,net/minecraft/enchantment
@@ -669,6 +703,7 @@ EntityEnderEye,net/minecraft/entity/item
EntityEnderPearl,net/minecraft/entity/item
EntityExpBottle,net/minecraft/entity/item
EntityFallingSand,net/minecraft/entity/item
EntityFireworkRocket,net/minecraft/entity/item
EntityItem,net/minecraft/entity/item
EntityItemFrame,net/minecraft/entity/item
EntityMinecart,net/minecraft/entity/item
@@ -771,6 +806,7 @@ ItemAxe,net/minecraft/item
ItemBed,net/minecraft/item
ItemBlock,net/minecraft/item
ItemBoat,net/minecraft/item
ItemBook,net/minecraft/item
ItemBow,net/minecraft/item
ItemBucket,net/minecraft/item
ItemBucketMilk,net/minecraft/item
@@ -783,10 +819,13 @@ ItemDye,net/minecraft/item
ItemEditableBook,net/minecraft/item
ItemEgg,net/minecraft/item
ItemEmptyMap,net/minecraft/item
ItemEnchantedBook,net/minecraft/item
ItemEnderEye,net/minecraft/item
ItemEnderPearl,net/minecraft/item
ItemExpBottle,net/minecraft/item
ItemFireball,net/minecraft/item
ItemFirework,net/minecraft/item
ItemFireworkCharge,net/minecraft/item
ItemFishingRod,net/minecraft/item
ItemFlintAndSteel,net/minecraft/item
ItemFood,net/minecraft/item
@@ -825,6 +864,7 @@ ItemWritableBook,net/minecraft/item
CraftingManager,net/minecraft/item/crafting
FurnaceRecipes,net/minecraft/item/crafting
IRecipe,net/minecraft/item/crafting
RecipeFireworks,net/minecraft/item/crafting
RecipeSorter,net/minecraft/item/crafting
RecipesArmor,net/minecraft/item/crafting
RecipesArmorDyes,net/minecraft/item/crafting
@@ -1034,6 +1074,7 @@ TileEntityEndPortal,net/minecraft/tileentity
TileEntityEnderChest,net/minecraft/tileentity
TileEntityFurnace,net/minecraft/tileentity
TileEntityMobSpawner,net/minecraft/tileentity
TileEntityMobSpawnerSpawnData,net/minecraft/tileentity
TileEntityNote,net/minecraft/tileentity
TileEntityPiston,net/minecraft/tileentity
TileEntitySign,net/minecraft/tileentity
1 class package
2 EntityFireworkOverlayFX IconRegister net/minecraft/client/particle net/minecraft/client/renderer/texture
3 EntityFireworkSparkFX Rect2i net/minecraft/client/particle net/minecraft/client/renderer/texture
4 EntityFireworkStarterFX RenderTntMinecart net/minecraft/client/particle net/minecraft/client/renderer/entity
5 ScheduledSound ScreenHopper net/minecraft/client/audio net/minecraft/client/gui
6 BehaviorDispenseFirework StitchHolder net/minecraft/dispenser net/minecraft/client/renderer/texture
7 EnchantmentThorns StitchSlot net/minecraft/enchantment net/minecraft/client/renderer/texture
8 EntityFireworkRocket Stitcher net/minecraft/entity/item net/minecraft/client/renderer/texture
9 ItemBook Texture net/minecraft/item net/minecraft/client/renderer/texture
10 ItemEnchantedBook TextureClock net/minecraft/item net/minecraft/client/renderer/texture
11 ItemFirework TextureCompass net/minecraft/item net/minecraft/client/renderer/texture
12 ItemFireworkCharge TextureManager net/minecraft/item net/minecraft/client/renderer/texture
13 RecipeFireworks TextureMap net/minecraft/item/crafting net/minecraft/client/renderer/texture
14 TileEntityMobSpawnerSpawnData TextureStitched net/minecraft/tileentity net/minecraft/client/renderer/texture
15 BlockBasePressurePlate net/minecraft/block
16 BlockBaseRail net/minecraft/block
17 BlockBaseRailLogic net/minecraft/block
18 BlockComparator net/minecraft/block
19 BlockDaylightDetector net/minecraft/block
20 BlockHopper net/minecraft/block
21 BlockPoweredMetal net/minecraft/block
22 BlockPoweredRail net/minecraft/block
23 BlockQuartz net/minecraft/block
24 BlockRepeater net/minecraft/block
25 BlockStoneButton net/minecraft/block
26 BlockWeightedPressurePlate net/minecraft/block
27 BlockWoodButton net/minecraft/block
28 CallableTileEntityData net/minecraft/tileentity
29 CallableTileEntityID net/minecraft/tileentity
30 CombatEntry net/minecraft/util
31 CombatTracker net/minecraft/util
32 ContainerWorldly net/minecraft/inventory
33 EntitySelectorAlive net/minecraft/command
34 EntitySelectorHopperInventory net/minecraft/tileentity
35 Icon net/minecraft/util
36 ItemChestMinecart net/minecraft/entity
37 ItemFurnaceMinecart net/minecraft/entity
38 ItemRideableMinecart net/minecraft/entity
39 ItemTntMinecart net/minecraft/entity
40 MenuHopper net/minecraft/inventory
41 TileEntityDaylightDetector net/minecraft/tileentity
42 TileEntityHopper net/minecraft/tileentity
43 Block net/minecraft/block
44 BlockAnvil net/minecraft/block
45 BlockBeacon net/minecraft/block
186 ThreadShutdown net/minecraft/client
187 CodecMus net/minecraft/client/audio
188 MusInputStream net/minecraft/client/audio
189 ScheduledSound net/minecraft/client/audio
190 SoundManager net/minecraft/client/audio
191 SoundPool net/minecraft/client/audio
192 SoundPoolEntry net/minecraft/client/audio
354 EntityEnchantmentTableParticleFX net/minecraft/client/particle
355 EntityExplodeFX net/minecraft/client/particle
356 EntityFX net/minecraft/client/particle
357 EntityFireworkOverlayFX net/minecraft/client/particle
358 EntityFireworkSparkFX net/minecraft/client/particle
359 EntityFireworkStarterFX net/minecraft/client/particle
360 EntityFlameFX net/minecraft/client/particle
361 EntityFootStepFX net/minecraft/client/particle
362 EntityHeartFX net/minecraft/client/particle
570 BehaviorDefaultDispenseItem net/minecraft/dispenser
571 BehaviorDispenseBoat net/minecraft/dispenser
572 BehaviorDispenseFireball net/minecraft/dispenser
573 BehaviorDispenseFirework net/minecraft/dispenser
574 BehaviorDispenseItemProvider net/minecraft/dispenser
575 BehaviorDispenseMinecart net/minecraft/dispenser
576 BehaviorEggDispense net/minecraft/dispenser
607 EnchantmentModifierLiving net/minecraft/enchantment
608 EnchantmentOxygen net/minecraft/enchantment
609 EnchantmentProtection net/minecraft/enchantment
610 EnchantmentThorns net/minecraft/enchantment
611 EnchantmentUntouching net/minecraft/enchantment
612 EnchantmentWaterWorker net/minecraft/enchantment
613 EnumEnchantmentType net/minecraft/enchantment
703 EntityEnderPearl net/minecraft/entity/item
704 EntityExpBottle net/minecraft/entity/item
705 EntityFallingSand net/minecraft/entity/item
706 EntityFireworkRocket net/minecraft/entity/item
707 EntityItem net/minecraft/entity/item
708 EntityItemFrame net/minecraft/entity/item
709 EntityMinecart net/minecraft/entity/item
806 ItemBed net/minecraft/item
807 ItemBlock net/minecraft/item
808 ItemBoat net/minecraft/item
809 ItemBook net/minecraft/item
810 ItemBow net/minecraft/item
811 ItemBucket net/minecraft/item
812 ItemBucketMilk net/minecraft/item
819 ItemEditableBook net/minecraft/item
820 ItemEgg net/minecraft/item
821 ItemEmptyMap net/minecraft/item
822 ItemEnchantedBook net/minecraft/item
823 ItemEnderEye net/minecraft/item
824 ItemEnderPearl net/minecraft/item
825 ItemExpBottle net/minecraft/item
826 ItemFireball net/minecraft/item
827 ItemFirework net/minecraft/item
828 ItemFireworkCharge net/minecraft/item
829 ItemFishingRod net/minecraft/item
830 ItemFlintAndSteel net/minecraft/item
831 ItemFood net/minecraft/item
864 CraftingManager net/minecraft/item/crafting
865 FurnaceRecipes net/minecraft/item/crafting
866 IRecipe net/minecraft/item/crafting
867 RecipeFireworks net/minecraft/item/crafting
868 RecipeSorter net/minecraft/item/crafting
869 RecipesArmor net/minecraft/item/crafting
870 RecipesArmorDyes net/minecraft/item/crafting
1074 TileEntityEnderChest net/minecraft/tileentity
1075 TileEntityFurnace net/minecraft/tileentity
1076 TileEntityMobSpawner net/minecraft/tileentity
1077 TileEntityMobSpawnerSpawnData net/minecraft/tileentity
1078 TileEntityNote net/minecraft/tileentity
1079 TileEntityPiston net/minecraft/tileentity
1080 TileEntitySign net/minecraft/tileentity
+694 -383
View File
File diff suppressed because it is too large. Load diff
+24 -42
View File
@@ -1,7 +1,7 @@
diff -r -U 3 minecraft\net\minecraft\client\Minecraft.java minecraft_patched\net\minecraft\client\Minecraft.java
--- minecraft\net\minecraft\client\Minecraft.java Mon Dec 17 22:49:48 2012
+++ minecraft_patched\net\minecraft\client\Minecraft.java Mon Dec 17 22:51:37 2012
@@ -546,9 +546,8 @@
--- minecraft\net\minecraft\client\Minecraft.java Sat Jan 12 02:17:55 2013
+++ minecraft_patched\net\minecraft\client\Minecraft.java Sat Jan 12 02:24:09 2013
@@ -532,9 +532,8 @@
return;
}
@@ -12,7 +12,7 @@ diff -r -U 3 minecraft\net\minecraft\client\Minecraft.java minecraft_patched\net
if(this.field_71434_R && this.field_71433_S != null) {
this.func_71377_b(this.field_71433_S);
return;
@@ -566,7 +565,6 @@
@@ -552,7 +551,6 @@
this.func_71373_a(new GuiMemoryErrorScreen());
System.gc();
}
@@ -20,7 +20,7 @@ diff -r -U 3 minecraft\net\minecraft\client\Minecraft.java minecraft_patched\net
}
} catch (MinecraftError var12) {
;
@@ -584,8 +582,6 @@
@@ -570,8 +568,6 @@
this.func_71405_e();
}
@@ -30,8 +30,8 @@ diff -r -U 3 minecraft\net\minecraft\client\Minecraft.java minecraft_patched\net
private void func_71411_J() {
diff -r -U 3 minecraft\net\minecraft\src\CallableSuspiciousClasses.java minecraft_patched\net\minecraft\src\CallableSuspiciousClasses.java
--- minecraft\net\minecraft\src\CallableSuspiciousClasses.java Mon Dec 17 22:49:49 2012
+++ minecraft_patched\net\minecraft\src\CallableSuspiciousClasses.java Mon Dec 17 22:51:37 2012
--- minecraft\net\minecraft\src\CallableSuspiciousClasses.java Sat Jan 12 02:17:56 2013
+++ minecraft_patched\net\minecraft\src\CallableSuspiciousClasses.java Sat Jan 12 02:24:09 2013
@@ -21,9 +21,14 @@
public String func_85085_a() {
@@ -51,8 +51,8 @@ diff -r -U 3 minecraft\net\minecraft\src\CallableSuspiciousClasses.java minecraf
boolean var5 = !CrashReport.class.getCanonicalName().equals("net.minecraft.CrashReport");
HashMap var6 = new HashMap();
diff -r -U 3 minecraft\net\minecraft\src\CodecMus.java minecraft_patched\net\minecraft\src\CodecMus.java
--- minecraft\net\minecraft\src\CodecMus.java Mon Dec 17 22:49:49 2012
+++ minecraft_patched\net\minecraft\src\CodecMus.java Mon Dec 17 22:51:37 2012
--- minecraft\net\minecraft\src\CodecMus.java Sat Jan 12 02:17:56 2013
+++ minecraft_patched\net\minecraft\src\CodecMus.java Sat Jan 12 02:24:09 2013
@@ -1,5 +1,6 @@
package net.minecraft.src;
@@ -73,8 +73,8 @@ diff -r -U 3 minecraft\net\minecraft\src\CodecMus.java minecraft_patched\net\min
}
}
diff -r -U 3 minecraft\net\minecraft\src\ComponentStrongholdRightTurn.java minecraft_patched\net\minecraft\src\ComponentStrongholdRightTurn.java
--- minecraft\net\minecraft\src\ComponentStrongholdRightTurn.java Mon Dec 17 22:49:49 2012
+++ minecraft_patched\net\minecraft\src\ComponentStrongholdRightTurn.java Mon Dec 17 22:51:37 2012
--- minecraft\net\minecraft\src\ComponentStrongholdRightTurn.java Sat Jan 12 02:17:57 2013
+++ minecraft_patched\net\minecraft\src\ComponentStrongholdRightTurn.java Sat Jan 12 02:24:09 2013
@@ -11,6 +11,10 @@
public class ComponentStrongholdRightTurn extends ComponentStrongholdLeftTurn {
@@ -87,8 +87,8 @@ diff -r -U 3 minecraft\net\minecraft\src\ComponentStrongholdRightTurn.java minec
if(this.field_74885_f != 2 && this.field_74885_f != 3) {
this.func_74989_b((ComponentStrongholdStairs2)p_74861_1_, p_74861_2_, p_74861_3_, 1, 1);
diff -r -U 3 minecraft\net\minecraft\src\DedicatedServer.java minecraft_patched\net\minecraft\src\DedicatedServer.java
--- minecraft\net\minecraft\src\DedicatedServer.java Mon Dec 17 22:49:49 2012
+++ minecraft_patched\net\minecraft\src\DedicatedServer.java Mon Dec 17 22:51:37 2012
--- minecraft\net\minecraft\src\DedicatedServer.java Sat Jan 12 02:17:57 2013
+++ minecraft_patched\net\minecraft\src\DedicatedServer.java Sat Jan 12 02:24:09 2013
@@ -202,7 +202,7 @@
System.exit(0);
}
@@ -98,27 +98,9 @@ diff -r -U 3 minecraft\net\minecraft\src\DedicatedServer.java minecraft_patched\
super.func_71190_q();
this.func_71333_ah();
}
diff -r -U 3 minecraft\net\minecraft\src\EntityMooshroom.java minecraft_patched\net\minecraft\src\EntityMooshroom.java
--- minecraft\net\minecraft\src\EntityMooshroom.java Mon Dec 17 22:49:50 2012
+++ minecraft_patched\net\minecraft\src\EntityMooshroom.java Mon Dec 17 22:51:37 2012
@@ -56,10 +56,10 @@
return new EntityMooshroom(this.field_70170_p);
}
- // $FF: synthetic method
- public EntityCow func_70879_a(EntityAgeable p_70879_1_) {
- return this.func_70879_a(p_70879_1_);
- }
+// // $FF: synthetic method
+// public EntityCow func_70879_a(EntityAgeable p_70879_1_) {
+// return this.func_70879_a(p_70879_1_);
+// }
// $FF: synthetic method
public EntityAgeable func_90011_a(EntityAgeable p_90011_1_) {
diff -r -U 3 minecraft\net\minecraft\src\FontRenderer.java minecraft_patched\net\minecraft\src\FontRenderer.java
--- minecraft\net\minecraft\src\FontRenderer.java Mon Dec 17 22:49:50 2012
+++ minecraft_patched\net\minecraft\src\FontRenderer.java Mon Dec 17 22:51:37 2012
--- minecraft\net\minecraft\src\FontRenderer.java Sat Jan 12 02:17:58 2013
+++ minecraft_patched\net\minecraft\src\FontRenderer.java Sat Jan 12 02:24:09 2013
@@ -611,8 +611,6 @@
case 10:
--var5;
@@ -138,8 +120,8 @@ diff -r -U 3 minecraft\net\minecraft\src\FontRenderer.java minecraft_patched\net
var4 += this.func_78263_a(var8);
if(var7) {
diff -r -U 3 minecraft\net\minecraft\src\IntegratedServer.java minecraft_patched\net\minecraft\src\IntegratedServer.java
--- minecraft\net\minecraft\src\IntegratedServer.java Mon Dec 17 22:49:50 2012
+++ minecraft_patched\net\minecraft\src\IntegratedServer.java Mon Dec 17 22:51:37 2012
--- minecraft\net\minecraft\src\IntegratedServer.java Sat Jan 12 02:17:58 2013
+++ minecraft_patched\net\minecraft\src\IntegratedServer.java Sat Jan 12 02:24:09 2013
@@ -98,7 +98,7 @@
return true;
}
@@ -150,9 +132,9 @@ diff -r -U 3 minecraft\net\minecraft\src\IntegratedServer.java minecraft_patched
this.field_71348_o = this.field_71347_n.func_71752_f();
if(!var1 && this.field_71348_o) {
diff -r -U 3 minecraft\net\minecraft\src\RenderGlobal.java minecraft_patched\net\minecraft\src\RenderGlobal.java
--- minecraft\net\minecraft\src\RenderGlobal.java Mon Dec 17 22:49:52 2012
+++ minecraft_patched\net\minecraft\src\RenderGlobal.java Mon Dec 17 22:51:37 2012
@@ -1447,7 +1447,7 @@
--- minecraft\net\minecraft\src\RenderGlobal.java Sat Jan 12 02:17:59 2013
+++ minecraft_patched\net\minecraft\src\RenderGlobal.java Sat Jan 12 02:24:09 2013
@@ -1450,7 +1450,7 @@
double var15 = this.field_72777_q.field_71451_h.field_70165_t - p_72726_2_;
double var17 = this.field_72777_q.field_71451_h.field_70163_u - p_72726_4_;
double var19 = this.field_72777_q.field_71451_h.field_70161_v - p_72726_6_;
@@ -162,8 +144,8 @@ diff -r -U 3 minecraft\net\minecraft\src\RenderGlobal.java minecraft_patched\net
this.field_72777_q.field_71452_i.func_78873_a(var21 = new EntityHugeExplodeFX(this.field_72769_h, p_72726_2_, p_72726_4_, p_72726_6_, p_72726_8_, p_72726_10_, p_72726_12_));
} else if(p_72726_1_.equals("largeexplode")) {
diff -r -U 3 minecraft\net\minecraft\src\TcpMasterThread.java minecraft_patched\net\minecraft\src\TcpMasterThread.java
--- minecraft\net\minecraft\src\TcpMasterThread.java Mon Dec 17 22:49:52 2012
+++ minecraft_patched\net\minecraft\src\TcpMasterThread.java Mon Dec 17 22:51:37 2012
--- minecraft\net\minecraft\src\TcpMasterThread.java Sat Jan 12 02:18:00 2013
+++ minecraft_patched\net\minecraft\src\TcpMasterThread.java Sat Jan 12 02:24:09 2013
@@ -11,6 +11,7 @@
this.field_74504_a = p_i3285_1_;
}
@@ -173,8 +155,8 @@ diff -r -U 3 minecraft\net\minecraft\src\TcpMasterThread.java minecraft_patched\
try {
Thread.sleep(5000L);
diff -r -U 3 minecraft\net\minecraft\src\ThreadedFileIOBase.java minecraft_patched\net\minecraft\src\ThreadedFileIOBase.java
--- minecraft\net\minecraft\src\ThreadedFileIOBase.java Mon Dec 17 22:49:52 2012
+++ minecraft_patched\net\minecraft\src\ThreadedFileIOBase.java Mon Dec 17 22:51:37 2012
--- minecraft\net\minecraft\src\ThreadedFileIOBase.java Sat Jan 12 02:18:00 2013
+++ minecraft_patched\net\minecraft\src\ThreadedFileIOBase.java Sat Jan 12 02:24:09 2013
@@ -20,7 +20,8 @@
}
+10 -28
View File
@@ -1,6 +1,6 @@
diff -r -U 3 minecraft_server\net\minecraft\src\CallableSuspiciousClasses.java minecraft_server_patched\net\minecraft\src\CallableSuspiciousClasses.java
--- minecraft_server\net\minecraft\src\CallableSuspiciousClasses.java Mon Dec 17 22:50:59 2012
+++ minecraft_server_patched\net\minecraft\src\CallableSuspiciousClasses.java Mon Dec 17 22:52:18 2012
--- minecraft_server\net\minecraft\src\CallableSuspiciousClasses.java Sat Jan 12 02:19:06 2013
+++ minecraft_server_patched\net\minecraft\src\CallableSuspiciousClasses.java Sat Jan 12 02:24:29 2013
@@ -21,9 +21,14 @@
public String func_85085_a() {
@@ -20,8 +20,8 @@ diff -r -U 3 minecraft_server\net\minecraft\src\CallableSuspiciousClasses.java m
boolean var5 = !CrashReport.class.getCanonicalName().equals("net.minecraft.CrashReport");
HashMap var6 = new HashMap();
diff -r -U 3 minecraft_server\net\minecraft\src\ComponentStrongholdRightTurn.java minecraft_server_patched\net\minecraft\src\ComponentStrongholdRightTurn.java
--- minecraft_server\net\minecraft\src\ComponentStrongholdRightTurn.java Mon Dec 17 22:50:59 2012
+++ minecraft_server_patched\net\minecraft\src\ComponentStrongholdRightTurn.java Mon Dec 17 22:52:18 2012
--- minecraft_server\net\minecraft\src\ComponentStrongholdRightTurn.java Sat Jan 12 02:19:06 2013
+++ minecraft_server_patched\net\minecraft\src\ComponentStrongholdRightTurn.java Sat Jan 12 02:24:29 2013
@@ -11,6 +11,10 @@
public class ComponentStrongholdRightTurn extends ComponentStrongholdLeftTurn {
@@ -34,8 +34,8 @@ diff -r -U 3 minecraft_server\net\minecraft\src\ComponentStrongholdRightTurn.jav
if(this.field_74885_f != 2 && this.field_74885_f != 3) {
this.func_74989_b((ComponentStrongholdStairs2)p_74861_1_, p_74861_2_, p_74861_3_, 1, 1);
diff -r -U 3 minecraft_server\net\minecraft\src\DedicatedServer.java minecraft_server_patched\net\minecraft\src\DedicatedServer.java
--- minecraft_server\net\minecraft\src\DedicatedServer.java Mon Dec 17 22:50:59 2012
+++ minecraft_server_patched\net\minecraft\src\DedicatedServer.java Mon Dec 17 22:52:18 2012
--- minecraft_server\net\minecraft\src\DedicatedServer.java Sat Jan 12 02:19:06 2013
+++ minecraft_server_patched\net\minecraft\src\DedicatedServer.java Sat Jan 12 02:24:29 2013
@@ -203,7 +203,7 @@
System.exit(0);
}
@@ -45,27 +45,9 @@ diff -r -U 3 minecraft_server\net\minecraft\src\DedicatedServer.java minecraft_s
super.func_71190_q();
this.func_71333_ah();
}
diff -r -U 3 minecraft_server\net\minecraft\src\EntityMooshroom.java minecraft_server_patched\net\minecraft\src\EntityMooshroom.java
--- minecraft_server\net\minecraft\src\EntityMooshroom.java Mon Dec 17 22:51:00 2012
+++ minecraft_server_patched\net\minecraft\src\EntityMooshroom.java Mon Dec 17 22:52:18 2012
@@ -56,10 +56,10 @@
return new EntityMooshroom(this.field_70170_p);
}
- // $FF: synthetic method
- public EntityCow func_70879_a(EntityAgeable p_70879_1_) {
- return this.func_70879_a(p_70879_1_);
- }
+// // $FF: synthetic method
+// public EntityCow func_70879_a(EntityAgeable p_70879_1_) {
+// return this.func_70879_a(p_70879_1_);
+// }
// $FF: synthetic method
public EntityAgeable func_90011_a(EntityAgeable p_90011_1_) {
diff -r -U 3 minecraft_server\net\minecraft\src\TcpMasterThread.java minecraft_server_patched\net\minecraft\src\TcpMasterThread.java
--- minecraft_server\net\minecraft\src\TcpMasterThread.java Mon Dec 17 22:51:01 2012
+++ minecraft_server_patched\net\minecraft\src\TcpMasterThread.java Mon Dec 17 22:52:18 2012
--- minecraft_server\net\minecraft\src\TcpMasterThread.java Sat Jan 12 02:19:08 2013
+++ minecraft_server_patched\net\minecraft\src\TcpMasterThread.java Sat Jan 12 02:24:29 2013
@@ -11,6 +11,7 @@
this.field_74504_a = p_i3285_1_;
}
@@ -75,8 +57,8 @@ diff -r -U 3 minecraft_server\net\minecraft\src\TcpMasterThread.java minecraft_s
try {
Thread.sleep(5000L);
diff -r -U 3 minecraft_server\net\minecraft\src\ThreadedFileIOBase.java minecraft_server_patched\net\minecraft\src\ThreadedFileIOBase.java
--- minecraft_server\net\minecraft\src\ThreadedFileIOBase.java Mon Dec 17 22:51:01 2012
+++ minecraft_server_patched\net\minecraft\src\ThreadedFileIOBase.java Mon Dec 17 22:52:18 2012
--- minecraft_server\net\minecraft\src\ThreadedFileIOBase.java Sat Jan 12 02:19:08 2013
+++ minecraft_server_patched\net\minecraft\src\ThreadedFileIOBase.java Sat Jan 12 02:24:29 2013
@@ -20,7 +20,8 @@
}
+3 -3
View File
@@ -1,4 +1,4 @@
[VERSION]
MCPVersion = 7.26
ClientVersion = 1.4.7
ServerVersion = 1.4.7
MCPVersion = 7.30
ClientVersion = 13w02b
ServerVersion = 13w02b
+6 -2
View File
@@ -190,6 +190,7 @@ def reset_logger():
count = 0
def cleanup_source(path):
from rename_vars import rename_class
path = os.path.normpath(path)
regex_cases_before = re.compile(r'((case|default).+\r?\n)\r?\n', re.MULTILINE) #Fixes newline after case before case body
regex_cases_after = re.compile(r'\r?\n(\r?\n[ \t]+(case|default))', re.MULTILINE) #Fixes newline after case body before new case
@@ -205,10 +206,13 @@ def cleanup_source(path):
global count
count += 1
return match.group(1)
buf = regex_cases_before.sub(fix_cases, buf)
buf = regex_cases_after.sub(fix_cases, buf)
if count > 0:
old = buf.replace('\r', '')
buf = rename_class(old, MCP=True)
if count > 0 or buf != old:
with open(tmp_file, 'w') as fh:
fh.write(buf)
shutil.move(tmp_file, src_file)
+167
View File
@@ -0,0 +1,167 @@
import os, os.path, sys, csv, re, fnmatch, shutil, zipfile, pprint
from optparse import OptionParser
from pprint import pprint
#This script attempts to rename local variables in a Fernflower decompiled Java source file to jad style names.
#Script originally written by Grum in perl, Converted to Python by monoxide, and bug fixes/cleanup by LexManos
class VarNamer:
# Seems this is needed to keep these variables confined to the instance
def __init__(self):
self.last = {
'byte': [0, 0, ['b']],
'char': [0, 0, ['c']],
'short': [1, 0, ['short']],
'int': [0, 1, ['i', 'j', 'k', 'l']],
'boolean': [0, 1, ['flag']],
'double': [0, 0, ['d']],
'float': [0, 1, ['f']],
'File': [1, 1, ['file']],
'String': [0, 1, ['s']],
'Class': [0, 1, ['oclass']],
'Long': [0, 1, ['olong']],
'Byte': [0, 1, ['obyte']],
'Short': [0, 1, ['oshort']],
'Boolean': [0, 1, ['obool']],
'Package': [0, 1, ['opackage']]
}
self.remap = {
'long': 'int',
}
def get_name(self, type, var):
index = type if self.last.has_key(type) else (self.remap[type] if self.remap.has_key(type) else None)
if (not index) and (re.search('^[A-Z]', type) or re.search(r'(\[|\.\.\.)', type)):
type = type.replace('...', '[]')
while type.find('[][]') != -1:
type = type.replace('[][]', '[]')
name = type.lower()
skip = 1
if re.search(r'\[', type):
skip = 1
name = "a" + name
name = name.replace('[', '').replace(']', '').replace('...', '')
self.last[type] = [0, skip, [name]]
index = type
if not index:
print "No data for type: %s '%s'\n" % (type, var)
return type
id = self.last[index][0]
skip_zero = self.last[index][1]
data = self.last[index][2]
self.last[index][0] += 1
amount = len(data)
if amount == 1:
return data[0] + ('' if ((not id) and skip_zero) else ('%d' % id))
else:
num = id / amount
return data[id % amount] + ('' if ((not num) and skip_zero) else ('%d' % num))
def rename_file(file, indent='3', MCP=False):
tmp = file + '.tmp'
with open(file, 'rb') as in_file:
data = rename_class(in_file.read().replace('\r', ''), indent, MCP)
with open(tmp, 'wb') as out_file:
out_file.write(data)
shutil.move(tmp, file)
def rename_class(data, indent='3', MCP=False):
METHOD_REG = r'^ {%s}(\w+\s+\S.*\.*(|static )(?:\{|\);|})$' % indent
CATCH_REG = r'catch \((.*)\) {'
if MCP:
if indent == '3':
indent = '4'
METHOD_REG = r'^ {%s}(\w+\s+\S.*\(.*|static)$' % indent
CATCH_REG = r'catch \((.*)\)$'
lines = data.split('\n')
output = ''
inside_method = False
method = ''
method_variables = []
skip = False
for line in lines:
line += '\n'
if re.search(METHOD_REG, line) and not re.search('=', line) and not re.search(r'\(.*\(', line):
if re.search(r'\(.+\)', line):
method_variables += [s.strip() for s in re.search(r'\((.+)\)', line).group(1).split(',')]
method += line
# Could be a single-line method
skip = True
if not re.search(r'(}|\);|throws .+?;)$', line):
inside_method = True
elif re.search(r'^ {%s}}$' % indent, line):
inside_method = False
if inside_method:
if skip:
skip = False
continue
method += line
m = re.search(CATCH_REG, line)
if m:
method_variables += [m.group(1)]
else:
method_variables += map(lambda x: x.group(0), filter(
lambda x: not re.match(r'^(return)', x.group(0)) and not re.match(r'^(throw)', x.group(0)),
re.finditer(r'([a-z_$][a-z0-9_\[\]]+ var\d+)', line, re.I)))
else:
if method:
namer = VarNamer()
todo = map(lambda x: [x, namer.get_name(x.split(' ')[0], x)], method_variables)
todo.reverse()
for mapping in todo:
if not ' ' in mapping[0]:
continue
original = mapping[0].split(' ')[1]
to = mapping[1]
#Don't rename already renamed things.
if not re.match('var\d+', original):
continue
method = method.replace(original, to)
output += method
method = ''
method_variables = []
if skip:
skip = False
continue
output += line
return output[:-1]
def main(options, args):
for arg in args:
for path, _, filelist in os.walk(arg, followlinks=True):
for cur_file in fnmatch.filter(filelist, '*.java'):
file = os.path.normpath(os.path.join(path, cur_file))
rename_file(file, options.indent, options.mcp)
if __name__ == '__main__':
parser = OptionParser()
parser.add_option('-m', '--mcp', action='store_true', dest='mcp', help='Use MCP regexs', default=False)
parser.add_option('-i', '--indent', action='store', dest='indent', help='Custom indent to use', default='3')
options, args = parser.parse_args()
main(options, args)
+90
View File
@@ -0,0 +1,90 @@
import os, os.path, sys, csv, re, fnmatch, shutil, zipfile, pprint
from optparse import OptionParser
from zipfile import ZipFile
from subprocess import Popen, PIPE, STDOUT
if __name__ == '__main__':
parser = OptionParser()
parser.add_option('-j', '--jar', action='store', dest='jar', help='Jar to sign', default=None)
parser.add_option('-c', '--command', action='store', dest='command', help='Path to jar signer command, will be invoked on temp jar to sign', default=None)
parser.add_option('-a', '--alias', action='store', dest='alias', help='Optional: The keystore alias to use when siging the jar, it will be passed in as para 2 to the command', default='')
#This is kept as a seperate file so that if you integrate this into a build system, you are not publically displaying any private passwords
#Typically the format of this file will be:
#
#jarsigner -keystore my_key_store -storepass key_store_pass -keypass key_pass %1 alias
#The rest of the parameters are used as regxs to determine what parts of the file will be signed, a file will be signed if it matches ANY of the regexs
options, args = parser.parse_args()
if options.jar is None:
print 'You must supply the jar to sign using --jar <jar>'
sys.exit(1)
if options.command is None:
print 'You must supply a command to be called using --command <command>, See the comments in the python for details on this'
sys.exit(1)
if not os.path.isfile(options.jar):
print 'The specified jar "%s" could not be found' % options.jar
sys.exit(1)
regs = []
for reg in args:
regs.append(re.compile(reg))
shutil.copy(options.jar, options.jar + '.bak')
tmp_1 = options.jar + '.tmp1'
tmp_2 = options.jar + '.tmp2'
zip_in = ZipFile(options.jar, mode='r')
zip_tmp_1 = ZipFile(tmp_1, mode='w')
zip_tmp_2 = ZipFile(tmp_2, mode='w')
for i in zip_in.filelist:
matched = False
for reg in regs:
if not reg.match(i.filename) is None:
matched = True
break
data = zip_in.read(i.filename)
if matched:
print 'Matched: ' + i.filename
zip_tmp_1.writestr(i, data)
else:
if i.filename.startswith('META-INF'):
print 'Detected skipped META-INF File, it will not be copied to new jar, if you wish to keep this data, include it in the signed info: %s' % i.filename
else:
print 'Skipped: ' + i.filename
zip_tmp_2.writestr(i, data)
zip_in.close()
zip_tmp_1.close()
zip_tmp_2.close()
try:
process = Popen([options.command, os.path.abspath(tmp_1), options.alias], stdout=PIPE, stderr=STDOUT, bufsize=-1)
out, _ = process.communicate()
print out
except OSError as e:
print "Error creating signed tmp jar: %s" % e.strerror
sys.exit(1)
os.remove(options.jar)
zip_out = ZipFile(options.jar, mode='w')
for tmp in [tmp_1, tmp_2]:
zip_in = ZipFile(tmp, mode='r')
for i in zip_in.filelist:
zip_out.writestr(i, zip_in.read(i.filename))
zip_in.close()
zip_out.close()
os.remove(tmp_1)
os.remove(tmp_2)
print 'Signing jar complete'
+64
View File
@@ -0,0 +1,64 @@
import os, os.path, sys, csv, re, fnmatch, shutil
from optparse import OptionParser
replaced = 0
def main(mcp_dir, targets):
global replaced
packages_csv = os.path.join(mcp_dir, 'conf', 'packages.csv')
if not os.path.isfile(packages_csv):
print 'Could not find Packages.csv, please specify a location of a MCP directory setup with FML using --mcp-dir <path>'
sys.exit(1)
pkgs = {}
with open(packages_csv) as fh:
reader = csv.DictReader(fh)
for line in reader:
pkgs[line['class']] = line['package']
if len(targets) == 0:
print 'You must specify atleast one target directory to repackage'
sys.exit(1)
regnms = re.compile(r'net.minecraft.src.(\w+)')
total_r = 0
total_f = 0
for target in targets:
for path, _, filelist in os.walk(target, followlinks=True):
for cur_file in fnmatch.filter(filelist, '*.java'):
file_name = os.path.join(path, cur_file)
buf = ''
replaced = 0
with open(file_name, 'rb') as fh:
data = fh.read()
def mapname(match):
global replaced
cls = match.group(0)
tmp = cls[18:]
if tmp in pkgs.keys():
replaced += 1
return ('%s/%s' % (pkgs[tmp], tmp)).replace('/', '.')
return cls
data = regnms.sub(mapname, data)
if replaced > 0:
total_r += replaced
total_f += 1
print '%s: %d' % (os.path.relpath(file_name), replaced)
with open(file_name + '.tmp', 'wb') as fh:
fh.write(data)
shutil.move(file_name + '.tmp', file_name)
print 'Fixed %d references in %d files' % (total_r, total_f)
if __name__ == '__main__':
parser = OptionParser()
parser.add_option('-m', '--mcp-dir', action='store', dest='mcp_dir', help='MCP Directory', default='mcp')
options, args = parser.parse_args()
main(os.path.abspath(options.mcp_dir), args)
+10 -1
View File
@@ -1,5 +1,5 @@
[default]
current_ver = 1.4.7
current_ver = s13w02b
base_url = http://s3.amazonaws.com/MinecraftDownload/
libraries = lwjgl.jar lwjgl_util.jar jinput.jar
natives = windows_natives.jar macosx_natives.jar linux_natives.jar
@@ -40,3 +40,12 @@ mcp_ver = 7.26
mcp_url = http://mcp.ocean-labs.de/files/archive/mcp726.zip
mcp_md5 = 5320353829c2906bd032649085721d1d
[s13w02b]
client_url = http://assets.minecraft.net/13w02b/minecraft.jar
server_url = http://assets.minecraft.net/13w02b/minecraft_server.jar
client_md5 = 13891f6610b6739ac79f40147cca31d5
server_md5 = b2200cfa5d6535f177d291066d2ed3a8
mcp_ver = 7.30
mcp_url = http://files.minecraftforge.net/mcpmirror/mcp730.zip
mcp_md5 = d89c2cd4db5cfafe4049c082c1d3349c
+1 -1
View File
@@ -1 +1 @@
!ber #net/minecraft/src/CodecMus
!bfv #net/minecraft/src/CodecMus
@@ -12,7 +12,7 @@
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import java.awt.BorderLayout;
@@ -120,6 +126,8 @@
@@ -114,6 +120,8 @@
import org.lwjgl.opengl.PixelFormat;
import org.lwjgl.util.glu.GLU;
@@ -21,7 +21,7 @@
@SideOnly(Side.CLIENT)
public abstract class Minecraft implements Runnable, IPlayerUsage
{
@@ -302,6 +310,8 @@
@@ -296,6 +304,8 @@
this.field_71466_p = new FontRenderer(this.field_71474_y, "/font/default.png", this.field_71446_o, false);
this.field_71464_q = new FontRenderer(this.field_71474_y, "/font/alternate.png", this.field_71446_o, false);
@@ -29,8 +29,8 @@
+
if (this.field_71474_y.field_74363_ab != null)
{
StringTranslate.func_74808_a().func_74810_a(this.field_71474_y.field_74363_ab);
@@ -346,6 +356,8 @@
StringTranslate.func_74808_a().func_74810_a(this.field_71474_y.field_74363_ab, false);
@@ -332,6 +342,8 @@
GL11.glViewport(0, 0, this.field_71443_c, this.field_71440_d);
this.field_71452_i = new EffectRenderer(this.field_71441_e, this.field_71446_o);
@@ -39,7 +39,7 @@
try
{
this.field_71430_V = new ThreadDownloadResources(this.field_71412_D, this);
@@ -374,6 +386,8 @@
@@ -360,6 +372,8 @@
{
this.func_71352_k();
}
@@ -48,7 +48,7 @@
}
private void func_71357_I() throws LWJGLException
@@ -738,9 +752,11 @@
@@ -724,9 +738,11 @@
if (!this.field_71454_w)
{
@@ -60,7 +60,7 @@
}
GL11.glFlush();
@@ -1270,10 +1286,14 @@
@@ -1256,10 +1272,14 @@
public void func_71407_l()
{
@@ -75,7 +75,7 @@
this.field_71424_I.func_76320_a("stats");
this.field_71413_E.func_77449_e();
@@ -1730,6 +1750,8 @@
@@ -1717,6 +1737,8 @@
this.field_71453_ak.func_74428_b();
}
@@ -84,7 +84,7 @@
this.field_71424_I.func_76319_b();
this.field_71423_H = func_71386_F();
}
@@ -1768,8 +1790,27 @@
@@ -1755,8 +1777,27 @@
}
this.field_71413_E.func_77450_a(StatList.field_75936_f, 1);
@@ -112,7 +112,7 @@
this.field_71455_al = true;
this.field_71461_s.func_73720_a(StatCollector.func_74838_a("menu.loadingLevel"));
@@ -1984,6 +2025,12 @@
@@ -1978,6 +2019,12 @@
public static void main(String[] p_main_0_)
{
@@ -122,6 +122,6 @@
+ public static void fmlReentry(ArgsWrapper wrapper)
+ {
+ String[] p_main_0_ = wrapper.args;
HashMap var1 = new HashMap();
boolean var2 = false;
boolean var3 = true;
HashMap hashmap = new HashMap();
boolean flag = false;
boolean flag1 = true;
@@ -18,7 +18,7 @@
+ public void fmlInitReentry()
{
this.field_71483_a = new CanvasMinecraftApplet(this);
boolean var1 = "true".equalsIgnoreCase(this.getParameter("fullscreen"));
boolean flag = "true".equalsIgnoreCase(this.getParameter("fullscreen"));
@@ -62,6 +68,11 @@
public void start()
@@ -6,6 +6,6 @@
+ WorldType.field_77139_a[this.field_73916_E].onGUICreateWorldPress();
+
EnumGameType var8 = EnumGameType.func_77142_a(this.field_73927_m);
WorldSettings var6 = new WorldSettings(var2, var8, this.field_73925_n, this.field_73933_r, WorldType.field_77139_a[this.field_73916_E]);
var6.func_82750_a(this.field_82290_a);
EnumGameType enumgametype = EnumGameType.func_77142_a(this.field_73927_m);
WorldSettings worldsettings = new WorldSettings(i, enumgametype, this.field_73925_n, this.field_73933_r, WorldType.field_77139_a[this.field_73916_E]);
worldsettings.func_82750_a(this.field_82290_a);
@@ -27,12 +27,12 @@
@SideOnly(Side.CLIENT)
public class GuiMainMenu extends GuiScreen
@@ -140,7 +146,8 @@
this.func_73969_a(var4, 24, var2);
this.func_73969_a(i, 24, stringtranslate);
}
- this.field_73887_h.add(new GuiButton(3, this.field_73880_f / 2 - 100, var4 + 48, var2.func_74805_b("menu.mods")));
+ this.field_73887_h.add(new GuiButton(3, this.field_73880_f / 2 - 100, var4 + 48, 98, 20, var2.func_74805_b("menu.mods")));
+ this.field_73887_h.add(new GuiButton(6, this.field_73880_f / 2 + 2, var4 + 48, 98, 20, "Mods"));
- this.field_73887_h.add(new GuiButton(3, this.field_73880_f / 2 - 100, i + 48, stringtranslate.func_74805_b("menu.mods")));
+ this.field_73887_h.add(new GuiButton(3, this.field_73880_f / 2 - 100, i + 48, 98, 20, stringtranslate.func_74805_b("menu.mods")));
+ this.field_73887_h.add(new GuiButton(6, this.field_73880_f / 2 + 2, i + 48, 98, 20, "Mods"));
if (this.field_73882_e.field_71448_m)
{
@@ -49,10 +49,10 @@
if (p_73875_1_.field_73741_f == 11)
@@ -460,7 +472,16 @@
var9 = var9 + " Demo";
s = s + " Demo";
}
- this.func_73731_b(this.field_73886_k, var9, 2, this.field_73881_g - 10, 16777215);
- this.func_73731_b(this.field_73886_k, s, 2, this.field_73881_g - 10, 16777215);
+ List<String> brandings = Lists.reverse(FMLCommonHandler.instance().getBrandings());
+ for (int i = 0; i < brandings.size(); i++)
+ {
@@ -63,6 +63,6 @@
+ }
+ }
+
String var10 = "Copyright Mojang AB. Do not distribute!";
this.func_73731_b(this.field_73886_k, var10, this.field_73880_f - this.field_73886_k.func_78256_a(var10) - 2, this.field_73881_g - 10, 16777215);
String s1 = "Copyright Mojang AB. Do not distribute!";
this.func_73731_b(this.field_73886_k, s1, this.field_73880_f - this.field_73886_k.func_78256_a(s1) - 2, this.field_73881_g - 10, 16777215);
@@ -7,7 +7,7 @@
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import java.io.BufferedReader;
@@ -174,11 +175,14 @@
@@ -175,11 +176,14 @@
public int field_72556_d = 20;
Random field_72557_e = new Random();
@@ -16,13 +16,13 @@
public NetClientHandler(Minecraft p_i3103_1_, String p_i3103_2_, int p_i3103_3_) throws IOException
{
this.field_72563_h = p_i3103_1_;
Socket var4 = new Socket(InetAddress.getByName(p_i3103_2_), p_i3103_3_);
this.field_72555_g = new TcpConnection(var4, "Client", this);
Socket socket = new Socket(InetAddress.getByName(p_i3103_2_), p_i3103_3_);
this.field_72555_g = new TcpConnection(socket, "Client", this);
+ FMLNetworkHandler.onClientConnectionToRemoteServer(this, p_i3103_2_, p_i3103_3_, this.field_72555_g);
}
public NetClientHandler(Minecraft p_i3104_1_, IntegratedServer p_i3104_2_) throws IOException
@@ -186,6 +190,7 @@
@@ -187,6 +191,7 @@
this.field_72563_h = p_i3104_1_;
this.field_72555_g = new MemoryConnection(this);
p_i3104_2_.func_71343_a().func_71754_a((MemoryConnection)this.field_72555_g, p_i3104_1_.field_71449_j.field_74286_b);
@@ -30,7 +30,7 @@
}
public void func_72547_c()
@@ -256,6 +261,7 @@
@@ -257,6 +262,7 @@
public void func_72513_a(Packet252SharedKey p_72513_1_)
{
@@ -38,7 +38,7 @@
this.func_72552_c(new Packet205ClientCommand(0));
}
@@ -271,6 +277,7 @@
@@ -272,6 +278,7 @@
this.field_72563_h.field_71439_g.field_70157_k = p_72455_1_.field_73561_a;
this.field_72556_d = p_72455_1_.field_73562_h;
this.field_72563_h.field_71442_b.func_78746_a(p_72455_1_.field_73557_d);
@@ -46,7 +46,7 @@
this.field_72563_h.field_71474_y.func_82879_c();
}
@@ -711,6 +718,7 @@
@@ -704,6 +711,7 @@
{
this.field_72555_g.func_74429_a(p_72546_1_);
this.field_72555_g.func_74423_d();
@@ -54,7 +54,7 @@
}
}
@@ -750,6 +758,7 @@
@@ -743,6 +751,7 @@
public void func_72481_a(Packet3Chat p_72481_1_)
{
@@ -62,7 +62,7 @@
this.field_72563_h.field_71456_v.func_73827_b().func_73765_a(p_72481_1_.field_73476_b);
}
@@ -1243,6 +1252,11 @@
@@ -1268,6 +1277,11 @@
public void func_72494_a(Packet131MapData p_72494_1_)
{
@@ -74,7 +74,7 @@
if (p_72494_1_.field_73438_a == Item.field_77744_bd.field_77779_bT)
{
ItemMap.func_77874_a(p_72494_1_.field_73436_b, this.field_72563_h.field_71441_e).func_76192_a(p_72494_1_.field_73437_c);
@@ -1352,6 +1366,11 @@
@@ -1377,6 +1391,11 @@
public void func_72501_a(Packet250CustomPayload p_72501_1_)
{
@@ -85,8 +85,8 @@
+ {
if ("MC|TPack".equals(p_72501_1_.field_73630_a))
{
String[] var2 = (new String(p_72501_1_.field_73629_c)).split("\u0000");
@@ -1396,4 +1415,20 @@
String[] astring = (new String(p_72501_1_.field_73629_c)).split("\u0000");
@@ -1421,4 +1440,20 @@
{
return this.field_72555_g;
}
@@ -7,88 +7,3 @@
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import net.minecraft.block.Block;
@@ -40,7 +41,12 @@
public void func_78443_a(EntityLiving p_78443_1_, ItemStack p_78443_2_, int p_78443_3_)
{
GL11.glPushMatrix();
- Block var4 = Block.field_71973_m[p_78443_2_.field_77993_c];
+
+ Block var4 = null;
+ if (p_78443_2_.field_77993_c < Block.field_71973_m.length)
+ {
+ var4 = Block.field_71973_m[p_78443_2_.field_77993_c];
+ }
if (var4 != null && RenderBlocks.func_78597_b(var4.func_71857_b()))
{
@@ -136,10 +142,17 @@
float var9;
float var10;
- for (var7 = 0; var7 < 16; ++var7)
- {
- var8 = (float)var7 / 16.0F;
- var9 = p_78439_1_ + (p_78439_3_ - p_78439_1_) * var8 - 0.001953125F;
+ /* Gets the width/16 of the currently bound texture, used
+ * to fix the side rendering issues on textures != 16 */
+ int tileSize = TextureFXManager.instance().getTextureDimensions(GL11.glGetInteger(GL11.GL_TEXTURE_BINDING_2D)).width / 16;
+
+ float tx = 1.0f / (32 * tileSize);
+ float tz = 1.0f / tileSize;
+
+ for (var7 = 0; var7 < tileSize; ++var7)
+ {
+ var8 = (float)var7 / tileSize;
+ var9 = p_78439_1_ + (p_78439_3_ - p_78439_1_) * var8 - tx;
var10 = var6 * var8;
p_78439_0_.func_78374_a((double)var10, 0.0D, (double)(0.0F - p_78439_5_), (double)var9, (double)p_78439_4_);
p_78439_0_.func_78374_a((double)var10, 0.0D, 0.0D, (double)var9, (double)p_78439_4_);
@@ -151,11 +164,11 @@
p_78439_0_.func_78382_b();
p_78439_0_.func_78375_b(1.0F, 0.0F, 0.0F);
- for (var7 = 0; var7 < 16; ++var7)
- {
- var8 = (float)var7 / 16.0F;
- var9 = p_78439_1_ + (p_78439_3_ - p_78439_1_) * var8 - 0.001953125F;
- var10 = var6 * var8 + 0.0625F;
+ for (var7 = 0; var7 < tileSize; ++var7)
+ {
+ var8 = (float)var7 / tileSize;
+ var9 = p_78439_1_ + (p_78439_3_ - p_78439_1_) * var8 - tx;
+ var10 = var6 * var8 + tz;
p_78439_0_.func_78374_a((double)var10, 1.0D, (double)(0.0F - p_78439_5_), (double)var9, (double)p_78439_2_);
p_78439_0_.func_78374_a((double)var10, 1.0D, 0.0D, (double)var9, (double)p_78439_2_);
p_78439_0_.func_78374_a((double)var10, 0.0D, 0.0D, (double)var9, (double)p_78439_4_);
@@ -166,11 +179,11 @@
p_78439_0_.func_78382_b();
p_78439_0_.func_78375_b(0.0F, 1.0F, 0.0F);
- for (var7 = 0; var7 < 16; ++var7)
- {
- var8 = (float)var7 / 16.0F;
- var9 = p_78439_4_ + (p_78439_2_ - p_78439_4_) * var8 - 0.001953125F;
- var10 = var6 * var8 + 0.0625F;
+ for (var7 = 0; var7 < tileSize; ++var7)
+ {
+ var8 = (float)var7 / tileSize;
+ var9 = p_78439_4_ + (p_78439_2_ - p_78439_4_) * var8 - tx;
+ var10 = var6 * var8 + tz;
p_78439_0_.func_78374_a(0.0D, (double)var10, 0.0D, (double)p_78439_1_, (double)var9);
p_78439_0_.func_78374_a((double)var6, (double)var10, 0.0D, (double)p_78439_3_, (double)var9);
p_78439_0_.func_78374_a((double)var6, (double)var10, (double)(0.0F - p_78439_5_), (double)p_78439_3_, (double)var9);
@@ -181,10 +194,10 @@
p_78439_0_.func_78382_b();
p_78439_0_.func_78375_b(0.0F, -1.0F, 0.0F);
- for (var7 = 0; var7 < 16; ++var7)
- {
- var8 = (float)var7 / 16.0F;
- var9 = p_78439_4_ + (p_78439_2_ - p_78439_4_) * var8 - 0.001953125F;
+ for (var7 = 0; var7 < tileSize; ++var7)
+ {
+ var8 = (float)var7 / tileSize;
+ var9 = p_78439_4_ + (p_78439_2_ - p_78439_4_) * var8 - tx;
var10 = var6 * var8;
p_78439_0_.func_78374_a((double)var6, (double)var10, 0.0D, (double)p_78439_3_, (double)var9);
p_78439_0_.func_78374_a(0.0D, (double)var10, 0.0D, (double)p_78439_1_, (double)var9);
@@ -1,20 +1,20 @@
--- ../src-base/minecraft/net/minecraft/client/renderer/RenderBlocks.java
+++ ../src-work/minecraft/net/minecraft/client/renderer/RenderBlocks.java
@@ -29,6 +29,7 @@
@@ -34,6 +34,7 @@
import net.minecraft.block.BlockWall;
import net.minecraft.block.material.Material;
import net.minecraft.client.Minecraft;
+import net.minecraft.src.FMLRenderAccessLibrary;
import net.minecraft.util.Direction;
import net.minecraft.util.Icon;
import net.minecraft.util.MathHelper;
import net.minecraft.util.Vec3;
@@ -215,7 +216,82 @@
int var5 = p_78612_1_.func_71857_b();
@@ -231,7 +232,84 @@
int l = p_78612_1_.func_71857_b();
p_78612_1_.func_71902_a(this.field_78669_a, p_78612_2_, p_78612_3_, p_78612_4_);
this.func_83018_a(p_78612_1_);
- return var5 == 0 ? this.func_78570_q(p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_) : (var5 == 31 ? this.func_78581_r(p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_) : (var5 == 4 ? this.func_78621_p(p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_) : (var5 == 13 ? this.func_78584_s(p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_) : (var5 == 1 ? this.func_78620_l(p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_) : (var5 == 19 ? this.func_78603_m(p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_) : (var5 == 23 ? this.func_78566_o(p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_) : (var5 == 6 ? this.func_78614_n(p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_) : (var5 == 2 ? this.func_78572_c(p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_) : (var5 == 3 ? this.func_78590_h(p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_) : (var5 == 5 ? this.func_78589_i(p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_) : (var5 == 8 ? this.func_78576_j(p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_) : (var5 == 7 ? this.func_78601_u(p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_) : (var5 == 9 ? this.func_78586_a((BlockRail)p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_) : (var5 == 10 ? this.func_78565_t((BlockStairs)p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_) : (var5 == 27 ? this.func_78618_a((BlockDragonEgg)p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_) : (var5 == 11 ? this.func_78582_a((BlockFence)p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_) : (var5 == 32 ? this.func_82779_a((BlockWall)p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_) : (var5 == 12 ? this.func_78594_e(p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_) : (var5 == 29 ? this.func_78577_f(p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_) : (var5 == 30 ? this.func_78619_g(p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_) : (var5 == 14 ? this.func_78574_w(p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_) : (var5 == 15 ? this.func_78610_x(p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_) : (var5 == 16 ? this.func_78593_b(p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_, false) : (var5 == 17 ? this.func_78608_c(p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_, true) : (var5 == 18 ? this.func_78592_a((BlockPane)p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_) : (var5 == 20 ? this.func_78598_k(p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_) : (var5 == 21 ? this.func_78580_a((BlockFenceGate)p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_) : (var5 == 24 ? this.func_78615_a((BlockCauldron)p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_) : (var5 == 33 ? this.func_82780_a((BlockFlowerPot)p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_) : (var5 == 35 ? this.func_82775_a((BlockAnvil)p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_) : (var5 == 25 ? this.func_78585_a((BlockBrewingStand)p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_) : (var5 == 26 ? this.func_78567_v(p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_) : (var5 == 28 ? this.func_78616_a((BlockCocoa)p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_) : (var5 == 34 ? this.func_82778_a((BlockBeacon)p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_) : false))))))))))))))))))))))))))))))))));
- return l == 0 ? this.func_78570_q(p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_) : (l == 31 ? this.func_78581_r(p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_) : (l == 4 ? this.func_78621_p(p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_) : (l == 13 ? this.func_78584_s(p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_) : (l == 1 ? this.func_78620_l(p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_) : (l == 19 ? this.func_78603_m(p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_) : (l == 23 ? this.func_78566_o(p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_) : (l == 6 ? this.func_78614_n(p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_) : (l == 2 ? this.func_78572_c(p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_) : (l == 3 ? this.func_78590_h((BlockFire)p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_) : (l == 5 ? this.func_78589_i(p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_) : (l == 8 ? this.func_78576_j(p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_) : (l == 7 ? this.func_78601_u(p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_) : (l == 9 ? this.func_78586_a((BlockBaseRail)p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_) : (l == 10 ? this.func_78565_t((BlockStairs)p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_) : (l == 27 ? this.func_78618_a((BlockDragonEgg)p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_) : (l == 11 ? this.func_78582_a((BlockFence)p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_) : (l == 32 ? this.func_82779_a((BlockWall)p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_) : (l == 12 ? this.func_78594_e(p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_) : (l == 29 ? this.func_78577_f(p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_) : (l == 30 ? this.func_78619_g(p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_) : (l == 14 ? this.func_78574_w(p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_) : (l == 15 ? this.func_94176_a((BlockRepeater)p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_) : (l == 36 ? this.func_78610_x((BlockRedstoneRepeater)p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_) : (l == 37 ? this.func_94171_a((BlockComparator)p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_) : (l == 16 ? this.func_78593_b(p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_, false) : (l == 17 ? this.func_78608_c(p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_, true) : (l == 18 ? this.func_78592_a((BlockPane)p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_) : (l == 20 ? this.func_78598_k(p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_) : (l == 21 ? this.func_78580_a((BlockFenceGate)p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_) : (l == 24 ? this.func_78615_a((BlockCauldron)p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_) : (l == 33 ? this.func_82780_a((BlockFlowerPot)p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_) : (l == 35 ? this.func_82775_a((BlockAnvil)p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_) : (l == 25 ? this.func_78585_a((BlockBrewingStand)p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_) : (l == 26 ? this.func_94168_a((BlockEndPortalFrame)p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_) : (l == 28 ? this.func_78616_a((BlockCocoa)p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_) : (l == 34 ? this.func_82778_a((BlockBeacon)p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_) : (l == 38 ? this.func_94172_a((BlockHopper)p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_) : false)))))))))))))))))))))))))))))))))))));
+
+ switch (var5)
+ switch (l)
+ {
+ case 0:
+ return this.func_78570_q(p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_);
@@ -35,7 +35,7 @@
+ case 2:
+ return this.func_78572_c(p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_);
+ case 3:
+ return this.func_78590_h(p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_);
+ return this.func_78590_h((BlockFire)p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_);
+ case 5:
+ return this.func_78589_i(p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_);
+ case 8:
@@ -43,7 +43,7 @@
+ case 7:
+ return this.func_78601_u(p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_);
+ case 9:
+ return this.func_78586_a((BlockRail)p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_);
+ return this.func_78586_a((BlockBaseRail)p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_);
+ case 10:
+ return this.func_78565_t((BlockStairs)p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_);
+ case 27:
@@ -61,7 +61,7 @@
+ case 14:
+ return this.func_78574_w(p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_);
+ case 15:
+ return this.func_78610_x(p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_);
+ return this.func_94176_a((BlockRepeater)p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_);
+ case 16:
+ return this.func_78593_b(p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_, false);
+ case 17:
@@ -81,29 +81,31 @@
+ case 25:
+ return this.func_78585_a((BlockBrewingStand)p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_);
+ case 26:
+ return this.func_78567_v(p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_);
+ return this.func_94168_a((BlockEndPortalFrame)p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_);
+ case 28:
+ return this.func_78616_a((BlockCocoa)p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_);
+ case 34:
+ return this.func_82778_a((BlockBeacon)p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_);
+ case 38:
+ return this.func_94172_a((BlockHopper)p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_);
+ default:
+ return FMLRenderAccessLibrary.renderWorldBlock(this, field_78669_a, p_78612_2_, p_78612_3_, p_78612_4_, p_78612_1_, var5);
+ return FMLRenderAccessLibrary.renderWorldBlock(this, field_78669_a, p_78612_2_, p_78612_3_, p_78612_4_, p_78612_1_, l);
+ }
}
public boolean func_78567_v(Block p_78567_1_, int p_78567_2_, int p_78567_3_, int p_78567_4_)
@@ -6541,6 +6617,10 @@
public boolean func_94168_a(BlockEndPortalFrame p_94168_1_, int p_94168_2_, int p_94168_3_, int p_94168_4_)
@@ -6623,6 +6701,10 @@
this.func_83020_a(0.0D, 0.0D, 0.0D, 1.0D, 1.0D, 1.0D);
this.func_78595_a();
}
+ else
+ {
+ FMLRenderAccessLibrary.renderInventoryBlock(this, p_78600_1_, p_78600_2_, var6);
+ FMLRenderAccessLibrary.renderInventoryBlock(this, p_78600_1_, p_78600_2_, j);
+ }
}
else
{
@@ -6599,6 +6679,36 @@
@@ -6681,7 +6763,37 @@
public static boolean func_78597_b(int p_78597_0_)
{
@@ -140,4 +142,5 @@
+ return FMLRenderAccessLibrary.renderItemAsFull3DBlock(p_78597_0_);
+ }
}
}
public Icon func_94170_a(Block p_94170_1_, IBlockAccess p_94170_2_, int p_94170_3_, int p_94170_4_, int p_94170_5_, int p_94170_6_)
@@ -12,128 +12,58 @@
import java.awt.Graphics;
import java.awt.image.BufferedImage;
import java.awt.image.ImageObserver;
@@ -15,6 +18,9 @@
@@ -13,6 +16,9 @@
import java.util.HashMap;
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 net.minecraft.client.renderer.texturefx.TextureFX;
import net.minecraft.client.renderer.texture.TextureMap;
import net.minecraft.client.settings.GameSettings;
@@ -39,6 +45,8 @@
public TexturePackList field_78366_k;
private BufferedImage field_78364_l = new BufferedImage(64, 64, 2);
private final TextureMap field_94155_m;
private int field_94153_n;
+ public static Logger log = FMLLog.getLogger();
+
public RenderEngine(TexturePackList p_i3192_1_, GameSettings p_i3192_2_)
{
this.field_78366_k = p_i3192_1_;
@@ -102,8 +110,9 @@
this.field_78359_d.put(p_78346_1_, var7);
return var7;
@@ -117,8 +125,9 @@
this.field_78359_d.put(p_78346_1_, aint1);
return aint1;
}
- catch (IOException var6)
- catch (IOException ioexception)
- {
+ catch (Exception var6)
+ catch (Exception ioexception)
+ {
+ 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);
@@ -250,6 +259,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);
@@ -410,6 +420,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();
}
@@ -422,28 +433,44 @@
{
TextureFX var3 = (TextureFX)this.field_78367_h.get(var2);
var3.field_76851_c = this.field_78365_j.field_74337_g;
- var3.func_76846_a();
- var1 = this.func_82772_a(var3, var1);
+ if (TextureFXManager.instance().onUpdateTextureEffect(var3))
+ {
+ var1 = this.func_82772_a(var3, var1);
+ }
}
}
public int func_82772_a(TextureFX p_82772_1_, int p_82772_2_)
{
- this.field_78358_g.clear();
- this.field_78358_g.put(p_82772_1_.field_76852_a);
- this.field_78358_g.position(0).limit(p_82772_1_.field_76852_a.length);
-
- if (p_82772_1_.field_76850_b != p_82772_2_)
+ Dimension dim = TextureFXManager.instance().getTextureDimensions(p_82772_1_);
+ int tWidth = dim.width >> 4;
+ int tHeight = dim.height >> 4;
+ int tLen = tWidth * tHeight << 2;
+
+ if (p_82772_1_.field_76852_a.length == tLen)
+ {
+ this.field_78358_g.clear();
+ this.field_78358_g.put(p_82772_1_.field_76852_a);
+ this.field_78358_g.position(0).limit(p_82772_1_.field_76852_a.length);
+ }
+ else
+ {
+ TextureFXManager.instance().scaleTextureFXData(p_82772_1_.field_76852_a, field_78358_g, tWidth, tLen);
+ }
+
+ if (p_82772_1_.field_76848_d != p_82772_2_)
{
p_82772_1_.func_76845_a(this);
- p_82772_2_ = p_82772_1_.field_76850_b;
+ p_82772_2_ = p_82772_1_.field_76848_d;
}
for (int var3 = 0; var3 < p_82772_1_.field_76849_e; ++var3)
{
+ int xOffset = p_82772_1_.field_76850_b % 16 * tWidth + var3 * tWidth;
for (int var4 = 0; var4 < p_82772_1_.field_76849_e; ++var4)
{
- GL11.glTexSubImage2D(GL11.GL_TEXTURE_2D, 0, p_82772_1_.field_76850_b % 16 * 16 + var3 * 16, p_82772_1_.field_76850_b / 16 * 16 + var4 * 16, 16, 16, GL11.GL_RGBA, GL11.GL_UNSIGNED_BYTE, this.field_78358_g);
+ int yOffset = p_82772_1_.field_76850_b / 16 * tHeight + var4 * tHeight;
+ GL11.glTexSubImage2D(GL11.GL_TEXTURE_2D, 0, xOffset, yOffset, tWidth, tHeight, GL11.GL_RGBA, GL11.GL_UNSIGNED_BYTE, this.field_78358_g);
}
}
@@ -509,8 +536,9 @@
+ log.log(Level.INFO, String.format("An error occured reading texture file %s (getTexture)", p_78346_1_), ioexception);
ioexception.printStackTrace();
int[] aint2 = this.func_78348_b(this.field_78364_l);
this.field_78359_d.put(p_78346_1_, aint2);
@@ -505,8 +514,9 @@
this.field_78361_b = false;
this.field_78363_a = false;
}
- catch (IOException var7)
- catch (IOException ioexception)
- {
+ catch (Exception var7)
+ catch (Exception ioexception)
+ {
+ log.log(Level.INFO,String.format("An error occured reading texture file %s (refreshTexture)", var9), var7);
var7.printStackTrace();
+ log.log(Level.INFO,String.format("An error occured reading texture file %s (refreshTexture)", s), ioexception);
ioexception.printStackTrace();
}
}
@@ -546,8 +574,9 @@
@@ -542,8 +552,9 @@
this.field_78361_b = false;
this.field_78363_a = false;
}
- catch (IOException var6)
- catch (IOException ioexception1)
- {
+ catch (Exception var6)
+ catch (Exception ioexception1)
+ {
+ log.log(Level.INFO,String.format("An error occured reading texture file data %s (refreshTexture)", var9), var6);
var6.printStackTrace();
+ log.log(Level.INFO,String.format("An error occured reading texture file data %s (refreshTexture)", s), ioexception1);
ioexception1.printStackTrace();
}
}
@@ -1,102 +0,0 @@
--- ../src-base/minecraft/net/minecraft/client/renderer/texturefx/TextureCompassFX.java
+++ ../src-work/minecraft/net/minecraft/client/renderer/texturefx/TextureCompassFX.java
@@ -1,5 +1,6 @@
package net.minecraft.client.renderer.texturefx;
+import cpw.mods.fml.client.FMLTextureFX;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import java.awt.image.BufferedImage;
@@ -10,13 +11,17 @@
import net.minecraft.util.ChunkCoordinates;
@SideOnly(Side.CLIENT)
-public class TextureCompassFX extends TextureFX
+public class TextureCompassFX extends FMLTextureFX
{
private Minecraft field_76865_g;
private int[] field_76867_h = new int[256];
public double field_76868_i;
public double field_76866_j;
public static TextureCompassFX field_82391_c;
+ public static int stileSizeBase = 16;
+ public static int stileSizeSquare = 256;
+ public static int stileSizeMask = 15;
+ public static int stileSizeSquareMask = 255;
public TextureCompassFX(Minecraft p_i3212_1_)
{
@@ -24,12 +29,25 @@
this.field_76865_g = p_i3212_1_;
this.field_76847_f = 1;
+ setup();
+ }
+
+ @Override
+ public void setup()
+ {
+ super.setup();
+ stileSizeBase = tileSizeBase;
+ stileSizeSquare = tileSizeSquare;
+ stileSizeMask = tileSizeMask;
+ stileSizeSquareMask = tileSizeSquareMask;
+ 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)
{
@@ -58,7 +76,7 @@
int var17;
int var16;
- for (int var10 = 0; var10 < 256; ++var10)
+ for (int var10 = 0; var10 < stileSizeSquare; ++var10)
{
int var11 = var8[var10] >> 24 & 255;
int var12 = var8[var10] >> 16 & 255;
@@ -141,11 +159,11 @@
int var24;
int var26;
- for (var16 = -4; var16 <= 4; ++var16)
- {
- var17 = (int)(8.5D + var31 * (double)var16 * 0.3D);
- var18 = (int)(7.5D - var30 * (double)var16 * 0.3D * 0.5D);
- var19 = var18 * 16 + var17;
+ for (var16 = -(stileSizeBase >> 2); var16 <= (stileSizeBase >> 2); ++var16)
+ {
+ var17 = (int)((stileSizeBase >> 1) + 0.5D + var31 * (double)var16 * 0.3D);
+ var18 = (int)((stileSizeBase >> 1) - 0.5D - var30 * (double)var16 * 0.3D * 0.5D);
+ var19 = var18 * stileSizeBase + var17;
var20 = 100;
var21 = 100;
var22 = 100;
@@ -167,11 +185,12 @@
var9[var19 * 4 + 3] = (byte)var23;
}
- for (var16 = -8; var16 <= 16; ++var16)
- {
- var17 = (int)(8.5D + var30 * (double)var16 * 0.3D);
- var18 = (int)(7.5D + var31 * (double)var16 * 0.3D * 0.5D);
- var19 = var18 * 16 + var17;
+
+ for (var16 = -(stileSizeBase>>2); var16 <= stileSizeBase; ++var16)
+ {
+ var17 = (int)((stileSizeBase >> 1) + 0.5D + var30 * (double)var16 * 0.3D);
+ var18 = (int)((stileSizeBase >> 1) - 0.5D + var31 * (double)var16 * 0.3D * 0.5D);
+ var19 = var18 * stileSizeBase + var17;
var20 = var16 >= 0 ? 255 : 100;
var21 = var16 >= 0 ? 20 : 100;
var22 = var16 >= 0 ? 20 : 100;
@@ -1,89 +0,0 @@
--- ../src-base/minecraft/net/minecraft/client/renderer/texturefx/TextureFlamesFX.java
+++ ../src-work/minecraft/net/minecraft/client/renderer/texturefx/TextureFlamesFX.java
@@ -1,18 +1,32 @@
package net.minecraft.client.renderer.texturefx;
+import cpw.mods.fml.client.FMLTextureFX;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import net.minecraft.block.Block;
@SideOnly(Side.CLIENT)
-public class TextureFlamesFX extends TextureFX
+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()
@@ -20,32 +34,34 @@
int var3;
float var4;
int var6;
+ float fireFactor1 = 3.0F + (float)(tileSizeBase >> 4);
+ float fireFactor2 = 1.01F + (0.8F / tileSizeBase);
- for (int var1 = 0; var1 < 16; ++var1)
+ 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);
}
}
}
@@ -54,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;
@@ -1,91 +0,0 @@
--- ../src-base/minecraft/net/minecraft/client/renderer/texturefx/TextureLavaFX.java
+++ ../src-work/minecraft/net/minecraft/client/renderer/texturefx/TextureLavaFX.java
@@ -1,12 +1,13 @@
package net.minecraft.client.renderer.texturefx;
+import cpw.mods.fml.client.FMLTextureFX;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import net.minecraft.block.Block;
import net.minecraft.util.MathHelper;
@SideOnly(Side.CLIENT)
-public class TextureLavaFX extends TextureFX
+public class TextureLavaFX extends FMLTextureFX
{
protected float[] field_76876_g = new float[256];
protected float[] field_76878_h = new float[256];
@@ -16,6 +17,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()
@@ -28,9 +40,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);
@@ -40,25 +52,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;
}
}
}
@@ -67,7 +79,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;
@@ -1,95 +0,0 @@
--- ../src-base/minecraft/net/minecraft/client/renderer/texturefx/TextureLavaFlowFX.java
+++ ../src-work/minecraft/net/minecraft/client/renderer/texturefx/TextureLavaFlowFX.java
@@ -1,12 +1,13 @@
package net.minecraft.client.renderer.texturefx;
+import cpw.mods.fml.client.FMLTextureFX;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import net.minecraft.block.Block;
import net.minecraft.util.MathHelper;
@SideOnly(Side.CLIENT)
-public class TextureLavaFlowFX extends TextureFX
+public class TextureLavaFlowFX extends FMLTextureFX
{
protected float[] field_76871_g = new float[256];
protected float[] field_76874_h = new float[256];
@@ -18,6 +19,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()
@@ -31,9 +44,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);
@@ -43,25 +56,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;
}
}
}
@@ -70,9 +83,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)
{
@@ -1,75 +0,0 @@
--- ../src-base/minecraft/net/minecraft/client/renderer/texturefx/TexturePortalFX.java
+++ ../src-work/minecraft/net/minecraft/client/renderer/texturefx/TexturePortalFX.java
@@ -1,5 +1,6 @@
package net.minecraft.client.renderer.texturefx;
+import cpw.mods.fml.client.FMLTextureFX;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import java.util.Random;
@@ -7,31 +8,39 @@
import net.minecraft.util.MathHelper;
@SideOnly(Side.CLIENT)
-public class TexturePortalFX extends TextureFX
+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)
{
@@ -65,7 +74,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;
@@ -80,7 +89,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;
@@ -1,99 +0,0 @@
--- ../src-base/minecraft/net/minecraft/client/renderer/texturefx/TextureWatchFX.java
+++ ../src-work/minecraft/net/minecraft/client/renderer/texturefx/TextureWatchFX.java
@@ -1,15 +1,21 @@
package net.minecraft.client.renderer.texturefx;
+import cpw.mods.fml.client.FMLTextureFX;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
+
+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 net.minecraft.client.Minecraft;
import net.minecraft.item.Item;
@SideOnly(Side.CLIENT)
-public class TextureWatchFX extends TextureFX
+public class TextureWatchFX extends FMLTextureFX
{
private Minecraft field_76860_g;
private int[] field_76863_h = new int[256];
@@ -22,19 +28,39 @@
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);
}
}
@@ -81,7 +107,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;
@@ -90,12 +116,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;
@@ -1,97 +0,0 @@
--- ../src-base/minecraft/net/minecraft/client/renderer/texturefx/TextureWaterFX.java
+++ ../src-work/minecraft/net/minecraft/client/renderer/texturefx/TextureWaterFX.java
@@ -1,11 +1,12 @@
package net.minecraft.client.renderer.texturefx;
+import cpw.mods.fml.client.FMLTextureFX;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import net.minecraft.block.Block;
@SideOnly(Side.CLIENT)
-public class TextureWaterFX extends TextureFX
+public class TextureWaterFX extends FMLTextureFX
{
protected float[] field_76855_g = new float[256];
protected float[] field_76858_h = new float[256];
@@ -16,6 +17,18 @@
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()
@@ -27,39 +40,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;
}
}
}
@@ -68,7 +81,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];
@@ -1,100 +0,0 @@
--- ../src-base/minecraft/net/minecraft/client/renderer/texturefx/TextureWaterFlowFX.java
+++ ../src-work/minecraft/net/minecraft/client/renderer/texturefx/TextureWaterFlowFX.java
@@ -1,11 +1,12 @@
package net.minecraft.client.renderer.texturefx;
+import cpw.mods.fml.client.FMLTextureFX;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import net.minecraft.block.Block;
@SideOnly(Side.CLIENT)
-public class TextureWaterFlowFX extends TextureFX
+public class TextureWaterFlowFX extends FMLTextureFX
{
protected float[] field_76880_g = new float[256];
protected float[] field_76883_h = new float[256];
@@ -17,6 +18,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()
@@ -28,39 +41,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;
}
}
}
@@ -69,9 +82,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)
{
@@ -14,4 +14,4 @@
+ if (FMLClientHandler.instance().isLoading()) return;
try
{
PrintWriter var1 = new PrintWriter(new FileWriter(this.field_74354_ai));
PrintWriter printwriter = new PrintWriter(new FileWriter(this.field_74354_ai));
@@ -10,33 +10,33 @@
import net.minecraft.entity.boss.EntityDragon;
import net.minecraft.entity.boss.EntityWither;
import net.minecraft.entity.item.EntityBoat;
@@ -103,9 +106,10 @@
{
Entity var2 = null;
@@ -119,9 +122,10 @@
p_75615_0_.func_82580_o("Type");
}
+ Class var3 = null;
+ Class oclass = null;
try
{
- Class var3 = (Class)field_75625_b.get(p_75615_0_.func_74779_i("id"));
+ var3 = (Class)field_75625_b.get(p_75615_0_.func_74779_i("id"));
- Class oclass = (Class)field_75625_b.get(p_75615_0_.func_74779_i("id"));
+ oclass = (Class)field_75625_b.get(p_75615_0_.func_74779_i("id"));
if (var3 != null)
if (oclass != null)
{
@@ -119,7 +123,17 @@
@@ -135,7 +139,17 @@
if (var2 != null)
if (entity != null)
{
- var2.func_70020_e(p_75615_0_);
- entity.func_70020_e(p_75615_0_);
+ try
+ {
+ var2.func_70020_e(p_75615_0_);
+ entity.func_70020_e(p_75615_0_);
+ }
+ catch (Exception e)
+ {
+ FMLLog.log(Level.SEVERE, e,
+ "An Entity %s(%s) has thrown an exception during loading, its state cannot be restored. Report this to the mod author",
+ p_75615_0_.func_74779_i("id"), var3.getName());
+ var2 = null;
+ p_75615_0_.func_74779_i("id"), oclass.getName());
+ entity = null;
+ }
}
else
@@ -22,7 +22,7 @@
+ FMLNetworkHandler.makeEntitySpawnAdjustment(this.field_73132_a.field_70157_k, p_73117_1_, this.field_73128_d, this.field_73129_e, this.field_73126_f);
+ }
if (this.field_73143_t && !(var6 instanceof Packet24MobSpawn))
if (this.field_73143_t && !(packet instanceof Packet24MobSpawn))
{
@@ -424,6 +434,13 @@
if (this.field_73132_a.field_70128_L)
@@ -16,5 +16,5 @@
+ GameRegistry.onPickupNotification(p_70100_1_, this);
+
this.func_85030_a("random.pop", 0.2F, ((this.field_70146_Z.nextFloat() - this.field_70146_Z.nextFloat()) * 0.7F + 1.0F) * 2.0F);
p_70100_1_.func_71001_a(this, var3);
p_70100_1_.func_71001_a(this, i);
@@ -2,7 +2,7 @@
+++ ../src-work/minecraft/net/minecraft/entity/monster/EntitySlime.java
@@ -242,7 +242,7 @@
{
Chunk var1 = this.field_70170_p.func_72938_d(MathHelper.func_76128_c(this.field_70165_t), MathHelper.func_76128_c(this.field_70161_v));
Chunk chunk = this.field_70170_p.func_72938_d(MathHelper.func_76128_c(this.field_70165_t), MathHelper.func_76128_c(this.field_70161_v));
- if (this.field_70170_p.func_72912_H().func_76067_t() == WorldType.field_77138_c && this.field_70146_Z.nextInt(4) != 1)
+ if (this.field_70170_p.func_72912_H().func_76067_t().handleSlimeSpawnReduction(field_70146_Z, field_70170_p))
@@ -18,10 +18,10 @@
@@ -422,6 +423,7 @@
MerchantRecipeList var2;
var2 = new MerchantRecipeList();
+ VillagerRegistry.manageVillagerTrades(var2, this, this.func_70946_n(), this.field_70146_Z);
int var6;
MerchantRecipeList merchantrecipelist;
merchantrecipelist = new MerchantRecipeList();
+ VillagerRegistry.manageVillagerTrades(merchantrecipelist, this, this.func_70946_n(), this.field_70146_Z);
int j;
label50:
@@ -637,7 +639,7 @@
@@ -8,15 +8,15 @@
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import java.util.Iterator;
@@ -173,6 +175,7 @@
@@ -175,6 +177,7 @@
public void func_70071_h_()
{
+ FMLCommonHandler.instance().onPlayerPreTick(this);
if (this.field_71074_e != null)
{
ItemStack var1 = this.field_71071_by.func_70448_g();
@@ -296,6 +299,7 @@
ItemStack itemstack = this.field_71071_by.func_70448_g();
@@ -298,6 +301,7 @@
{
this.field_71100_bB.func_75118_a(this);
}
@@ -24,7 +24,7 @@
}
public int func_82145_z()
@@ -1822,4 +1826,9 @@
@@ -1839,4 +1843,9 @@
{
return this.func_82241_s(1);
}
@@ -14,4 +14,4 @@
+ GameRegistry.onItemCrafted(p_82870_1_, p_82870_2_, field_75239_a);
this.func_75208_c(p_82870_2_);
for (int var3 = 0; var3 < this.field_75239_a.func_70302_i_(); ++var3)
for (int i = 0; i < this.field_75239_a.func_70302_i_(); ++i)
@@ -7,7 +7,7 @@
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import java.util.List;
@@ -207,6 +208,8 @@
@@ -214,6 +215,8 @@
}
field_77698_e[256 + p_i3659_1_] = this;
@@ -15,4 +15,4 @@
+ GameData.newItemAdded(this);
}
public Item func_77665_c(int p_77665_1_)
public Item func_77625_d(int p_77625_1_)
@@ -1,11 +1,11 @@
--- ../src-base/minecraft/net/minecraft/item/ItemMap.java
+++ ../src-work/minecraft/net/minecraft/item/ItemMap.java
@@ -52,7 +52,7 @@
int var5 = 128 * (1 << var4.field_76197_d);
var4.field_76201_a = Math.round((float)p_77873_2_.func_72912_H().func_76079_c() / (float)var5) * var5;
var4.field_76199_b = Math.round((float)(p_77873_2_.func_72912_H().func_76074_e() / var5)) * var5;
- var4.field_76200_c = (byte)p_77873_2_.field_73011_w.field_76574_g;
+ var4.field_76200_c = p_77873_2_.field_73011_w.field_76574_g;
var4.func_76185_a();
p_77873_2_.func_72823_a(var3, var4);
int i = 128 * (1 << mapdata.field_76197_d);
mapdata.field_76201_a = Math.round((float)p_77873_2_.func_72912_H().func_76079_c() / (float)i) * i;
mapdata.field_76199_b = Math.round((float)(p_77873_2_.func_72912_H().func_76074_e() / i)) * i;
- mapdata.field_76200_c = (byte)p_77873_2_.field_73011_w.field_76574_g;
+ mapdata.field_76200_c = p_77873_2_.field_73011_w.field_76574_g;
mapdata.func_76185_a();
p_77873_2_.func_72823_a(s, mapdata);
}
@@ -37,16 +37,16 @@
public void func_72529_d()
{
- String var1 = this.field_72534_f.func_71203_ab().func_72399_a(this.field_72538_b.func_74430_c(), this.field_72543_h);
- String s = this.field_72534_f.func_71203_ab().func_72399_a(this.field_72538_b.func_74430_c(), this.field_72543_h);
+ FMLNetworkHandler.onConnectionReceivedFromClient(this, this.field_72534_f, this.field_72538_b.func_74430_c(), this.field_72543_h);
+ }
+
+ public void completeConnection(String var1)
+ public void completeConnection(String s)
+ {
if (var1 != null)
if (s != null)
{
@@ -272,4 +283,21 @@
@@ -272,4 +283,22 @@
{
return p_72531_0_.field_72544_i = p_72531_1_;
}
@@ -63,8 +63,9 @@
+ // NOOP for login
+ }
+
+ @Override
+ public EntityPlayer getPlayer()
+ {
+ return null;
+ };
+ }
}
@@ -35,8 +35,8 @@
+
+ public void handleVanilla250Packet(Packet250CustomPayload p_72501_1_)
{
DataInputStream var2;
ItemStack var3;
DataInputStream datainputstream;
ItemStack itemstack;
@@ -1156,4 +1165,18 @@
}
}
@@ -10,10 +10,10 @@
import net.minecraft.server.MinecraftServer;
import net.minecraft.util.ReportedException;
@@ -51,6 +53,7 @@
throw new ReportedException(var4);
throw new ReportedException(crashreport);
}
+ FMLLog.log(Level.SEVERE, var5, "A critical server error occured handling a packet, kicking %s", var2.getPlayer().field_70157_k);
field_71751_a.log(Level.WARNING, "Failed to handle packet for " + var2.field_72574_e.func_70023_ak() + "/" + var2.field_72574_e.func_71114_r() + ": " + var5, var5);
var2.func_72565_c("Internal server error");
+ FMLLog.log(Level.SEVERE, exception, "A critical server error occured handling a packet, kicking %s", netserverhandler.getPlayer().field_70157_k);
field_71751_a.log(Level.WARNING, "Failed to handle packet for " + netserverhandler.field_72574_e.func_70023_ak() + "/" + netserverhandler.field_72574_e.func_71114_r() + ": " + exception, exception);
netserverhandler.func_72565_c("Internal server error");
}
@@ -32,9 +32,9 @@
public void func_73267_a(DataInputStream p_73267_1_) throws IOException
@@ -46,7 +54,16 @@
this.field_73560_c = (var3 & 8) == 8;
int var4 = var3 & -9;
this.field_73557_d = EnumGameType.func_77146_a(var4);
this.field_73560_c = (b0 & 8) == 8;
int i = b0 & -9;
this.field_73557_d = EnumGameType.func_77146_a(i);
- this.field_73558_e = p_73267_1_.readByte();
+
+ if (vanillaCompatible)
@@ -52,7 +52,7 @@
@@ -64,7 +81,16 @@
}
p_73273_1_.writeByte(var2);
p_73273_1_.writeByte(i);
- p_73273_1_.writeByte(this.field_73558_e);
+
+ if (vanillaCompatible)
@@ -68,10 +68,10 @@
p_73273_1_.writeByte(this.field_73556_g);
p_73273_1_.writeByte(this.field_73562_h);
@@ -84,6 +110,6 @@
var1 = this.field_73559_b.func_77127_a().length();
i = this.field_73559_b.func_77127_a().length();
}
- return 6 + 2 * var1 + 4 + 4 + 1 + 1 + 1;
+ return 6 + 2 * var1 + 4 + 4 + 1 + 1 + 1 + (vanillaCompatible ? 0 : 3);
- return 6 + 2 * i + 4 + 4 + 1 + 1 + 1;
+ return 6 + 2 * i + 4 + 4 + 1 + 1 + 1 + (vanillaCompatible ? 0 : 3);
}
}
@@ -9,19 +9,19 @@
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import java.awt.GraphicsEnvironment;
@@ -378,7 +381,11 @@
@@ -379,7 +382,11 @@
{
if (this.func_71197_b())
{
+ FMLCommonHandler.instance().handleServerStarted();
+
long var1 = System.currentTimeMillis();
long i = System.currentTimeMillis();
+
+ FMLCommonHandler.instance().onWorldLoadTick(field_71305_c);
for (long var50 = 0L; this.field_71317_u; this.field_71296_Q = true)
for (long k0 = 0L; this.field_71317_u; this.field_71296_Q = true)
{
@@ -417,6 +424,7 @@
@@ -418,6 +425,7 @@
Thread.sleep(1L);
}
@@ -29,18 +29,18 @@
}
else
{
@@ -425,6 +433,10 @@
@@ -426,6 +434,10 @@
}
catch (Throwable var48)
catch (Throwable throwable)
{
+ if (FMLCommonHandler.instance().shouldServerBeKilledQuietly())
+ {
+ return;
+ }
var48.printStackTrace();
field_71306_a.log(Level.SEVERE, "Encountered an unexpected exception " + var48.getClass().getSimpleName(), var48);
CrashReport var2 = null;
@@ -455,6 +467,10 @@
throwable.printStackTrace();
field_71306_a.log(Level.SEVERE, "Encountered an unexpected exception " + throwable.getClass().getSimpleName(), throwable);
CrashReport crashreport = null;
@@ -456,6 +468,10 @@
{
try
{
@@ -51,18 +51,26 @@
this.func_71260_j();
this.field_71316_v = true;
}
@@ -480,8 +496,10 @@
@@ -465,6 +481,7 @@
}
finally
{
+ FMLCommonHandler.instance().handleServerStopped();
this.func_71240_o();
}
}
@@ -481,8 +498,10 @@
public void func_71217_p()
{
+ FMLCommonHandler.instance().rescheduleTicks(Side.SERVER);
long var1 = System.nanoTime();
long i = System.nanoTime();
AxisAlignedBB.func_72332_a().func_72298_a();
+ FMLCommonHandler.instance().onPreServerTick();
++this.field_71315_w;
if (this.field_71295_T)
@@ -527,6 +545,7 @@
@@ -528,6 +547,7 @@
this.field_71304_b.func_76319_b();
this.field_71304_b.func_76319_b();
@@ -70,23 +78,23 @@
}
public void func_71190_q()
@@ -554,6 +573,7 @@
@@ -555,6 +575,7 @@
}
this.field_71304_b.func_76320_a("tick");
+ FMLCommonHandler.instance().onPreWorldTick(var4);
CrashReport var6;
+ FMLCommonHandler.instance().onPreWorldTick(worldserver);
CrashReport crashreport;
try
@@ -578,6 +598,7 @@
throw new ReportedException(var6);
@@ -579,6 +600,7 @@
throw new ReportedException(crashreport);
}
+ FMLCommonHandler.instance().onPostWorldTick(var4);
+ FMLCommonHandler.instance().onPostWorldTick(worldserver);
this.field_71304_b.func_76319_b();
this.field_71304_b.func_76320_a("tracker");
var4.func_73039_n().func_72788_a();
@@ -705,7 +726,7 @@
worldserver.func_73039_n().func_72788_a();
@@ -706,7 +728,7 @@
public String getServerModName()
{
@@ -95,7 +103,7 @@
}
public CrashReport func_71230_b(CrashReport p_71230_1_)
@@ -1146,6 +1167,13 @@
@@ -1147,6 +1169,13 @@
@SideOnly(Side.SERVER)
public static void main(String[] p_main_0_)
{
@@ -8,10 +8,10 @@
import cpw.mods.fml.relauncher.SideOnly;
import java.io.IOException;
@@ -53,6 +54,7 @@
catch (Exception var6)
catch (Exception exception)
{
var3.func_72527_a("Internal server error");
+ FMLLog.log(Level.SEVERE, var6, "Error handling login related packet - connection from %s refused", var3.func_72528_e());
field_71777_a.log(Level.WARNING, "Failed to handle packet for " + var3.func_72528_e() + ": " + var6, var6);
netloginhandler.func_72527_a("Internal server error");
+ FMLLog.log(Level.SEVERE, exception, "Error handling login related packet - connection from %s refused", netloginhandler.func_72528_e());
field_71777_a.log(Level.WARNING, "Failed to handle packet for " + netloginhandler.func_72528_e() + ": " + exception, exception);
}
@@ -12,11 +12,11 @@
@@ -12,10 +14,7 @@
public static void func_73699_a()
{
ConsoleLogFormatter var0 = new ConsoleLogFormatter();
ConsoleLogFormatter consolelogformatter = new ConsoleLogFormatter();
- field_73700_a.setUseParentHandlers(false);
- ConsoleHandler var1 = new ConsoleHandler();
- var1.setFormatter(var0);
- field_73700_a.addHandler(var1);
- ConsoleHandler consolehandler = new ConsoleHandler();
- consolehandler.setFormatter(consolelogformatter);
- field_73700_a.addHandler(consolehandler);
+ field_73700_a.setParent(FMLLog.getLogger());
try
@@ -24,7 +24,7 @@
+ FMLCommonHandler.instance().onServerStarted();
this.func_71210_a(new DedicatedPlayerList(this));
long var4 = System.nanoTime();
long j = System.nanoTime();
@@ -187,6 +192,8 @@
this.field_71339_n.func_72602_a();
}
@@ -13,7 +13,7 @@
p_72355_2_.func_71116_b();
+
+ FMLNetworkHandler.handlePlayerLogin(p_72355_2_, var6, p_72355_1_);
+ FMLNetworkHandler.handlePlayerLogin(p_72355_2_, netserverhandler, p_72355_1_);
}
public void func_72364_a(WorldServer[] p_72364_1_)
@@ -23,19 +23,19 @@
{
+ GameRegistry.onPlayerLogout(p_72367_1_);
this.func_72391_b(p_72367_1_);
WorldServer var2 = p_72367_1_.func_71121_q();
var2.func_72900_e(p_72367_1_);
WorldServer worldserver = p_72367_1_.func_71121_q();
worldserver.func_72900_e(p_72367_1_);
@@ -324,6 +329,7 @@
var8.func_72838_d(var7);
this.field_72404_b.add(var7);
var7.func_71116_b();
+ GameRegistry.onPlayerRespawn(var7);
return var7;
worldserver.func_72838_d(entityplayermp1);
this.field_72404_b.add(entityplayermp1);
entityplayermp1.func_71116_b();
+ GameRegistry.onPlayerRespawn(entityplayermp1);
return entityplayermp1;
}
@@ -349,6 +355,8 @@
PotionEffect var7 = (PotionEffect)var6.next();
p_72356_1_.field_71135_a.func_72567_b(new Packet41EntityEffect(p_72356_1_.field_70157_k, var7));
PotionEffect potioneffect = (PotionEffect)iterator.next();
p_72356_1_.field_71135_a.func_72567_b(new Packet41EntityEffect(p_72356_1_.field_70157_k, potioneffect));
}
+
+ GameRegistry.onPlayerChangedDimension(p_72356_1_);
@@ -15,42 +15,33 @@
import net.minecraft.crash.CrashReportCategory;
@@ -82,9 +85,11 @@
{
TileEntity var1 = null;
TileEntity tileentity = null;
+ Class var2 = null;
+ Class oclass = null;
+
try
{
- Class var2 = (Class)field_70326_a.get(p_70317_0_.func_74779_i("id"));
+ var2 = (Class)field_70326_a.get(p_70317_0_.func_74779_i("id"));
- Class oclass = (Class)field_70326_a.get(p_70317_0_.func_74779_i("id"));
+ oclass = (Class)field_70326_a.get(p_70317_0_.func_74779_i("id"));
if (var2 != null)
if (oclass != null)
{
@@ -98,7 +103,17 @@
if (var1 != null)
if (tileentity != null)
{
- var1.func_70307_a(p_70317_0_);
- tileentity.func_70307_a(p_70317_0_);
+ try
+ {
+ var1.func_70307_a(p_70317_0_);
+ tileentity.func_70307_a(p_70317_0_);
+ }
+ catch (Exception e)
+ {
+ FMLLog.log(Level.SEVERE, e,
+ "A TileEntity %s(%s) has thrown an exception during loading, its state cannot be restored. Report this to the mod author",
+ p_70317_0_.func_74779_i("id"), var2.getName());
+ var1 = null;
+ p_70317_0_.func_74779_i("id"), oclass.getName());
+ tileentity = null;
+ }
}
else
{
@@ -183,7 +198,7 @@
public void func_85027_a(CrashReportCategory p_85027_1_)
{
p_85027_1_.func_71500_a("Name", new CallableTileEntityName(this));
- CrashReportCategory.func_85068_a(p_85027_1_, this.field_70329_l, this.field_70330_m, this.field_70327_n, this.field_70324_q.field_71990_ca, this.field_70325_p);
+ CrashReportCategory.func_85068_a(p_85027_1_, this.field_70329_l, this.field_70330_m, this.field_70327_n, this.field_70324_q != null ? this.field_70324_q.field_71990_ca : 0, this.field_70325_p);
}
static Map func_85028_t()
@@ -7,19 +7,19 @@
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import net.minecraft.block.Block;
@@ -287,7 +288,15 @@
@@ -308,7 +309,15 @@
}
}
- return var2 instanceof ItemTool && ((ItemTool)var2).func_77861_e().equals("WOOD") ? 200 : (var2 instanceof ItemSword && ((ItemSword)var2).func_77825_f().equals("WOOD") ? 200 : (var2 instanceof ItemHoe && ((ItemHoe)var2).func_77842_f().equals("WOOD") ? 200 : (var1 == Item.field_77669_D.field_77779_bT ? 100 : (var1 == Item.field_77705_m.field_77779_bT ? 1600 : (var1 == Item.field_77775_ay.field_77779_bT ? 20000 : (var1 == Block.field_71987_y.field_71990_ca ? 100 : (var1 == Item.field_77731_bo.field_77779_bT ? 2400 : 0)))))));
+ if (var2 instanceof ItemTool && ((ItemTool) var2).func_77861_e().equals("WOOD")) return 200;
+ if (var2 instanceof ItemSword && ((ItemSword) var2).func_77825_f().equals("WOOD")) return 200;
+ if (var2 instanceof ItemHoe && ((ItemHoe) var2).func_77842_f().equals("WOOD")) return 200;
+ if (var1 == Item.field_77669_D.field_77779_bT) return 100;
+ if (var1 == Item.field_77705_m.field_77779_bT) return 1600;
+ if (var1 == Item.field_77775_ay.field_77779_bT) return 20000;
+ if (var1 == Block.field_71987_y.field_71990_ca) return 100;
+ if (var1 == Item.field_77731_bo.field_77779_bT) return 2400;
- return item instanceof ItemTool && ((ItemTool)item).func_77861_e().equals("WOOD") ? 200 : (item instanceof ItemSword && ((ItemSword)item).func_77825_f().equals("WOOD") ? 200 : (item instanceof ItemHoe && ((ItemHoe)item).func_77842_f().equals("WOOD") ? 200 : (i == Item.field_77669_D.field_77779_bT ? 100 : (i == Item.field_77705_m.field_77779_bT ? 1600 : (i == Item.field_77775_ay.field_77779_bT ? 20000 : (i == Block.field_71987_y.field_71990_ca ? 100 : (i == Item.field_77731_bo.field_77779_bT ? 2400 : 0)))))));
+ if (item instanceof ItemTool && ((ItemTool) item).func_77861_e().equals("WOOD")) return 200;
+ if (item instanceof ItemSword && ((ItemSword) item).func_77825_f().equals("WOOD")) return 200;
+ if (item instanceof ItemHoe && ((ItemHoe) item).func_77842_f().equals("WOOD")) return 200;
+ if (i == Item.field_77669_D.field_77779_bT) return 100;
+ if (i == Item.field_77705_m.field_77779_bT) return 1600;
+ if (i == Item.field_77775_ay.field_77779_bT) return 20000;
+ if (i == Block.field_71987_y.field_71990_ca) return 100;
+ if (i == Item.field_77731_bo.field_77779_bT) return 2400;
+ return GameRegistry.getFuelValue(p_70398_0_);
}
}
@@ -7,15 +7,15 @@
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import java.io.BufferedReader;
@@ -80,6 +81,7 @@
@@ -93,6 +94,7 @@
}
}
}
+ LanguageRegistry.instance().loadLanguageTable(p_74812_1_, p_74812_2_);
}
public void func_74810_a(String p_74810_1_)
@@ -138,7 +140,6 @@
public synchronized void func_74810_a(String p_74810_1_, boolean p_74810_2_)
@@ -170,7 +172,6 @@
}
}
@@ -1,6 +1,6 @@
--- ../src-base/minecraft/net/minecraft/world/World.java
+++ ../src-work/minecraft/net/minecraft/world/World.java
@@ -1797,13 +1797,14 @@
@@ -1754,13 +1754,14 @@
}
}
@@ -16,7 +16,7 @@
this.field_72984_F.func_76318_c("pendingTileEntities");
@@ -3637,7 +3638,7 @@
@@ -3673,7 +3674,7 @@
@SideOnly(Side.CLIENT)
public double func_72919_O()
{
@@ -6,8 +6,8 @@
{
- if (this.field_76579_a.func_72912_H().func_76067_t() == WorldType.field_77138_c)
- {
- FlatGeneratorInfo var1 = FlatGeneratorInfo.func_82651_a(this.field_76579_a.func_72912_H().func_82571_y());
- this.field_76578_c = new WorldChunkManagerHell(BiomeGenBase.field_76773_a[var1.func_82648_a()], 0.5F, 0.5F);
- FlatGeneratorInfo flatgeneratorinfo = FlatGeneratorInfo.func_82651_a(this.field_76579_a.func_72912_H().func_82571_y());
- this.field_76578_c = new WorldChunkManagerHell(BiomeGenBase.field_76773_a[flatgeneratorinfo.func_82648_a()], 0.5F, 0.5F);
- }
- else
- {
@@ -58,8 +58,8 @@
+ {
+ if (this == field_77138_c)
+ {
+ FlatGeneratorInfo var1 = FlatGeneratorInfo.func_82651_a(world.func_72912_H().func_82571_y());
+ return new WorldChunkManagerHell(BiomeGenBase.field_76773_a[var1.func_82648_a()], 0.5F, 0.5F);
+ FlatGeneratorInfo flatgeneratorinfo = FlatGeneratorInfo.func_82651_a(world.func_72912_H().func_82571_y());
+ return new WorldChunkManagerHell(BiomeGenBase.field_76773_a[flatgeneratorinfo.func_82648_a()], 0.5F, 0.5F);
+ }
+ else
+ {
@@ -82,9 +82,9 @@
+ return this == field_77138_c ? 0.0D : 63.0D;
+ }
+
+ public boolean hasVoidParticles(boolean var1)
+ public boolean hasVoidParticles(boolean flag)
+ {
+ return this != field_77138_c && !var1;
+ return this != field_77138_c && !flag;
+ }
+
+ public double voidFadeMagnitude()
@@ -13,46 +13,46 @@
import net.minecraft.nbt.CompressedStreamTools;
@@ -247,10 +251,20 @@
p_75820_1_.field_76644_m = true;
var11 = new NBTTagCompound();
nbttagcompound1 = new NBTTagCompound();
- if (var21.func_70039_c(var11))
- if (entity.func_70039_c(nbttagcompound1))
- {
- var16.func_74742_a(var11);
- nbttaglist1.func_74742_a(nbttagcompound1);
- }
+
+ try
+ {
+ if (var21.func_70039_c(var11))
+ if (entity.func_70039_c(nbttagcompound1))
+ {
+ var16.func_74742_a(var11);
+ nbttaglist1.func_74742_a(nbttagcompound1);
+ }
+ }
+ catch (Exception e)
+ {
+ FMLLog.log(Level.SEVERE, e,
+ "An Entity type %s has thrown an exception trying to write state. It will not persist. Report this to the mod author",
+ var21.getClass().getName());
+ entity.getClass().getName());
+ }
}
}
@@ -262,8 +276,17 @@
{
TileEntity var22 = (TileEntity)var18.next();
var11 = new NBTTagCompound();
- var22.func_70310_b(var11);
- var17.func_74742_a(var11);
TileEntity tileentity = (TileEntity)iterator.next();
nbttagcompound1 = new NBTTagCompound();
- tileentity.func_70310_b(nbttagcompound1);
- nbttaglist2.func_74742_a(nbttagcompound1);
+ try
+ {
+ var22.func_70310_b(var11);
+ var17.func_74742_a(var11);
+ tileentity.func_70310_b(nbttagcompound1);
+ nbttaglist2.func_74742_a(nbttagcompound1);
+ }
+ catch (Exception e)
+ {
+ FMLLog.log(Level.SEVERE, e,
+ "A TileEntity type %s has throw an exception trying to write state. It will not persist. Report this to the mod author",
+ var22.getClass().getName());
+ tileentity.getClass().getName());
+ }
}
p_75820_3_.func_74782_a("TileEntities", var17);
p_75820_3_.func_74782_a("TileEntities", nbttaglist2);
@@ -14,6 +14,6 @@
{
this.field_73246_d.func_73153_a(p_73153_1_, p_73153_2_, p_73153_3_);
+ GameRegistry.generateWorld(p_73153_2_, p_73153_3_, field_73251_h, field_73246_d, p_73153_1_);
var4.func_76630_e();
chunk.func_76630_e();
}
}
@@ -10,22 +10,22 @@
public class StructureVillagePieces
@@ -20,6 +22,8 @@
var2.add(new StructureVillagePieceWeight(ComponentVillageField2.class, 3, MathHelper.func_76136_a(p_75084_0_, 2 + p_75084_1_, 4 + p_75084_1_ * 2)));
var2.add(new StructureVillagePieceWeight(ComponentVillageHouse2.class, 15, MathHelper.func_76136_a(p_75084_0_, 0, 1 + p_75084_1_)));
var2.add(new StructureVillagePieceWeight(ComponentVillageHouse3.class, 8, MathHelper.func_76136_a(p_75084_0_, 0 + p_75084_1_, 3 + p_75084_1_ * 2)));
+ VillagerRegistry.addExtraVillageComponents(var2, p_75084_0_, p_75084_1_);
arraylist.add(new StructureVillagePieceWeight(ComponentVillageField2.class, 3, MathHelper.func_76136_a(p_75084_0_, 2 + p_75084_1_, 4 + p_75084_1_ * 2)));
arraylist.add(new StructureVillagePieceWeight(ComponentVillageHouse2.class, 15, MathHelper.func_76136_a(p_75084_0_, 0, 1 + p_75084_1_)));
arraylist.add(new StructureVillagePieceWeight(ComponentVillageHouse3.class, 8, MathHelper.func_76136_a(p_75084_0_, 0 + p_75084_1_, 3 + p_75084_1_ * 2)));
+ VillagerRegistry.addExtraVillageComponents(arraylist, p_75084_0_, p_75084_1_);
+
Iterator var3 = var2.iterator();
Iterator iterator = arraylist.iterator();
while (var3.hasNext())
while (iterator.hasNext())
@@ -92,6 +96,10 @@
else if (var9 == ComponentVillageHouse3.class)
else if (oclass == ComponentVillageHouse3.class)
{
var10 = ComponentVillageHouse3.func_74921_a(p_75083_0_, p_75083_2_, p_75083_3_, p_75083_4_, p_75083_5_, p_75083_6_, p_75083_7_, p_75083_8_);
object = ComponentVillageHouse3.func_74921_a(p_75083_0_, p_75083_2_, p_75083_3_, p_75083_4_, p_75083_5_, p_75083_6_, p_75083_7_, p_75083_8_);
+ }
+ else
+ {
+ var10 = VillagerRegistry.getVillageComponent(p_75083_1_, p_75083_0_ , p_75083_2_, p_75083_3_, p_75083_4_, p_75083_5_, p_75083_6_, p_75083_7_, p_75083_8_);
+ object = VillagerRegistry.getVillageComponent(p_75083_1_, p_75083_0_ , p_75083_2_, p_75083_3_, p_75083_4_, p_75083_5_, p_75083_6_, p_75083_7_, p_75083_8_);
}
return (ComponentVillage)var10;
return (ComponentVillage)object;
@@ -10,57 +10,57 @@
import net.minecraft.nbt.CompressedStreamTools;
import net.minecraft.nbt.NBTTagCompound;
@@ -104,16 +106,24 @@
NBTTagCompound var2;
NBTTagCompound var3;
NBTTagCompound nbttagcompound;
NBTTagCompound nbttagcompound1;
+ WorldInfo worldInfo = null;
+
if (var1.exists())
if (file1.exists())
{
try
{
var2 = CompressedStreamTools.func_74796_a(new FileInputStream(var1));
var3 = var2.func_74775_l("Data");
- return new WorldInfo(var3);
+ worldInfo = new WorldInfo(var3);
+ FMLCommonHandler.instance().handleWorldDataLoad(this, worldInfo, var2);
nbttagcompound = CompressedStreamTools.func_74796_a(new FileInputStream(file1));
nbttagcompound1 = nbttagcompound.func_74775_l("Data");
- return new WorldInfo(nbttagcompound1);
+ worldInfo = new WorldInfo(nbttagcompound1);
+ FMLCommonHandler.instance().handleWorldDataLoad(this, worldInfo, nbttagcompound);
+ return worldInfo;
}
catch (Exception var5)
catch (Exception exception)
{
+ if (FMLCommonHandler.instance().shouldServerBeKilledQuietly())
+ {
+ throw (RuntimeException)var5;
+ throw (RuntimeException)exception;
+ }
var5.printStackTrace();
exception.printStackTrace();
}
}
@@ -126,7 +136,9 @@
{
var2 = CompressedStreamTools.func_74796_a(new FileInputStream(var1));
var3 = var2.func_74775_l("Data");
- return new WorldInfo(var3);
+ worldInfo = new WorldInfo(var3);
+ FMLCommonHandler.instance().handleWorldDataLoad(this, worldInfo, var2);
nbttagcompound = CompressedStreamTools.func_74796_a(new FileInputStream(file1));
nbttagcompound1 = nbttagcompound.func_74775_l("Data");
- return new WorldInfo(nbttagcompound1);
+ worldInfo = new WorldInfo(nbttagcompound1);
+ FMLCommonHandler.instance().handleWorldDataLoad(this, worldInfo, nbttagcompound);
+ return worldInfo;
}
catch (Exception var4)
catch (Exception exception1)
{
@@ -142,6 +154,8 @@
NBTTagCompound var3 = p_75755_1_.func_76082_a(p_75755_2_);
NBTTagCompound var4 = new NBTTagCompound();
var4.func_74782_a("Data", var3);
NBTTagCompound nbttagcompound1 = p_75755_1_.func_76082_a(p_75755_2_);
NBTTagCompound nbttagcompound2 = new NBTTagCompound();
nbttagcompound2.func_74782_a("Data", nbttagcompound1);
+
+ FMLCommonHandler.instance().handleWorldDataSave(this, p_75755_1_, var4);
+ FMLCommonHandler.instance().handleWorldDataSave(this, p_75755_1_, nbttagcompound2);
try
{
@@ -180,6 +194,8 @@
NBTTagCompound var2 = p_75761_1_.func_76066_a();
NBTTagCompound var3 = new NBTTagCompound();
var3.func_74782_a("Data", var2);
NBTTagCompound nbttagcompound = p_75761_1_.func_76066_a();
NBTTagCompound nbttagcompound1 = new NBTTagCompound();
nbttagcompound1.func_74782_a("Data", nbttagcompound);
+
+ FMLCommonHandler.instance().handleWorldDataSave(this, p_75761_1_, var3);
+ FMLCommonHandler.instance().handleWorldDataSave(this, p_75761_1_, nbttagcompound1);
try
{