diff --git a/fml/.gitignore b/fml/.gitignore
index b93239b71..78b733de9 100644
--- a/fml/.gitignore
+++ b/fml/.gitignore
@@ -11,3 +11,4 @@ fmlbranding.properties
/mcp*.zip
/mcp
/eclipse
+/deobfuscation_data*.zip
diff --git a/fml/LICENSE-fml.txt b/fml/LICENSE-fml.txt
index 953d42555..b21cc8dca 100644
--- a/fml/LICENSE-fml.txt
+++ b/fml/LICENSE-fml.txt
@@ -15,6 +15,10 @@ from them. The license to MCP data is not transitive - distribution of this data
third parties requires independent licensing from the MCP team. This data is not
redistributable without permission from the MCP team.
+=== Sharing ===
+License is granted to redistribute the ASM transformer code (common/cpw/mods/fml/common/asm/ and subdirectories)
+under any alternative open source license as classified by the OSI (http://opensource.org/licenses)
+
========
GNU LESSER GENERAL PUBLIC LICENSE
diff --git a/fml/build.xml b/fml/build.xml
index 2ab5dd036..6997aca9c 100644
--- a/fml/build.xml
+++ b/fml/build.xml
@@ -16,6 +16,7 @@
+
@@ -203,7 +204,24 @@
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/fml/client/cpw/mods/fml/client/CustomModLoadingErrorDisplayException.java b/fml/client/cpw/mods/fml/client/CustomModLoadingErrorDisplayException.java
index a2ad27f88..078780c77 100644
--- a/fml/client/cpw/mods/fml/client/CustomModLoadingErrorDisplayException.java
+++ b/fml/client/cpw/mods/fml/client/CustomModLoadingErrorDisplayException.java
@@ -1,3 +1,15 @@
+/*
+ * Forge Mod Loader
+ * Copyright (c) 2012-2013 cpw.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the GNU Lesser Public License v2.1
+ * which accompanies this distribution, and is available at
+ * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
+ *
+ * Contributors:
+ * cpw - implementation
+ */
+
package cpw.mods.fml.client;
import net.minecraft.client.gui.FontRenderer;
diff --git a/fml/client/cpw/mods/fml/client/FMLClientHandler.java b/fml/client/cpw/mods/fml/client/FMLClientHandler.java
index 368f89553..8796c2e43 100644
--- a/fml/client/cpw/mods/fml/client/FMLClientHandler.java
+++ b/fml/client/cpw/mods/fml/client/FMLClientHandler.java
@@ -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,9 @@ public class FMLClientHandler implements IFMLSidedHandler
}
else
{
- TextureFXManager.instance().loadTextures(client.field_71418_C.func_77292_e());
+ // Force renderengine to reload and re-initialize all textures
+ client.field_71446_o.func_78352_b();
+// TextureFXManager.instance().loadTextures(client.field_71418_C.func_77292_e());
}
}
/**
diff --git a/fml/client/cpw/mods/fml/client/FMLTextureFX.java b/fml/client/cpw/mods/fml/client/FMLTextureFX.java
deleted file mode 100644
index d31ee54fa..000000000
--- a/fml/client/cpw/mods/fml/client/FMLTextureFX.java
+++ /dev/null
@@ -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 effects)
- {
- effects.remove(this);
- return true;
- }
-}
diff --git a/fml/client/cpw/mods/fml/client/GuiCustomModLoadingErrorScreen.java b/fml/client/cpw/mods/fml/client/GuiCustomModLoadingErrorScreen.java
index 9893ad6dd..8212e0425 100644
--- a/fml/client/cpw/mods/fml/client/GuiCustomModLoadingErrorScreen.java
+++ b/fml/client/cpw/mods/fml/client/GuiCustomModLoadingErrorScreen.java
@@ -1,3 +1,15 @@
+/*
+ * Forge Mod Loader
+ * Copyright (c) 2012-2013 cpw.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the GNU Lesser Public License v2.1
+ * which accompanies this distribution, and is available at
+ * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
+ *
+ * Contributors:
+ * cpw - implementation
+ */
+
package cpw.mods.fml.client;
import net.minecraft.client.gui.GuiErrorScreen;
diff --git a/fml/client/cpw/mods/fml/client/GuiDupesFound.java b/fml/client/cpw/mods/fml/client/GuiDupesFound.java
index 9cc3ab4ed..7345bc76f 100644
--- a/fml/client/cpw/mods/fml/client/GuiDupesFound.java
+++ b/fml/client/cpw/mods/fml/client/GuiDupesFound.java
@@ -1,3 +1,15 @@
+/*
+ * Forge Mod Loader
+ * Copyright (c) 2012-2013 cpw.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the GNU Lesser Public License v2.1
+ * which accompanies this distribution, and is available at
+ * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
+ *
+ * Contributors:
+ * cpw - implementation
+ */
+
package cpw.mods.fml.client;
import java.io.File;
diff --git a/fml/client/cpw/mods/fml/client/GuiIdMismatchScreen.java b/fml/client/cpw/mods/fml/client/GuiIdMismatchScreen.java
index f625faeab..bc37772fb 100644
--- a/fml/client/cpw/mods/fml/client/GuiIdMismatchScreen.java
+++ b/fml/client/cpw/mods/fml/client/GuiIdMismatchScreen.java
@@ -1,3 +1,15 @@
+/*
+ * Forge Mod Loader
+ * Copyright (c) 2012-2013 cpw.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the GNU Lesser Public License v2.1
+ * which accompanies this distribution, and is available at
+ * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
+ *
+ * Contributors:
+ * cpw - implementation
+ */
+
package cpw.mods.fml.client;
import java.util.List;
diff --git a/fml/client/cpw/mods/fml/client/GuiModList.java b/fml/client/cpw/mods/fml/client/GuiModList.java
index 8e0ee720b..093a00d11 100644
--- a/fml/client/cpw/mods/fml/client/GuiModList.java
+++ b/fml/client/cpw/mods/fml/client/GuiModList.java
@@ -102,7 +102,7 @@ public class GuiModList extends GuiScreen
public int drawLine(String line, int offset, int shifty)
{
- this.field_73886_k.func_78276_b(line, offset, shifty, 0xd7edea);
+ int r = this.field_73886_k.func_78276_b(line, offset, shifty, 0xd7edea);
return shifty + 10;
}
@@ -116,12 +116,21 @@ public class GuiModList extends GuiScreen
GL11.glEnable(GL11.GL_BLEND);
if (!selectedMod.getMetadata().autogenerated) {
int shifty = 35;
- if (!selectedMod.getMetadata().logoFile.isEmpty())
+ String logoFile = selectedMod.getMetadata().logoFile;
+ if (!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);
+ this.field_73882_e.field_71446_o.func_98187_b(logoFile);
+ Dimension dim = TextureFXManager.instance().getTextureDimensions(logoFile);
+ double scaleX = dim.width / 200.0;
+ double scaleY = dim.height / 65.0;
+ double scale = 1.0;
+ if (scaleX > 1 || scaleY > 1)
+ {
+ scale = 1.0 / Math.max(scaleX, scaleY);
+ }
+ dim.width *= scale;
+ dim.height *= scale;
int top = 32;
Tessellator tess = Tessellator.field_78398_a;
tess.func_78382_b();
@@ -144,7 +153,11 @@ public class GuiModList extends GuiScreen
shifty = drawLine(String.format("Authors: %s", selectedMod.getMetadata().getAuthorList()), offset, shifty);
shifty = drawLine(String.format("URL: %s", selectedMod.getMetadata().url), offset, shifty);
shifty = drawLine(selectedMod.getMetadata().childMods.isEmpty() ? "No child mods for this mod" : String.format("Child mods: %s", selectedMod.getMetadata().getChildModList()), offset, shifty);
- this.getFontRenderer().func_78279_b(selectedMod.getMetadata().description, offset, shifty + 10, this.field_73880_f - offset - 20, 0xDDDDDD);
+ int rightSide = this.field_73880_f - offset - 20;
+ if (rightSide > 20)
+ {
+ this.getFontRenderer().func_78279_b(selectedMod.getMetadata().description, offset, shifty + 10, rightSide, 0xDDDDDD);
+ }
} else {
offset = ( this.listWidth + this.field_73880_f ) / 2;
this.func_73732_a(this.field_73886_k, selectedMod.getName(), offset, 35, 0xFFFFFF);
diff --git a/fml/client/cpw/mods/fml/client/GuiModsMissing.java b/fml/client/cpw/mods/fml/client/GuiModsMissing.java
index 0670e9463..9a17b8ad7 100644
--- a/fml/client/cpw/mods/fml/client/GuiModsMissing.java
+++ b/fml/client/cpw/mods/fml/client/GuiModsMissing.java
@@ -1,3 +1,15 @@
+/*
+ * Forge Mod Loader
+ * Copyright (c) 2012-2013 cpw.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the GNU Lesser Public License v2.1
+ * which accompanies this distribution, and is available at
+ * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
+ *
+ * Contributors:
+ * cpw - implementation
+ */
+
package cpw.mods.fml.client;
import net.minecraft.client.gui.GuiErrorScreen;
diff --git a/fml/client/cpw/mods/fml/client/GuiModsMissingForServer.java b/fml/client/cpw/mods/fml/client/GuiModsMissingForServer.java
index f7ef9662e..88f0fa96c 100644
--- a/fml/client/cpw/mods/fml/client/GuiModsMissingForServer.java
+++ b/fml/client/cpw/mods/fml/client/GuiModsMissingForServer.java
@@ -1,3 +1,15 @@
+/*
+ * Forge Mod Loader
+ * Copyright (c) 2012-2013 cpw.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the GNU Lesser Public License v2.1
+ * which accompanies this distribution, and is available at
+ * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
+ *
+ * Contributors:
+ * cpw - implementation
+ */
+
package cpw.mods.fml.client;
import net.minecraft.client.gui.GuiButton;
diff --git a/fml/client/cpw/mods/fml/client/GuiScrollingList.java b/fml/client/cpw/mods/fml/client/GuiScrollingList.java
index f45b276c3..6c758cffc 100644
--- a/fml/client/cpw/mods/fml/client/GuiScrollingList.java
+++ b/fml/client/cpw/mods/fml/client/GuiScrollingList.java
@@ -1,3 +1,15 @@
+/*
+ * Forge Mod Loader
+ * Copyright (c) 2012-2013 cpw.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the GNU Lesser Public License v2.1
+ * which accompanies this distribution, and is available at
+ * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
+ *
+ * Contributors:
+ * cpw - implementation
+ */
+
package cpw.mods.fml.client;
import java.util.List;
@@ -252,7 +264,7 @@ public abstract class GuiScrollingList
GL11.glDisable(GL11.GL_LIGHTING);
GL11.glDisable(GL11.GL_FOG);
Tessellator var18 = Tessellator.field_78398_a;
- GL11.glBindTexture(GL11.GL_TEXTURE_2D, this.client.field_71446_o.func_78341_b("/gui/background.png"));
+ this.client.field_71446_o.func_98187_b("/gui/background.png");
GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
float var17 = 32.0F;
var18.func_78382_b();
@@ -385,7 +397,7 @@ public abstract class GuiScrollingList
private void overlayBackground(int p_22239_1_, int p_22239_2_, int p_22239_3_, int p_22239_4_)
{
Tessellator var5 = Tessellator.field_78398_a;
- GL11.glBindTexture(GL11.GL_TEXTURE_2D, this.client.field_71446_o.func_78341_b("/gui/background.png"));
+ this.client.field_71446_o.func_98187_b("/gui/background.png");
GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
float var6 = 32.0F;
var5.func_78382_b();
diff --git a/fml/client/cpw/mods/fml/client/GuiSlotModList.java b/fml/client/cpw/mods/fml/client/GuiSlotModList.java
index 42afe1c05..f5e21d79c 100644
--- a/fml/client/cpw/mods/fml/client/GuiSlotModList.java
+++ b/fml/client/cpw/mods/fml/client/GuiSlotModList.java
@@ -1,15 +1,13 @@
/*
- * 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
+ * Forge Mod Loader
+ * Copyright (c) 2012-2013 cpw.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the GNU Lesser Public License v2.1
+ * which accompanies this distribution, and is available at
+ * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
+ *
+ * Contributors:
+ * cpw - implementation
*/
package cpw.mods.fml.client;
diff --git a/fml/client/cpw/mods/fml/client/GuiWrongMinecraft.java b/fml/client/cpw/mods/fml/client/GuiWrongMinecraft.java
index 986729f42..ff20808cc 100644
--- a/fml/client/cpw/mods/fml/client/GuiWrongMinecraft.java
+++ b/fml/client/cpw/mods/fml/client/GuiWrongMinecraft.java
@@ -1,3 +1,15 @@
+/*
+ * Forge Mod Loader
+ * Copyright (c) 2012-2013 cpw.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the GNU Lesser Public License v2.1
+ * which accompanies this distribution, and is available at
+ * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
+ *
+ * Contributors:
+ * cpw - implementation
+ */
+
package cpw.mods.fml.client;
import net.minecraft.client.gui.GuiErrorScreen;
diff --git a/fml/client/cpw/mods/fml/client/ITextureFX.java b/fml/client/cpw/mods/fml/client/ITextureFX.java
index 0dca2852e..41692b1a5 100644
--- a/fml/client/cpw/mods/fml/client/ITextureFX.java
+++ b/fml/client/cpw/mods/fml/client/ITextureFX.java
@@ -1,15 +1,13 @@
/*
- * 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
+ * Forge Mod Loader
+ * Copyright (c) 2012-2013 cpw.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the GNU Lesser Public License v2.1
+ * which accompanies this distribution, and is available at
+ * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
+ *
+ * Contributors:
+ * cpw - implementation
*/
package cpw.mods.fml.client;
diff --git a/fml/client/cpw/mods/fml/client/OverrideInfo.java b/fml/client/cpw/mods/fml/client/OverrideInfo.java
deleted file mode 100644
index f0d6fe2a1..000000000
--- a/fml/client/cpw/mods/fml/client/OverrideInfo.java
+++ /dev/null
@@ -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;
- }
-}
\ No newline at end of file
diff --git a/fml/client/cpw/mods/fml/client/SpriteHelper.java b/fml/client/cpw/mods/fml/client/SpriteHelper.java
deleted file mode 100644
index 637fcd814..000000000
--- a/fml/client/cpw/mods/fml/client/SpriteHelper.java
+++ /dev/null
@@ -1,138 +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.util.BitSet;
-import java.util.HashMap;
-import java.util.logging.Level;
-
-import cpw.mods.fml.common.FMLCommonHandler;
-import cpw.mods.fml.common.FMLLog;
-
-/**
- * @author cpw
- *
- */
-public class SpriteHelper
-{
- private static HashMap spriteInfo = new HashMap();
-
- private static void initMCSpriteMaps() {
- BitSet slots =
- SpriteHelper.toBitSet(
- "0000000000000000" +
- "0000000000110000" +
- "0000000000100000" +
- "0000000001100000" +
- "0000000000000000" +
- "0000000000000000" +
- "0000000000000000" +
- "0000000000000000" +
- "0000000000000000" +
- "0000000000000000" +
- "0000000000000000" +
- "0000000000011111" +
- "0000000000000000" +
- "0000000001111100" +
- "0000000001111000" +
- "0000000000000000");
- spriteInfo.put("/terrain.png", slots);
-
- slots = SpriteHelper.toBitSet(
- "0000000000000000" +
- "0000000000000000" +
- "0000000000000000" +
- "0000000000000000" +
- "0000000000000000" +
- "0000000000000000" +
- "0000000000000000" +
- "0000000000000000" +
- "0000000000000000" +
- "0111110000000000" +
- "0111111010000000" +
- "0111111110000000" +
- "0111111110001000" +
- "1111111111111111" +
- "0000011111111111" +
- "0000000000000000");
- spriteInfo.put("/gui/items.png", slots);
- }
- /**
- * Register a sprite map for ModTextureStatic, to allow for other mods to override
- * your sprite page.
- *
- *
- */
- public static void registerSpriteMapForFile(String file, String spriteMap) {
- if (spriteInfo.size() == 0) {
- initMCSpriteMaps();
- }
- if (spriteInfo.containsKey(file)) {
- FMLLog.log("fml.TextureManager", Level.FINE, "Duplicate attempt to register a sprite file %s for overriding -- ignoring",file);
- return;
- }
- spriteInfo.put(file, toBitSet(spriteMap));
- }
-
- public static int getUniqueSpriteIndex(String path)
- {
- if (!spriteInfo.containsKey("/terrain.png"))
- {
- initMCSpriteMaps();
- }
-
- BitSet slots = spriteInfo.get(path);
-
- if (slots == null)
- {
- Exception ex = new Exception(String.format("Invalid getUniqueSpriteIndex call for texture: %s", path));
- FMLLog.log("fml.TextureManager", Level.SEVERE, ex, "A critical error has been detected with sprite overrides");
- FMLCommonHandler.instance().raiseException(ex,"Invalid request to getUniqueSpriteIndex",true);
- }
-
- int ret = getFreeSlot(slots);
-
- if (ret == -1)
- {
- Exception ex = new Exception(String.format("No more sprite indicies left for: %s", path));
- FMLLog.log("fml.TextureManager", Level.SEVERE, ex, "There are no sprite indicies left for %s", path);
- FMLCommonHandler.instance().raiseException(ex,"No more sprite indicies left", true);
- }
- return ret;
- }
-
- public static BitSet toBitSet(String data)
- {
- BitSet ret = new BitSet(data.length());
- for (int x = 0; x < data.length(); x++)
- {
- ret.set(x, data.charAt(x) == '1');
- }
- return ret;
- }
-
- public static int getFreeSlot(BitSet slots)
- {
- int next=slots.nextSetBit(0);
- slots.clear(next);
- return next;
- }
-
- public static int freeSlotCount(String textureToOverride)
- {
- return spriteInfo.get(textureToOverride).cardinality();
- }
-
-}
diff --git a/fml/client/cpw/mods/fml/client/TextureFXManager.java b/fml/client/cpw/mods/fml/client/TextureFXManager.java
index aee69376d..0a6448945 100644
--- a/fml/client/cpw/mods/fml/client/TextureFXManager.java
+++ b/fml/client/cpw/mods/fml/client/TextureFXManager.java
@@ -1,303 +1,43 @@
-package cpw.mods.fml.client;
+/*
+ * Forge Mod Loader
+ * Copyright (c) 2012-2013 cpw.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the GNU Lesser Public License v2.1
+ * which accompanies this distribution, and is available at
+ * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
+ *
+ * Contributors:
+ * cpw - implementation
+ */
-import static org.lwjgl.opengl.GL11.GL_TEXTURE_2D;
-import static org.lwjgl.opengl.GL11.GL_TEXTURE_BINDING_2D;
+package cpw.mods.fml.client;
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 java.util.logging.Level;
import javax.imageio.ImageIO;
+import com.google.common.collect.Maps;
+
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 textureProperties = Maps.newHashMap();
- private Multimap overrideInfo = ArrayListMultimap.create();
- private HashSet animationSet = new HashSet();
-
- private List addedTextureFX = new ArrayList();
-
private Minecraft client;
+ private Map texturesById = Maps.newHashMap();
+ private Map texturesByName = Maps.newHashMap();
+
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.log("fml.TextureManager", Level.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.log("fml.TextureManager", Level.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 effects)
- {
- pruneOldTextureFX(texturepack, effects);
-
- for (TextureFX tex : effects)
- {
- if (tex instanceof ITextureFX)
- {
- ((ITextureFX)tex).onTexturePackChanged(engine, texturepack, getTextureDimensions(tex));
- }
- }
-
- loadTextures(texturepack);
- }
-
- private HashMap textureDims = new HashMap();
- private IdentityHashMap effectTextures = new IdentityHashMap();
- private ITexturePack earlyTexturePack;
- public void setTextureDimensions(int id, int width, int height, List 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);
- FMLLog.log("fml.TextureManager", Level.FINE, "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);
- FMLLog.log("fml.TextureManager", Level.FINE, "Registered texture override %d (%d) on %s (%d)", override.index, mts.field_76850_b, override.texture, mts.field_76847_f);
- }
- catch (IOException e)
- {
- FMLLog.log("fml.TextureManager", Level.WARNING, e, "Exception occurred registering texture override for %s", fileToOverride);
- }
- }
- }
- }
-
- 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 effects)
- {
- ListIterator 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.log("fml.TextureManager", Level.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);
@@ -331,5 +71,35 @@ public class TextureFXManager
}
}
}
+ public void bindTextureToName(String name, int index)
+ {
+ TextureHolder holder = new TextureHolder();
+ holder.textureId = index;
+ holder.textureName = name;
+ texturesById.put(index,holder);
+ texturesByName.put(name,holder);
+ }
+ public void setTextureDimensions(int index, int j, int k)
+ {
+ TextureHolder holder = texturesById.get(index);
+ if (holder == null)
+ {
+ return;
+ }
+ holder.x = j;
+ holder.y = k;
+ }
+
+ private class TextureHolder {
+ private int textureId;
+ private String textureName;
+ private int x;
+ private int y;
+ }
+
+ public Dimension getTextureDimensions(String texture)
+ {
+ return texturesByName.containsKey(texture) ? new Dimension(texturesByName.get(texture).x, texturesByName.get(texture).y) : new Dimension(1,1);
+ }
}
diff --git a/fml/client/cpw/mods/fml/client/modloader/ModLoaderBlockRendererHandler.java b/fml/client/cpw/mods/fml/client/modloader/ModLoaderBlockRendererHandler.java
index 83313a457..c6acea43c 100644
--- a/fml/client/cpw/mods/fml/client/modloader/ModLoaderBlockRendererHandler.java
+++ b/fml/client/cpw/mods/fml/client/modloader/ModLoaderBlockRendererHandler.java
@@ -1,15 +1,13 @@
/*
- * 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
+ * Forge Mod Loader
+ * Copyright (c) 2012-2013 cpw.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the GNU Lesser Public License v2.1
+ * which accompanies this distribution, and is available at
+ * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
+ *
+ * Contributors:
+ * cpw - implementation
*/
package cpw.mods.fml.client.modloader;
diff --git a/fml/client/cpw/mods/fml/client/modloader/ModLoaderClientHelper.java b/fml/client/cpw/mods/fml/client/modloader/ModLoaderClientHelper.java
index 4d3016653..05e49c186 100644
--- a/fml/client/cpw/mods/fml/client/modloader/ModLoaderClientHelper.java
+++ b/fml/client/cpw/mods/fml/client/modloader/ModLoaderClientHelper.java
@@ -1,3 +1,15 @@
+/*
+ * Forge Mod Loader
+ * Copyright (c) 2012-2013 cpw.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the GNU Lesser Public License v2.1
+ * which accompanies this distribution, and is available at
+ * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
+ *
+ * Contributors:
+ * cpw - implementation
+ */
+
package cpw.mods.fml.client.modloader;
import java.util.Collection;
@@ -20,7 +32,7 @@ import net.minecraft.client.settings.KeyBinding;
import net.minecraft.entity.Entity;
import net.minecraft.entity.player.EntityPlayer;
-import com.google.common.base.Equivalences;
+import com.google.common.base.Equivalence;
import com.google.common.base.Supplier;
import com.google.common.base.Suppliers;
import com.google.common.collect.Iterables;
@@ -73,7 +85,7 @@ public class ModLoaderClientHelper implements IModLoaderSidedHelper
FMLLog.log(mc.getModId(), Level.SEVERE, e, "A severe problem was detected with the mod %s during the addRenderer call. Continuing, but expect odd results", mc.getModId());
}
- MapDifference, Render> difference = Maps.difference(RenderManager.field_78727_a.field_78729_o, renderers, Equivalences.identity());
+ MapDifference, Render> difference = Maps.difference(RenderManager.field_78727_a.field_78729_o, renderers, Equivalence.identity());
for ( Entry, Render> e : difference.entriesOnlyOnLeft().entrySet())
{
diff --git a/fml/client/cpw/mods/fml/client/modloader/ModLoaderKeyBindingHandler.java b/fml/client/cpw/mods/fml/client/modloader/ModLoaderKeyBindingHandler.java
index 84c2fb0df..a0fff7e3f 100644
--- a/fml/client/cpw/mods/fml/client/modloader/ModLoaderKeyBindingHandler.java
+++ b/fml/client/cpw/mods/fml/client/modloader/ModLoaderKeyBindingHandler.java
@@ -1,15 +1,13 @@
/*
- * 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
+ * Forge Mod Loader
+ * Copyright (c) 2012-2013 cpw.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the GNU Lesser Public License v2.1
+ * which accompanies this distribution, and is available at
+ * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
+ *
+ * Contributors:
+ * cpw - implementation
*/
package cpw.mods.fml.client.modloader;
diff --git a/fml/client/cpw/mods/fml/client/registry/ClientRegistry.java b/fml/client/cpw/mods/fml/client/registry/ClientRegistry.java
index 3ac6153bd..0316952a4 100644
--- a/fml/client/cpw/mods/fml/client/registry/ClientRegistry.java
+++ b/fml/client/cpw/mods/fml/client/registry/ClientRegistry.java
@@ -1,3 +1,15 @@
+/*
+ * Forge Mod Loader
+ * Copyright (c) 2012-2013 cpw.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the GNU Lesser Public License v2.1
+ * which accompanies this distribution, and is available at
+ * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
+ *
+ * Contributors:
+ * cpw - implementation
+ */
+
package cpw.mods.fml.client.registry;
import cpw.mods.fml.common.registry.GameRegistry;
diff --git a/fml/client/cpw/mods/fml/client/registry/ISimpleBlockRenderingHandler.java b/fml/client/cpw/mods/fml/client/registry/ISimpleBlockRenderingHandler.java
index d8e76d21f..ebb6927b5 100644
--- a/fml/client/cpw/mods/fml/client/registry/ISimpleBlockRenderingHandler.java
+++ b/fml/client/cpw/mods/fml/client/registry/ISimpleBlockRenderingHandler.java
@@ -1,3 +1,15 @@
+/*
+ * Forge Mod Loader
+ * Copyright (c) 2012-2013 cpw.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the GNU Lesser Public License v2.1
+ * which accompanies this distribution, and is available at
+ * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
+ *
+ * Contributors:
+ * cpw - implementation
+ */
+
package cpw.mods.fml.client.registry;
import net.minecraft.block.Block;
diff --git a/fml/client/cpw/mods/fml/client/registry/KeyBindingRegistry.java b/fml/client/cpw/mods/fml/client/registry/KeyBindingRegistry.java
index 91732a626..a3fb6a4ae 100644
--- a/fml/client/cpw/mods/fml/client/registry/KeyBindingRegistry.java
+++ b/fml/client/cpw/mods/fml/client/registry/KeyBindingRegistry.java
@@ -1,3 +1,15 @@
+/*
+ * Forge Mod Loader
+ * Copyright (c) 2012-2013 cpw.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the GNU Lesser Public License v2.1
+ * which accompanies this distribution, and is available at
+ * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
+ *
+ * Contributors:
+ * cpw - implementation
+ */
+
package cpw.mods.fml.client.registry;
import java.util.ArrayList;
diff --git a/fml/client/cpw/mods/fml/client/registry/RenderingRegistry.java b/fml/client/cpw/mods/fml/client/registry/RenderingRegistry.java
index 240aa4770..df146a1ed 100644
--- a/fml/client/cpw/mods/fml/client/registry/RenderingRegistry.java
+++ b/fml/client/cpw/mods/fml/client/registry/RenderingRegistry.java
@@ -1,3 +1,15 @@
+/*
+ * Forge Mod Loader
+ * Copyright (c) 2012-2013 cpw.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the GNU Lesser Public License v2.1
+ * which accompanies this distribution, and is available at
+ * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
+ *
+ * Contributors:
+ * cpw - implementation
+ */
+
package cpw.mods.fml.client.registry;
import java.util.List;
@@ -13,7 +25,6 @@ import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
import com.google.common.collect.ObjectArrays;
-import cpw.mods.fml.client.SpriteHelper;
import cpw.mods.fml.client.TextureFXManager;
/**
@@ -24,7 +35,7 @@ public class RenderingRegistry
{
private static final RenderingRegistry INSTANCE = new RenderingRegistry();
- private int nextRenderId = 36;
+ private int nextRenderId = 40;
private Map blockRenderers = Maps.newHashMap();
@@ -90,11 +101,10 @@ public class RenderingRegistry
* @param fileToOverride
* @param fileToAdd
*/
+ @Deprecated
public static int addTextureOverride(String fileToOverride, String fileToAdd)
{
- int idx = SpriteHelper.getUniqueSpriteIndex(fileToOverride);
- addTextureOverride(fileToOverride, fileToAdd, idx);
- return idx;
+ return -1;
}
/**
@@ -106,7 +116,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);
}
/**
@@ -114,9 +124,10 @@ public class RenderingRegistry
*
* @param path
*/
+ @Deprecated
public static int getUniqueTextureIndex(String path)
{
- return SpriteHelper.getUniqueSpriteIndex(path);
+ return -1;
}
@Deprecated public static RenderingRegistry instance()
diff --git a/fml/client/net/minecraft/src/EntityRendererProxy.java b/fml/client/net/minecraft/src/EntityRendererProxy.java
index 60532f9ab..4e39d351a 100644
--- a/fml/client/net/minecraft/src/EntityRendererProxy.java
+++ b/fml/client/net/minecraft/src/EntityRendererProxy.java
@@ -1,15 +1,13 @@
/*
- * 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
+ * Forge Mod Loader
+ * Copyright (c) 2012-2013 cpw.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the GNU Lesser Public License v2.1
+ * which accompanies this distribution, and is available at
+ * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
+ *
+ * Contributors:
+ * cpw - implementation
*/
package net.minecraft.src;
diff --git a/fml/client/net/minecraft/src/FMLRenderAccessLibrary.java b/fml/client/net/minecraft/src/FMLRenderAccessLibrary.java
index 18d715967..3e0b5fa0a 100644
--- a/fml/client/net/minecraft/src/FMLRenderAccessLibrary.java
+++ b/fml/client/net/minecraft/src/FMLRenderAccessLibrary.java
@@ -1,15 +1,13 @@
/*
- * 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
+ * Forge Mod Loader
+ * Copyright (c) 2012-2013 cpw.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the GNU Lesser Public License v2.1
+ * which accompanies this distribution, and is available at
+ * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
+ *
+ * Contributors:
+ * cpw - implementation
*/
package net.minecraft.src;
@@ -22,7 +20,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;
@@ -56,31 +53,6 @@ public class FMLRenderAccessLibrary
FMLLog.log(level, throwable, message);
}
- public static void setTextureDimensions(int textureId, int width, int height, List 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 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)
{
diff --git a/fml/client/net/minecraft/src/ModLoader.java b/fml/client/net/minecraft/src/ModLoader.java
index d440c9e6f..4bfced18c 100644
--- a/fml/client/net/minecraft/src/ModLoader.java
+++ b/fml/client/net/minecraft/src/ModLoader.java
@@ -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;
@@ -56,7 +55,6 @@ import net.minecraft.world.WorldType;
import net.minecraft.world.biome.BiomeGenBase;
import net.minecraft.world.chunk.IChunkProvider;
import cpw.mods.fml.client.FMLClientHandler;
-import cpw.mods.fml.client.SpriteHelper;
import cpw.mods.fml.client.TextureFXManager;
import cpw.mods.fml.client.modloader.ModLoaderClientHelper;
import cpw.mods.fml.client.modloader.ModLoaderKeyBindingHandler;
@@ -120,12 +118,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
*
@@ -230,6 +222,7 @@ public class ModLoader
* @param fileToAdd The new image
* @return The 'icon index' in the main image that the new image will be applied to
*/
+ @Deprecated
@SideOnly(CLIENT)
public static int addOverride(String fileToOverride, String fileToAdd)
{
@@ -525,10 +518,11 @@ public class ModLoader
return EntityRegistry.findGlobalUniqueEntityId();
}
+ @Deprecated
@SideOnly(CLIENT)
public static int getUniqueSpriteIndex(String path)
{
- return SpriteHelper.getUniqueSpriteIndex(path);
+ return -1;
}
/**
diff --git a/fml/client/net/minecraft/src/ModTextureAnimation.java b/fml/client/net/minecraft/src/ModTextureAnimation.java
deleted file mode 100644
index 8b6b870a6..000000000
--- a/fml/client/net/minecraft/src/ModTextureAnimation.java
+++ /dev/null
@@ -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();
- }
-
-}
diff --git a/fml/client/net/minecraft/src/ModTextureStatic.java b/fml/client/net/minecraft/src/ModTextureStatic.java
deleted file mode 100644
index 77d033ba1..000000000
--- a/fml/client/net/minecraft/src/ModTextureStatic.java
+++ /dev/null
@@ -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);
- }
-}
diff --git a/fml/client/net/minecraft/src/TradeEntry.java b/fml/client/net/minecraft/src/TradeEntry.java
index 8d8ef74a5..115622ea1 100644
--- a/fml/client/net/minecraft/src/TradeEntry.java
+++ b/fml/client/net/minecraft/src/TradeEntry.java
@@ -1,3 +1,15 @@
+/*
+ * Forge Mod Loader
+ * Copyright (c) 2012-2013 cpw.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the GNU Lesser Public License v2.1
+ * which accompanies this distribution, and is available at
+ * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
+ *
+ * Contributors:
+ * cpw - implementation
+ */
+
package net.minecraft.src;
/**
diff --git a/fml/common/cpw/mods/fml/common/BukkitPluginRef.java b/fml/common/cpw/mods/fml/common/BukkitPluginRef.java
index 6d97f7bb6..593aa564e 100644
--- a/fml/common/cpw/mods/fml/common/BukkitPluginRef.java
+++ b/fml/common/cpw/mods/fml/common/BukkitPluginRef.java
@@ -1,3 +1,15 @@
+/*
+ * Forge Mod Loader
+ * Copyright (c) 2012-2013 cpw.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the GNU Lesser Public License v2.1
+ * which accompanies this distribution, and is available at
+ * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
+ *
+ * Contributors:
+ * cpw - implementation
+ */
+
package cpw.mods.fml.common;
import java.lang.annotation.ElementType;
diff --git a/fml/common/cpw/mods/fml/common/BukkitProxy.java b/fml/common/cpw/mods/fml/common/BukkitProxy.java
index 19257da52..20f0b3cf1 100644
--- a/fml/common/cpw/mods/fml/common/BukkitProxy.java
+++ b/fml/common/cpw/mods/fml/common/BukkitProxy.java
@@ -1,3 +1,15 @@
+/*
+ * Forge Mod Loader
+ * Copyright (c) 2012-2013 cpw.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the GNU Lesser Public License v2.1
+ * which accompanies this distribution, and is available at
+ * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
+ *
+ * Contributors:
+ * cpw - implementation
+ */
+
package cpw.mods.fml.common;
/**
diff --git a/fml/common/cpw/mods/fml/common/CertificateHelper.java b/fml/common/cpw/mods/fml/common/CertificateHelper.java
index 886346c8b..1a1cee28f 100644
--- a/fml/common/cpw/mods/fml/common/CertificateHelper.java
+++ b/fml/common/cpw/mods/fml/common/CertificateHelper.java
@@ -1,3 +1,15 @@
+/*
+ * Forge Mod Loader
+ * Copyright (c) 2012-2013 cpw.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the GNU Lesser Public License v2.1
+ * which accompanies this distribution, and is available at
+ * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
+ *
+ * Contributors:
+ * cpw - implementation
+ */
+
package cpw.mods.fml.common;
import java.nio.ByteBuffer;
diff --git a/fml/common/cpw/mods/fml/common/DummyModContainer.java b/fml/common/cpw/mods/fml/common/DummyModContainer.java
index 61fca2445..5fc2fd807 100644
--- a/fml/common/cpw/mods/fml/common/DummyModContainer.java
+++ b/fml/common/cpw/mods/fml/common/DummyModContainer.java
@@ -1,3 +1,15 @@
+/*
+ * Forge Mod Loader
+ * Copyright (c) 2012-2013 cpw.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the GNU Lesser Public License v2.1
+ * which accompanies this distribution, and is available at
+ * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
+ *
+ * Contributors:
+ * cpw - implementation
+ */
+
package cpw.mods.fml.common;
import java.io.File;
diff --git a/fml/common/cpw/mods/fml/common/DuplicateModsFoundException.java b/fml/common/cpw/mods/fml/common/DuplicateModsFoundException.java
index a6105cdec..e2446771e 100644
--- a/fml/common/cpw/mods/fml/common/DuplicateModsFoundException.java
+++ b/fml/common/cpw/mods/fml/common/DuplicateModsFoundException.java
@@ -1,3 +1,15 @@
+/*
+ * Forge Mod Loader
+ * Copyright (c) 2012-2013 cpw.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the GNU Lesser Public License v2.1
+ * which accompanies this distribution, and is available at
+ * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
+ *
+ * Contributors:
+ * cpw - implementation
+ */
+
package cpw.mods.fml.common;
import java.io.File;
diff --git a/fml/common/cpw/mods/fml/common/FMLCommonHandler.java b/fml/common/cpw/mods/fml/common/FMLCommonHandler.java
index 43e6715c7..a8ba10c50 100644
--- a/fml/common/cpw/mods/fml/common/FMLCommonHandler.java
+++ b/fml/common/cpw/mods/fml/common/FMLCommonHandler.java
@@ -1,16 +1,15 @@
/*
- * 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
+ * Forge Mod Loader
+ * Copyright (c) 2012-2013 cpw.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the GNU Lesser Public License v2.1
+ * which accompanies this distribution, and is available at
+ * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
+ *
+ * Contributors:
+ * cpw - implementation
*/
+
package cpw.mods.fml.common;
import java.util.EnumSet;
@@ -31,7 +30,9 @@ import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.network.INetworkManager;
import net.minecraft.network.packet.NetHandler;
import net.minecraft.network.packet.Packet131MapData;
-import net.minecraft.server.*;
+import net.minecraft.server.MinecraftServer;
+import net.minecraft.server.ServerListenThread;
+import net.minecraft.server.ThreadMinecraftServer;
import net.minecraft.server.dedicated.DedicatedServer;
import net.minecraft.world.World;
import net.minecraft.world.storage.SaveHandler;
diff --git a/fml/common/cpw/mods/fml/common/FMLDummyContainer.java b/fml/common/cpw/mods/fml/common/FMLDummyContainer.java
index d9048d1e6..5d65e5178 100644
--- a/fml/common/cpw/mods/fml/common/FMLDummyContainer.java
+++ b/fml/common/cpw/mods/fml/common/FMLDummyContainer.java
@@ -1,15 +1,13 @@
/*
- * 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
+ * Forge Mod Loader
+ * Copyright (c) 2012-2013 cpw.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the GNU Lesser Public License v2.1
+ * which accompanies this distribution, and is available at
+ * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
+ *
+ * Contributors:
+ * cpw - implementation
*/
package cpw.mods.fml.common;
diff --git a/fml/common/cpw/mods/fml/common/FMLLog.java b/fml/common/cpw/mods/fml/common/FMLLog.java
index cf8dba8c5..4b583fd31 100644
--- a/fml/common/cpw/mods/fml/common/FMLLog.java
+++ b/fml/common/cpw/mods/fml/common/FMLLog.java
@@ -1,3 +1,15 @@
+/*
+ * Forge Mod Loader
+ * Copyright (c) 2012-2013 cpw.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the GNU Lesser Public License v2.1
+ * which accompanies this distribution, and is available at
+ * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
+ *
+ * Contributors:
+ * cpw - implementation
+ */
+
package cpw.mods.fml.common;
import java.util.logging.Level;
diff --git a/fml/common/cpw/mods/fml/common/FMLModContainer.java b/fml/common/cpw/mods/fml/common/FMLModContainer.java
index 7fe9565c4..8aac5129e 100644
--- a/fml/common/cpw/mods/fml/common/FMLModContainer.java
+++ b/fml/common/cpw/mods/fml/common/FMLModContainer.java
@@ -105,15 +105,43 @@ public class FMLModContainer implements ModContainer
private boolean fingerprintNotPresent;
private Set sourceFingerprints;
private Certificate certificate;
+ private String modLanguage;
+ private ILanguageAdapter languageAdapter;
+ public static interface ILanguageAdapter {
+ public Object getNewInstance(FMLModContainer container, Class> objectClass, ClassLoader classLoader) throws Exception;
+ }
+ public static class ScalaAdapter implements ILanguageAdapter {
+ @Override
+ public Object getNewInstance(FMLModContainer container, Class> scalaObjectClass, ClassLoader classLoader) throws Exception
+ {
+ System.out.println("Scala class : "+ scalaObjectClass);
+ Class> sObjectClass = Class.forName(scalaObjectClass.getName()+"$",true,classLoader);
+ return sObjectClass.getField("MODULE$").get(null);
+ }
+ }
+
+ public static class JavaAdapter implements ILanguageAdapter {
+ @Override
+ public Object getNewInstance(FMLModContainer container, Class> objectClass, ClassLoader classLoader) throws Exception
+ {
+ return objectClass.newInstance();
+ }
+ }
public FMLModContainer(String className, File modSource, Map modDescriptor)
{
this.className = className;
this.source = modSource;
this.descriptor = modDescriptor;
+ this.modLanguage = (String) modDescriptor.get("modLanguage");
+ this.languageAdapter = "scala".equals(modLanguage) ? new ScalaAdapter() : new JavaAdapter();
}
+ private ILanguageAdapter getLanguageAdapter()
+ {
+ return languageAdapter;
+ }
@Override
public String getModId()
{
@@ -456,7 +484,7 @@ public class FMLModContainer implements ModContainer
annotations = gatherAnnotations(clazz);
isNetworkMod = FMLNetworkHandler.instance().registerNetworkMod(this, clazz, event.getASMHarvestedData());
- modInstance = clazz.newInstance();
+ modInstance = getLanguageAdapter().getNewInstance(this,clazz, modClassLoader);
if (fingerprintNotPresent)
{
eventBus.post(new FMLFingerprintViolationEvent(source.isDirectory(), source, ImmutableSet.copyOf(this.sourceFingerprints), expectedFingerprint));
diff --git a/fml/common/cpw/mods/fml/common/IASMHook.java b/fml/common/cpw/mods/fml/common/IASMHook.java
new file mode 100644
index 000000000..f067ce5ff
--- /dev/null
+++ b/fml/common/cpw/mods/fml/common/IASMHook.java
@@ -0,0 +1,34 @@
+/*
+ * Forge Mod Loader
+ * Copyright (c) 2012-2013 cpw.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the GNU Lesser Public License v2.1
+ * which accompanies this distribution, and is available at
+ * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
+ *
+ * Contributors:
+ * cpw - implementation
+ */
+
+package cpw.mods.fml.common;
+
+import org.objectweb.asm.tree.ClassNode;
+
+public interface IASMHook {
+ /**
+ * Inject the {@link Mod} class node into this instance. This allows retrieval from custom
+ * attributes or other artifacts in your mod class
+ *
+ * @param modClassNode The mod class
+ * @return optionally some code generated classes that will be injected into the classloader
+ */
+ ClassNode[] inject(ClassNode modClassNode);
+ /**
+ * Allow mods to manipulate classes loaded from this {@link Mod}'s jar file. The {@link Mod}
+ * class is always guaranteed to be called first.
+ * The node state should be changed in place.
+ *
+ * @param node The class being loaded
+ */
+ void modifyClass(String className, ClassNode node);
+}
diff --git a/fml/common/cpw/mods/fml/common/IConsoleHandler.java b/fml/common/cpw/mods/fml/common/IConsoleHandler.java
index 5a5e1e08f..30b8fe408 100644
--- a/fml/common/cpw/mods/fml/common/IConsoleHandler.java
+++ b/fml/common/cpw/mods/fml/common/IConsoleHandler.java
@@ -1,15 +1,13 @@
/*
- * 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
+ * Forge Mod Loader
+ * Copyright (c) 2012-2013 cpw.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the GNU Lesser Public License v2.1
+ * which accompanies this distribution, and is available at
+ * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
+ *
+ * Contributors:
+ * cpw - implementation
*/
package cpw.mods.fml.common;
diff --git a/fml/common/cpw/mods/fml/common/ICraftingHandler.java b/fml/common/cpw/mods/fml/common/ICraftingHandler.java
index 03df7cc28..37a19ea80 100644
--- a/fml/common/cpw/mods/fml/common/ICraftingHandler.java
+++ b/fml/common/cpw/mods/fml/common/ICraftingHandler.java
@@ -1,16 +1,15 @@
/*
- * 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
+ * Forge Mod Loader
+ * Copyright (c) 2012-2013 cpw.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the GNU Lesser Public License v2.1
+ * which accompanies this distribution, and is available at
+ * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
+ *
+ * Contributors:
+ * cpw - implementation
*/
+
package cpw.mods.fml.common;
import net.minecraft.entity.player.EntityPlayer;
diff --git a/fml/common/cpw/mods/fml/common/ICrashCallable.java b/fml/common/cpw/mods/fml/common/ICrashCallable.java
index ecd0586e6..90b6cf66e 100644
--- a/fml/common/cpw/mods/fml/common/ICrashCallable.java
+++ b/fml/common/cpw/mods/fml/common/ICrashCallable.java
@@ -1,3 +1,15 @@
+/*
+ * Forge Mod Loader
+ * Copyright (c) 2012-2013 cpw.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the GNU Lesser Public License v2.1
+ * which accompanies this distribution, and is available at
+ * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
+ *
+ * Contributors:
+ * cpw - implementation
+ */
+
package cpw.mods.fml.common;
import java.util.concurrent.Callable;
diff --git a/fml/common/cpw/mods/fml/common/IDispenseHandler.java b/fml/common/cpw/mods/fml/common/IDispenseHandler.java
deleted file mode 100644
index 779488229..000000000
--- a/fml/common/cpw/mods/fml/common/IDispenseHandler.java
+++ /dev/null
@@ -1,48 +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.common;
-
-import java.util.Random;
-
-import net.minecraft.item.ItemStack;
-import net.minecraft.world.World;
-
-
-/**
- * Deprecated without replacement, use vanilla DispenserRegistry code
- *
- * @author cpw
- *
- */
-@Deprecated
-public interface IDispenseHandler
-{
- /**
- * Return -1 if you don't want to dispense anything. the other values seem to have specific meanings
- * to blockdispenser.
- *
- * @param x
- * @param y
- * @param z
- * @param xVelocity
- * @param zVelocity
- * @param world
- * @param item
- * @param random
- * @param entX
- * @param entY
- * @param entZ
- */
- @Deprecated
- int dispense(double x, double y, double z, int xVelocity, int zVelocity, World world, ItemStack item, Random random, double entX, double entY, double entZ);
-}
diff --git a/fml/common/cpw/mods/fml/common/IDispenserHandler.java b/fml/common/cpw/mods/fml/common/IDispenserHandler.java
deleted file mode 100644
index acbb407cf..000000000
--- a/fml/common/cpw/mods/fml/common/IDispenserHandler.java
+++ /dev/null
@@ -1,33 +0,0 @@
-package cpw.mods.fml.common;
-
-import java.util.Random;
-
-import net.minecraft.item.ItemStack;
-import net.minecraft.world.World;
-
-/**
- *
- * Deprecated without replacement. Use vanilla DispenserRegistry code.
- *
- * @author cpw
- *
- */
-@Deprecated
-public interface IDispenserHandler
-{
- /**
- * Called to dispense an entity
- * @param x
- * @param y
- * @param z
- * @param xVelocity
- * @param zVelocity
- * @param world
- * @param item
- * @param random
- * @param entX
- * @param entY
- * @param entZ
- */
- int dispense(int x, int y, int z, int xVelocity, int zVelocity, World world, ItemStack item, Random random, double entX, double entY, double entZ);
-}
diff --git a/fml/common/cpw/mods/fml/common/IFMLHandledException.java b/fml/common/cpw/mods/fml/common/IFMLHandledException.java
index a9f52bf3e..5fa3e6d1d 100644
--- a/fml/common/cpw/mods/fml/common/IFMLHandledException.java
+++ b/fml/common/cpw/mods/fml/common/IFMLHandledException.java
@@ -1,3 +1,15 @@
+/*
+ * Forge Mod Loader
+ * Copyright (c) 2012-2013 cpw.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the GNU Lesser Public License v2.1
+ * which accompanies this distribution, and is available at
+ * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
+ *
+ * Contributors:
+ * cpw - implementation
+ */
+
package cpw.mods.fml.common;
public interface IFMLHandledException
diff --git a/fml/common/cpw/mods/fml/common/IFMLSidedHandler.java b/fml/common/cpw/mods/fml/common/IFMLSidedHandler.java
index 9f57b03b2..2d7bcc9a5 100644
--- a/fml/common/cpw/mods/fml/common/IFMLSidedHandler.java
+++ b/fml/common/cpw/mods/fml/common/IFMLSidedHandler.java
@@ -1,3 +1,15 @@
+/*
+ * Forge Mod Loader
+ * Copyright (c) 2012-2013 cpw.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the GNU Lesser Public License v2.1
+ * which accompanies this distribution, and is available at
+ * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
+ *
+ * Contributors:
+ * cpw - implementation
+ */
+
package cpw.mods.fml.common;
import java.util.List;
diff --git a/fml/common/cpw/mods/fml/common/IFuelHandler.java b/fml/common/cpw/mods/fml/common/IFuelHandler.java
index 67e8a7f87..b37639c57 100644
--- a/fml/common/cpw/mods/fml/common/IFuelHandler.java
+++ b/fml/common/cpw/mods/fml/common/IFuelHandler.java
@@ -1,3 +1,15 @@
+/*
+ * Forge Mod Loader
+ * Copyright (c) 2012-2013 cpw.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the GNU Lesser Public License v2.1
+ * which accompanies this distribution, and is available at
+ * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
+ *
+ * Contributors:
+ * cpw - implementation
+ */
+
package cpw.mods.fml.common;
import net.minecraft.item.ItemStack;
@@ -5,4 +17,4 @@ import net.minecraft.item.ItemStack;
public interface IFuelHandler
{
int getBurnTime(ItemStack fuel);
-}
\ No newline at end of file
+}
diff --git a/fml/common/cpw/mods/fml/common/IPickupNotifier.java b/fml/common/cpw/mods/fml/common/IPickupNotifier.java
index ad4221bd5..c201c5192 100644
--- a/fml/common/cpw/mods/fml/common/IPickupNotifier.java
+++ b/fml/common/cpw/mods/fml/common/IPickupNotifier.java
@@ -1,16 +1,15 @@
/*
- * 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
+ * Forge Mod Loader
+ * Copyright (c) 2012-2013 cpw.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the GNU Lesser Public License v2.1
+ * which accompanies this distribution, and is available at
+ * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
+ *
+ * Contributors:
+ * cpw - implementation
*/
+
package cpw.mods.fml.common;
import net.minecraft.entity.item.EntityItem;
diff --git a/fml/common/cpw/mods/fml/common/IPlayerTracker.java b/fml/common/cpw/mods/fml/common/IPlayerTracker.java
index d38020788..d16590336 100644
--- a/fml/common/cpw/mods/fml/common/IPlayerTracker.java
+++ b/fml/common/cpw/mods/fml/common/IPlayerTracker.java
@@ -1,15 +1,13 @@
/*
- * 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
+ * Forge Mod Loader
+ * Copyright (c) 2012-2013 cpw.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the GNU Lesser Public License v2.1
+ * which accompanies this distribution, and is available at
+ * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
+ *
+ * Contributors:
+ * cpw - implementation
*/
package cpw.mods.fml.common;
diff --git a/fml/common/cpw/mods/fml/common/IScheduledTickHandler.java b/fml/common/cpw/mods/fml/common/IScheduledTickHandler.java
index 852ca1bc1..393d4a8cb 100644
--- a/fml/common/cpw/mods/fml/common/IScheduledTickHandler.java
+++ b/fml/common/cpw/mods/fml/common/IScheduledTickHandler.java
@@ -1,3 +1,15 @@
+/*
+ * Forge Mod Loader
+ * Copyright (c) 2012-2013 cpw.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the GNU Lesser Public License v2.1
+ * which accompanies this distribution, and is available at
+ * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
+ *
+ * Contributors:
+ * cpw - implementation
+ */
+
package cpw.mods.fml.common;
public interface IScheduledTickHandler extends ITickHandler
diff --git a/fml/common/cpw/mods/fml/common/ITickHandler.java b/fml/common/cpw/mods/fml/common/ITickHandler.java
index 7e145e634..0711f75ed 100644
--- a/fml/common/cpw/mods/fml/common/ITickHandler.java
+++ b/fml/common/cpw/mods/fml/common/ITickHandler.java
@@ -1,15 +1,13 @@
/*
- * 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
+ * Forge Mod Loader
+ * Copyright (c) 2012-2013 cpw.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the GNU Lesser Public License v2.1
+ * which accompanies this distribution, and is available at
+ * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
+ *
+ * Contributors:
+ * cpw - implementation
*/
package cpw.mods.fml.common;
diff --git a/fml/common/cpw/mods/fml/common/IWorldGenerator.java b/fml/common/cpw/mods/fml/common/IWorldGenerator.java
index 1520e550b..51f3c9807 100644
--- a/fml/common/cpw/mods/fml/common/IWorldGenerator.java
+++ b/fml/common/cpw/mods/fml/common/IWorldGenerator.java
@@ -1,16 +1,15 @@
/*
- * 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
+ * Forge Mod Loader
+ * Copyright (c) 2012-2013 cpw.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the GNU Lesser Public License v2.1
+ * which accompanies this distribution, and is available at
+ * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
+ *
+ * Contributors:
+ * cpw - implementation
*/
+
package cpw.mods.fml.common;
import java.util.Random;
diff --git a/fml/common/cpw/mods/fml/common/InjectedModContainer.java b/fml/common/cpw/mods/fml/common/InjectedModContainer.java
index 5c51028c0..bae961322 100644
--- a/fml/common/cpw/mods/fml/common/InjectedModContainer.java
+++ b/fml/common/cpw/mods/fml/common/InjectedModContainer.java
@@ -1,3 +1,15 @@
+/*
+ * Forge Mod Loader
+ * Copyright (c) 2012-2013 cpw.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the GNU Lesser Public License v2.1
+ * which accompanies this distribution, and is available at
+ * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
+ *
+ * Contributors:
+ * cpw - implementation
+ */
+
package cpw.mods.fml.common;
import java.io.File;
diff --git a/fml/common/cpw/mods/fml/common/LoadController.java b/fml/common/cpw/mods/fml/common/LoadController.java
index 6a8d5bab5..80e97e71b 100644
--- a/fml/common/cpw/mods/fml/common/LoadController.java
+++ b/fml/common/cpw/mods/fml/common/LoadController.java
@@ -1,3 +1,15 @@
+/*
+ * Forge Mod Loader
+ * Copyright (c) 2012-2013 cpw.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the GNU Lesser Public License v2.1
+ * which accompanies this distribution, and is available at
+ * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
+ *
+ * Contributors:
+ * cpw - implementation
+ */
+
package cpw.mods.fml.common;
import java.lang.reflect.InvocationTargetException;
@@ -250,4 +262,9 @@ public class LoadController
boolean hasReachedState(LoaderState state) {
return this.state.ordinal()>=state.ordinal() && this.state!=LoaderState.ERRORED;
}
+
+ void forceState(LoaderState newState)
+ {
+ this.state = newState;
+ }
}
diff --git a/fml/common/cpw/mods/fml/common/Loader.java b/fml/common/cpw/mods/fml/common/Loader.java
index a48a77544..15524e343 100644
--- a/fml/common/cpw/mods/fml/common/Loader.java
+++ b/fml/common/cpw/mods/fml/common/Loader.java
@@ -1,16 +1,15 @@
/*
- * The FML Forge Mod Loader suite.
- * Copyright (C) 2012 cpw
+ * Forge Mod Loader
+ * Copyright (c) 2012-2013 cpw.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the GNU Lesser Public License v2.1
+ * which accompanies this distribution, and is available at
+ * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
*
- * 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
+ * Contributors:
+ * cpw - implementation
*/
+
package cpw.mods.fml.common;
import java.io.File;
@@ -56,6 +55,7 @@ import cpw.mods.fml.common.event.FMLInterModComms;
import cpw.mods.fml.common.event.FMLLoadEvent;
import cpw.mods.fml.common.functions.ModIdFunction;
import cpw.mods.fml.common.modloader.BaseModProxy;
+import cpw.mods.fml.common.registry.GameData;
import cpw.mods.fml.common.toposort.ModSorter;
import cpw.mods.fml.common.toposort.ModSortingException;
import cpw.mods.fml.common.toposort.TopologicalSort;
@@ -675,6 +675,8 @@ public class Loader
// Mod controller should be in the initialization state here
modController.distributeStateMessage(LoaderState.INITIALIZATION);
modController.transition(LoaderState.POSTINITIALIZATION);
+ // Construct the "mod object table" so mods can refer to it in IMC and postinit
+ GameData.buildModObjectTable();
modController.distributeStateMessage(FMLInterModComms.IMCEvent.class);
modController.distributeStateMessage(LoaderState.POSTINITIALIZATION);
modController.transition(LoaderState.AVAILABLE);
@@ -777,7 +779,15 @@ public class Loader
public void serverStopped()
{
modController.distributeStateMessage(LoaderState.SERVER_STOPPED);
- modController.transition(LoaderState.SERVER_STOPPED);
+ try
+ {
+ modController.transition(LoaderState.SERVER_STOPPED);
+ }
+ catch (LoaderException e)
+ {
+ modController.forceState(LoaderState.SERVER_STOPPED);
+ // Discard any exceptions here - they mask other, real, exceptions
+ }
modController.transition(LoaderState.AVAILABLE);
}
diff --git a/fml/common/cpw/mods/fml/common/LoaderException.java b/fml/common/cpw/mods/fml/common/LoaderException.java
index 29f5c66b1..3a0adbf72 100644
--- a/fml/common/cpw/mods/fml/common/LoaderException.java
+++ b/fml/common/cpw/mods/fml/common/LoaderException.java
@@ -1,16 +1,15 @@
/*
- * 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
+ * Forge Mod Loader
+ * Copyright (c) 2012-2013 cpw.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the GNU Lesser Public License v2.1
+ * which accompanies this distribution, and is available at
+ * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
+ *
+ * Contributors:
+ * cpw - implementation
*/
+
package cpw.mods.fml.common;
public class LoaderException extends RuntimeException
@@ -28,4 +27,4 @@ public class LoaderException extends RuntimeException
public LoaderException()
{
}
-}
\ No newline at end of file
+}
diff --git a/fml/common/cpw/mods/fml/common/LoaderState.java b/fml/common/cpw/mods/fml/common/LoaderState.java
index 4bdb1223f..58d88c53a 100644
--- a/fml/common/cpw/mods/fml/common/LoaderState.java
+++ b/fml/common/cpw/mods/fml/common/LoaderState.java
@@ -1,3 +1,15 @@
+/*
+ * Forge Mod Loader
+ * Copyright (c) 2012-2013 cpw.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the GNU Lesser Public License v2.1
+ * which accompanies this distribution, and is available at
+ * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
+ *
+ * Contributors:
+ * cpw - implementation
+ */
+
package cpw.mods.fml.common;
import com.google.common.base.Throwables;
@@ -105,4 +117,4 @@ public enum LoaderState
return this.label;
}
}
-}
\ No newline at end of file
+}
diff --git a/fml/common/cpw/mods/fml/common/MCPDummyContainer.java b/fml/common/cpw/mods/fml/common/MCPDummyContainer.java
index 6ac06709a..82c18fc44 100644
--- a/fml/common/cpw/mods/fml/common/MCPDummyContainer.java
+++ b/fml/common/cpw/mods/fml/common/MCPDummyContainer.java
@@ -1,3 +1,15 @@
+/*
+ * Forge Mod Loader
+ * Copyright (c) 2012-2013 cpw.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the GNU Lesser Public License v2.1
+ * which accompanies this distribution, and is available at
+ * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
+ *
+ * Contributors:
+ * cpw - implementation
+ */
+
package cpw.mods.fml.common;
import com.google.common.eventbus.EventBus;
diff --git a/fml/common/cpw/mods/fml/common/MetadataCollection.java b/fml/common/cpw/mods/fml/common/MetadataCollection.java
index 0eef49306..beb03ee0b 100644
--- a/fml/common/cpw/mods/fml/common/MetadataCollection.java
+++ b/fml/common/cpw/mods/fml/common/MetadataCollection.java
@@ -1,3 +1,15 @@
+/*
+ * Forge Mod Loader
+ * Copyright (c) 2012-2013 cpw.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the GNU Lesser Public License v2.1
+ * which accompanies this distribution, and is available at
+ * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
+ *
+ * Contributors:
+ * cpw - implementation
+ */
+
package cpw.mods.fml.common;
import java.io.InputStream;
diff --git a/fml/common/cpw/mods/fml/common/MinecraftDummyContainer.java b/fml/common/cpw/mods/fml/common/MinecraftDummyContainer.java
index fec8d0326..1cffba8be 100644
--- a/fml/common/cpw/mods/fml/common/MinecraftDummyContainer.java
+++ b/fml/common/cpw/mods/fml/common/MinecraftDummyContainer.java
@@ -1,3 +1,15 @@
+/*
+ * Forge Mod Loader
+ * Copyright (c) 2012-2013 cpw.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the GNU Lesser Public License v2.1
+ * which accompanies this distribution, and is available at
+ * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
+ *
+ * Contributors:
+ * cpw - implementation
+ */
+
package cpw.mods.fml.common;
import cpw.mods.fml.common.versioning.ArtifactVersion;
diff --git a/fml/common/cpw/mods/fml/common/MissingModsException.java b/fml/common/cpw/mods/fml/common/MissingModsException.java
index b0d0cd221..262b8753b 100644
--- a/fml/common/cpw/mods/fml/common/MissingModsException.java
+++ b/fml/common/cpw/mods/fml/common/MissingModsException.java
@@ -1,3 +1,15 @@
+/*
+ * Forge Mod Loader
+ * Copyright (c) 2012-2013 cpw.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the GNU Lesser Public License v2.1
+ * which accompanies this distribution, and is available at
+ * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
+ *
+ * Contributors:
+ * cpw - implementation
+ */
+
package cpw.mods.fml.common;
import java.util.Set;
diff --git a/fml/common/cpw/mods/fml/common/Mod.java b/fml/common/cpw/mods/fml/common/Mod.java
index 51d753723..f9d65388c 100644
--- a/fml/common/cpw/mods/fml/common/Mod.java
+++ b/fml/common/cpw/mods/fml/common/Mod.java
@@ -1,16 +1,15 @@
/*
- * 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
+ * Forge Mod Loader
+ * Copyright (c) 2012-2013 cpw.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the GNU Lesser Public License v2.1
+ * which accompanies this distribution, and is available at
+ * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
+ *
+ * Contributors:
+ * cpw - implementation
*/
+
package cpw.mods.fml.common;
import java.lang.annotation.ElementType;
@@ -111,6 +110,21 @@ public @interface Mod
* @return A certificate fingerprint that is expected for this mod.
*/
String certificateFingerprint() default "";
+
+ /**
+ * The language the mod is authored in. This will be used to control certain libraries being downloaded.
+ * Valid values are currently "java", "scala"
+ *
+ * @return The language the mod is authored in
+ */
+ String modLanguage() default "java";
+ /**
+ * An optional ASM hook class, that can be used to apply ASM to classes loaded from this mod. It is also given
+ * the ASM tree of the class declaring {@link Mod} to with what it will.
+ *
+ * @return The name of a class to be loaded and executed. Must implement {@link IASMHook}.
+ */
+ String asmHookClass() default "";
/**
* Mark the designated method as to be called at if there is something wrong with the certificate fingerprint of
* the mod's jar, or it is missing, or otherwise a problem.
diff --git a/fml/common/cpw/mods/fml/common/ModClassLoader.java b/fml/common/cpw/mods/fml/common/ModClassLoader.java
index 2b69592eb..78ae96ebf 100644
--- a/fml/common/cpw/mods/fml/common/ModClassLoader.java
+++ b/fml/common/cpw/mods/fml/common/ModClassLoader.java
@@ -1,16 +1,15 @@
/*
- * 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
+ * Forge Mod Loader
+ * Copyright (c) 2012-2013 cpw.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the GNU Lesser Public License v2.1
+ * which accompanies this distribution, and is available at
+ * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
+ *
+ * Contributors:
+ * cpw - implementation
*/
+
package cpw.mods.fml.common;
import java.io.File;
diff --git a/fml/common/cpw/mods/fml/common/ModContainer.java b/fml/common/cpw/mods/fml/common/ModContainer.java
index 21c60942f..0c05062fc 100644
--- a/fml/common/cpw/mods/fml/common/ModContainer.java
+++ b/fml/common/cpw/mods/fml/common/ModContainer.java
@@ -1,16 +1,15 @@
/*
- * 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
+ * Forge Mod Loader
+ * Copyright (c) 2012-2013 cpw.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the GNU Lesser Public License v2.1
+ * which accompanies this distribution, and is available at
+ * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
+ *
+ * Contributors:
+ * cpw - implementation
*/
+
package cpw.mods.fml.common;
import java.io.File;
diff --git a/fml/common/cpw/mods/fml/common/ModContainerFactory.java b/fml/common/cpw/mods/fml/common/ModContainerFactory.java
index c57fd1d9e..f1093bc14 100644
--- a/fml/common/cpw/mods/fml/common/ModContainerFactory.java
+++ b/fml/common/cpw/mods/fml/common/ModContainerFactory.java
@@ -1,3 +1,15 @@
+/*
+ * Forge Mod Loader
+ * Copyright (c) 2012-2013 cpw.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the GNU Lesser Public License v2.1
+ * which accompanies this distribution, and is available at
+ * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
+ *
+ * Contributors:
+ * cpw - implementation
+ */
+
package cpw.mods.fml.common;
import java.io.File;
diff --git a/fml/common/cpw/mods/fml/common/ModMetadata.java b/fml/common/cpw/mods/fml/common/ModMetadata.java
index 9e1a47700..b2fc7a646 100644
--- a/fml/common/cpw/mods/fml/common/ModMetadata.java
+++ b/fml/common/cpw/mods/fml/common/ModMetadata.java
@@ -1,15 +1,13 @@
/*
- * 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
+ * Forge Mod Loader
+ * Copyright (c) 2012-2013 cpw.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the GNU Lesser Public License v2.1
+ * which accompanies this distribution, and is available at
+ * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
+ *
+ * Contributors:
+ * cpw - implementation
*/
package cpw.mods.fml.common;
diff --git a/fml/common/cpw/mods/fml/common/ProxyInjector.java b/fml/common/cpw/mods/fml/common/ProxyInjector.java
index 6b8a5a24a..d78ae56cb 100644
--- a/fml/common/cpw/mods/fml/common/ProxyInjector.java
+++ b/fml/common/cpw/mods/fml/common/ProxyInjector.java
@@ -1,15 +1,13 @@
/*
- * 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
+ * Forge Mod Loader
+ * Copyright (c) 2012-2013 cpw.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the GNU Lesser Public License v2.1
+ * which accompanies this distribution, and is available at
+ * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
+ *
+ * Contributors:
+ * cpw - implementation
*/
package cpw.mods.fml.common;
diff --git a/fml/common/cpw/mods/fml/common/SidedProxy.java b/fml/common/cpw/mods/fml/common/SidedProxy.java
index 8c89d04ea..54ad38545 100644
--- a/fml/common/cpw/mods/fml/common/SidedProxy.java
+++ b/fml/common/cpw/mods/fml/common/SidedProxy.java
@@ -1,15 +1,13 @@
/*
- * 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
+ * Forge Mod Loader
+ * Copyright (c) 2012-2013 cpw.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the GNU Lesser Public License v2.1
+ * which accompanies this distribution, and is available at
+ * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
+ *
+ * Contributors:
+ * cpw - implementation
*/
package cpw.mods.fml.common;
diff --git a/fml/common/cpw/mods/fml/common/SingleIntervalHandler.java b/fml/common/cpw/mods/fml/common/SingleIntervalHandler.java
index 88d6834e0..fe5293475 100644
--- a/fml/common/cpw/mods/fml/common/SingleIntervalHandler.java
+++ b/fml/common/cpw/mods/fml/common/SingleIntervalHandler.java
@@ -1,3 +1,15 @@
+/*
+ * Forge Mod Loader
+ * Copyright (c) 2012-2013 cpw.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the GNU Lesser Public License v2.1
+ * which accompanies this distribution, and is available at
+ * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
+ *
+ * Contributors:
+ * cpw - implementation
+ */
+
package cpw.mods.fml.common;
import java.util.EnumSet;
diff --git a/fml/common/cpw/mods/fml/common/TickType.java b/fml/common/cpw/mods/fml/common/TickType.java
index 3e7426cd3..bd2f58b72 100644
--- a/fml/common/cpw/mods/fml/common/TickType.java
+++ b/fml/common/cpw/mods/fml/common/TickType.java
@@ -1,15 +1,13 @@
/*
- * The FML Forge Mod Loader suite.
- * Copyright (C) 2012 cpw
+ * Forge Mod Loader
+ * Copyright (c) 2012-2013 cpw.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the GNU Lesser Public License v2.1
+ * which accompanies this distribution, and is available at
+ * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
*
- * 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
+ * Contributors:
+ * cpw - implementation
*/
package cpw.mods.fml.common;
@@ -30,16 +28,6 @@ public enum TickType {
* arg 0 : float "partial render time"
*/
RENDER,
- /**
- * Not fired
- */
- @Deprecated
- GUI,
- /**
- * Not fired
- */
- @Deprecated
- CLIENTGUI,
/**
* server side
* Fired once as the world loads from disk
@@ -71,8 +59,6 @@ public enum TickType {
{
if (this==CLIENT) return EnumSet.of(RENDER);
if (this==RENDER) return EnumSet.of(CLIENT);
- if (this==GUI) return EnumSet.of(CLIENTGUI);
- if (this==CLIENTGUI) return EnumSet.of(GUI);
return EnumSet.noneOf(TickType.class);
}
-}
\ No newline at end of file
+}
diff --git a/fml/common/cpw/mods/fml/common/WorldAccessContainer.java b/fml/common/cpw/mods/fml/common/WorldAccessContainer.java
index b2b81e1be..622f4b674 100644
--- a/fml/common/cpw/mods/fml/common/WorldAccessContainer.java
+++ b/fml/common/cpw/mods/fml/common/WorldAccessContainer.java
@@ -1,3 +1,15 @@
+/*
+ * Forge Mod Loader
+ * Copyright (c) 2012-2013 cpw.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the GNU Lesser Public License v2.1
+ * which accompanies this distribution, and is available at
+ * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
+ *
+ * Contributors:
+ * cpw - implementation
+ */
+
package cpw.mods.fml.common;
import java.util.Map;
diff --git a/fml/common/cpw/mods/fml/common/WrongMinecraftVersionException.java b/fml/common/cpw/mods/fml/common/WrongMinecraftVersionException.java
index d3352ca8c..a98b13a55 100644
--- a/fml/common/cpw/mods/fml/common/WrongMinecraftVersionException.java
+++ b/fml/common/cpw/mods/fml/common/WrongMinecraftVersionException.java
@@ -1,3 +1,15 @@
+/*
+ * Forge Mod Loader
+ * Copyright (c) 2012-2013 cpw.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the GNU Lesser Public License v2.1
+ * which accompanies this distribution, and is available at
+ * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
+ *
+ * Contributors:
+ * cpw - implementation
+ */
+
package cpw.mods.fml.common;
public class WrongMinecraftVersionException extends RuntimeException
diff --git a/fml/common/cpw/mods/fml/common/asm/ASMTransformer.java b/fml/common/cpw/mods/fml/common/asm/ASMTransformer.java
index a4b106e73..b09d00131 100644
--- a/fml/common/cpw/mods/fml/common/asm/ASMTransformer.java
+++ b/fml/common/cpw/mods/fml/common/asm/ASMTransformer.java
@@ -1,3 +1,15 @@
+/*
+ * Forge Mod Loader
+ * Copyright (c) 2012-2013 cpw.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the GNU Lesser Public License v2.1
+ * which accompanies this distribution, and is available at
+ * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
+ *
+ * Contributors:
+ * cpw - implementation
+ */
+
package cpw.mods.fml.common.asm;
import org.objectweb.asm.ClassReader;
@@ -12,7 +24,7 @@ import cpw.mods.fml.relauncher.IClassTransformer;
public class ASMTransformer implements IClassTransformer
{
@Override
- public byte[] transform(String name, byte[] bytes)
+ public byte[] transform(String name,String transformedName, byte[] bytes)
{
if ("net.minecraft.src.Block".equals(name))
{
@@ -24,7 +36,7 @@ public class ASMTransformer implements IClassTransformer
cn.accept(cw);
return cw.toByteArray();
}
-
+
return bytes;
}
diff --git a/fml/common/cpw/mods/fml/common/asm/FMLSanityChecker.java b/fml/common/cpw/mods/fml/common/asm/FMLSanityChecker.java
index 7206ee87e..be657fe55 100644
--- a/fml/common/cpw/mods/fml/common/asm/FMLSanityChecker.java
+++ b/fml/common/cpw/mods/fml/common/asm/FMLSanityChecker.java
@@ -1,6 +1,19 @@
+/*
+ * Forge Mod Loader
+ * Copyright (c) 2012-2013 cpw.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the GNU Lesser Public License v2.1
+ * which accompanies this distribution, and is available at
+ * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
+ *
+ * Contributors:
+ * cpw - implementation
+ */
+
package cpw.mods.fml.common.asm;
import java.io.ByteArrayInputStream;
+import java.io.File;
import java.io.InputStreamReader;
import java.io.ObjectInputStream.GetField;
import java.io.StringReader;
@@ -27,7 +40,8 @@ import org.objectweb.asm.FieldVisitor;
import org.objectweb.asm.Opcodes;
import cpw.mods.fml.common.CertificateHelper;
-import cpw.mods.fml.common.FMLLog;
+import cpw.mods.fml.common.asm.transformers.deobf.FMLDeobfuscatingRemapper;
+import cpw.mods.fml.relauncher.FMLRelaunchLog;
import cpw.mods.fml.relauncher.IFMLCallHook;
import cpw.mods.fml.relauncher.RelaunchClassLoader;
@@ -72,17 +86,17 @@ public class FMLSanityChecker implements IFMLCallHook
String fingerprint = CertificateHelper.getFingerprint(cert);
if (fingerprint.equals(FMLFINGERPRINT))
{
- FMLLog.info("Found valid fingerprint for FML. Certificate fingerprint %s", fingerprint);
+ FMLRelaunchLog.info("Found valid fingerprint for FML. Certificate fingerprint %s", fingerprint);
goodFML = true;
}
else if (fingerprint.equals(FORGEFINGERPRINT))
{
- FMLLog.info("Found valid fingerprint for Minecraft Forge. Certificate fingerprint %s", fingerprint);
+ FMLRelaunchLog.info("Found valid fingerprint for Minecraft Forge. Certificate fingerprint %s", fingerprint);
goodFML = true;
}
else
{
- FMLLog.severe("Found invalid fingerprint for FML: %s", fingerprint);
+ FMLRelaunchLog.severe("Found invalid fingerprint for FML: %s", fingerprint);
}
}
}
@@ -93,7 +107,7 @@ public class FMLSanityChecker implements IFMLCallHook
}
if (!goodFML)
{
- FMLLog.severe("FML appears to be missing any signature data. This is not a good thing");
+ FMLRelaunchLog.severe("FML appears to be missing any signature data. This is not a good thing");
}
byte[] mlClass = cl.getClassBytes("ModLoader");
// Only care in obfuscated env
@@ -124,6 +138,7 @@ public class FMLSanityChecker implements IFMLCallHook
public void injectData(Map data)
{
cl = (RelaunchClassLoader) data.get("classLoader");
+ FMLDeobfuscatingRemapper.INSTANCE.setup((File)data.get("mcLocation"), cl, (String) data.get("deobfuscationFileName"));
}
}
diff --git a/fml/common/cpw/mods/fml/common/asm/ReobfuscationMarker.java b/fml/common/cpw/mods/fml/common/asm/ReobfuscationMarker.java
index ac6c1d442..b30fef263 100644
--- a/fml/common/cpw/mods/fml/common/asm/ReobfuscationMarker.java
+++ b/fml/common/cpw/mods/fml/common/asm/ReobfuscationMarker.java
@@ -1,3 +1,15 @@
+/*
+ * Forge Mod Loader
+ * Copyright (c) 2012-2013 cpw.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the GNU Lesser Public License v2.1
+ * which accompanies this distribution, and is available at
+ * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
+ *
+ * Contributors:
+ * cpw - implementation
+ */
+
package cpw.mods.fml.common.asm;
import java.lang.annotation.ElementType;
diff --git a/fml/common/cpw/mods/fml/common/asm/transformers/AccessTransformer.java b/fml/common/cpw/mods/fml/common/asm/transformers/AccessTransformer.java
index bc1a376ef..c7220413c 100644
--- a/fml/common/cpw/mods/fml/common/asm/transformers/AccessTransformer.java
+++ b/fml/common/cpw/mods/fml/common/asm/transformers/AccessTransformer.java
@@ -1,3 +1,15 @@
+/*
+ * Forge Mod Loader
+ * Copyright (c) 2012-2013 cpw.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the GNU Lesser Public License v2.1
+ * which accompanies this distribution, and is available at
+ * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
+ *
+ * Contributors:
+ * cpw - implementation
+ */
+
package cpw.mods.fml.common.asm.transformers;
import static org.objectweb.asm.Opcodes.ACC_FINAL;
@@ -35,6 +47,7 @@ import com.google.common.collect.Multimap;
import com.google.common.io.LineProcessor;
import com.google.common.io.Resources;
+import cpw.mods.fml.common.asm.transformers.deobf.FMLDeobfuscatingRemapper;
import cpw.mods.fml.relauncher.IClassTransformer;
public class AccessTransformer implements IClassTransformer
@@ -143,15 +156,37 @@ public class AccessTransformer implements IClassTransformer
@SuppressWarnings("unchecked")
@Override
- public byte[] transform(String name, byte[] bytes)
+ public byte[] transform(String name, String transformedName, byte[] bytes)
{
- if (bytes == null) { return null; }
- if (!modifiers.containsKey(name)) { return bytes; }
+ if (bytes == null) { return null; }
+ boolean makeAllPublic = FMLDeobfuscatingRemapper.INSTANCE.isRemappedClass(name);
+
+ if (!makeAllPublic && !modifiers.containsKey(name)) { return bytes; }
ClassNode classNode = new ClassNode();
ClassReader classReader = new ClassReader(bytes);
classReader.accept(classNode, 0);
+ if (makeAllPublic)
+ {
+ // class
+ Modifier m = new Modifier();
+ m.targetAccess = ACC_PUBLIC;
+ m.modifyClassVisibility = true;
+ modifiers.put(name,m);
+ // fields
+ m = new Modifier();
+ m.targetAccess = ACC_PUBLIC;
+ m.name = "*";
+ modifiers.put(name,m);
+ // methods
+ m = new Modifier();
+ m.targetAccess = ACC_PUBLIC;
+ m.name = "*";
+ m.desc = "";
+ modifiers.put(name,m);
+ }
+
Collection mods = modifiers.get(name);
for (Modifier m : mods)
{
@@ -375,7 +410,7 @@ public class AccessTransformer implements IClassTransformer
for (AccessTransformer trans : transformers)
{
- entryData = trans.transform(name, entryData);
+ entryData = trans.transform(name, name, entryData);
}
}
@@ -416,4 +451,4 @@ public class AccessTransformer implements IClassTransformer
m.modifyClassVisibility = true;
modifiers.put(modClazzName, m);
}
-}
\ No newline at end of file
+}
diff --git a/fml/common/cpw/mods/fml/common/asm/transformers/DeobfuscationTransformer.java b/fml/common/cpw/mods/fml/common/asm/transformers/DeobfuscationTransformer.java
new file mode 100644
index 000000000..4789157ac
--- /dev/null
+++ b/fml/common/cpw/mods/fml/common/asm/transformers/DeobfuscationTransformer.java
@@ -0,0 +1,54 @@
+/*
+ * Forge Mod Loader
+ * Copyright (c) 2012-2013 cpw.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the GNU Lesser Public License v2.1
+ * which accompanies this distribution, and is available at
+ * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
+ *
+ * Contributors:
+ * cpw - implementation
+ */
+
+package cpw.mods.fml.common.asm.transformers;
+
+import org.objectweb.asm.ClassReader;
+import org.objectweb.asm.ClassWriter;
+import org.objectweb.asm.Opcodes;
+import org.objectweb.asm.commons.RemappingClassAdapter;
+import org.objectweb.asm.tree.ClassNode;
+
+import cpw.mods.fml.common.asm.transformers.deobf.FMLDeobfuscatingRemapper;
+import cpw.mods.fml.common.asm.transformers.deobf.FMLRemappingAdapter;
+import cpw.mods.fml.relauncher.IClassNameTransformer;
+import cpw.mods.fml.relauncher.IClassTransformer;
+
+public class DeobfuscationTransformer implements IClassTransformer, IClassNameTransformer {
+
+ @Override
+ public byte[] transform(String name, String transformedName, byte[] bytes)
+ {
+ if (bytes == null)
+ {
+ return null;
+ }
+ ClassReader classReader = new ClassReader(bytes);
+ ClassWriter classWriter = new ClassWriter(ClassWriter.COMPUTE_MAXS);
+ RemappingClassAdapter remapAdapter = new FMLRemappingAdapter(classWriter);
+ classReader.accept(remapAdapter, ClassReader.EXPAND_FRAMES);
+ return classWriter.toByteArray();
+ }
+
+ @Override
+ public String remapClassName(String name)
+ {
+ return FMLDeobfuscatingRemapper.INSTANCE.map(name.replace('.','/')).replace('/', '.');
+ }
+
+ @Override
+ public String unmapClassName(String name)
+ {
+ return FMLDeobfuscatingRemapper.INSTANCE.unmap(name.replace('.', '/')).replace('/','.');
+ }
+
+}
diff --git a/fml/common/cpw/mods/fml/common/asm/transformers/MCPMerger.java b/fml/common/cpw/mods/fml/common/asm/transformers/MCPMerger.java
index e0833c1e7..bd3d6bde7 100644
--- a/fml/common/cpw/mods/fml/common/asm/transformers/MCPMerger.java
+++ b/fml/common/cpw/mods/fml/common/asm/transformers/MCPMerger.java
@@ -1,3 +1,15 @@
+/*
+ * Forge Mod Loader
+ * Copyright (c) 2012-2013 cpw.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the GNU Lesser Public License v2.1
+ * which accompanies this distribution, and is available at
+ * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
+ *
+ * Contributors:
+ * cpw - implementation
+ */
+
package cpw.mods.fml.common.asm.transformers;
import java.io.BufferedOutputStream;
diff --git a/fml/common/cpw/mods/fml/common/asm/transformers/MarkerTransformer.java b/fml/common/cpw/mods/fml/common/asm/transformers/MarkerTransformer.java
index f9a2985a7..518b5180b 100644
--- a/fml/common/cpw/mods/fml/common/asm/transformers/MarkerTransformer.java
+++ b/fml/common/cpw/mods/fml/common/asm/transformers/MarkerTransformer.java
@@ -1,3 +1,15 @@
+/*
+ * Forge Mod Loader
+ * Copyright (c) 2012-2013 cpw.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the GNU Lesser Public License v2.1
+ * which accompanies this distribution, and is available at
+ * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
+ *
+ * Contributors:
+ * cpw - implementation
+ */
+
package cpw.mods.fml.common.asm.transformers;
import java.io.BufferedInputStream;
@@ -87,7 +99,7 @@ public class MarkerTransformer implements IClassTransformer
@SuppressWarnings("unchecked")
@Override
- public byte[] transform(String name, byte[] bytes)
+ public byte[] transform(String name, String transformedName, byte[] bytes)
{
if (bytes == null) { return null; }
if (!markers.containsKey(name)) { return bytes; }
@@ -240,7 +252,7 @@ public class MarkerTransformer implements IClassTransformer
for (MarkerTransformer trans : transformers)
{
- entryData = trans.transform(name, entryData);
+ entryData = trans.transform(name, name, entryData);
}
}
@@ -274,4 +286,4 @@ public class MarkerTransformer implements IClassTransformer
}
}
}
-}
\ No newline at end of file
+}
diff --git a/fml/common/cpw/mods/fml/common/asm/transformers/SideTransformer.java b/fml/common/cpw/mods/fml/common/asm/transformers/SideTransformer.java
index f4c63ffd0..3c9505411 100644
--- a/fml/common/cpw/mods/fml/common/asm/transformers/SideTransformer.java
+++ b/fml/common/cpw/mods/fml/common/asm/transformers/SideTransformer.java
@@ -1,3 +1,15 @@
+/*
+ * Forge Mod Loader
+ * Copyright (c) 2012-2013 cpw.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the GNU Lesser Public License v2.1
+ * which accompanies this distribution, and is available at
+ * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
+ *
+ * Contributors:
+ * cpw - implementation
+ */
+
package cpw.mods.fml.common.asm.transformers;
import java.util.Iterator;
@@ -21,7 +33,7 @@ public class SideTransformer implements IClassTransformer
private static final boolean DEBUG = false;
@SuppressWarnings("unchecked")
@Override
- public byte[] transform(String name, byte[] bytes)
+ public byte[] transform(String name, String transformedName, byte[] bytes)
{
if (bytes == null) { return null; }
@@ -69,7 +81,7 @@ public class SideTransformer implements IClassTransformer
classNode.accept(writer);
return writer.toByteArray();
}
-
+
private boolean remove(List anns, String side)
{
if (anns == null)
diff --git a/fml/common/cpw/mods/fml/common/asm/transformers/deobf/FMLDeobfuscatingRemapper.java b/fml/common/cpw/mods/fml/common/asm/transformers/deobf/FMLDeobfuscatingRemapper.java
new file mode 100644
index 000000000..16ae550b2
--- /dev/null
+++ b/fml/common/cpw/mods/fml/common/asm/transformers/deobf/FMLDeobfuscatingRemapper.java
@@ -0,0 +1,300 @@
+/*
+ * Forge Mod Loader
+ * Copyright (c) 2012-2013 cpw.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the GNU Lesser Public License v2.1
+ * which accompanies this distribution, and is available at
+ * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
+ *
+ * Contributors:
+ * cpw - implementation
+ */
+
+package cpw.mods.fml.common.asm.transformers.deobf;
+
+import java.io.File;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.nio.charset.Charset;
+import java.util.Arrays;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+import java.util.logging.Level;
+import java.util.zip.ZipEntry;
+import java.util.zip.ZipFile;
+
+import org.objectweb.asm.ClassReader;
+import org.objectweb.asm.commons.Remapper;
+
+import com.google.common.base.CharMatcher;
+import com.google.common.base.Charsets;
+import com.google.common.base.Splitter;
+import com.google.common.collect.BiMap;
+import com.google.common.collect.HashBiMap;
+import com.google.common.collect.ImmutableBiMap;
+import com.google.common.collect.ImmutableList;
+import com.google.common.collect.ImmutableMap;
+import com.google.common.collect.Iterables;
+import com.google.common.collect.Lists;
+import com.google.common.collect.Maps;
+import com.google.common.collect.Sets;
+import com.google.common.collect.ImmutableBiMap.Builder;
+import com.google.common.io.CharStreams;
+import com.google.common.io.InputSupplier;
+
+import cpw.mods.fml.common.FMLLog;
+import cpw.mods.fml.relauncher.FMLRelaunchLog;
+import cpw.mods.fml.relauncher.RelaunchClassLoader;
+
+public class FMLDeobfuscatingRemapper extends Remapper {
+ public static final FMLDeobfuscatingRemapper INSTANCE = new FMLDeobfuscatingRemapper();
+
+ private BiMap classNameBiMap;
+ private BiMap mcpNameBiMap;
+
+ private Map> rawFieldMaps;
+ private Map> rawMethodMaps;
+
+ private Map> fieldNameMaps;
+ private Map> methodNameMaps;
+
+ private RelaunchClassLoader classLoader;
+
+ private FMLDeobfuscatingRemapper()
+ {
+ classNameBiMap=ImmutableBiMap.of();
+ mcpNameBiMap=ImmutableBiMap.of();
+ }
+
+ public void setup(File mcDir, RelaunchClassLoader classLoader, String deobfFileName)
+ {
+ this.classLoader = classLoader;
+ try
+ {
+ File libDir = new File(mcDir, "lib");
+ File mapData = new File(libDir, deobfFileName);
+ ZipFile mapZip = new ZipFile(mapData);
+ ZipEntry classData = mapZip.getEntry("joined.srg");
+ ZipInputSupplier zis = new ZipInputSupplier(mapZip, classData);
+ InputSupplier srgSupplier = CharStreams.newReaderSupplier(zis,Charsets.UTF_8);
+ List srgList = CharStreams.readLines(srgSupplier);
+ rawMethodMaps = Maps.newHashMap();
+ rawFieldMaps = Maps.newHashMap();
+ Builder builder = ImmutableBiMap.builder();
+ Builder mcpBuilder = ImmutableBiMap.builder();
+ Splitter splitter = Splitter.on(CharMatcher.anyOf(": ")).omitEmptyStrings().trimResults();
+ for (String line : srgList)
+ {
+ String[] parts = Iterables.toArray(splitter.split(line),String.class);
+ String typ = parts[0];
+ if ("CL".equals(typ))
+ {
+ parseClass(builder, parts);
+ parseMCPClass(mcpBuilder,parts);
+ }
+ else if ("MD".equals(typ))
+ {
+ parseMethod(parts);
+ }
+ else if ("FD".equals(typ))
+ {
+ parseField(parts);
+ }
+ }
+ classNameBiMap = builder.build();
+ // Special case some mappings for modloader mods
+ mcpBuilder.put("BaseMod","net/minecraft/src/BaseMod");
+ mcpBuilder.put("ModLoader","net/minecraft/src/ModLoader");
+ mcpBuilder.put("EntityRendererProxy","net/minecraft/src/EntityRendererProxy");
+ mcpBuilder.put("MLProp","net/minecraft/src/MLProp");
+ mcpBuilder.put("TradeEntry","net/minecraft/src/TradeEntry");
+ mcpNameBiMap = mcpBuilder.build();
+ }
+ catch (IOException ioe)
+ {
+ FMLRelaunchLog.log(Level.SEVERE, ioe, "An error occurred loading the deobfuscation map data");
+ }
+ methodNameMaps = Maps.newHashMapWithExpectedSize(rawMethodMaps.size());
+ fieldNameMaps = Maps.newHashMapWithExpectedSize(rawFieldMaps.size());
+ }
+
+ public boolean isRemappedClass(String className)
+ {
+ return classNameBiMap.containsKey(className) || mcpNameBiMap.containsKey(className);
+ }
+
+ private void parseField(String[] parts)
+ {
+ String oldSrg = parts[1];
+ int lastOld = oldSrg.lastIndexOf('/');
+ String cl = oldSrg.substring(0,lastOld);
+ String oldName = oldSrg.substring(lastOld+1);
+ String newSrg = parts[2];
+ int lastNew = newSrg.lastIndexOf('/');
+ String newName = newSrg.substring(lastNew+1);
+ if (!rawFieldMaps.containsKey(cl))
+ {
+ rawFieldMaps.put(cl, Maps.newHashMap());
+ }
+ rawFieldMaps.get(cl).put(oldName, newName);
+ }
+
+ private void parseClass(Builder builder, String[] parts)
+ {
+ builder.put(parts[1],parts[2]);
+ }
+
+ private void parseMCPClass(Builder builder, String[] parts)
+ {
+ int clIdx = parts[2].lastIndexOf('/');
+ builder.put("net/minecraft/src/"+parts[2].substring(clIdx+1),parts[2]);
+ }
+
+ private void parseMethod(String[] parts)
+ {
+ String oldSrg = parts[1];
+ int lastOld = oldSrg.lastIndexOf('/');
+ String cl = oldSrg.substring(0,lastOld);
+ String oldName = oldSrg.substring(lastOld+1);
+ String sig = parts[2];
+ String newSrg = parts[3];
+ int lastNew = newSrg.lastIndexOf('/');
+ String newName = newSrg.substring(lastNew+1);
+ if (!rawMethodMaps.containsKey(cl))
+ {
+ rawMethodMaps.put(cl, Maps.newHashMap());
+ }
+ rawMethodMaps.get(cl).put(oldName+sig, newName);
+ }
+
+ @Override
+ public String mapFieldName(String owner, String name, String desc)
+ {
+ if (classNameBiMap == null || classNameBiMap.isEmpty())
+ {
+ return name;
+ }
+ Map fieldMap = getFieldMap(owner);
+ return fieldMap!=null && fieldMap.containsKey(name) ? fieldMap.get(name) : name;
+ }
+
+ @Override
+ public String map(String typeName)
+ {
+ if (classNameBiMap == null || classNameBiMap.isEmpty())
+ {
+ return typeName;
+ }
+
+ String result = classNameBiMap.containsKey(typeName) ? classNameBiMap.get(typeName) : mcpNameBiMap.containsKey(typeName) ? mcpNameBiMap.get(typeName) : typeName;
+// System.out.printf("Mapping %s=>%s\n",typeName,result);
+ return result;
+ }
+
+ public String unmap(String typeName)
+ {
+ if (classNameBiMap == null)
+ {
+ return typeName;
+ }
+ String result = classNameBiMap.containsValue(typeName) ? classNameBiMap.inverse().get(typeName) : mcpNameBiMap.containsValue(typeName) ? mcpNameBiMap.inverse().get(typeName) : typeName;
+// System.out.printf("Unmapping %s=>%s\n",typeName,result);
+ return result;
+ }
+
+
+ @Override
+ public String mapMethodName(String owner, String name, String desc)
+ {
+ if (classNameBiMap==null || classNameBiMap.isEmpty())
+ {
+ return name;
+ }
+ Map methodMap = getMethodMap(owner);
+ String methodDescriptor = name+desc;
+ return methodMap!=null && methodMap.containsKey(methodDescriptor) ? methodMap.get(methodDescriptor) : name;
+ }
+
+ private Map getFieldMap(String className)
+ {
+ if (!fieldNameMaps.containsKey(className))
+ {
+ findAndMergeSuperMaps(className);
+ }
+ return fieldNameMaps.get(className);
+ }
+
+ private Map getMethodMap(String className)
+ {
+ if (!methodNameMaps.containsKey(className))
+ {
+ findAndMergeSuperMaps(className);
+ }
+ return methodNameMaps.get(className);
+ }
+
+ private void findAndMergeSuperMaps(String name)
+ {
+ try
+ {
+ byte[] classBytes = classLoader.getClassBytes(name);
+ if (classBytes == null)
+ {
+ return;
+ }
+ ClassReader cr = new ClassReader(classBytes);
+ String superName = cr.getSuperName();
+ String[] interfaces = cr.getInterfaces();
+ if (interfaces == null)
+ {
+ interfaces = new String[0];
+ }
+ mergeSuperMaps(name, superName, interfaces);
+ }
+ catch (IOException e)
+ {
+ e.printStackTrace();
+ }
+ }
+ public void mergeSuperMaps(String name, String superName, String[] interfaces)
+ {
+ if (classNameBiMap == null || classNameBiMap.isEmpty())
+ {
+ return;
+ }
+ List allParents = ImmutableList.builder().add(superName).addAll(Arrays.asList(interfaces)).build();
+ for (String parentThing : allParents)
+ {
+ if (superName != null && classNameBiMap.containsKey(superName) && !methodNameMaps.containsKey(superName))
+ {
+ findAndMergeSuperMaps(superName);
+ }
+ }
+ Map methodMap = Maps.newHashMap();
+ Map fieldMap = Maps.newHashMap();
+ for (String parentThing : allParents)
+ {
+ if (methodNameMaps.containsKey(parentThing))
+ {
+ methodMap.putAll(methodNameMaps.get(parentThing));
+ }
+ if (fieldNameMaps.containsKey(parentThing))
+ {
+ fieldMap.putAll(fieldNameMaps.get(parentThing));
+ }
+ }
+ if (rawMethodMaps.containsKey(name))
+ {
+ methodMap.putAll(rawMethodMaps.get(name));
+ }
+ if (rawFieldMaps.containsKey(name))
+ {
+ fieldMap.putAll(rawFieldMaps.get(name));
+ }
+ methodNameMaps.put(name, ImmutableMap.copyOf(methodMap));
+ fieldNameMaps.put(name, ImmutableMap.copyOf(fieldMap));
+ }
+}
diff --git a/fml/common/cpw/mods/fml/common/asm/transformers/deobf/FMLRemappingAdapter.java b/fml/common/cpw/mods/fml/common/asm/transformers/deobf/FMLRemappingAdapter.java
new file mode 100644
index 000000000..d435091e8
--- /dev/null
+++ b/fml/common/cpw/mods/fml/common/asm/transformers/deobf/FMLRemappingAdapter.java
@@ -0,0 +1,35 @@
+/*
+ * Forge Mod Loader
+ * Copyright (c) 2012-2013 cpw.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the GNU Lesser Public License v2.1
+ * which accompanies this distribution, and is available at
+ * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
+ *
+ * Contributors:
+ * cpw - implementation
+ */
+
+package cpw.mods.fml.common.asm.transformers.deobf;
+
+import org.objectweb.asm.ClassVisitor;
+import org.objectweb.asm.commons.Remapper;
+import org.objectweb.asm.commons.RemappingClassAdapter;
+
+public class FMLRemappingAdapter extends RemappingClassAdapter {
+ public FMLRemappingAdapter(ClassVisitor cv)
+ {
+ super(cv, FMLDeobfuscatingRemapper.INSTANCE);
+ }
+
+ @Override
+ public void visit(int version, int access, String name, String signature, String superName, String[] interfaces)
+ {
+ if (interfaces == null)
+ {
+ interfaces = new String[0];
+ }
+ FMLDeobfuscatingRemapper.INSTANCE.mergeSuperMaps(name, superName, interfaces);
+ super.visit(version, access, name, signature, superName, interfaces);
+ }
+}
diff --git a/fml/common/cpw/mods/fml/common/asm/transformers/deobf/ZipInputSupplier.java b/fml/common/cpw/mods/fml/common/asm/transformers/deobf/ZipInputSupplier.java
new file mode 100644
index 000000000..366871d37
--- /dev/null
+++ b/fml/common/cpw/mods/fml/common/asm/transformers/deobf/ZipInputSupplier.java
@@ -0,0 +1,38 @@
+/*
+ * Forge Mod Loader
+ * Copyright (c) 2012-2013 cpw.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the GNU Lesser Public License v2.1
+ * which accompanies this distribution, and is available at
+ * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
+ *
+ * Contributors:
+ * cpw - implementation
+ */
+
+package cpw.mods.fml.common.asm.transformers.deobf;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.zip.ZipEntry;
+import java.util.zip.ZipFile;
+
+import com.google.common.io.InputSupplier;
+
+public class ZipInputSupplier implements InputSupplier {
+ private ZipFile zipFile;
+ private ZipEntry zipEntry;
+
+ public ZipInputSupplier(ZipFile zip, ZipEntry entry)
+ {
+ this.zipFile = zip;
+ this.zipEntry = entry;
+ }
+
+ @Override
+ public InputStream getInput() throws IOException
+ {
+ return zipFile.getInputStream(zipEntry);
+ }
+
+}
diff --git a/fml/common/cpw/mods/fml/common/discovery/ASMDataTable.java b/fml/common/cpw/mods/fml/common/discovery/ASMDataTable.java
index 9812a804d..fca7363dd 100644
--- a/fml/common/cpw/mods/fml/common/discovery/ASMDataTable.java
+++ b/fml/common/cpw/mods/fml/common/discovery/ASMDataTable.java
@@ -1,3 +1,15 @@
+/*
+ * Forge Mod Loader
+ * Copyright (c) 2012-2013 cpw.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the GNU Lesser Public License v2.1
+ * which accompanies this distribution, and is available at
+ * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
+ *
+ * Contributors:
+ * cpw - implementation
+ */
+
package cpw.mods.fml.common.discovery;
import java.util.List;
diff --git a/fml/common/cpw/mods/fml/common/discovery/ContainerType.java b/fml/common/cpw/mods/fml/common/discovery/ContainerType.java
index c1c415b4d..cd82f899b 100644
--- a/fml/common/cpw/mods/fml/common/discovery/ContainerType.java
+++ b/fml/common/cpw/mods/fml/common/discovery/ContainerType.java
@@ -1,3 +1,15 @@
+/*
+ * Forge Mod Loader
+ * Copyright (c) 2012-2013 cpw.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the GNU Lesser Public License v2.1
+ * which accompanies this distribution, and is available at
+ * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
+ *
+ * Contributors:
+ * cpw - implementation
+ */
+
package cpw.mods.fml.common.discovery;
import java.util.List;
@@ -29,4 +41,4 @@ public enum ContainerType
{
return discoverer.discover(candidate, table);
}
-}
\ No newline at end of file
+}
diff --git a/fml/common/cpw/mods/fml/common/discovery/DirectoryDiscoverer.java b/fml/common/cpw/mods/fml/common/discovery/DirectoryDiscoverer.java
index edf90e604..4cee4451f 100644
--- a/fml/common/cpw/mods/fml/common/discovery/DirectoryDiscoverer.java
+++ b/fml/common/cpw/mods/fml/common/discovery/DirectoryDiscoverer.java
@@ -1,3 +1,15 @@
+/*
+ * Forge Mod Loader
+ * Copyright (c) 2012-2013 cpw.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the GNU Lesser Public License v2.1
+ * which accompanies this distribution, and is available at
+ * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
+ *
+ * Contributors:
+ * cpw - implementation
+ */
+
package cpw.mods.fml.common.discovery;
import java.io.File;
diff --git a/fml/common/cpw/mods/fml/common/discovery/ITypeDiscoverer.java b/fml/common/cpw/mods/fml/common/discovery/ITypeDiscoverer.java
index e67de7fad..e19446953 100644
--- a/fml/common/cpw/mods/fml/common/discovery/ITypeDiscoverer.java
+++ b/fml/common/cpw/mods/fml/common/discovery/ITypeDiscoverer.java
@@ -1,3 +1,15 @@
+/*
+ * Forge Mod Loader
+ * Copyright (c) 2012-2013 cpw.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the GNU Lesser Public License v2.1
+ * which accompanies this distribution, and is available at
+ * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
+ *
+ * Contributors:
+ * cpw - implementation
+ */
+
package cpw.mods.fml.common.discovery;
import java.util.List;
diff --git a/fml/common/cpw/mods/fml/common/discovery/JarDiscoverer.java b/fml/common/cpw/mods/fml/common/discovery/JarDiscoverer.java
index 4bdd106ae..efcf2a05f 100644
--- a/fml/common/cpw/mods/fml/common/discovery/JarDiscoverer.java
+++ b/fml/common/cpw/mods/fml/common/discovery/JarDiscoverer.java
@@ -1,3 +1,15 @@
+/*
+ * Forge Mod Loader
+ * Copyright (c) 2012-2013 cpw.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the GNU Lesser Public License v2.1
+ * which accompanies this distribution, and is available at
+ * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
+ *
+ * Contributors:
+ * cpw - implementation
+ */
+
package cpw.mods.fml.common.discovery;
import java.util.Collections;
diff --git a/fml/common/cpw/mods/fml/common/discovery/ModCandidate.java b/fml/common/cpw/mods/fml/common/discovery/ModCandidate.java
index 5abd9862c..9263e0910 100644
--- a/fml/common/cpw/mods/fml/common/discovery/ModCandidate.java
+++ b/fml/common/cpw/mods/fml/common/discovery/ModCandidate.java
@@ -1,3 +1,15 @@
+/*
+ * Forge Mod Loader
+ * Copyright (c) 2012-2013 cpw.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the GNU Lesser Public License v2.1
+ * which accompanies this distribution, and is available at
+ * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
+ *
+ * Contributors:
+ * cpw - implementation
+ */
+
package cpw.mods.fml.common.discovery;
import java.io.File;
@@ -81,4 +93,4 @@ public class ModCandidate
{
baseModCandidateTypes.add(modParser);
}
-}
\ No newline at end of file
+}
diff --git a/fml/common/cpw/mods/fml/common/discovery/ModDiscoverer.java b/fml/common/cpw/mods/fml/common/discovery/ModDiscoverer.java
index 991d48e5f..ffe13098b 100644
--- a/fml/common/cpw/mods/fml/common/discovery/ModDiscoverer.java
+++ b/fml/common/cpw/mods/fml/common/discovery/ModDiscoverer.java
@@ -1,3 +1,15 @@
+/*
+ * Forge Mod Loader
+ * Copyright (c) 2012-2013 cpw.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the GNU Lesser Public License v2.1
+ * which accompanies this distribution, and is available at
+ * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
+ *
+ * Contributors:
+ * cpw - implementation
+ */
+
package cpw.mods.fml.common.discovery;
import java.io.File;
diff --git a/fml/common/cpw/mods/fml/common/discovery/asm/ASMModParser.java b/fml/common/cpw/mods/fml/common/discovery/asm/ASMModParser.java
index 21c1aa811..88f9feba4 100644
--- a/fml/common/cpw/mods/fml/common/discovery/asm/ASMModParser.java
+++ b/fml/common/cpw/mods/fml/common/discovery/asm/ASMModParser.java
@@ -1,3 +1,15 @@
+/*
+ * Forge Mod Loader
+ * Copyright (c) 2012-2013 cpw.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the GNU Lesser Public License v2.1
+ * which accompanies this distribution, and is available at
+ * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
+ *
+ * Contributors:
+ * cpw - implementation
+ */
+
package cpw.mods.fml.common.discovery.asm;
import java.io.IOException;
@@ -116,7 +128,7 @@ public class ASMModParser
public boolean isBaseMod(List rememberedTypes)
{
- return getASMSuperType().equals(Type.getType(BaseMod.class)) || rememberedTypes.contains(getASMSuperType().getClassName());
+ return getASMSuperType().equals(Type.getType("LBaseMod;")) || getASMSuperType().equals(Type.getType("Lnet/minecraft/src/BaseMod;"))|| rememberedTypes.contains(getASMSuperType().getClassName());
}
public void setBaseModProperties(String foundProperties)
diff --git a/fml/common/cpw/mods/fml/common/discovery/asm/ModAnnotation.java b/fml/common/cpw/mods/fml/common/discovery/asm/ModAnnotation.java
index 08b3ffd78..753275e3e 100644
--- a/fml/common/cpw/mods/fml/common/discovery/asm/ModAnnotation.java
+++ b/fml/common/cpw/mods/fml/common/discovery/asm/ModAnnotation.java
@@ -1,3 +1,15 @@
+/*
+ * Forge Mod Loader
+ * Copyright (c) 2012-2013 cpw.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the GNU Lesser Public License v2.1
+ * which accompanies this distribution, and is available at
+ * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
+ *
+ * Contributors:
+ * cpw - implementation
+ */
+
package cpw.mods.fml.common.discovery.asm;
import java.util.ArrayList;
@@ -104,4 +116,4 @@ public class ModAnnotation
{
return new ModAnnotation(AnnotationType.SUBTYPE, Type.getType(desc), this);
}
-}
\ No newline at end of file
+}
diff --git a/fml/common/cpw/mods/fml/common/discovery/asm/ModAnnotationVisitor.java b/fml/common/cpw/mods/fml/common/discovery/asm/ModAnnotationVisitor.java
index 533dffe01..f772a9465 100644
--- a/fml/common/cpw/mods/fml/common/discovery/asm/ModAnnotationVisitor.java
+++ b/fml/common/cpw/mods/fml/common/discovery/asm/ModAnnotationVisitor.java
@@ -1,3 +1,15 @@
+/*
+ * Forge Mod Loader
+ * Copyright (c) 2012-2013 cpw.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the GNU Lesser Public License v2.1
+ * which accompanies this distribution, and is available at
+ * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
+ *
+ * Contributors:
+ * cpw - implementation
+ */
+
package cpw.mods.fml.common.discovery.asm;
import org.objectweb.asm.AnnotationVisitor;
diff --git a/fml/common/cpw/mods/fml/common/discovery/asm/ModClassVisitor.java b/fml/common/cpw/mods/fml/common/discovery/asm/ModClassVisitor.java
index 1786d2b5f..0ee315e63 100644
--- a/fml/common/cpw/mods/fml/common/discovery/asm/ModClassVisitor.java
+++ b/fml/common/cpw/mods/fml/common/discovery/asm/ModClassVisitor.java
@@ -1,3 +1,15 @@
+/*
+ * Forge Mod Loader
+ * Copyright (c) 2012-2013 cpw.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the GNU Lesser Public License v2.1
+ * which accompanies this distribution, and is available at
+ * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
+ *
+ * Contributors:
+ * cpw - implementation
+ */
+
package cpw.mods.fml.common.discovery.asm;
import java.util.Collections;
diff --git a/fml/common/cpw/mods/fml/common/discovery/asm/ModFieldVisitor.java b/fml/common/cpw/mods/fml/common/discovery/asm/ModFieldVisitor.java
index 67ef72ccd..dba33cb25 100644
--- a/fml/common/cpw/mods/fml/common/discovery/asm/ModFieldVisitor.java
+++ b/fml/common/cpw/mods/fml/common/discovery/asm/ModFieldVisitor.java
@@ -1,3 +1,15 @@
+/*
+ * Forge Mod Loader
+ * Copyright (c) 2012-2013 cpw.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the GNU Lesser Public License v2.1
+ * which accompanies this distribution, and is available at
+ * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
+ *
+ * Contributors:
+ * cpw - implementation
+ */
+
package cpw.mods.fml.common.discovery.asm;
import org.objectweb.asm.AnnotationVisitor;
diff --git a/fml/common/cpw/mods/fml/common/discovery/asm/ModMethodVisitor.java b/fml/common/cpw/mods/fml/common/discovery/asm/ModMethodVisitor.java
index 692b7d48a..002c42950 100644
--- a/fml/common/cpw/mods/fml/common/discovery/asm/ModMethodVisitor.java
+++ b/fml/common/cpw/mods/fml/common/discovery/asm/ModMethodVisitor.java
@@ -1,3 +1,15 @@
+/*
+ * Forge Mod Loader
+ * Copyright (c) 2012-2013 cpw.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the GNU Lesser Public License v2.1
+ * which accompanies this distribution, and is available at
+ * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
+ *
+ * Contributors:
+ * cpw - implementation
+ */
+
package cpw.mods.fml.common.discovery.asm;
import java.util.LinkedList;
diff --git a/fml/common/cpw/mods/fml/common/event/FMLConstructionEvent.java b/fml/common/cpw/mods/fml/common/event/FMLConstructionEvent.java
index ba3beff61..b53b96769 100644
--- a/fml/common/cpw/mods/fml/common/event/FMLConstructionEvent.java
+++ b/fml/common/cpw/mods/fml/common/event/FMLConstructionEvent.java
@@ -1,3 +1,15 @@
+/*
+ * Forge Mod Loader
+ * Copyright (c) 2012-2013 cpw.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the GNU Lesser Public License v2.1
+ * which accompanies this distribution, and is available at
+ * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
+ *
+ * Contributors:
+ * cpw - implementation
+ */
+
package cpw.mods.fml.common.event;
import cpw.mods.fml.common.LoaderState.ModState;
diff --git a/fml/common/cpw/mods/fml/common/event/FMLEvent.java b/fml/common/cpw/mods/fml/common/event/FMLEvent.java
index 5443715b6..18c204be8 100644
--- a/fml/common/cpw/mods/fml/common/event/FMLEvent.java
+++ b/fml/common/cpw/mods/fml/common/event/FMLEvent.java
@@ -1,3 +1,15 @@
+/*
+ * Forge Mod Loader
+ * Copyright (c) 2012-2013 cpw.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the GNU Lesser Public License v2.1
+ * which accompanies this distribution, and is available at
+ * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
+ *
+ * Contributors:
+ * cpw - implementation
+ */
+
package cpw.mods.fml.common.event;
import cpw.mods.fml.common.ModContainer;
diff --git a/fml/common/cpw/mods/fml/common/event/FMLFingerprintViolationEvent.java b/fml/common/cpw/mods/fml/common/event/FMLFingerprintViolationEvent.java
index 8d2d96663..270e1adce 100644
--- a/fml/common/cpw/mods/fml/common/event/FMLFingerprintViolationEvent.java
+++ b/fml/common/cpw/mods/fml/common/event/FMLFingerprintViolationEvent.java
@@ -1,3 +1,15 @@
+/*
+ * Forge Mod Loader
+ * Copyright (c) 2012-2013 cpw.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the GNU Lesser Public License v2.1
+ * which accompanies this distribution, and is available at
+ * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
+ *
+ * Contributors:
+ * cpw - implementation
+ */
+
package cpw.mods.fml.common.event;
import java.io.File;
diff --git a/fml/common/cpw/mods/fml/common/event/FMLInitializationEvent.java b/fml/common/cpw/mods/fml/common/event/FMLInitializationEvent.java
index e59692a6d..e38af5c4d 100644
--- a/fml/common/cpw/mods/fml/common/event/FMLInitializationEvent.java
+++ b/fml/common/cpw/mods/fml/common/event/FMLInitializationEvent.java
@@ -1,3 +1,15 @@
+/*
+ * Forge Mod Loader
+ * Copyright (c) 2012-2013 cpw.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the GNU Lesser Public License v2.1
+ * which accompanies this distribution, and is available at
+ * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
+ *
+ * Contributors:
+ * cpw - implementation
+ */
+
package cpw.mods.fml.common.event;
import cpw.mods.fml.common.LoaderState.ModState;
diff --git a/fml/common/cpw/mods/fml/common/event/FMLInterModComms.java b/fml/common/cpw/mods/fml/common/event/FMLInterModComms.java
index 31f9f1131..c3e7111c3 100644
--- a/fml/common/cpw/mods/fml/common/event/FMLInterModComms.java
+++ b/fml/common/cpw/mods/fml/common/event/FMLInterModComms.java
@@ -1,3 +1,15 @@
+/*
+ * Forge Mod Loader
+ * Copyright (c) 2012-2013 cpw.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the GNU Lesser Public License v2.1
+ * which accompanies this distribution, and is available at
+ * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
+ *
+ * Contributors:
+ * cpw - implementation
+ */
+
package cpw.mods.fml.common.event;
import java.util.List;
diff --git a/fml/common/cpw/mods/fml/common/event/FMLLoadCompleteEvent.java b/fml/common/cpw/mods/fml/common/event/FMLLoadCompleteEvent.java
index 28f9a1c87..2007ad79e 100644
--- a/fml/common/cpw/mods/fml/common/event/FMLLoadCompleteEvent.java
+++ b/fml/common/cpw/mods/fml/common/event/FMLLoadCompleteEvent.java
@@ -1,3 +1,15 @@
+/*
+ * Forge Mod Loader
+ * Copyright (c) 2012-2013 cpw.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the GNU Lesser Public License v2.1
+ * which accompanies this distribution, and is available at
+ * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
+ *
+ * Contributors:
+ * cpw - implementation
+ */
+
package cpw.mods.fml.common.event;
import cpw.mods.fml.common.LoaderState.ModState;
diff --git a/fml/common/cpw/mods/fml/common/event/FMLLoadEvent.java b/fml/common/cpw/mods/fml/common/event/FMLLoadEvent.java
index a3354a412..c788b9de6 100644
--- a/fml/common/cpw/mods/fml/common/event/FMLLoadEvent.java
+++ b/fml/common/cpw/mods/fml/common/event/FMLLoadEvent.java
@@ -1,3 +1,15 @@
+/*
+ * Forge Mod Loader
+ * Copyright (c) 2012-2013 cpw.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the GNU Lesser Public License v2.1
+ * which accompanies this distribution, and is available at
+ * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
+ *
+ * Contributors:
+ * cpw - implementation
+ */
+
package cpw.mods.fml.common.event;
public class FMLLoadEvent
diff --git a/fml/common/cpw/mods/fml/common/event/FMLPostInitializationEvent.java b/fml/common/cpw/mods/fml/common/event/FMLPostInitializationEvent.java
index 816778cdf..2efaac25d 100644
--- a/fml/common/cpw/mods/fml/common/event/FMLPostInitializationEvent.java
+++ b/fml/common/cpw/mods/fml/common/event/FMLPostInitializationEvent.java
@@ -1,3 +1,15 @@
+/*
+ * Forge Mod Loader
+ * Copyright (c) 2012-2013 cpw.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the GNU Lesser Public License v2.1
+ * which accompanies this distribution, and is available at
+ * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
+ *
+ * Contributors:
+ * cpw - implementation
+ */
+
package cpw.mods.fml.common.event;
import com.google.common.base.Throwables;
diff --git a/fml/common/cpw/mods/fml/common/event/FMLPreInitializationEvent.java b/fml/common/cpw/mods/fml/common/event/FMLPreInitializationEvent.java
index a0dbfab3c..7cf710b2a 100644
--- a/fml/common/cpw/mods/fml/common/event/FMLPreInitializationEvent.java
+++ b/fml/common/cpw/mods/fml/common/event/FMLPreInitializationEvent.java
@@ -1,3 +1,15 @@
+/*
+ * Forge Mod Loader
+ * Copyright (c) 2012-2013 cpw.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the GNU Lesser Public License v2.1
+ * which accompanies this distribution, and is available at
+ * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
+ *
+ * Contributors:
+ * cpw - implementation
+ */
+
package cpw.mods.fml.common.event;
import java.io.File;
diff --git a/fml/common/cpw/mods/fml/common/event/FMLServerAboutToStartEvent.java b/fml/common/cpw/mods/fml/common/event/FMLServerAboutToStartEvent.java
index 14574c10f..14979e89f 100644
--- a/fml/common/cpw/mods/fml/common/event/FMLServerAboutToStartEvent.java
+++ b/fml/common/cpw/mods/fml/common/event/FMLServerAboutToStartEvent.java
@@ -1,3 +1,15 @@
+/*
+ * Forge Mod Loader
+ * Copyright (c) 2012-2013 cpw.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the GNU Lesser Public License v2.1
+ * which accompanies this distribution, and is available at
+ * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
+ *
+ * Contributors:
+ * cpw - implementation
+ */
+
package cpw.mods.fml.common.event;
import net.minecraft.server.MinecraftServer;
diff --git a/fml/common/cpw/mods/fml/common/event/FMLServerStartedEvent.java b/fml/common/cpw/mods/fml/common/event/FMLServerStartedEvent.java
index f496ae9bd..32854acdc 100644
--- a/fml/common/cpw/mods/fml/common/event/FMLServerStartedEvent.java
+++ b/fml/common/cpw/mods/fml/common/event/FMLServerStartedEvent.java
@@ -1,3 +1,15 @@
+/*
+ * Forge Mod Loader
+ * Copyright (c) 2012-2013 cpw.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the GNU Lesser Public License v2.1
+ * which accompanies this distribution, and is available at
+ * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
+ *
+ * Contributors:
+ * cpw - implementation
+ */
+
package cpw.mods.fml.common.event;
import cpw.mods.fml.common.LoaderState.ModState;
diff --git a/fml/common/cpw/mods/fml/common/event/FMLServerStartingEvent.java b/fml/common/cpw/mods/fml/common/event/FMLServerStartingEvent.java
index 5e98bc62c..957dc8915 100644
--- a/fml/common/cpw/mods/fml/common/event/FMLServerStartingEvent.java
+++ b/fml/common/cpw/mods/fml/common/event/FMLServerStartingEvent.java
@@ -1,3 +1,15 @@
+/*
+ * Forge Mod Loader
+ * Copyright (c) 2012-2013 cpw.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the GNU Lesser Public License v2.1
+ * which accompanies this distribution, and is available at
+ * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
+ *
+ * Contributors:
+ * cpw - implementation
+ */
+
package cpw.mods.fml.common.event;
import net.minecraft.command.CommandHandler;
diff --git a/fml/common/cpw/mods/fml/common/event/FMLServerStoppedEvent.java b/fml/common/cpw/mods/fml/common/event/FMLServerStoppedEvent.java
index 019a9a4ef..91410ec2a 100644
--- a/fml/common/cpw/mods/fml/common/event/FMLServerStoppedEvent.java
+++ b/fml/common/cpw/mods/fml/common/event/FMLServerStoppedEvent.java
@@ -1,3 +1,15 @@
+/*
+ * Forge Mod Loader
+ * Copyright (c) 2012-2013 cpw.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the GNU Lesser Public License v2.1
+ * which accompanies this distribution, and is available at
+ * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
+ *
+ * Contributors:
+ * cpw - implementation
+ */
+
package cpw.mods.fml.common.event;
import cpw.mods.fml.common.LoaderState;
diff --git a/fml/common/cpw/mods/fml/common/event/FMLServerStoppingEvent.java b/fml/common/cpw/mods/fml/common/event/FMLServerStoppingEvent.java
index d1665e437..933fc3da5 100644
--- a/fml/common/cpw/mods/fml/common/event/FMLServerStoppingEvent.java
+++ b/fml/common/cpw/mods/fml/common/event/FMLServerStoppingEvent.java
@@ -1,3 +1,15 @@
+/*
+ * Forge Mod Loader
+ * Copyright (c) 2012-2013 cpw.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the GNU Lesser Public License v2.1
+ * which accompanies this distribution, and is available at
+ * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
+ *
+ * Contributors:
+ * cpw - implementation
+ */
+
package cpw.mods.fml.common.event;
import cpw.mods.fml.common.LoaderState.ModState;
diff --git a/fml/common/cpw/mods/fml/common/event/FMLStateEvent.java b/fml/common/cpw/mods/fml/common/event/FMLStateEvent.java
index 5c7b6e3cc..3d0a3ed71 100644
--- a/fml/common/cpw/mods/fml/common/event/FMLStateEvent.java
+++ b/fml/common/cpw/mods/fml/common/event/FMLStateEvent.java
@@ -1,3 +1,15 @@
+/*
+ * Forge Mod Loader
+ * Copyright (c) 2012-2013 cpw.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the GNU Lesser Public License v2.1
+ * which accompanies this distribution, and is available at
+ * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
+ *
+ * Contributors:
+ * cpw - implementation
+ */
+
package cpw.mods.fml.common.event;
import cpw.mods.fml.common.FMLCommonHandler;
diff --git a/fml/common/cpw/mods/fml/common/functions/ModIdFunction.java b/fml/common/cpw/mods/fml/common/functions/ModIdFunction.java
index 0aefc63c6..3a04572a1 100644
--- a/fml/common/cpw/mods/fml/common/functions/ModIdFunction.java
+++ b/fml/common/cpw/mods/fml/common/functions/ModIdFunction.java
@@ -1,3 +1,15 @@
+/*
+ * Forge Mod Loader
+ * Copyright (c) 2012-2013 cpw.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the GNU Lesser Public License v2.1
+ * which accompanies this distribution, and is available at
+ * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
+ *
+ * Contributors:
+ * cpw - implementation
+ */
+
package cpw.mods.fml.common.functions;
import com.google.common.base.Function;
@@ -10,4 +22,4 @@ public final class ModIdFunction implements Function
{
return container.getModId();
}
-}
\ No newline at end of file
+}
diff --git a/fml/common/cpw/mods/fml/common/functions/ModNameFunction.java b/fml/common/cpw/mods/fml/common/functions/ModNameFunction.java
index a429a1191..ffe24daf7 100644
--- a/fml/common/cpw/mods/fml/common/functions/ModNameFunction.java
+++ b/fml/common/cpw/mods/fml/common/functions/ModNameFunction.java
@@ -1,3 +1,15 @@
+/*
+ * Forge Mod Loader
+ * Copyright (c) 2012-2013 cpw.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the GNU Lesser Public License v2.1
+ * which accompanies this distribution, and is available at
+ * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
+ *
+ * Contributors:
+ * cpw - implementation
+ */
+
package cpw.mods.fml.common.functions;
import com.google.common.base.Function;
diff --git a/fml/common/cpw/mods/fml/common/modloader/BaseModProxy.java b/fml/common/cpw/mods/fml/common/modloader/BaseModProxy.java
index eed368bb9..2d29babc9 100644
--- a/fml/common/cpw/mods/fml/common/modloader/BaseModProxy.java
+++ b/fml/common/cpw/mods/fml/common/modloader/BaseModProxy.java
@@ -1,15 +1,13 @@
/*
- * 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
+ * Forge Mod Loader
+ * Copyright (c) 2012-2013 cpw.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the GNU Lesser Public License v2.1
+ * which accompanies this distribution, and is available at
+ * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
+ *
+ * Contributors:
+ * cpw - implementation
*/
package cpw.mods.fml.common.modloader;
diff --git a/fml/common/cpw/mods/fml/common/modloader/BaseModTicker.java b/fml/common/cpw/mods/fml/common/modloader/BaseModTicker.java
index 92fc68b07..0e2fa43bc 100644
--- a/fml/common/cpw/mods/fml/common/modloader/BaseModTicker.java
+++ b/fml/common/cpw/mods/fml/common/modloader/BaseModTicker.java
@@ -1,15 +1,13 @@
/*
- * 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
+ * Forge Mod Loader
+ * Copyright (c) 2012-2013 cpw.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the GNU Lesser Public License v2.1
+ * which accompanies this distribution, and is available at
+ * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
+ *
+ * Contributors:
+ * cpw - implementation
*/
package cpw.mods.fml.common.modloader;
diff --git a/fml/common/cpw/mods/fml/common/modloader/IModLoaderSidedHelper.java b/fml/common/cpw/mods/fml/common/modloader/IModLoaderSidedHelper.java
index 06dcc6ed4..85c1abecd 100644
--- a/fml/common/cpw/mods/fml/common/modloader/IModLoaderSidedHelper.java
+++ b/fml/common/cpw/mods/fml/common/modloader/IModLoaderSidedHelper.java
@@ -1,3 +1,15 @@
+/*
+ * Forge Mod Loader
+ * Copyright (c) 2012-2013 cpw.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the GNU Lesser Public License v2.1
+ * which accompanies this distribution, and is available at
+ * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
+ *
+ * Contributors:
+ * cpw - implementation
+ */
+
package cpw.mods.fml.common.modloader;
import net.minecraft.entity.Entity;
diff --git a/fml/common/cpw/mods/fml/common/modloader/ModLoaderChatListener.java b/fml/common/cpw/mods/fml/common/modloader/ModLoaderChatListener.java
index 8fa71e30d..c7fe2750d 100644
--- a/fml/common/cpw/mods/fml/common/modloader/ModLoaderChatListener.java
+++ b/fml/common/cpw/mods/fml/common/modloader/ModLoaderChatListener.java
@@ -1,3 +1,15 @@
+/*
+ * Forge Mod Loader
+ * Copyright (c) 2012-2013 cpw.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the GNU Lesser Public License v2.1
+ * which accompanies this distribution, and is available at
+ * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
+ *
+ * Contributors:
+ * cpw - implementation
+ */
+
package cpw.mods.fml.common.modloader;
import net.minecraft.network.NetServerHandler;
diff --git a/fml/common/cpw/mods/fml/common/modloader/ModLoaderConnectionHandler.java b/fml/common/cpw/mods/fml/common/modloader/ModLoaderConnectionHandler.java
index ba62fa347..99cf07c9e 100644
--- a/fml/common/cpw/mods/fml/common/modloader/ModLoaderConnectionHandler.java
+++ b/fml/common/cpw/mods/fml/common/modloader/ModLoaderConnectionHandler.java
@@ -1,3 +1,15 @@
+/*
+ * Forge Mod Loader
+ * Copyright (c) 2012-2013 cpw.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the GNU Lesser Public License v2.1
+ * which accompanies this distribution, and is available at
+ * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
+ *
+ * Contributors:
+ * cpw - implementation
+ */
+
package cpw.mods.fml.common.modloader;
import net.minecraft.entity.player.EntityPlayer;
diff --git a/fml/common/cpw/mods/fml/common/modloader/ModLoaderCraftingHelper.java b/fml/common/cpw/mods/fml/common/modloader/ModLoaderCraftingHelper.java
index e48466711..c3d5f98b2 100644
--- a/fml/common/cpw/mods/fml/common/modloader/ModLoaderCraftingHelper.java
+++ b/fml/common/cpw/mods/fml/common/modloader/ModLoaderCraftingHelper.java
@@ -1,3 +1,15 @@
+/*
+ * Forge Mod Loader
+ * Copyright (c) 2012-2013 cpw.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the GNU Lesser Public License v2.1
+ * which accompanies this distribution, and is available at
+ * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
+ *
+ * Contributors:
+ * cpw - implementation
+ */
+
package cpw.mods.fml.common.modloader;
import net.minecraft.entity.player.EntityPlayer;
diff --git a/fml/common/cpw/mods/fml/common/modloader/ModLoaderDispenseHelper.java b/fml/common/cpw/mods/fml/common/modloader/ModLoaderDispenseHelper.java
deleted file mode 100644
index 19e1a2366..000000000
--- a/fml/common/cpw/mods/fml/common/modloader/ModLoaderDispenseHelper.java
+++ /dev/null
@@ -1,28 +0,0 @@
-package cpw.mods.fml.common.modloader;
-
-import java.util.Random;
-
-import net.minecraft.item.ItemStack;
-import net.minecraft.world.World;
-
-import cpw.mods.fml.common.IDispenseHandler;
-import cpw.mods.fml.common.IDispenserHandler;
-
-public class ModLoaderDispenseHelper implements IDispenserHandler
-{
-
- private BaseModProxy mod;
-
- public ModLoaderDispenseHelper(BaseModProxy mod)
- {
- this.mod = mod;
- }
-
- @Override
- public int dispense(int x, int y, int z, int xVelocity, int zVelocity, World world, ItemStack item, Random random, double entX, double entY,
- double entZ)
- {
- return -1;
- }
-
-}
diff --git a/fml/common/cpw/mods/fml/common/modloader/ModLoaderEntitySpawnCallback.java b/fml/common/cpw/mods/fml/common/modloader/ModLoaderEntitySpawnCallback.java
index 940d9ab3d..a1114db73 100644
--- a/fml/common/cpw/mods/fml/common/modloader/ModLoaderEntitySpawnCallback.java
+++ b/fml/common/cpw/mods/fml/common/modloader/ModLoaderEntitySpawnCallback.java
@@ -1,3 +1,15 @@
+/*
+ * Forge Mod Loader
+ * Copyright (c) 2012-2013 cpw.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the GNU Lesser Public License v2.1
+ * which accompanies this distribution, and is available at
+ * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
+ *
+ * Contributors:
+ * cpw - implementation
+ */
+
package cpw.mods.fml.common.modloader;
import java.util.concurrent.Callable;
diff --git a/fml/common/cpw/mods/fml/common/modloader/ModLoaderFuelHelper.java b/fml/common/cpw/mods/fml/common/modloader/ModLoaderFuelHelper.java
index df911f334..052469f6d 100644
--- a/fml/common/cpw/mods/fml/common/modloader/ModLoaderFuelHelper.java
+++ b/fml/common/cpw/mods/fml/common/modloader/ModLoaderFuelHelper.java
@@ -1,3 +1,15 @@
+/*
+ * Forge Mod Loader
+ * Copyright (c) 2012-2013 cpw.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the GNU Lesser Public License v2.1
+ * which accompanies this distribution, and is available at
+ * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
+ *
+ * Contributors:
+ * cpw - implementation
+ */
+
package cpw.mods.fml.common.modloader;
import net.minecraft.item.ItemStack;
diff --git a/fml/common/cpw/mods/fml/common/modloader/ModLoaderGuiHelper.java b/fml/common/cpw/mods/fml/common/modloader/ModLoaderGuiHelper.java
index 5fed0ccdd..beb570fe6 100644
--- a/fml/common/cpw/mods/fml/common/modloader/ModLoaderGuiHelper.java
+++ b/fml/common/cpw/mods/fml/common/modloader/ModLoaderGuiHelper.java
@@ -1,3 +1,15 @@
+/*
+ * Forge Mod Loader
+ * Copyright (c) 2012-2013 cpw.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the GNU Lesser Public License v2.1
+ * which accompanies this distribution, and is available at
+ * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
+ *
+ * Contributors:
+ * cpw - implementation
+ */
+
package cpw.mods.fml.common.modloader;
import java.util.Set;
diff --git a/fml/common/cpw/mods/fml/common/modloader/ModLoaderHelper.java b/fml/common/cpw/mods/fml/common/modloader/ModLoaderHelper.java
index 8d9882116..031bcd358 100644
--- a/fml/common/cpw/mods/fml/common/modloader/ModLoaderHelper.java
+++ b/fml/common/cpw/mods/fml/common/modloader/ModLoaderHelper.java
@@ -1,15 +1,13 @@
/*
- * The FML Forge Mod Loader suite.
- * Copyright (C) 2012 cpw
+ * Forge Mod Loader
+ * Copyright (c) 2012-2013 cpw.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the GNU Lesser Public License v2.1
+ * which accompanies this distribution, and is available at
+ * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
*
- * 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
+ * Contributors:
+ * cpw - implementation
*/
package cpw.mods.fml.common.modloader;
@@ -36,8 +34,6 @@ import net.minecraft.src.TradeEntry;
import cpw.mods.fml.common.FMLCommonHandler;
import cpw.mods.fml.common.FMLLog;
import cpw.mods.fml.common.ICraftingHandler;
-import cpw.mods.fml.common.IDispenseHandler;
-import cpw.mods.fml.common.IDispenserHandler;
import cpw.mods.fml.common.IFuelHandler;
import cpw.mods.fml.common.IPickupNotifier;
import cpw.mods.fml.common.IWorldGenerator;
@@ -191,12 +187,6 @@ public class ModLoaderHelper
return null;
}
- public static IDispenserHandler buildDispenseHelper(BaseModProxy mod)
- {
- return new ModLoaderDispenseHelper(mod);
- }
-
-
public static void buildEntityTracker(BaseModProxy mod, Class extends Entity> entityClass, int entityTypeId, int updateRange, int updateInterval,
boolean sendVelocityInfo)
{
diff --git a/fml/common/cpw/mods/fml/common/modloader/ModLoaderModContainer.java b/fml/common/cpw/mods/fml/common/modloader/ModLoaderModContainer.java
index b3fdb3c55..16d5386a8 100644
--- a/fml/common/cpw/mods/fml/common/modloader/ModLoaderModContainer.java
+++ b/fml/common/cpw/mods/fml/common/modloader/ModLoaderModContainer.java
@@ -1,16 +1,15 @@
/*
- * The FML Forge Mod Loader suite.
- * Copyright (C) 2012 cpw
+ * Forge Mod Loader
+ * Copyright (c) 2012-2013 cpw.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the GNU Lesser Public License v2.1
+ * which accompanies this distribution, and is available at
+ * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
*
- * 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
+ * Contributors:
+ * cpw - implementation
*/
+
package cpw.mods.fml.common.modloader;
import java.io.File;
@@ -338,12 +337,6 @@ public class ModLoaderModContainer implements ModContainer
return mod != null ? mod.getName() : modId;
}
- @Deprecated
- public static ModContainer findContainerFor(BaseModProxy mod)
- {
- return FMLCommonHandler.instance().findContainerFor(mod);
- }
-
@Override
public String getSortingRules()
{
@@ -525,7 +518,6 @@ public class ModLoaderModContainer implements ModContainer
GameRegistry.registerFuelHandler(ModLoaderHelper.buildFuelHelper(mod));
GameRegistry.registerCraftingHandler(ModLoaderHelper.buildCraftingHelper(mod));
GameRegistry.registerPickupHandler(ModLoaderHelper.buildPickupHelper(mod));
- GameRegistry.registerDispenserHandler(ModLoaderHelper.buildDispenseHelper(mod));
NetworkRegistry.instance().registerChatListener(ModLoaderHelper.buildChatListener(mod));
NetworkRegistry.instance().registerConnectionHandler(ModLoaderHelper.buildConnectionHelper(mod));
}
diff --git a/fml/common/cpw/mods/fml/common/modloader/ModLoaderNetworkHandler.java b/fml/common/cpw/mods/fml/common/modloader/ModLoaderNetworkHandler.java
index 5efdfa3a0..3344a7d59 100644
--- a/fml/common/cpw/mods/fml/common/modloader/ModLoaderNetworkHandler.java
+++ b/fml/common/cpw/mods/fml/common/modloader/ModLoaderNetworkHandler.java
@@ -1,3 +1,15 @@
+/*
+ * Forge Mod Loader
+ * Copyright (c) 2012-2013 cpw.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the GNU Lesser Public License v2.1
+ * which accompanies this distribution, and is available at
+ * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
+ *
+ * Contributors:
+ * cpw - implementation
+ */
+
package cpw.mods.fml.common.modloader;
import cpw.mods.fml.common.ModContainer;
diff --git a/fml/common/cpw/mods/fml/common/modloader/ModLoaderPacketHandler.java b/fml/common/cpw/mods/fml/common/modloader/ModLoaderPacketHandler.java
index 3fa16b3f0..17f64c1bc 100644
--- a/fml/common/cpw/mods/fml/common/modloader/ModLoaderPacketHandler.java
+++ b/fml/common/cpw/mods/fml/common/modloader/ModLoaderPacketHandler.java
@@ -1,3 +1,15 @@
+/*
+ * Forge Mod Loader
+ * Copyright (c) 2012-2013 cpw.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the GNU Lesser Public License v2.1
+ * which accompanies this distribution, and is available at
+ * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
+ *
+ * Contributors:
+ * cpw - implementation
+ */
+
package cpw.mods.fml.common.modloader;
import net.minecraft.entity.player.EntityPlayerMP;
diff --git a/fml/common/cpw/mods/fml/common/modloader/ModLoaderPickupNotifier.java b/fml/common/cpw/mods/fml/common/modloader/ModLoaderPickupNotifier.java
index 36a53c4df..d356199f4 100644
--- a/fml/common/cpw/mods/fml/common/modloader/ModLoaderPickupNotifier.java
+++ b/fml/common/cpw/mods/fml/common/modloader/ModLoaderPickupNotifier.java
@@ -1,3 +1,15 @@
+/*
+ * Forge Mod Loader
+ * Copyright (c) 2012-2013 cpw.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the GNU Lesser Public License v2.1
+ * which accompanies this distribution, and is available at
+ * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
+ *
+ * Contributors:
+ * cpw - implementation
+ */
+
package cpw.mods.fml.common.modloader;
import net.minecraft.entity.item.EntityItem;
diff --git a/fml/common/cpw/mods/fml/common/modloader/ModLoaderVillageTradeHandler.java b/fml/common/cpw/mods/fml/common/modloader/ModLoaderVillageTradeHandler.java
index 35e474350..d0bd6106b 100644
--- a/fml/common/cpw/mods/fml/common/modloader/ModLoaderVillageTradeHandler.java
+++ b/fml/common/cpw/mods/fml/common/modloader/ModLoaderVillageTradeHandler.java
@@ -1,3 +1,15 @@
+/*
+ * Forge Mod Loader
+ * Copyright (c) 2012-2013 cpw.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the GNU Lesser Public License v2.1
+ * which accompanies this distribution, and is available at
+ * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
+ *
+ * Contributors:
+ * cpw - implementation
+ */
+
package cpw.mods.fml.common.modloader;
import java.util.List;
diff --git a/fml/common/cpw/mods/fml/common/modloader/ModLoaderWorldGenerator.java b/fml/common/cpw/mods/fml/common/modloader/ModLoaderWorldGenerator.java
index b8e6bba94..cf0b8c1d6 100644
--- a/fml/common/cpw/mods/fml/common/modloader/ModLoaderWorldGenerator.java
+++ b/fml/common/cpw/mods/fml/common/modloader/ModLoaderWorldGenerator.java
@@ -1,3 +1,15 @@
+/*
+ * Forge Mod Loader
+ * Copyright (c) 2012-2013 cpw.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the GNU Lesser Public License v2.1
+ * which accompanies this distribution, and is available at
+ * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
+ *
+ * Contributors:
+ * cpw - implementation
+ */
+
package cpw.mods.fml.common.modloader;
import java.util.Random;
diff --git a/fml/common/cpw/mods/fml/common/modloader/ModProperty.java b/fml/common/cpw/mods/fml/common/modloader/ModProperty.java
index 819bb3412..946695cb7 100644
--- a/fml/common/cpw/mods/fml/common/modloader/ModProperty.java
+++ b/fml/common/cpw/mods/fml/common/modloader/ModProperty.java
@@ -1,15 +1,13 @@
/*
- * 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
+ * Forge Mod Loader
+ * Copyright (c) 2012-2013 cpw.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the GNU Lesser Public License v2.1
+ * which accompanies this distribution, and is available at
+ * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
+ *
+ * Contributors:
+ * cpw - implementation
*/
package cpw.mods.fml.common.modloader;
diff --git a/fml/common/cpw/mods/fml/common/network/EntitySpawnAdjustmentPacket.java b/fml/common/cpw/mods/fml/common/network/EntitySpawnAdjustmentPacket.java
index 166eaf1c7..ff175f3e7 100644
--- a/fml/common/cpw/mods/fml/common/network/EntitySpawnAdjustmentPacket.java
+++ b/fml/common/cpw/mods/fml/common/network/EntitySpawnAdjustmentPacket.java
@@ -1,3 +1,15 @@
+/*
+ * Forge Mod Loader
+ * Copyright (c) 2012-2013 cpw.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the GNU Lesser Public License v2.1
+ * which accompanies this distribution, and is available at
+ * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
+ *
+ * Contributors:
+ * cpw - implementation
+ */
+
package cpw.mods.fml.common.network;
import net.minecraft.network.INetworkManager;
diff --git a/fml/common/cpw/mods/fml/common/network/EntitySpawnPacket.java b/fml/common/cpw/mods/fml/common/network/EntitySpawnPacket.java
index ddd68b78e..118bf338a 100644
--- a/fml/common/cpw/mods/fml/common/network/EntitySpawnPacket.java
+++ b/fml/common/cpw/mods/fml/common/network/EntitySpawnPacket.java
@@ -1,3 +1,15 @@
+/*
+ * Forge Mod Loader
+ * Copyright (c) 2012-2013 cpw.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the GNU Lesser Public License v2.1
+ * which accompanies this distribution, and is available at
+ * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
+ *
+ * Contributors:
+ * cpw - implementation
+ */
+
package cpw.mods.fml.common.network;
import java.io.ByteArrayInputStream;
diff --git a/fml/common/cpw/mods/fml/common/network/FMLNetworkException.java b/fml/common/cpw/mods/fml/common/network/FMLNetworkException.java
index 8574944df..d62dd78a7 100644
--- a/fml/common/cpw/mods/fml/common/network/FMLNetworkException.java
+++ b/fml/common/cpw/mods/fml/common/network/FMLNetworkException.java
@@ -1,3 +1,15 @@
+/*
+ * Forge Mod Loader
+ * Copyright (c) 2012-2013 cpw.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the GNU Lesser Public License v2.1
+ * which accompanies this distribution, and is available at
+ * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
+ *
+ * Contributors:
+ * cpw - implementation
+ */
+
package cpw.mods.fml.common.network;
public class FMLNetworkException extends RuntimeException
diff --git a/fml/common/cpw/mods/fml/common/network/FMLNetworkHandler.java b/fml/common/cpw/mods/fml/common/network/FMLNetworkHandler.java
index 7877306a0..f21f78fb1 100644
--- a/fml/common/cpw/mods/fml/common/network/FMLNetworkHandler.java
+++ b/fml/common/cpw/mods/fml/common/network/FMLNetworkHandler.java
@@ -1,3 +1,15 @@
+/*
+ * Forge Mod Loader
+ * Copyright (c) 2012-2013 cpw.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the GNU Lesser Public License v2.1
+ * which accompanies this distribution, and is available at
+ * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
+ *
+ * Contributors:
+ * cpw - implementation
+ */
+
package cpw.mods.fml.common.network;
import static cpw.mods.fml.common.network.FMLPacket.Type.MOD_LIST_REQUEST;
@@ -423,4 +435,4 @@ public class FMLNetworkHandler
{
return FMLCommonHandler.instance().getSidedDelegate().getClientCompatibilityLevel() == 0;
}
-}
\ No newline at end of file
+}
diff --git a/fml/common/cpw/mods/fml/common/network/FMLPacket.java b/fml/common/cpw/mods/fml/common/network/FMLPacket.java
index b54c9a0ef..71bd6eccb 100644
--- a/fml/common/cpw/mods/fml/common/network/FMLPacket.java
+++ b/fml/common/cpw/mods/fml/common/network/FMLPacket.java
@@ -1,3 +1,15 @@
+/*
+ * Forge Mod Loader
+ * Copyright (c) 2012-2013 cpw.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the GNU Lesser Public License v2.1
+ * which accompanies this distribution, and is available at
+ * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
+ *
+ * Contributors:
+ * cpw - implementation
+ */
+
package cpw.mods.fml.common.network;
import java.util.Arrays;
diff --git a/fml/common/cpw/mods/fml/common/network/IChatListener.java b/fml/common/cpw/mods/fml/common/network/IChatListener.java
index 6ae4bbe51..a48ece043 100644
--- a/fml/common/cpw/mods/fml/common/network/IChatListener.java
+++ b/fml/common/cpw/mods/fml/common/network/IChatListener.java
@@ -1,3 +1,15 @@
+/*
+ * Forge Mod Loader
+ * Copyright (c) 2012-2013 cpw.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the GNU Lesser Public License v2.1
+ * which accompanies this distribution, and is available at
+ * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
+ *
+ * Contributors:
+ * cpw - implementation
+ */
+
package cpw.mods.fml.common.network;
import net.minecraft.network.packet.*;
diff --git a/fml/common/cpw/mods/fml/common/network/IConnectionHandler.java b/fml/common/cpw/mods/fml/common/network/IConnectionHandler.java
index 8eae0f1a5..3c1765f06 100644
--- a/fml/common/cpw/mods/fml/common/network/IConnectionHandler.java
+++ b/fml/common/cpw/mods/fml/common/network/IConnectionHandler.java
@@ -1,3 +1,15 @@
+/*
+ * Forge Mod Loader
+ * Copyright (c) 2012-2013 cpw.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the GNU Lesser Public License v2.1
+ * which accompanies this distribution, and is available at
+ * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
+ *
+ * Contributors:
+ * cpw - implementation
+ */
+
package cpw.mods.fml.common.network;
import net.minecraft.network.INetworkManager;
diff --git a/fml/common/cpw/mods/fml/common/network/IGuiHandler.java b/fml/common/cpw/mods/fml/common/network/IGuiHandler.java
index 2b4ae19c6..444f16379 100644
--- a/fml/common/cpw/mods/fml/common/network/IGuiHandler.java
+++ b/fml/common/cpw/mods/fml/common/network/IGuiHandler.java
@@ -1,3 +1,15 @@
+/*
+ * Forge Mod Loader
+ * Copyright (c) 2012-2013 cpw.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the GNU Lesser Public License v2.1
+ * which accompanies this distribution, and is available at
+ * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
+ *
+ * Contributors:
+ * cpw - implementation
+ */
+
package cpw.mods.fml.common.network;
import net.minecraft.entity.player.EntityPlayer;
diff --git a/fml/common/cpw/mods/fml/common/network/IPacketHandler.java b/fml/common/cpw/mods/fml/common/network/IPacketHandler.java
index fc6b61b65..04074d1bd 100644
--- a/fml/common/cpw/mods/fml/common/network/IPacketHandler.java
+++ b/fml/common/cpw/mods/fml/common/network/IPacketHandler.java
@@ -1,3 +1,15 @@
+/*
+ * Forge Mod Loader
+ * Copyright (c) 2012-2013 cpw.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the GNU Lesser Public License v2.1
+ * which accompanies this distribution, and is available at
+ * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
+ *
+ * Contributors:
+ * cpw - implementation
+ */
+
package cpw.mods.fml.common.network;
import net.minecraft.network.INetworkManager;
diff --git a/fml/common/cpw/mods/fml/common/network/ITinyPacketHandler.java b/fml/common/cpw/mods/fml/common/network/ITinyPacketHandler.java
index 851d7dd02..163c0dbe2 100644
--- a/fml/common/cpw/mods/fml/common/network/ITinyPacketHandler.java
+++ b/fml/common/cpw/mods/fml/common/network/ITinyPacketHandler.java
@@ -1,3 +1,15 @@
+/*
+ * Forge Mod Loader
+ * Copyright (c) 2012-2013 cpw.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the GNU Lesser Public License v2.1
+ * which accompanies this distribution, and is available at
+ * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
+ *
+ * Contributors:
+ * cpw - implementation
+ */
+
package cpw.mods.fml.common.network;
import net.minecraft.network.packet.*;
diff --git a/fml/common/cpw/mods/fml/common/network/ModIdMapPacket.java b/fml/common/cpw/mods/fml/common/network/ModIdMapPacket.java
index ce433942d..6462681e6 100644
--- a/fml/common/cpw/mods/fml/common/network/ModIdMapPacket.java
+++ b/fml/common/cpw/mods/fml/common/network/ModIdMapPacket.java
@@ -1,3 +1,15 @@
+/*
+ * Forge Mod Loader
+ * Copyright (c) 2012-2013 cpw.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the GNU Lesser Public License v2.1
+ * which accompanies this distribution, and is available at
+ * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
+ *
+ * Contributors:
+ * cpw - implementation
+ */
+
package cpw.mods.fml.common.network;
import java.io.IOException;
diff --git a/fml/common/cpw/mods/fml/common/network/ModIdentifiersPacket.java b/fml/common/cpw/mods/fml/common/network/ModIdentifiersPacket.java
index be2e03ee0..40f101d2e 100644
--- a/fml/common/cpw/mods/fml/common/network/ModIdentifiersPacket.java
+++ b/fml/common/cpw/mods/fml/common/network/ModIdentifiersPacket.java
@@ -1,3 +1,15 @@
+/*
+ * Forge Mod Loader
+ * Copyright (c) 2012-2013 cpw.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the GNU Lesser Public License v2.1
+ * which accompanies this distribution, and is available at
+ * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
+ *
+ * Contributors:
+ * cpw - implementation
+ */
+
package cpw.mods.fml.common.network;
import static cpw.mods.fml.common.network.FMLPacket.Type.MOD_IDENTIFIERS;
diff --git a/fml/common/cpw/mods/fml/common/network/ModListRequestPacket.java b/fml/common/cpw/mods/fml/common/network/ModListRequestPacket.java
index 7a2d73322..af26fd46b 100644
--- a/fml/common/cpw/mods/fml/common/network/ModListRequestPacket.java
+++ b/fml/common/cpw/mods/fml/common/network/ModListRequestPacket.java
@@ -1,3 +1,15 @@
+/*
+ * Forge Mod Loader
+ * Copyright (c) 2012-2013 cpw.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the GNU Lesser Public License v2.1
+ * which accompanies this distribution, and is available at
+ * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
+ *
+ * Contributors:
+ * cpw - implementation
+ */
+
package cpw.mods.fml.common.network;
import static cpw.mods.fml.common.network.FMLPacket.Type.MOD_LIST_REQUEST;
diff --git a/fml/common/cpw/mods/fml/common/network/ModListResponsePacket.java b/fml/common/cpw/mods/fml/common/network/ModListResponsePacket.java
index d28a63bbd..b072a3daf 100644
--- a/fml/common/cpw/mods/fml/common/network/ModListResponsePacket.java
+++ b/fml/common/cpw/mods/fml/common/network/ModListResponsePacket.java
@@ -1,3 +1,15 @@
+/*
+ * Forge Mod Loader
+ * Copyright (c) 2012-2013 cpw.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the GNU Lesser Public License v2.1
+ * which accompanies this distribution, and is available at
+ * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
+ *
+ * Contributors:
+ * cpw - implementation
+ */
+
package cpw.mods.fml.common.network;
import static cpw.mods.fml.common.network.FMLPacket.Type.MOD_IDENTIFIERS;
diff --git a/fml/common/cpw/mods/fml/common/network/ModMissingPacket.java b/fml/common/cpw/mods/fml/common/network/ModMissingPacket.java
index 4f5b50eac..798ba988b 100644
--- a/fml/common/cpw/mods/fml/common/network/ModMissingPacket.java
+++ b/fml/common/cpw/mods/fml/common/network/ModMissingPacket.java
@@ -1,3 +1,15 @@
+/*
+ * Forge Mod Loader
+ * Copyright (c) 2012-2013 cpw.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the GNU Lesser Public License v2.1
+ * which accompanies this distribution, and is available at
+ * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
+ *
+ * Contributors:
+ * cpw - implementation
+ */
+
package cpw.mods.fml.common.network;
import java.util.List;
diff --git a/fml/common/cpw/mods/fml/common/network/NetworkMod.java b/fml/common/cpw/mods/fml/common/network/NetworkMod.java
index 44f593654..e8b7c0b78 100644
--- a/fml/common/cpw/mods/fml/common/network/NetworkMod.java
+++ b/fml/common/cpw/mods/fml/common/network/NetworkMod.java
@@ -1,3 +1,15 @@
+/*
+ * Forge Mod Loader
+ * Copyright (c) 2012-2013 cpw.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the GNU Lesser Public License v2.1
+ * which accompanies this distribution, and is available at
+ * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
+ *
+ * Contributors:
+ * cpw - implementation
+ */
+
package cpw.mods.fml.common.network;
import java.lang.annotation.ElementType;
diff --git a/fml/common/cpw/mods/fml/common/network/NetworkModHandler.java b/fml/common/cpw/mods/fml/common/network/NetworkModHandler.java
index 34d9ed071..1b0737afb 100644
--- a/fml/common/cpw/mods/fml/common/network/NetworkModHandler.java
+++ b/fml/common/cpw/mods/fml/common/network/NetworkModHandler.java
@@ -1,3 +1,15 @@
+/*
+ * Forge Mod Loader
+ * Copyright (c) 2012-2013 cpw.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the GNU Lesser Public License v2.1
+ * which accompanies this distribution, and is available at
+ * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
+ *
+ * Contributors:
+ * cpw - implementation
+ */
+
package cpw.mods.fml.common.network;
import java.lang.reflect.Method;
diff --git a/fml/common/cpw/mods/fml/common/network/NetworkRegistry.java b/fml/common/cpw/mods/fml/common/network/NetworkRegistry.java
index 60acbe4be..718da56da 100644
--- a/fml/common/cpw/mods/fml/common/network/NetworkRegistry.java
+++ b/fml/common/cpw/mods/fml/common/network/NetworkRegistry.java
@@ -1,3 +1,15 @@
+/*
+ * Forge Mod Loader
+ * Copyright (c) 2012-2013 cpw.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the GNU Lesser Public License v2.1
+ * which accompanies this distribution, and is available at
+ * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
+ *
+ * Contributors:
+ * cpw - implementation
+ */
+
package cpw.mods.fml.common.network;
import java.util.Arrays;
diff --git a/fml/common/cpw/mods/fml/common/network/OpenGuiPacket.java b/fml/common/cpw/mods/fml/common/network/OpenGuiPacket.java
index 3b5ab47a1..e88dff02e 100644
--- a/fml/common/cpw/mods/fml/common/network/OpenGuiPacket.java
+++ b/fml/common/cpw/mods/fml/common/network/OpenGuiPacket.java
@@ -1,3 +1,15 @@
+/*
+ * Forge Mod Loader
+ * Copyright (c) 2012-2013 cpw.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the GNU Lesser Public License v2.1
+ * which accompanies this distribution, and is available at
+ * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
+ *
+ * Contributors:
+ * cpw - implementation
+ */
+
package cpw.mods.fml.common.network;
import net.minecraft.entity.player.EntityPlayer;
diff --git a/fml/common/cpw/mods/fml/common/network/PacketDispatcher.java b/fml/common/cpw/mods/fml/common/network/PacketDispatcher.java
index 533734f1a..e876a8cea 100644
--- a/fml/common/cpw/mods/fml/common/network/PacketDispatcher.java
+++ b/fml/common/cpw/mods/fml/common/network/PacketDispatcher.java
@@ -1,3 +1,15 @@
+/*
+ * Forge Mod Loader
+ * Copyright (c) 2012-2013 cpw.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the GNU Lesser Public License v2.1
+ * which accompanies this distribution, and is available at
+ * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
+ *
+ * Contributors:
+ * cpw - implementation
+ */
+
package cpw.mods.fml.common.network;
import net.minecraft.entity.player.EntityPlayerMP;
diff --git a/fml/common/cpw/mods/fml/common/network/Player.java b/fml/common/cpw/mods/fml/common/network/Player.java
index 2dbc818a9..96823bc44 100644
--- a/fml/common/cpw/mods/fml/common/network/Player.java
+++ b/fml/common/cpw/mods/fml/common/network/Player.java
@@ -1,3 +1,15 @@
+/*
+ * Forge Mod Loader
+ * Copyright (c) 2012-2013 cpw.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the GNU Lesser Public License v2.1
+ * which accompanies this distribution, and is available at
+ * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
+ *
+ * Contributors:
+ * cpw - implementation
+ */
+
package cpw.mods.fml.common.network;
/**
diff --git a/fml/common/cpw/mods/fml/common/registry/BlockProxy.java b/fml/common/cpw/mods/fml/common/registry/BlockProxy.java
index 99d3a912b..f8d3e4861 100644
--- a/fml/common/cpw/mods/fml/common/registry/BlockProxy.java
+++ b/fml/common/cpw/mods/fml/common/registry/BlockProxy.java
@@ -1,3 +1,15 @@
+/*
+ * Forge Mod Loader
+ * Copyright (c) 2012-2013 cpw.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the GNU Lesser Public License v2.1
+ * which accompanies this distribution, and is available at
+ * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
+ *
+ * Contributors:
+ * cpw - implementation
+ */
+
package cpw.mods.fml.common.registry;
public interface BlockProxy
diff --git a/fml/common/cpw/mods/fml/common/registry/BlockTracker.java b/fml/common/cpw/mods/fml/common/registry/BlockTracker.java
index ee46a2a44..1ec8624e7 100644
--- a/fml/common/cpw/mods/fml/common/registry/BlockTracker.java
+++ b/fml/common/cpw/mods/fml/common/registry/BlockTracker.java
@@ -1,3 +1,15 @@
+/*
+ * Forge Mod Loader
+ * Copyright (c) 2012-2013 cpw.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the GNU Lesser Public License v2.1
+ * which accompanies this distribution, and is available at
+ * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
+ *
+ * Contributors:
+ * cpw - implementation
+ */
+
package cpw.mods.fml.common.registry;
import java.util.BitSet;
diff --git a/fml/common/cpw/mods/fml/common/registry/EntityRegistry.java b/fml/common/cpw/mods/fml/common/registry/EntityRegistry.java
index 6059502b5..6ab2d62a5 100644
--- a/fml/common/cpw/mods/fml/common/registry/EntityRegistry.java
+++ b/fml/common/cpw/mods/fml/common/registry/EntityRegistry.java
@@ -1,3 +1,15 @@
+/*
+ * Forge Mod Loader
+ * Copyright (c) 2012-2013 cpw.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the GNU Lesser Public License v2.1
+ * which accompanies this distribution, and is available at
+ * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
+ *
+ * Contributors:
+ * cpw - implementation
+ */
+
package cpw.mods.fml.common.registry;
import java.util.BitSet;
diff --git a/fml/common/cpw/mods/fml/common/registry/GameData.java b/fml/common/cpw/mods/fml/common/registry/GameData.java
index 551476522..9393cb143 100644
--- a/fml/common/cpw/mods/fml/common/registry/GameData.java
+++ b/fml/common/cpw/mods/fml/common/registry/GameData.java
@@ -1,3 +1,15 @@
+/*
+ * Forge Mod Loader
+ * Copyright (c) 2012-2013 cpw.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the GNU Lesser Public License v2.1
+ * which accompanies this distribution, and is available at
+ * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
+ *
+ * Contributors:
+ * cpw - implementation
+ */
+
package cpw.mods.fml.common.registry;
import java.io.File;
@@ -10,6 +22,8 @@ import java.util.Set;
import java.util.concurrent.CountDownLatch;
import java.util.logging.Level;
+import net.minecraft.block.Block;
+import net.minecraft.block.BlockSand;
import net.minecraft.item.Item;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.nbt.NBTTagList;
@@ -17,10 +31,15 @@ import net.minecraft.nbt.NBTTagList;
import com.google.common.base.Function;
import com.google.common.base.Throwables;
import com.google.common.collect.ImmutableMap;
+import com.google.common.collect.ImmutableTable;
+import com.google.common.collect.ImmutableTable.Builder;
import com.google.common.collect.MapDifference;
+import com.google.common.collect.Tables;
import com.google.common.collect.MapDifference.ValueDifference;
import com.google.common.collect.Maps;
import com.google.common.collect.Sets;
+import com.google.common.collect.Table;
+import com.google.common.collect.Table.Cell;
import cpw.mods.fml.common.FMLLog;
import cpw.mods.fml.common.Loader;
@@ -34,6 +53,7 @@ public class GameData {
private static MapDifference difference;
private static boolean shouldContinue = true;
private static boolean isSaveValid = true;
+ private static ImmutableTable modObjectTable;
private static Map ignoredMods;
private static boolean isModIgnoredForIdValidation(String modId)
@@ -226,4 +246,57 @@ public class GameData {
ItemData itemData = idMap.get(id);
itemData.setName(name,modId);
}
+
+ public static void buildModObjectTable()
+ {
+ if (modObjectTable != null)
+ {
+ throw new IllegalStateException("Illegal call to buildModObjectTable!");
+ }
+
+ Map> map = Maps.transformValues(idMap, new Function>() {
+ public Cell apply(ItemData data)
+ {
+ if ("Minecraft".equals(data.getModId()) || !data.isOveridden())
+ {
+ return null;
+ }
+ return Tables.immutableCell(data.getModId(), data.getItemType(), data.getItemId());
+ }
+ });
+
+ Builder tBuilder = ImmutableTable.builder();
+ for (Cell c : map.values())
+ {
+ if (c!=null)
+ {
+ tBuilder.put(c);
+ }
+ }
+ modObjectTable = tBuilder.build();
+ }
+ static Item findItem(String modId, String name)
+ {
+ if (modObjectTable == null)
+ {
+ return null;
+ }
+
+ return Item.field_77698_e[modObjectTable.get(modId, name)];
+ }
+
+ static Block findBlock(String modId, String name)
+ {
+ if (modObjectTable == null)
+ {
+ return null;
+ }
+
+ Integer blockId = modObjectTable.get(modId, name);
+ if (blockId >= Block.field_71973_m.length)
+ {
+ return null;
+ }
+ return Block.field_71973_m[blockId];
+ }
}
diff --git a/fml/common/cpw/mods/fml/common/registry/GameRegistry.java b/fml/common/cpw/mods/fml/common/registry/GameRegistry.java
index a2b66c188..c504fac29 100644
--- a/fml/common/cpw/mods/fml/common/registry/GameRegistry.java
+++ b/fml/common/cpw/mods/fml/common/registry/GameRegistry.java
@@ -1,5 +1,18 @@
+/*
+ * Forge Mod Loader
+ * Copyright (c) 2012-2013 cpw.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the GNU Lesser Public License v2.1
+ * which accompanies this distribution, and is available at
+ * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
+ *
+ * Contributors:
+ * cpw - implementation
+ */
+
package cpw.mods.fml.common.registry;
+import java.lang.reflect.Constructor;
import java.util.List;
import java.util.Map;
import java.util.Random;
@@ -36,8 +49,6 @@ import com.google.common.collect.Sets.SetView;
import cpw.mods.fml.common.FMLLog;
import cpw.mods.fml.common.ICraftingHandler;
-import cpw.mods.fml.common.IDispenseHandler;
-import cpw.mods.fml.common.IDispenserHandler;
import cpw.mods.fml.common.IFuelHandler;
import cpw.mods.fml.common.IPickupNotifier;
import cpw.mods.fml.common.IPlayerTracker;
@@ -92,43 +103,6 @@ public class GameRegistry
}
}
- /**
- * Deprecated without replacement. Use vanilla DispenserRegistry code
- *
- * @param handler
- */
- @Deprecated
- public static void registerDispenserHandler(IDispenserHandler handler)
- {
- }
- /**
- * Deprecated without replacement. Use vanilla DispenserRegistry code
- *
- * @param handler
- */
- @Deprecated
- public static void registerDispenserHandler(final IDispenseHandler handler)
- {
- }
-
-
- /**
- *
- * Deprecated without replacement, use vanilla DispenserRegistry code
- *
- * @param world
- * @param x
- * @param y
- * @param z
- * @param xVelocity
- * @param zVelocity
- * @param item
- */
- @Deprecated
- public static int tryDispense(World world, int x, int y, int z, int xVelocity, int zVelocity, ItemStack item, Random random, double entX, double entY, double entZ)
- {
- return -1;
- }
/**
* Internal method for creating an @Block instance
* @param container
@@ -238,7 +212,18 @@ public class GameRegistry
assert block != null : "registerBlock: block cannot be null";
assert itemclass != null : "registerBlock: itemclass cannot be null";
int blockItemId = block.field_71990_ca - 256;
- Item i = itemclass.getConstructor(int.class).newInstance(blockItemId);
+ Constructor extends ItemBlock> itemCtor;
+ Item i;
+ try
+ {
+ itemCtor = itemclass.getConstructor(int.class);
+ i = itemCtor.newInstance(blockItemId);
+ }
+ catch (NoSuchMethodException e)
+ {
+ itemCtor = itemclass.getConstructor(int.class, Block.class);
+ i = itemCtor.newInstance(blockItemId, block);
+ }
GameRegistry.registerItem(i,name, modId);
}
catch (Exception e)
@@ -387,4 +372,26 @@ public class GameRegistry
tracker.onPlayerRespawn(player);
}
+
+ /**
+ * Look up a mod block in the global "named item list"
+ * @param modId The modid owning the block
+ * @param name The name of the block itself
+ * @return The block or null if not found
+ */
+ public static net.minecraft.block.Block findBlock(String modId, String name)
+ {
+ return GameData.findBlock(modId, name);
+ }
+
+ /**
+ * Look up a mod item in the global "named item list"
+ * @param modId The modid owning the item
+ * @param name The name of the item itself
+ * @return The item or null if not found
+ */
+ public static net.minecraft.item.Item findItem(String modId, String name)
+ {
+ return GameData.findItem(modId, name);
+ }
}
diff --git a/fml/common/cpw/mods/fml/common/registry/IEntityAdditionalSpawnData.java b/fml/common/cpw/mods/fml/common/registry/IEntityAdditionalSpawnData.java
index db25bd59a..6d8c9e257 100644
--- a/fml/common/cpw/mods/fml/common/registry/IEntityAdditionalSpawnData.java
+++ b/fml/common/cpw/mods/fml/common/registry/IEntityAdditionalSpawnData.java
@@ -1,3 +1,15 @@
+/*
+ * Forge Mod Loader
+ * Copyright (c) 2012-2013 cpw.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the GNU Lesser Public License v2.1
+ * which accompanies this distribution, and is available at
+ * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
+ *
+ * Contributors:
+ * cpw - implementation
+ */
+
package cpw.mods.fml.common.registry;
import com.google.common.io.ByteArrayDataInput;
diff --git a/fml/common/cpw/mods/fml/common/registry/IThrowableEntity.java b/fml/common/cpw/mods/fml/common/registry/IThrowableEntity.java
index 49e752345..57d0182ee 100644
--- a/fml/common/cpw/mods/fml/common/registry/IThrowableEntity.java
+++ b/fml/common/cpw/mods/fml/common/registry/IThrowableEntity.java
@@ -1,3 +1,15 @@
+/*
+ * Forge Mod Loader
+ * Copyright (c) 2012-2013 cpw.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the GNU Lesser Public License v2.1
+ * which accompanies this distribution, and is available at
+ * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
+ *
+ * Contributors:
+ * cpw - implementation
+ */
+
package cpw.mods.fml.common.registry;
import net.minecraft.entity.Entity;
diff --git a/fml/common/cpw/mods/fml/common/registry/ItemData.java b/fml/common/cpw/mods/fml/common/registry/ItemData.java
index f17399227..567cd5442 100644
--- a/fml/common/cpw/mods/fml/common/registry/ItemData.java
+++ b/fml/common/cpw/mods/fml/common/registry/ItemData.java
@@ -1,3 +1,15 @@
+/*
+ * Forge Mod Loader
+ * Copyright (c) 2012-2013 cpw.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the GNU Lesser Public License v2.1
+ * which accompanies this distribution, and is available at
+ * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
+ *
+ * Contributors:
+ * cpw - implementation
+ */
+
package cpw.mods.fml.common.registry;
import java.util.Map;
diff --git a/fml/common/cpw/mods/fml/common/registry/ItemProxy.java b/fml/common/cpw/mods/fml/common/registry/ItemProxy.java
index ffb3b5f2d..d0ec3a550 100644
--- a/fml/common/cpw/mods/fml/common/registry/ItemProxy.java
+++ b/fml/common/cpw/mods/fml/common/registry/ItemProxy.java
@@ -1,3 +1,15 @@
+/*
+ * Forge Mod Loader
+ * Copyright (c) 2012-2013 cpw.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the GNU Lesser Public License v2.1
+ * which accompanies this distribution, and is available at
+ * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
+ *
+ * Contributors:
+ * cpw - implementation
+ */
+
package cpw.mods.fml.common.registry;
public interface ItemProxy
diff --git a/fml/common/cpw/mods/fml/common/registry/LanguageRegistry.java b/fml/common/cpw/mods/fml/common/registry/LanguageRegistry.java
index 65a7d2bd2..c150c2fd5 100644
--- a/fml/common/cpw/mods/fml/common/registry/LanguageRegistry.java
+++ b/fml/common/cpw/mods/fml/common/registry/LanguageRegistry.java
@@ -1,3 +1,15 @@
+/*
+ * Forge Mod Loader
+ * Copyright (c) 2012-2013 cpw.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the GNU Lesser Public License v2.1
+ * which accompanies this distribution, and is available at
+ * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
+ *
+ * Contributors:
+ * cpw - implementation
+ */
+
package cpw.mods.fml.common.registry;
import java.io.IOException;
@@ -83,8 +95,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);
}
diff --git a/fml/common/cpw/mods/fml/common/registry/TickRegistry.java b/fml/common/cpw/mods/fml/common/registry/TickRegistry.java
index b16f85684..b75e70796 100644
--- a/fml/common/cpw/mods/fml/common/registry/TickRegistry.java
+++ b/fml/common/cpw/mods/fml/common/registry/TickRegistry.java
@@ -1,3 +1,15 @@
+/*
+ * Forge Mod Loader
+ * Copyright (c) 2012-2013 cpw.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the GNU Lesser Public License v2.1
+ * which accompanies this distribution, and is available at
+ * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
+ *
+ * Contributors:
+ * cpw - implementation
+ */
+
package cpw.mods.fml.common.registry;
import java.util.List;
diff --git a/fml/common/cpw/mods/fml/common/registry/VillagerRegistry.java b/fml/common/cpw/mods/fml/common/registry/VillagerRegistry.java
index bcac65e90..460757c0b 100644
--- a/fml/common/cpw/mods/fml/common/registry/VillagerRegistry.java
+++ b/fml/common/cpw/mods/fml/common/registry/VillagerRegistry.java
@@ -1,3 +1,15 @@
+/*
+ * Forge Mod Loader
+ * Copyright (c) 2012-2013 cpw.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the GNU Lesser Public License v2.1
+ * which accompanies this distribution, and is available at
+ * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
+ *
+ * Contributors:
+ * cpw - implementation
+ */
+
package cpw.mods.fml.common.registry;
import java.util.ArrayList;
diff --git a/fml/common/cpw/mods/fml/common/toposort/ModSortingException.java b/fml/common/cpw/mods/fml/common/toposort/ModSortingException.java
index 27a5cd5ee..9bea2d44c 100644
--- a/fml/common/cpw/mods/fml/common/toposort/ModSortingException.java
+++ b/fml/common/cpw/mods/fml/common/toposort/ModSortingException.java
@@ -1,3 +1,15 @@
+/*
+ * Forge Mod Loader
+ * Copyright (c) 2012-2013 cpw.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the GNU Lesser Public License v2.1
+ * which accompanies this distribution, and is available at
+ * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
+ *
+ * Contributors:
+ * cpw - implementation
+ */
+
package cpw.mods.fml.common.toposort;
import java.util.Set;
diff --git a/fml/common/cpw/mods/fml/common/toposort/TopologicalSort.java b/fml/common/cpw/mods/fml/common/toposort/TopologicalSort.java
index ee1c54baa..4fb1d4a71 100644
--- a/fml/common/cpw/mods/fml/common/toposort/TopologicalSort.java
+++ b/fml/common/cpw/mods/fml/common/toposort/TopologicalSort.java
@@ -1,16 +1,15 @@
/*
- * 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
+ * Forge Mod Loader
+ * Copyright (c) 2012-2013 cpw.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the GNU Lesser Public License v2.1
+ * which accompanies this distribution, and is available at
+ * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
+ *
+ * Contributors:
+ * cpw - implementation
*/
+
package cpw.mods.fml.common.toposort;
import java.util.ArrayList;
diff --git a/fml/common/cpw/mods/fml/common/versioning/ArtifactVersion.java b/fml/common/cpw/mods/fml/common/versioning/ArtifactVersion.java
index 52790a423..1cbf4c73a 100644
--- a/fml/common/cpw/mods/fml/common/versioning/ArtifactVersion.java
+++ b/fml/common/cpw/mods/fml/common/versioning/ArtifactVersion.java
@@ -1,3 +1,15 @@
+/*
+ * Forge Mod Loader
+ * Copyright (c) 2012-2013 cpw.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the GNU Lesser Public License v2.1
+ * which accompanies this distribution, and is available at
+ * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
+ *
+ * Contributors:
+ * cpw - implementation
+ */
+
package cpw.mods.fml.common.versioning;
/*
diff --git a/fml/common/cpw/mods/fml/common/versioning/ComparableVersion.java b/fml/common/cpw/mods/fml/common/versioning/ComparableVersion.java
index 9d4227b1f..ca3ed6396 100644
--- a/fml/common/cpw/mods/fml/common/versioning/ComparableVersion.java
+++ b/fml/common/cpw/mods/fml/common/versioning/ComparableVersion.java
@@ -1,3 +1,15 @@
+/*
+ * Forge Mod Loader
+ * Copyright (c) 2012-2013 cpw.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the GNU Lesser Public License v2.1
+ * which accompanies this distribution, and is available at
+ * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
+ *
+ * Contributors:
+ * cpw - implementation
+ */
+
package cpw.mods.fml.common.versioning;
/*
diff --git a/fml/common/cpw/mods/fml/common/versioning/DefaultArtifactVersion.java b/fml/common/cpw/mods/fml/common/versioning/DefaultArtifactVersion.java
index 447b5a3e7..cfd574437 100644
--- a/fml/common/cpw/mods/fml/common/versioning/DefaultArtifactVersion.java
+++ b/fml/common/cpw/mods/fml/common/versioning/DefaultArtifactVersion.java
@@ -1,3 +1,15 @@
+/*
+ * Forge Mod Loader
+ * Copyright (c) 2012-2013 cpw.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the GNU Lesser Public License v2.1
+ * which accompanies this distribution, and is available at
+ * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
+ *
+ * Contributors:
+ * cpw - implementation
+ */
+
package cpw.mods.fml.common.versioning;
public class DefaultArtifactVersion implements ArtifactVersion
diff --git a/fml/common/cpw/mods/fml/common/versioning/InvalidVersionSpecificationException.java b/fml/common/cpw/mods/fml/common/versioning/InvalidVersionSpecificationException.java
index 85ffc978b..6723555fb 100644
--- a/fml/common/cpw/mods/fml/common/versioning/InvalidVersionSpecificationException.java
+++ b/fml/common/cpw/mods/fml/common/versioning/InvalidVersionSpecificationException.java
@@ -1,3 +1,15 @@
+/*
+ * Forge Mod Loader
+ * Copyright (c) 2012-2013 cpw.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the GNU Lesser Public License v2.1
+ * which accompanies this distribution, and is available at
+ * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
+ *
+ * Contributors:
+ * cpw - implementation
+ */
+
package cpw.mods.fml.common.versioning;
/*
diff --git a/fml/common/cpw/mods/fml/common/versioning/Restriction.java b/fml/common/cpw/mods/fml/common/versioning/Restriction.java
index 9072dec3f..963d51e53 100644
--- a/fml/common/cpw/mods/fml/common/versioning/Restriction.java
+++ b/fml/common/cpw/mods/fml/common/versioning/Restriction.java
@@ -1,3 +1,15 @@
+/*
+ * Forge Mod Loader
+ * Copyright (c) 2012-2013 cpw.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the GNU Lesser Public License v2.1
+ * which accompanies this distribution, and is available at
+ * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
+ *
+ * Contributors:
+ * cpw - implementation
+ */
+
package cpw.mods.fml.common.versioning;
/*
diff --git a/fml/common/cpw/mods/fml/common/versioning/VersionParser.java b/fml/common/cpw/mods/fml/common/versioning/VersionParser.java
index 0ed57cddc..6878d2e95 100644
--- a/fml/common/cpw/mods/fml/common/versioning/VersionParser.java
+++ b/fml/common/cpw/mods/fml/common/versioning/VersionParser.java
@@ -1,3 +1,15 @@
+/*
+ * Forge Mod Loader
+ * Copyright (c) 2012-2013 cpw.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the GNU Lesser Public License v2.1
+ * which accompanies this distribution, and is available at
+ * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
+ *
+ * Contributors:
+ * cpw - implementation
+ */
+
package cpw.mods.fml.common.versioning;
import java.util.List;
diff --git a/fml/common/cpw/mods/fml/common/versioning/VersionRange.java b/fml/common/cpw/mods/fml/common/versioning/VersionRange.java
index bd3c18b2e..020450366 100644
--- a/fml/common/cpw/mods/fml/common/versioning/VersionRange.java
+++ b/fml/common/cpw/mods/fml/common/versioning/VersionRange.java
@@ -1,3 +1,15 @@
+/*
+ * Forge Mod Loader
+ * Copyright (c) 2012-2013 cpw.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the GNU Lesser Public License v2.1
+ * which accompanies this distribution, and is available at
+ * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
+ *
+ * Contributors:
+ * cpw - implementation
+ */
+
package cpw.mods.fml.common.versioning;
/*
* Modifications by cpw under LGPL 2.1 or later
diff --git a/fml/common/cpw/mods/fml/relauncher/ArgsWrapper.java b/fml/common/cpw/mods/fml/relauncher/ArgsWrapper.java
index 141b9cdc7..5f4d1f6df 100644
--- a/fml/common/cpw/mods/fml/relauncher/ArgsWrapper.java
+++ b/fml/common/cpw/mods/fml/relauncher/ArgsWrapper.java
@@ -1,3 +1,15 @@
+/*
+ * Forge Mod Loader
+ * Copyright (c) 2012-2013 cpw.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the GNU Lesser Public License v2.1
+ * which accompanies this distribution, and is available at
+ * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
+ *
+ * Contributors:
+ * cpw - implementation
+ */
+
package cpw.mods.fml.relauncher;
public class ArgsWrapper
diff --git a/fml/common/cpw/mods/fml/relauncher/CoreFMLLibraries.java b/fml/common/cpw/mods/fml/relauncher/CoreFMLLibraries.java
index 303258257..4dc065b5f 100644
--- a/fml/common/cpw/mods/fml/relauncher/CoreFMLLibraries.java
+++ b/fml/common/cpw/mods/fml/relauncher/CoreFMLLibraries.java
@@ -1,9 +1,21 @@
+/*
+ * Forge Mod Loader
+ * Copyright (c) 2012-2013 cpw.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the GNU Lesser Public License v2.1
+ * which accompanies this distribution, and is available at
+ * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
+ *
+ * Contributors:
+ * cpw - implementation
+ */
+
package cpw.mods.fml.relauncher;
public class CoreFMLLibraries implements ILibrarySet
{
- private static String[] libraries = { "argo-2.25.jar","guava-12.0.1.jar","asm-all-4.0.jar", "bcprov-jdk15on-147.jar" };
- private static String[] checksums = { "bb672829fde76cb163004752b86b0484bd0a7f4b", "b8e78b9af7bf45900e14c6f958486b6ca682195f", "98308890597acb64047f7e896638e0d98753ae82", "b6f5d9926b0afbde9f4dbe3db88c5247be7794bb" };
+ private static String[] libraries = { "argo-small-3.2.jar","guava-14.0-rc3.jar","asm-all-4.1.jar", "bcprov-jdk15on-148.jar", FMLInjectionData.debfuscationDataName(), "scala-library.jar" };
+ private static String[] checksums = { "58912ea2858d168c50781f956fa5b59f0f7c6b51", "931ae21fa8014c3ce686aaa621eae565fefb1a6a", "054986e962b88d8660ae4566475658469595ef58", "960dea7c9181ba0b17e8bab0c06a43f0a5f04e65", FMLInjectionData.deobfuscationDataHash, "458d046151ad179c85429ed7420ffb1eaf6ddf85" };
@Override
public String[] getLibraries()
@@ -20,7 +32,7 @@ public class CoreFMLLibraries implements ILibrarySet
@Override
public String getRootURL()
{
- return "http://files.minecraftforge.net/fmllibs/%s";
+ return System.getProperty("fml.core.libraries.mirror", "http://files.minecraftforge.net/fmllibs/%s");
}
}
diff --git a/fml/common/cpw/mods/fml/relauncher/Downloader.java b/fml/common/cpw/mods/fml/relauncher/Downloader.java
index a91c5c132..4f9d100b1 100644
--- a/fml/common/cpw/mods/fml/relauncher/Downloader.java
+++ b/fml/common/cpw/mods/fml/relauncher/Downloader.java
@@ -1,3 +1,15 @@
+/*
+ * Forge Mod Loader
+ * Copyright (c) 2012-2013 cpw.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the GNU Lesser Public License v2.1
+ * which accompanies this distribution, and is available at
+ * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
+ *
+ * Contributors:
+ * cpw - implementation
+ */
+
package cpw.mods.fml.relauncher;
import java.awt.Dialog.ModalityType;
diff --git a/fml/common/cpw/mods/fml/relauncher/DummyDownloader.java b/fml/common/cpw/mods/fml/relauncher/DummyDownloader.java
index f44d20321..1572ed957 100644
--- a/fml/common/cpw/mods/fml/relauncher/DummyDownloader.java
+++ b/fml/common/cpw/mods/fml/relauncher/DummyDownloader.java
@@ -1,3 +1,15 @@
+/*
+ * Forge Mod Loader
+ * Copyright (c) 2012-2013 cpw.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the GNU Lesser Public License v2.1
+ * which accompanies this distribution, and is available at
+ * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
+ *
+ * Contributors:
+ * cpw - implementation
+ */
+
package cpw.mods.fml.relauncher;
public class DummyDownloader implements IDownloadDisplay
diff --git a/fml/common/cpw/mods/fml/relauncher/FMLCorePlugin.java b/fml/common/cpw/mods/fml/relauncher/FMLCorePlugin.java
index 093ca092f..9088a7bdf 100644
--- a/fml/common/cpw/mods/fml/relauncher/FMLCorePlugin.java
+++ b/fml/common/cpw/mods/fml/relauncher/FMLCorePlugin.java
@@ -1,3 +1,15 @@
+/*
+ * Forge Mod Loader
+ * Copyright (c) 2012-2013 cpw.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the GNU Lesser Public License v2.1
+ * which accompanies this distribution, and is available at
+ * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
+ *
+ * Contributors:
+ * cpw - implementation
+ */
+
package cpw.mods.fml.relauncher;
import java.util.Map;
@@ -13,9 +25,10 @@ public class FMLCorePlugin implements IFMLLoadingPlugin
@Override
public String[] getASMTransformerClass()
{
- return new String[] {"cpw.mods.fml.common.asm.transformers.AccessTransformer",
+ return new String[] {
+ "cpw.mods.fml.common.asm.transformers.AccessTransformer",
"cpw.mods.fml.common.asm.transformers.MarkerTransformer",
- "cpw.mods.fml.common.asm.transformers.SideTransformer"
+ "cpw.mods.fml.common.asm.transformers.SideTransformer",
};
}
diff --git a/fml/common/cpw/mods/fml/relauncher/FMLInjectionData.java b/fml/common/cpw/mods/fml/relauncher/FMLInjectionData.java
index c4b86c604..cd9dd49a1 100644
--- a/fml/common/cpw/mods/fml/relauncher/FMLInjectionData.java
+++ b/fml/common/cpw/mods/fml/relauncher/FMLInjectionData.java
@@ -1,3 +1,15 @@
+/*
+ * Forge Mod Loader
+ * Copyright (c) 2012-2013 cpw.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the GNU Lesser Public License v2.1
+ * which accompanies this distribution, and is available at
+ * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
+ *
+ * Contributors:
+ * cpw - implementation
+ */
+
package cpw.mods.fml.relauncher;
import java.io.File;
@@ -17,6 +29,8 @@ public class FMLInjectionData
static String build;
static String mccversion;
static String mcpversion;
+ static String deobfuscationDataHash;
+
public static List containers = new ArrayList();
static void build(File mcHome, RelaunchClassLoader classLoader)
@@ -43,10 +57,13 @@ public class FMLInjectionData
build = properties.getProperty("fmlbuild.build.number", "missing");
mccversion = properties.getProperty("fmlbuild.mcversion", "missing");
mcpversion = properties.getProperty("fmlbuild.mcpversion", "missing");
-
-
+ deobfuscationDataHash = properties.getProperty("fmlbuild.deobfuscation.hash","deadbeef");
}
+ static String debfuscationDataName()
+ {
+ return "deobfuscation_data_"+mccversion+".zip";
+ }
public static Object[] data()
{
return new Object[] { major, minor, rev, build, mccversion, mcpversion, minecraftHome, containers };
diff --git a/fml/common/cpw/mods/fml/relauncher/FMLLogFormatter.java b/fml/common/cpw/mods/fml/relauncher/FMLLogFormatter.java
index 7768e738e..8c54f028b 100644
--- a/fml/common/cpw/mods/fml/relauncher/FMLLogFormatter.java
+++ b/fml/common/cpw/mods/fml/relauncher/FMLLogFormatter.java
@@ -1,3 +1,15 @@
+/*
+ * Forge Mod Loader
+ * Copyright (c) 2012-2013 cpw.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the GNU Lesser Public License v2.1
+ * which accompanies this distribution, and is available at
+ * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
+ *
+ * Contributors:
+ * cpw - implementation
+ */
+
package cpw.mods.fml.relauncher;
/**
diff --git a/fml/common/cpw/mods/fml/relauncher/FMLRelaunchLog.java b/fml/common/cpw/mods/fml/relauncher/FMLRelaunchLog.java
index 87da04e1f..d8d2075af 100644
--- a/fml/common/cpw/mods/fml/relauncher/FMLRelaunchLog.java
+++ b/fml/common/cpw/mods/fml/relauncher/FMLRelaunchLog.java
@@ -1,3 +1,15 @@
+/*
+ * Forge Mod Loader
+ * Copyright (c) 2012-2013 cpw.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the GNU Lesser Public License v2.1
+ * which accompanies this distribution, and is available at
+ * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
+ *
+ * Contributors:
+ * cpw - implementation
+ */
+
package cpw.mods.fml.relauncher;
import java.io.ByteArrayOutputStream;
diff --git a/fml/common/cpw/mods/fml/relauncher/FMLRelauncher.java b/fml/common/cpw/mods/fml/relauncher/FMLRelauncher.java
index 0fbfae94c..3b7446eb4 100644
--- a/fml/common/cpw/mods/fml/relauncher/FMLRelauncher.java
+++ b/fml/common/cpw/mods/fml/relauncher/FMLRelauncher.java
@@ -1,3 +1,15 @@
+/*
+ * Forge Mod Loader
+ * Copyright (c) 2012-2013 cpw.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the GNU Lesser Public License v2.1
+ * which accompanies this distribution, and is available at
+ * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
+ *
+ * Contributors:
+ * cpw - implementation
+ */
+
package cpw.mods.fml.relauncher;
import java.applet.Applet;
diff --git a/fml/common/cpw/mods/fml/relauncher/IClassNameTransformer.java b/fml/common/cpw/mods/fml/relauncher/IClassNameTransformer.java
new file mode 100644
index 000000000..b659487de
--- /dev/null
+++ b/fml/common/cpw/mods/fml/relauncher/IClassNameTransformer.java
@@ -0,0 +1,19 @@
+/*
+ * Forge Mod Loader
+ * Copyright (c) 2012-2013 cpw.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the GNU Lesser Public License v2.1
+ * which accompanies this distribution, and is available at
+ * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
+ *
+ * Contributors:
+ * cpw - implementation
+ */
+
+package cpw.mods.fml.relauncher;
+
+public interface IClassNameTransformer {
+ public String remapClassName(String name);
+
+ public String unmapClassName(String name);
+}
diff --git a/fml/common/cpw/mods/fml/relauncher/IClassTransformer.java b/fml/common/cpw/mods/fml/relauncher/IClassTransformer.java
index dd9045b55..248099214 100644
--- a/fml/common/cpw/mods/fml/relauncher/IClassTransformer.java
+++ b/fml/common/cpw/mods/fml/relauncher/IClassTransformer.java
@@ -1,6 +1,18 @@
+/*
+ * Forge Mod Loader
+ * Copyright (c) 2012-2013 cpw.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the GNU Lesser Public License v2.1
+ * which accompanies this distribution, and is available at
+ * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
+ *
+ * Contributors:
+ * cpw - implementation
+ */
+
package cpw.mods.fml.relauncher;
public interface IClassTransformer
{
- public byte[] transform(String name, byte[] bytes);
+ public byte[] transform(String name, String transformedName, byte[] bytes);
}
diff --git a/fml/common/cpw/mods/fml/relauncher/IDownloadDisplay.java b/fml/common/cpw/mods/fml/relauncher/IDownloadDisplay.java
index 665f64901..9d7898734 100644
--- a/fml/common/cpw/mods/fml/relauncher/IDownloadDisplay.java
+++ b/fml/common/cpw/mods/fml/relauncher/IDownloadDisplay.java
@@ -1,3 +1,15 @@
+/*
+ * Forge Mod Loader
+ * Copyright (c) 2012-2013 cpw.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the GNU Lesser Public License v2.1
+ * which accompanies this distribution, and is available at
+ * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
+ *
+ * Contributors:
+ * cpw - implementation
+ */
+
package cpw.mods.fml.relauncher;
import javax.swing.JDialog;
@@ -19,4 +31,4 @@ public interface IDownloadDisplay
void makeHeadless();
-}
\ No newline at end of file
+}
diff --git a/fml/common/cpw/mods/fml/relauncher/IFMLCallHook.java b/fml/common/cpw/mods/fml/relauncher/IFMLCallHook.java
index b6b52c611..56deb00d5 100644
--- a/fml/common/cpw/mods/fml/relauncher/IFMLCallHook.java
+++ b/fml/common/cpw/mods/fml/relauncher/IFMLCallHook.java
@@ -1,3 +1,15 @@
+/*
+ * Forge Mod Loader
+ * Copyright (c) 2012-2013 cpw.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the GNU Lesser Public License v2.1
+ * which accompanies this distribution, and is available at
+ * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
+ *
+ * Contributors:
+ * cpw - implementation
+ */
+
package cpw.mods.fml.relauncher;
import java.util.Map;
diff --git a/fml/common/cpw/mods/fml/relauncher/IFMLLoadingPlugin.java b/fml/common/cpw/mods/fml/relauncher/IFMLLoadingPlugin.java
index 334edc807..a389da18b 100644
--- a/fml/common/cpw/mods/fml/relauncher/IFMLLoadingPlugin.java
+++ b/fml/common/cpw/mods/fml/relauncher/IFMLLoadingPlugin.java
@@ -1,3 +1,15 @@
+/*
+ * Forge Mod Loader
+ * Copyright (c) 2012-2013 cpw.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the GNU Lesser Public License v2.1
+ * which accompanies this distribution, and is available at
+ * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
+ *
+ * Contributors:
+ * cpw - implementation
+ */
+
package cpw.mods.fml.relauncher;
import java.lang.annotation.ElementType;
diff --git a/fml/common/cpw/mods/fml/relauncher/ILibrarySet.java b/fml/common/cpw/mods/fml/relauncher/ILibrarySet.java
index 8e64215cc..b80a3b3f9 100644
--- a/fml/common/cpw/mods/fml/relauncher/ILibrarySet.java
+++ b/fml/common/cpw/mods/fml/relauncher/ILibrarySet.java
@@ -1,3 +1,15 @@
+/*
+ * Forge Mod Loader
+ * Copyright (c) 2012-2013 cpw.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the GNU Lesser Public License v2.1
+ * which accompanies this distribution, and is available at
+ * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
+ *
+ * Contributors:
+ * cpw - implementation
+ */
+
package cpw.mods.fml.relauncher;
/**
diff --git a/fml/common/cpw/mods/fml/relauncher/RelaunchClassLoader.java b/fml/common/cpw/mods/fml/relauncher/RelaunchClassLoader.java
index f2b48bd64..3f78c0c82 100644
--- a/fml/common/cpw/mods/fml/relauncher/RelaunchClassLoader.java
+++ b/fml/common/cpw/mods/fml/relauncher/RelaunchClassLoader.java
@@ -1,3 +1,15 @@
+/*
+ * Forge Mod Loader
+ * Copyright (c) 2012-2013 cpw.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the GNU Lesser Public License v2.1
+ * which accompanies this distribution, and is available at
+ * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
+ *
+ * Contributors:
+ * cpw - implementation
+ */
+
package cpw.mods.fml.relauncher;
import java.io.ByteArrayOutputStream;
@@ -39,9 +51,12 @@ public class RelaunchClassLoader extends URLClassLoader
private Set classLoaderExceptions = new HashSet();
private Set transformerExceptions = new HashSet();
private Map packageManifests = new HashMap();
+ private IClassNameTransformer renameTransformer;
private static Manifest EMPTY = new Manifest();
+ private ThreadLocal loadBuffer = new ThreadLocal();
+
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"));
@@ -66,15 +81,23 @@ public class RelaunchClassLoader extends URLClassLoader
// standard transformer exclusions
addTransformerExclusion("javax.");
+ addTransformerExclusion("argo.");
addTransformerExclusion("org.objectweb.asm.");
addTransformerExclusion("com.google.common.");
+ addTransformerExclusion("org.bouncycastle.");
+ addTransformerExclusion("cpw.mods.fml.common.asm.transformers.deobf.");
}
public void registerTransformer(String transformerClassName)
{
try
{
- transformers.add((IClassTransformer) loadClass(transformerClassName).newInstance());
+ IClassTransformer transformer = (IClassTransformer) loadClass(transformerClassName).newInstance();
+ transformers.add(transformer);
+ if (transformer instanceof IClassNameTransformer && renameTransformer == null)
+ {
+ renameTransformer = (IClassNameTransformer) transformer;
+ }
}
catch (Exception e)
{
@@ -122,12 +145,14 @@ public class RelaunchClassLoader extends URLClassLoader
try
{
CodeSigner[] signers = null;
- int lastDot = name.lastIndexOf('.');
- String pkgname = lastDot == -1 ? "" : name.substring(0, lastDot);
- String fName = name.replace('.', '/').concat(".class");
+ String transformedName = transformName(name);
+ String untransformedName = untransformName(name);
+ int lastDot = untransformedName.lastIndexOf('.');
+ String pkgname = lastDot == -1 ? "" : untransformedName.substring(0, lastDot);
+ String fName = untransformedName.replace('.', '/').concat(".class");
String pkgPath = pkgname.replace('.', '/');
URLConnection urlConnection = findCodeSourceConnectionFor(fName);
- if (urlConnection instanceof JarURLConnection && lastDot > -1)
+ if (urlConnection instanceof JarURLConnection && lastDot > -1 && !untransformedName.startsWith("net.minecraft."))
{
JarURLConnection jarUrlConn = (JarURLConnection)urlConnection;
JarFile jf = jarUrlConn.getJarFile();
@@ -136,7 +161,7 @@ public class RelaunchClassLoader extends URLClassLoader
Manifest mf = jf.getManifest();
JarEntry ent = jf.getJarEntry(fName);
Package pkg = getPackage(pkgname);
- getClassBytes(name);
+ getClassBytes(untransformedName);
signers = ent.getCodeSigners();
if (pkg == null)
{
@@ -156,7 +181,7 @@ public class RelaunchClassLoader extends URLClassLoader
}
}
}
- else if (lastDot > -1)
+ else if (lastDot > -1 && !untransformedName.startsWith("net.minecraft."))
{
Package pkg = getPackage(pkgname);
if (pkg == null)
@@ -169,10 +194,10 @@ public class RelaunchClassLoader extends URLClassLoader
FMLLog.severe("The URL %s is defining elements for sealed path %s", urlConnection.getURL(), pkgname);
}
}
- byte[] basicClass = getClassBytes(name);
- byte[] transformedClass = runTransformers(name, basicClass);
- Class> cl = defineClass(name, transformedClass, 0, transformedClass.length, new CodeSource(urlConnection.getURL(), signers));
- cachedClasses.put(name, cl);
+ byte[] basicClass = getClassBytes(untransformedName);
+ byte[] transformedClass = runTransformers(untransformedName, transformedName, basicClass);
+ Class> cl = defineClass(transformedName, transformedClass, 0, transformedClass.length, new CodeSource(urlConnection.getURL(), signers));
+ cachedClasses.put(transformedName, cl);
return cl;
}
catch (Throwable e)
@@ -186,6 +211,30 @@ public class RelaunchClassLoader extends URLClassLoader
}
}
+ private String untransformName(String name)
+ {
+ if (renameTransformer != null)
+ {
+ return renameTransformer.unmapClassName(name);
+ }
+ else
+ {
+ return name;
+ }
+ }
+
+ private String transformName(String name)
+ {
+ if (renameTransformer != null)
+ {
+ return renameTransformer.remapClassName(name);
+ }
+ else
+ {
+ return name;
+ }
+ }
+
private boolean isSealed(String path, Manifest man)
{
Attributes attr = man.getAttributes(path);
@@ -221,11 +270,11 @@ public class RelaunchClassLoader extends URLClassLoader
}
}
- private byte[] runTransformers(String name, byte[] basicClass)
+ private byte[] runTransformers(String name, String transformedName, byte[] basicClass)
{
for (IClassTransformer transformer : transformers)
{
- basicClass = transformer.transform(name, basicClass);
+ basicClass = transformer.transform(name, transformedName, basicClass);
}
return basicClass;
}
@@ -247,18 +296,32 @@ public class RelaunchClassLoader extends URLClassLoader
{
try
{
- ByteArrayOutputStream bos = new ByteArrayOutputStream(stream.available());
- int r;
- while ((r = stream.read()) != -1)
+ byte[] buf = loadBuffer.get();
+ if (buf == null)
{
- bos.write(r);
+ loadBuffer.set(new byte[1 << 12]);
+ buf = loadBuffer.get();
}
- return bos.toByteArray();
+ int r, totalLength = 0;
+ while ((r = stream.read(buf, totalLength, buf.length - totalLength)) != -1)
+ {
+ totalLength += r;
+ if (totalLength >= buf.length - 1)
+ {
+ byte[] oldbuf = buf;
+ buf = new byte[ oldbuf.length + (1 << 12 )];
+ System.arraycopy(oldbuf, 0, buf, 0, oldbuf.length);
+ }
+ }
+
+ byte[] result = new byte[totalLength];
+ System.arraycopy(buf, 0, result, 0, totalLength);
+ return result;
}
catch (Throwable t)
{
- FMLLog.log(Level.WARNING, t, "Problem loading class");
+ FMLRelaunchLog.log(Level.WARNING, t, "Problem loading class");
return new byte[0];
}
}
diff --git a/fml/common/cpw/mods/fml/relauncher/RelaunchLibraryManager.java b/fml/common/cpw/mods/fml/relauncher/RelaunchLibraryManager.java
index a5f7d32aa..cd45223cb 100644
--- a/fml/common/cpw/mods/fml/relauncher/RelaunchLibraryManager.java
+++ b/fml/common/cpw/mods/fml/relauncher/RelaunchLibraryManager.java
@@ -1,3 +1,15 @@
+/*
+ * Forge Mod Loader
+ * Copyright (c) 2012-2013 cpw.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the GNU Lesser Public License v2.1
+ * which accompanies this distribution, and is available at
+ * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
+ *
+ * Contributors:
+ * cpw - implementation
+ */
+
package cpw.mods.fml.relauncher;
import java.io.File;
@@ -35,8 +47,28 @@ public class RelaunchLibraryManager
private static Map pluginLocations;
private static List loadPlugins;
private static List libraries;
+ private static boolean deobfuscatedEnvironment;
+
public static void handleLaunch(File mcDir, RelaunchClassLoader actualClassLoader)
{
+ try
+ {
+ // Are we in a 'decompiled' environment?
+ byte[] bs = actualClassLoader.getClassBytes("net.minecraft.world.World");
+ if (bs != null)
+ {
+ FMLRelaunchLog.info("Managed to load a deobfuscated Minecraft name- we are in a deobfuscated environment. Skipping runtime deobfuscation");
+ deobfuscatedEnvironment = true;
+ }
+ }
+ catch (IOException e1)
+ {
+ }
+
+ if (!deobfuscatedEnvironment)
+ {
+ FMLRelaunchLog.fine("Enabling runtime deobfuscation");
+ }
pluginLocations = new HashMap();
loadPlugins = new ArrayList();
libraries = new ArrayList();
@@ -239,7 +271,11 @@ public class RelaunchLibraryManager
}
}
}
-
+ // Deobfuscation transformer, always last
+ if (!deobfuscatedEnvironment)
+ {
+ actualClassLoader.registerTransformer("cpw.mods.fml.common.asm.transformers.DeobfuscationTransformer");
+ }
downloadMonitor.updateProgressString("Running coremod plugins");
Map data = new HashMap();
data.put("mcLocation", mcDir);
@@ -257,6 +293,7 @@ public class RelaunchLibraryManager
IFMLCallHook call = (IFMLCallHook) Class.forName(setupClass, true, actualClassLoader).newInstance();
Map callData = new HashMap();
callData.put("classLoader", actualClassLoader);
+ callData.put("deobfuscationFileName", FMLInjectionData.debfuscationDataName());
call.injectData(callData);
call.call();
}
@@ -489,7 +526,7 @@ public class RelaunchLibraryManager
return loadedLibraries;
}
- private static ByteBuffer downloadBuffer = ByteBuffer.allocateDirect(1 << 22);
+ private static ByteBuffer downloadBuffer = ByteBuffer.allocateDirect(1 << 23);
static IDownloadDisplay downloadMonitor;
private static void performDownload(InputStream is, int sizeGuess, String validationHash, File target)
diff --git a/fml/common/cpw/mods/fml/relauncher/Side.java b/fml/common/cpw/mods/fml/relauncher/Side.java
index 45fd53a94..83f23a1c7 100644
--- a/fml/common/cpw/mods/fml/relauncher/Side.java
+++ b/fml/common/cpw/mods/fml/relauncher/Side.java
@@ -1,15 +1,13 @@
/*
- * 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
+ * Forge Mod Loader
+ * Copyright (c) 2012-2013 cpw.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the GNU Lesser Public License v2.1
+ * which accompanies this distribution, and is available at
+ * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
+ *
+ * Contributors:
+ * cpw - implementation
*/
package cpw.mods.fml.relauncher;
@@ -32,4 +30,4 @@ public enum Side {
{
return this == CLIENT;
}
-}
\ No newline at end of file
+}
diff --git a/fml/common/cpw/mods/fml/relauncher/SideOnly.java b/fml/common/cpw/mods/fml/relauncher/SideOnly.java
index a65afc5a5..9edf009fd 100644
--- a/fml/common/cpw/mods/fml/relauncher/SideOnly.java
+++ b/fml/common/cpw/mods/fml/relauncher/SideOnly.java
@@ -1,3 +1,15 @@
+/*
+ * Forge Mod Loader
+ * Copyright (c) 2012-2013 cpw.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the GNU Lesser Public License v2.1
+ * which accompanies this distribution, and is available at
+ * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
+ *
+ * Contributors:
+ * cpw - implementation
+ */
+
package cpw.mods.fml.relauncher;
import java.lang.annotation.ElementType;
diff --git a/fml/common/fml_at.cfg b/fml/common/fml_at.cfg
index 6775d9026..a722690d5 100644
--- a/fml/common/fml_at.cfg
+++ b/fml/common/fml_at.cfg
@@ -1,73 +1,73 @@
#Main FML Access Transformer configuration file
# TileEntity addMapping
-public any.a(Ljava/lang/Class;Ljava/lang/String;)V #MD:TileEntity/func_70306_a
+public aqj.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 mv.a(Ljava/lang/Class;Ljava/lang/String;I)V #MD:EntityList/func_75618_a
+public mv.a(Ljava/lang/Class;Ljava/lang/String;III)V #MD:EntityList/func_75614_a
+public mv.b #FD:EntityList/field_75625_b #nameToClassMap
+public mv.c #FD:EntityList/field_75626_c #classToNameMap
+public mv.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 bfy.g #FD:RenderEngine/field_78366_k #texturePack
# RenderManager
-public bbu.p #FD:RenderManager/field_78729_o #renderers
+public bgs.q #FD:RenderManager/field_78729_o #renderers
# RenderBlocks - everything
-public bbb.* #FD:RenderBlocks/*
-public bbb.*() #MD:RenderBlocks/*
+public bfz.* #FD:RenderBlocks/*
+public bfz.*() #MD:RenderBlocks/*
#RenderPlayer
-public-f bco.h #FD:RenderPlayer/field_77110_j #armorlist
+public-f bhn.h #FD:RenderPlayer/field_77110_j #armorlist
#RenderBiped
-public-f bcc.k #FD:RenderBiped/field_82424_k #armorlist
+public-f bha.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 bp.b #FD:StringTranslate/field_74815_b
+public bp.e #FD:StringTranslate/field_74813_d
# TileEntityRenderer
-public bdw.m #FD:TileEntityRenderer/field_76966_m
+public bix.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 ye.a(Lwg;[Ljava/lang/Object;)Lyh; #MD:CraftingManager/func_92103_a
+public ye.b(Lwg;[Ljava/lang/Object;)V #MD:CraftingManager/func_77596_b
# WeightedRandomItem
-public kv.a #FD:WeightedRandomItem/field_76292_a #probability
+public lo.a #FD:WeightedRandomItem/field_76292_a #probability
# ItemStack
#public+f tv.c #FD:ItemStack/field_77993_c #itemId
# StatBase
-public jl.a #FD:StatBase/field_75978_a #statName
+public ka.a #FD:StatBase/field_75978_a #statName
# NetLoginHandler
-public it.a(Lit;Z)Z #MD:NetLoginHandler/func_72531_a #'complete connection'
-public it.h #FD:NetLoginHandler/field_72543_h #userName
+public jf.a(Ljf;Z)Z #MD:NetLoginHandler/func_72531_a #'complete connection'
+public jf.g #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 jc.cr()V #MD:EntityPlayerMP/func_71117_bO
+public jc.cu #FD:EntityPlayerMP/field_71139_cq
# EntityAITaskEntry
-public ne #CL:EntityAITaskEntry
+public oi #CL:EntityAITaskEntry
# EntityAITasks
-public nd.a #FD:EntityAITasks/field_75782_a #taskList
+public oh.a #FD:EntityAITasks/field_75782_a #taskList
# BlockChest
-public ajk.n(Lyc;III)Z #MD:BlockChest/func_72292_n #isOcelotBlockingChest
+public alh.m(Lzv;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 ng.aU #FD:EntityLiving/field_70736_aM #carryoverDamage
+public ng.bo #FD:EntityLiving/field_70714_bg #tasks
+public ng.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 ou.a(Lzv;III)Z #MD:EntityAIOcelotSit/func_75398_a #nearestSittableBlock
+protected ou.f()Z #MD:EntityAIOcelotSit/func_75399_f #isblocksittable
# CallableMinecraftVersion - sanity check the MC version
-public b #CL:CallableMinecraftVersion
-public b.(La;)V #MD:CallableMinecraftVersion/(Lnet/minecraft/src/CrashReport;) #constructor
+public c #CL:CallableMinecraftVersion
+public c.(Lb;)V #MD:CallableMinecraftVersion/(Lnet/minecraft/src/CrashReport;) #constructor
# EntityAnimal
-public ox.d #FD:EntityAnimal/field_70881_d #inLove
+public qb.d #FD:EntityAnimal/field_70881_d #inLove
# WorldType
-public yn.(ILjava/lang/String;)V #MD:WorldType/(ILjava/lang/String;)
-public yn.(ILjava/lang/String;I)V #MD:WorldType/(ILjava/lang/String;I)
+public aaf.(ILjava/lang/String;)V #MD:WorldType/(ILjava/lang/String;)
+public aaf.(ILjava/lang/String;I)V #MD:WorldType/(ILjava/lang/String;I)
# ComponentVillage
-public afs #CL:ComponentVillage
+public ahj #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 sg.a(Lzl;ILjava/util/Random;F)V #MD:EntityVillager/func_70948_a #addBuy
+public sg.b(Lzl;ILjava/util/Random;F)V #MD:EntityVillager/func_70949_b #addSell
+public sg.bP #FD:EntityVillager/field_70958_bB
+public sg.bQ #FD:EntityVillager/field_70960_bC
# GuiButtonMerchant
-public awb #CL:GuiButtonMerchant
+public azc #CL:GuiButtonMerchant
-protected atf.a #FD:GuiYesNo/field_73942_a #guiScreen
+protected awe.a #FD:GuiYesNo/field_73942_a #guiScreen
diff --git a/fml/common/fml_marker.cfg b/fml/common/fml_marker.cfg
index 9ea5ad33f..e42610b3d 100644
--- a/fml/common/fml_marker.cfg
+++ b/fml/common/fml_marker.cfg
@@ -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
+sk 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
+aou 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
+we cpw/mods/fml/common/registry/ItemProxy
net.minecraft.item.Item cpw/mods/fml/common/registry/ItemProxy
diff --git a/fml/common/mcpmod.info b/fml/common/mcpmod.info
index 890fadb2c..ec286aba5 100644
--- a/fml/common/mcpmod.info
+++ b/fml/common/mcpmod.info
@@ -3,8 +3,8 @@
"modid": "mcp",
"name": "Minecraft Coder Pack",
"description": "Modding toolkit to decompile and deobfuscate the Minecraft client and server files.",
- "version": "7.26a",
- "mcversion": "1.4.7",
+ "version": "7.42",
+ "mcversion": "1.5",
"logoFile": "/mcp.png",
"url": "http://mcp.ocean-labs.de/",
"updateUrl": "",
diff --git a/fml/conf/fields.csv b/fml/conf/fields.csv
index d267bec66..fcca8e20a 100644
--- a/fml/conf/fields.csv
+++ b/fml/conf/fields.csv
@@ -328,8 +328,8 @@ field_70716_bi,newPosRotationIncrements,2,The number of updates over which the n
field_70717_bb,attackingPlayer,2,The most recent player that has attacked this entity
field_70718_bc,recentlyHit,2,"Set to 60 when hit by the player or the player's wolf, then decrements. Used to determine whether the entity should drop items on death."
field_70720_be,arrowHitTimer,2,
-field_70721_aZ,legYaw,2,
-field_70722_aY,prevLegYaw,2,
+field_70721_aZ,limbYaw,2,
+field_70722_aY,prevLimbYaw,2,
field_70723_bA,senses,2,
field_70724_aR,attackTime,2,
field_70725_aQ,deathTime,2,"The amount of time remaining this entity should act 'dead', i.e. have a corpse in the world."
@@ -353,7 +353,7 @@ field_70749_g,lookHelper,2,
field_70750_az,texture,2,the path for the texture of this entityLiving
field_70751_d,lastAttackingEntity,2,
field_70752_e,potionsNeedUpdate,2,Whether the DataWatcher needs to be updated with the active potions
-field_70754_ba,legSwing,2,Only relevant when legYaw is not 0(the entity is moving). Influences where in its swing legs and arms currently are.
+field_70754_ba,limbSwing,2,Only relevant when legYaw is not 0(the entity is moving). Influences where in its swing legs and arms currently are.
field_70755_b,entityLivingToAttack,2,"is only being set, has no uses as of MC 1.1"
field_70756_c,revengeTimer,2,
field_70757_a,livingSoundTime,2,Number of ticks since this EntityLiving last produced its sound
@@ -919,7 +919,7 @@ field_71964_f,soundGravelFootstep,2,
field_71965_g,soundGrassFootstep,2,
field_71966_d,soundPowderFootstep,2,
field_71967_e,soundWoodFootstep,2,
-field_71968_b,blockName,2,
+field_71968_b,unlocalizedName,2,The unlocalized name of this block.
field_71969_a,displayOnCreativeTab,2,"used as foreach item, if item.tab = current tab, display it on the screen"
field_71970_n,opaqueCubeLookup,2,An array of 4096 booleans corresponding to the result of the isOpaqueCube() method for each block ID
field_71971_o,lightOpacity,2,How much light is subtracted for going through this block
@@ -1002,8 +1002,8 @@ field_72047_aN,oreRedstone,2,
field_72048_aO,oreRedstoneGlowing,2,
field_72049_aP,torchRedstoneIdle,2,
field_72050_aA,tilledField,2,
-field_72051_aB,stoneOvenIdle,2,
-field_72052_aC,stoneOvenActive,2,
+field_72051_aB,furnaceIdle,2,
+field_72052_aC,furnaceBurning,2,
field_72053_aD,signPost,2,
field_72054_aE,doorWood,2,
field_72055_aF,ladder,2,
@@ -1073,6 +1073,7 @@ field_72142_a,woodType,2,The type of tree this log came from.
field_72152_a,woodType,2,The type of tree this block came from.
field_72155_a,silverfishStoneTypes,2,Block names that can be a silverfish stone.
field_72157_b,modelBlock,2,The block that is used as model for the stair.
+field_72158_c,modelBlockMetadata,2,
field_72163_b,canDropItself,2,"If this field is true, the pane block drops itself when destroyed (like the iron fences), otherwise, it's just destroyed (like glass panes)"
field_72164_a,sideTextureIndex,2,Holds the texture index of the side of the pane (the thin lateral side)
field_72166_a,powered,2,Whether this lamp block is the powered version.
@@ -1151,7 +1152,7 @@ field_72411_j,whiteListedPlayers,2,The Set of all whitelisted players.
field_72412_k,playerNBTManagerObj,2,Reference to the PlayerNBTManager object.
field_72413_h,bannedIPs,2,
field_72414_i,ops,2,A set containing the OPs.
-field_72416_e,tagsForLastWrittenPlayer,2,
+field_72416_e,hostPlayerData,2,"Holds the NBT data for the host player's save file, so this can be written to level.dat."
field_72422_f,whiteList,2,
field_72423_e,opsList,2,
field_72428_a,server,2,
@@ -1389,7 +1390,7 @@ field_73130_b,blocksDistanceThreshold,2,
field_73131_c,updateFrequency,2,check for sync when ticks % updateFrequency==0
field_73132_a,myEntity,2,
field_73133_n,playerEntitiesUpdated,2,
-field_73134_o,trackedPlayers,2,
+field_73134_o,trackingPlayers,2,Holds references to all the players that are currently receiving position updates for this entity.
field_73135_l,motionZ,2,
field_73136_m,ticks,2,
field_73137_j,motionX,2,
@@ -1852,7 +1853,7 @@ field_73883_a,selectedButton,2,The button that was just pressed.
field_73884_l,guiParticles,2,
field_73885_j,allowUserInput,2,
field_73886_k,fontRenderer,2,The FontRenderer used by GuiScreen
-field_73887_h,controlList,2,A list of all the controls added to this container.
+field_73887_h,buttonList,2,A list of all the buttons in this container.
field_73888_d,theChatOptions,2,
field_73889_b,theGuiScreen,2,Instance of GuiScreen.
field_73890_c,theSettings,2,Instance of GameSettings file.
@@ -1942,6 +1943,7 @@ field_74035_s,addClicked,2,The 'Add server' button was clicked
field_74036_r,deleteClicked,2,The 'Delete' button was clicked
field_74037_q,buttonDelete,2,The 'Delete' button
field_74038_p,buttonSelect,2,The 'Join Server' button
+field_74039_z,ticksOpened,2,How many ticks this Gui is already opened
field_74040_y,localServerFindThread,2,
field_74041_x,localNetworkServerList,2,
field_74044_d,theGameSettings,2,For saving the user's language selection to disk.
@@ -1965,9 +1967,9 @@ field_74077_a,parentScreen,2,A reference to the screen object that created this.
field_74078_n,saveList,2,The save list for the world selection screen
field_74079_o,worldSlotContainer,2,
field_74080_m,selectedWorld,2,the currently selected world
-field_74081_v,buttonDelete,2,the delete button in the world selection gui
+field_74081_v,buttonRename,2,The rename button in the world selection GUI
field_74082_u,buttonSelect,2,the select button in the world selection gui
-field_74083_t,buttonRename,2,the rename button in the world selection gui
+field_74083_t,buttonDelete,2,The delete button in the world selection GUI
field_74084_s,deleting,2,set to true if you arein the process of deleteing a world/save
field_74085_r,localizedGameModeText,2,The game mode text that is displayed with each world on the world selection list.
field_74086_q,localizedMustConvertText,2,
@@ -3142,7 +3144,7 @@ field_76638_b,precipitationHeightMap,2,"A map, similar to heightMap, that tracks
field_76639_c,updateSkylightColumns,2,Which columns need their skylightMaps updated.
field_76640_a,isLit,2,Determines if the chunk is lit or not at a light value greater than 0.
field_76641_n,lastSaveTime,2,The time according to World.worldTime when this chunk was last saved
-field_76642_o,deferRender,2,
+field_76642_o,sendUpdates,2,"Updates to this chunk will not be sent to clients if this is false. This field is set to true the first time the chunk is sent to a client, and never set to false."
field_76643_l,isModified,2,Set to true if the chunk has been modified and needs to be updated internally.
field_76644_m,hasEntities,2,Whether this Chunk has any Entities and thus requires saving on every tick
field_76645_j,entityLists,2,Array of Lists containing the entities in this Chunk. Each List represents a 16 block subchunk.
@@ -3677,7 +3679,7 @@ field_77770_aF,leather,2,
field_77771_aG,bucketMilk,2,
field_77772_aH,brick,2,
field_77773_az,minecartEmpty,2,
-field_77774_bZ,itemName,2,full name of item from language file
+field_77774_bZ,unlocalizedName,2,The unlocalized name of this item.
field_77775_ay,bucketLava,2,
field_77776_ba,bed,2,
field_77777_bU,maxStackSize,2,Maximum size of the stack.
@@ -3764,7 +3766,7 @@ field_77881_a,armorType,2,"Stores the armor type: 0 is helmet, 1 is plate, 2 is
field_77882_bY,maxDamageArray,2,Holds the 'base' maxDamage that each armorType have.
field_77885_a,blockID,2,The block ID of the Block associated with this ItemBlock
field_77889_b,theHalfSlab,2,Instance of BlockHalfSlab.
-field_77890_c,theHalfSlab2,2,Instance of BlockHalfSlab.
+field_77890_c,doubleSlab,2,The double-slab block corresponding to this item.
field_77891_a,isFullBlock,2,
field_77895_b,blockNames,2,
field_77896_a,blockRef,2,
@@ -4381,6 +4383,7 @@ field_82122_c,extraType,2,"Extra data for this skull, used as player username by
field_82123_a,skullType,2,Entity type for this skull.
field_82133_f,primaryEffect,2,Primary potion effect given by this beacon.
field_82134_g,secondaryEffect,2,Secondary potion effect given by this beacon.
+field_82135_d,isBeaconActive,2,
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.
@@ -4427,6 +4430,7 @@ field_82283_n,heightLabel,2,
field_82284_o,createFlatWorldListSlotGui,2,
field_82285_m,layerMaterialLabel,2,
field_82289_B,buttonCustomize,2,GuiButton in the more world options screen.
+field_82290_a,generatorOptionsToUse,2,Generator options to use when creating the world.
field_82301_b,presets,2,List of defined flat world presets.
field_82302_c,createFlatWorldGui,2,
field_82303_q,theTextField,2,
@@ -4434,6 +4438,7 @@ field_82304_p,theButton,2,
field_82305_a,presetIconRenderer,2,RenderItem instance used to render preset icons.
field_82307_o,theFlatPresetsListSlot,2,
field_82310_a,mcServer,2,Reference to the MinecraftServer object.
+field_82316_w,buttonRecreate,2,
field_82317_b,commandBlock,2,Command block being edited.
field_82318_a,commandTextField,2,Text field containing the command block's command.
field_82320_o,theSlot,2,
@@ -4516,11 +4521,14 @@ field_82577_x,theGameRules,2,
field_82578_b,NBTTypes,2,
field_82584_b,theNBTTagCompound,2,
field_82587_b,theNBTTagCompound,2,
-field_82592_a,vec3dPool,2,
+field_82592_a,fakePool,2,A global Vec3Pool that always creates new vectors instead of reusing them and is thread-safe.
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_82603_g,order_a,2,Face order for D-U-N-S-E-W.
+field_82609_l,faceList,2,List of all values in EnumFacing. Order is D-U-N-S-E-W.
field_82611_j,frontOffsetY,2,
field_82612_k,frontOffsetZ,2,
+field_82613_h,order_b,2,Face order for U-D-S-N-W-E.
field_82614_i,frontOffsetX,2,
field_82624_d,zPos,2,
field_82625_b,xPos,2,
@@ -4537,6 +4545,7 @@ field_82639_c,currentSpeed,2,
field_82640_a,thisEntity,2,
field_82641_b,rangedAttackEntityHost,2,The entity (as a RangedAttackMob) the AI instance has been applied to.
field_82653_b,worldFeatures,2,List of world features enabled on this preset.
+field_82654_c,biomeToUse,2,
field_82655_a,flatLayers,2,List of layers on this preset.
field_82661_d,layerMinimumY,2,
field_82662_b,layerFillBlock,2,Block type used on this set of layers.
@@ -4624,9 +4633,11 @@ field_82893_b,batBody,2,The body box of the bat model.
field_82894_c,batRightWing,2,The inner right wing box of the bat model.
field_82895_a,batHead,2,
field_82896_a,skeletonHead,2,
+field_82902_i,witchHat,2,
field_82909_b,presetName,2,Name for this preset.
field_82910_c,presetData,2,Data for this preset.
field_82911_a,iconId,2,ID for the item used as icon for this preset.
+field_82914_M,spawnableCaveCreatureList,2,
field_82915_S,theWorldGenerator,2,
field_83001_bt,invulnerable,2,
field_83004_a,theCrashReport,2,
@@ -4667,11 +4678,18 @@ field_92010_b,lifetime,2,The lifetime of the firework in ticks. When the age rea
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_92039_az,fireworkExplosions,2,
+field_92039_k,thorns,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_92061_d,isChristmas,2,"If true, chests will be rendered with the Christmas present textures."
+field_92086_a,isBlank,2,When isBlank is true the DataWatcher is not watching any objects
field_92104_bU,firework,2,
field_92105_bW,enchantedBook,2,
field_92106_bV,fireworkCharge,2,
+field_92117_D,heldItemTooltips,2,
+field_92118_B,overrideWidth,2,
+field_92119_C,overrideHeight,2,
diff --git a/fml/conf/joined.exc b/fml/conf/joined.exc
index 39b50424e..c51e8b47f 100644
--- a/fml/conf/joined.exc
+++ b/fml/conf/joined.exc
@@ -31,7 +31,10 @@ argo/jdom/JsonListenerToJdomAdapter_Object.func_74715_a(Largo/jdom/JsonNodeBuild
argo/jdom/JsonListenerToJdomAdapter_Object.func_74716_a(Largo/jdom/JsonFieldBuilder;)V=|p_74716_1_
argo/jdom/JsonNode.func_74613_a(Largo/jdom/JsonNodeSelector;Largo/jdom/JsonNode;[Ljava/lang/Object;)Ljava/lang/Object;=argo/jdom/JsonNodeDoesNotMatchPathElementsException|p_74613_1_,p_74613_2_,p_74613_3_
argo/jdom/JsonNode.getArrayNode([Ljava/lang/Object;)Ljava/util/List;=|p_getArrayNode_1_
+argo/jdom/JsonNode.getBooleanValue([Ljava/lang/Object;)Ljava/lang/Boolean;=|p_getBooleanValue_1_
+argo/jdom/JsonNode.getNumberValue([Ljava/lang/Object;)Ljava/lang/String;=|p_getNumberValue_1_
argo/jdom/JsonNode.getStringValue([Ljava/lang/Object;)Ljava/lang/String;=|p_getStringValue_1_
+argo/jdom/JsonNode.isArrayNode([Ljava/lang/Object;)Z=|p_isArrayNode_1_
argo/jdom/JsonNodeBuilders.func_74710_b(Ljava/lang/String;)Largo/jdom/JsonStringNodeBuilder;=|p_74710_0_
argo/jdom/JsonNodeBuilders.func_74712_a(Ljava/lang/String;)Largo/jdom/JsonNodeBuilder;=|p_74712_0_
argo/jdom/JsonNodeDoesNotMatchChainedJsonNodeSelectorException.(Largo/jdom/Functor;Ljava/util/List;)V=|p_i3228_1_,p_i3228_2_
@@ -63,10 +66,16 @@ argo/jdom/JsonNodeSelectors.func_74681_c([Ljava/lang/Object;)Largo/jdom/JsonNode
argo/jdom/JsonNodeSelectors.func_74682_a([Ljava/lang/Object;)Largo/jdom/JsonNodeSelector;=|p_74682_0_
argo/jdom/JsonNodeSelectors.func_74683_b([Ljava/lang/Object;)Largo/jdom/JsonNodeSelector;=|p_74683_0_
argo/jdom/JsonNodeSelectors.func_74684_b(Ljava/lang/String;)Largo/jdom/JsonNodeSelector;=|p_74684_0_
+argo/jdom/JsonNodeSelectors.func_98315_c([Ljava/lang/Object;)Largo/jdom/JsonNodeSelector;=|p_98315_0_
+argo/jdom/JsonNodeSelectors.func_98316_b([Ljava/lang/Object;)Largo/jdom/JsonNodeSelector;=|p_98316_0_
argo/jdom/JsonNodeSelectors_Array.func_74630_a(Ljava/lang/Object;)Z=|p_74630_1_
argo/jdom/JsonNodeSelectors_Array.func_74633_c(Ljava/lang/Object;)Ljava/lang/Object;=|p_74633_1_
argo/jdom/JsonNodeSelectors_Array.func_74637_b(Largo/jdom/JsonNode;)Ljava/util/List;=|p_74637_1_
argo/jdom/JsonNodeSelectors_Array.func_74638_a(Largo/jdom/JsonNode;)Z=|p_74638_1_
+argo/jdom/JsonNodeSelectors_Boolean.func_74630_a(Ljava/lang/Object;)Z=|p_74630_1_
+argo/jdom/JsonNodeSelectors_Boolean.func_74633_c(Ljava/lang/Object;)Ljava/lang/Object;=|p_74633_1_
+argo/jdom/JsonNodeSelectors_Boolean.func_98311_b(Largo/jdom/JsonNode;)Ljava/lang/Boolean;=|p_98311_1_
+argo/jdom/JsonNodeSelectors_Boolean.func_98312_a(Largo/jdom/JsonNode;)Z=|p_98312_1_
argo/jdom/JsonNodeSelectors_Element.(I)V=|p_i3233_1_
argo/jdom/JsonNodeSelectors_Element.func_74630_a(Ljava/lang/Object;)Z=|p_74630_1_
argo/jdom/JsonNodeSelectors_Element.func_74633_c(Ljava/lang/Object;)Ljava/lang/Object;=|p_74633_1_
@@ -77,6 +86,10 @@ argo/jdom/JsonNodeSelectors_Field.func_74630_a(Ljava/lang/Object;)Z=|p_74630_1_
argo/jdom/JsonNodeSelectors_Field.func_74633_c(Ljava/lang/Object;)Ljava/lang/Object;=|p_74633_1_
argo/jdom/JsonNodeSelectors_Field.func_74641_a(Ljava/util/Map;)Z=|p_74641_1_
argo/jdom/JsonNodeSelectors_Field.func_74642_b(Ljava/util/Map;)Largo/jdom/JsonNode;=|p_74642_1_
+argo/jdom/JsonNodeSelectors_Number.func_74630_a(Ljava/lang/Object;)Z=|p_74630_1_
+argo/jdom/JsonNodeSelectors_Number.func_74633_c(Ljava/lang/Object;)Ljava/lang/Object;=|p_74633_1_
+argo/jdom/JsonNodeSelectors_Number.func_98313_b(Largo/jdom/JsonNode;)Ljava/lang/String;=|p_98313_1_
+argo/jdom/JsonNodeSelectors_Number.func_98314_a(Largo/jdom/JsonNode;)Z=|p_98314_1_
argo/jdom/JsonNodeSelectors_Object.func_74630_a(Ljava/lang/Object;)Z=|p_74630_1_
argo/jdom/JsonNodeSelectors_Object.func_74633_c(Ljava/lang/Object;)Ljava/lang/Object;=|p_74633_1_
argo/jdom/JsonNodeSelectors_Object.func_74639_b(Largo/jdom/JsonNode;)Ljava/util/Map;=|p_74639_1_
@@ -196,6 +209,7 @@ net/minecraft/server/MinecraftServer.func_71261_m(Ljava/lang/String;)V=|p_71261_
net/minecraft/server/MinecraftServer.func_71267_a(Z)V=|p_71267_1_
net/minecraft/server/MinecraftServer.func_71269_o(Ljava/lang/String;)V=|p_71269_1_
net/minecraft/server/MinecraftServer.func_82010_a(Lnet/minecraft/src/IUpdatePlayerListBox;)V=|p_82010_1_
+net/minecraft/server/MinecraftServer.func_96290_a(Lnet/minecraft/src/World;IIILnet/minecraft/src/EntityPlayer;)Z=|p_96290_1_,p_96290_2_,p_96290_3_,p_96290_4_,p_96290_5_
net/minecraft/server/MinecraftServer.main([Ljava/lang/String;)V=|p_main_0_
net/minecraft/src/AABBPool.(II)V=|p_i4030_1_,p_i4030_2_
net/minecraft/src/AABBPool.func_72299_a(DDDDDD)Lnet/minecraft/src/AxisAlignedBB;=|p_72299_1_,p_72299_3_,p_72299_5_,p_72299_7_,p_72299_9_,p_72299_11_
@@ -218,7 +232,9 @@ net/minecraft/src/AnvilChunkLoader.func_75823_a(Lnet/minecraft/src/World;Lnet/mi
net/minecraft/src/AnvilChunkLoader.func_75824_a(Lnet/minecraft/src/ChunkCoordIntPair;Lnet/minecraft/src/NBTTagCompound;)V=|p_75824_1_,p_75824_2_
net/minecraft/src/AnvilChunkLoaderPending.(Lnet/minecraft/src/ChunkCoordIntPair;Lnet/minecraft/src/NBTTagCompound;)V=|p_i3778_1_,p_i3778_2_
net/minecraft/src/AnvilConverterData.(II)V=|p_i3775_1_,p_i3775_2_
+net/minecraft/src/AnvilConverterException.(Ljava/lang/String;)V=|p_i11045_1_
net/minecraft/src/AnvilSaveConverter.(Ljava/io/File;)V=|p_i3910_1_
+net/minecraft/src/AnvilSaveConverter.func_75799_b()Ljava/util/List;=net/minecraft/src/AnvilConverterException|
net/minecraft/src/AnvilSaveConverter.func_75801_b(Ljava/lang/String;)Z=|p_75801_1_
net/minecraft/src/AnvilSaveConverter.func_75804_a(Ljava/lang/String;Z)Lnet/minecraft/src/ISaveHandler;=|p_75804_1_,p_75804_2_
net/minecraft/src/AnvilSaveConverter.func_75805_a(Ljava/lang/String;Lnet/minecraft/src/IProgressUpdate;)Z=|p_75805_1_,p_75805_2_
@@ -261,45 +277,18 @@ net/minecraft/src/BanList.func_73704_a(Ljava/lang/String;)Z=|p_73704_1_
net/minecraft/src/BanList.func_73706_a(Lnet/minecraft/src/BanEntry;)V=|p_73706_1_
net/minecraft/src/BanList.func_73708_a(Z)V=|p_73708_1_
net/minecraft/src/BanList.func_73709_b(Ljava/lang/String;)V=|p_73709_1_
-net/minecraft/src/BehaviorArrowDispense.(Lnet/minecraft/server/MinecraftServer;)V=|p_i5002_1_
-net/minecraft/src/BehaviorArrowDispense.func_82499_a(Lnet/minecraft/src/World;Lnet/minecraft/src/IPosition;)Lnet/minecraft/src/IProjectile;=|p_82499_1_,p_82499_2_
-net/minecraft/src/BehaviorBucketEmptyDispense.(Lnet/minecraft/server/MinecraftServer;)V=|p_i5004_1_
-net/minecraft/src/BehaviorBucketEmptyDispense.func_82487_b(Lnet/minecraft/src/IBlockSource;Lnet/minecraft/src/ItemStack;)Lnet/minecraft/src/ItemStack;=|p_82487_1_,p_82487_2_
-net/minecraft/src/BehaviorBucketFullDispense.(Lnet/minecraft/server/MinecraftServer;)V=|p_i5003_1_
-net/minecraft/src/BehaviorBucketFullDispense.func_82487_b(Lnet/minecraft/src/IBlockSource;Lnet/minecraft/src/ItemStack;)Lnet/minecraft/src/ItemStack;=|p_82487_1_,p_82487_2_
net/minecraft/src/BehaviorDefaultDispenseItem.func_82482_a(Lnet/minecraft/src/IBlockSource;Lnet/minecraft/src/ItemStack;)Lnet/minecraft/src/ItemStack;=|p_82482_1_,p_82482_2_
net/minecraft/src/BehaviorDefaultDispenseItem.func_82485_a(Lnet/minecraft/src/IBlockSource;)V=|p_82485_1_
net/minecraft/src/BehaviorDefaultDispenseItem.func_82486_a(Lnet/minecraft/src/World;Lnet/minecraft/src/ItemStack;ILnet/minecraft/src/EnumFacing;Lnet/minecraft/src/IPosition;)V=|p_82486_0_,p_82486_1_,p_82486_2_,p_82486_3_,p_82486_4_
net/minecraft/src/BehaviorDefaultDispenseItem.func_82487_b(Lnet/minecraft/src/IBlockSource;Lnet/minecraft/src/ItemStack;)Lnet/minecraft/src/ItemStack;=|p_82487_1_,p_82487_2_
net/minecraft/src/BehaviorDefaultDispenseItem.func_82488_a(Lnet/minecraft/src/EnumFacing;)I=|p_82488_1_
net/minecraft/src/BehaviorDefaultDispenseItem.func_82489_a(Lnet/minecraft/src/IBlockSource;Lnet/minecraft/src/EnumFacing;)V=|p_82489_1_,p_82489_2_
-net/minecraft/src/BehaviorDispenseBoat.(Lnet/minecraft/server/MinecraftServer;)V=|p_i5049_1_
-net/minecraft/src/BehaviorDispenseBoat.func_82485_a(Lnet/minecraft/src/IBlockSource;)V=|p_82485_1_
-net/minecraft/src/BehaviorDispenseBoat.func_82487_b(Lnet/minecraft/src/IBlockSource;Lnet/minecraft/src/ItemStack;)Lnet/minecraft/src/ItemStack;=|p_82487_1_,p_82487_2_
-net/minecraft/src/BehaviorDispenseFireball.(Lnet/minecraft/server/MinecraftServer;)V=|p_i5047_1_
-net/minecraft/src/BehaviorDispenseFireball.func_82485_a(Lnet/minecraft/src/IBlockSource;)V=|p_82485_1_
-net/minecraft/src/BehaviorDispenseFireball.func_82487_b(Lnet/minecraft/src/IBlockSource;Lnet/minecraft/src/ItemStack;)Lnet/minecraft/src/ItemStack;=|p_82487_1_,p_82487_2_
-net/minecraft/src/BehaviorDispenseFirework.(Lnet/minecraft/server/MinecraftServer;)V=|p_i8005_1_
-net/minecraft/src/BehaviorDispenseFirework.func_82485_a(Lnet/minecraft/src/IBlockSource;)V=|p_82485_1_
-net/minecraft/src/BehaviorDispenseFirework.func_82487_b(Lnet/minecraft/src/IBlockSource;Lnet/minecraft/src/ItemStack;)Lnet/minecraft/src/ItemStack;=|p_82487_1_,p_82487_2_
+net/minecraft/src/BehaviorDispenseArmor.func_82487_b(Lnet/minecraft/src/IBlockSource;Lnet/minecraft/src/ItemStack;)Lnet/minecraft/src/ItemStack;=|p_82487_1_,p_82487_2_
net/minecraft/src/BehaviorDispenseItemProvider.func_82482_a(Lnet/minecraft/src/IBlockSource;Lnet/minecraft/src/ItemStack;)Lnet/minecraft/src/ItemStack;=|p_82482_1_,p_82482_2_
-net/minecraft/src/BehaviorDispenseMinecart.(Lnet/minecraft/server/MinecraftServer;)V=|p_i5048_1_
net/minecraft/src/BehaviorDispenseMinecart.func_82485_a(Lnet/minecraft/src/IBlockSource;)V=|p_82485_1_
net/minecraft/src/BehaviorDispenseMinecart.func_82487_b(Lnet/minecraft/src/IBlockSource;Lnet/minecraft/src/ItemStack;)Lnet/minecraft/src/ItemStack;=|p_82487_1_,p_82487_2_
-net/minecraft/src/BehaviorEggDispense.(Lnet/minecraft/server/MinecraftServer;)V=|p_i5044_1_
-net/minecraft/src/BehaviorEggDispense.func_82499_a(Lnet/minecraft/src/World;Lnet/minecraft/src/IPosition;)Lnet/minecraft/src/IProjectile;=|p_82499_1_,p_82499_2_
-net/minecraft/src/BehaviorExpBottleDispense.(Lnet/minecraft/server/MinecraftServer;)V=|p_i5006_1_
-net/minecraft/src/BehaviorExpBottleDispense.func_82499_a(Lnet/minecraft/src/World;Lnet/minecraft/src/IPosition;)Lnet/minecraft/src/IProjectile;=|p_82499_1_,p_82499_2_
-net/minecraft/src/BehaviorMobEggDispense.(Lnet/minecraft/server/MinecraftServer;)V=|p_i5009_1_
-net/minecraft/src/BehaviorMobEggDispense.func_82487_b(Lnet/minecraft/src/IBlockSource;Lnet/minecraft/src/ItemStack;)Lnet/minecraft/src/ItemStack;=|p_82487_1_,p_82487_2_
-net/minecraft/src/BehaviorPotionDispense.(Lnet/minecraft/server/MinecraftServer;)V=|p_i5008_1_
-net/minecraft/src/BehaviorPotionDispense.func_82482_a(Lnet/minecraft/src/IBlockSource;Lnet/minecraft/src/ItemStack;)Lnet/minecraft/src/ItemStack;=|p_82482_1_,p_82482_2_
-net/minecraft/src/BehaviorPotionDispenseLogic.(Lnet/minecraft/src/BehaviorPotionDispense;Lnet/minecraft/src/ItemStack;)V=|p_i5007_1_,p_i5007_2_
-net/minecraft/src/BehaviorPotionDispenseLogic.func_82499_a(Lnet/minecraft/src/World;Lnet/minecraft/src/IPosition;)Lnet/minecraft/src/IProjectile;=|p_82499_1_,p_82499_2_
net/minecraft/src/BehaviorProjectileDispense.func_82485_a(Lnet/minecraft/src/IBlockSource;)V=|p_82485_1_
net/minecraft/src/BehaviorProjectileDispense.func_82487_b(Lnet/minecraft/src/IBlockSource;Lnet/minecraft/src/ItemStack;)Lnet/minecraft/src/ItemStack;=|p_82487_1_,p_82487_2_
-net/minecraft/src/BehaviorSnowballDispense.(Lnet/minecraft/server/MinecraftServer;)V=|p_i5005_1_
-net/minecraft/src/BehaviorSnowballDispense.func_82499_a(Lnet/minecraft/src/World;Lnet/minecraft/src/IPosition;)Lnet/minecraft/src/IProjectile;=|p_82499_1_,p_82499_2_
net/minecraft/src/BiomeCache.(Lnet/minecraft/src/WorldChunkManager;)V=|p_i3749_1_
net/minecraft/src/BiomeCache.func_76836_a(Lnet/minecraft/src/BiomeCache;)Lnet/minecraft/src/WorldChunkManager;=|p_76836_0_
net/minecraft/src/BiomeCache.func_76837_b(II)Lnet/minecraft/src/BiomeGenBase;=|p_76837_1_,p_76837_2_
@@ -346,26 +335,26 @@ net/minecraft/src/BiomeGenSwamp.(I)V=|p_i3764_1_
net/minecraft/src/BiomeGenSwamp.func_76740_a(Ljava/util/Random;)Lnet/minecraft/src/WorldGenerator;=|p_76740_1_
net/minecraft/src/BiomeGenTaiga.(I)V=|p_i3765_1_
net/minecraft/src/BiomeGenTaiga.func_76740_a(Ljava/util/Random;)Lnet/minecraft/src/WorldGenerator;=|p_76740_1_
-net/minecraft/src/Block.(IILnet/minecraft/src/Material;)V=|p_i4010_1_,p_i4010_2_,p_i4010_3_
net/minecraft/src/Block.(ILnet/minecraft/src/Material;)V=|p_i4009_1_,p_i4009_2_
net/minecraft/src/Block.func_71846_a(Lnet/minecraft/src/World;IIIILnet/minecraft/src/EntityPlayer;)V=|p_71846_1_,p_71846_2_,p_71846_3_,p_71846_4_,p_71846_5_,p_71846_6_
net/minecraft/src/Block.func_71847_b(Lnet/minecraft/src/World;IIILjava/util/Random;)V=|p_71847_1_,p_71847_2_,p_71847_3_,p_71847_4_,p_71847_5_
net/minecraft/src/Block.func_71848_c(F)Lnet/minecraft/src/Block;=|p_71848_1_
net/minecraft/src/Block.func_71849_a(Lnet/minecraft/src/CreativeTabs;)Lnet/minecraft/src/Block;=|p_71849_1_
net/minecraft/src/Block.func_71850_a_(Lnet/minecraft/src/World;IIII)Z=|p_71850_1_,p_71850_2_,p_71850_3_,p_71850_4_,p_71850_5_
-net/minecraft/src/Block.func_71851_a(I)I=|p_71851_1_
+net/minecraft/src/Block.func_71851_a(I)Lnet/minecraft/src/Icon;=|p_71851_1_
net/minecraft/src/Block.func_71852_a(Lnet/minecraft/src/World;IIIII)V=|p_71852_1_,p_71852_2_,p_71852_3_,p_71852_4_,p_71852_5_,p_71852_6_
net/minecraft/src/Block.func_71854_d(Lnet/minecraft/src/World;III)Z=|p_71854_1_,p_71854_2_,p_71854_3_,p_71854_4_
-net/minecraft/src/Block.func_71855_c(Lnet/minecraft/src/IBlockAccess;IIII)Z=|p_71855_1_,p_71855_2_,p_71855_3_,p_71855_4_,p_71855_5_
-net/minecraft/src/Block.func_71858_a(II)I=|p_71858_1_,p_71858_2_
-net/minecraft/src/Block.func_71860_a(Lnet/minecraft/src/World;IIILnet/minecraft/src/EntityLiving;)V=|p_71860_1_,p_71860_2_,p_71860_3_,p_71860_4_,p_71860_5_
+net/minecraft/src/Block.func_71855_c(Lnet/minecraft/src/IBlockAccess;IIII)I=|p_71855_1_,p_71855_2_,p_71855_3_,p_71855_4_,p_71855_5_
+net/minecraft/src/Block.func_71858_a(II)Lnet/minecraft/src/Icon;=|p_71858_1_,p_71858_2_
+net/minecraft/src/Block.func_71859_p_(Lnet/minecraft/src/World;)I=|p_71859_1_
+net/minecraft/src/Block.func_71860_a(Lnet/minecraft/src/World;IIILnet/minecraft/src/EntityLiving;Lnet/minecraft/src/ItemStack;)V=|p_71860_1_,p_71860_2_,p_71860_3_,p_71860_4_,p_71860_5_,p_71860_6_
net/minecraft/src/Block.func_71861_g(Lnet/minecraft/src/World;III)V=|p_71861_1_,p_71861_2_,p_71861_3_,p_71861_4_
net/minecraft/src/Block.func_71862_a(Lnet/minecraft/src/World;IIILjava/util/Random;)V=|p_71862_1_,p_71862_2_,p_71862_3_,p_71862_4_,p_71862_5_
net/minecraft/src/Block.func_71863_a(Lnet/minecraft/src/World;IIII)V=|p_71863_1_,p_71863_2_,p_71863_3_,p_71863_4_,p_71863_5_
net/minecraft/src/Block.func_71864_b(Ljava/lang/String;)Lnet/minecraft/src/Block;=|p_71864_1_
-net/minecraft/src/Block.func_71865_a(Lnet/minecraft/src/IBlockAccess;IIII)Z=|p_71865_1_,p_71865_2_,p_71865_3_,p_71865_4_,p_71865_5_
+net/minecraft/src/Block.func_71865_a(Lnet/minecraft/src/IBlockAccess;IIII)I=|p_71865_1_,p_71865_2_,p_71865_3_,p_71865_4_,p_71865_5_
net/minecraft/src/Block.func_71866_a(Lnet/minecraft/src/World;IIILnet/minecraft/src/Entity;F)V=|p_71866_1_,p_71866_2_,p_71866_3_,p_71866_4_,p_71866_5_,p_71866_6_
-net/minecraft/src/Block.func_71867_k(Lnet/minecraft/src/World;III)V=|p_71867_1_,p_71867_2_,p_71867_3_,p_71867_4_
+net/minecraft/src/Block.func_71867_k(Lnet/minecraft/src/World;IIILnet/minecraft/src/Explosion;)V=|p_71867_1_,p_71867_2_,p_71867_3_,p_71867_4_,p_71867_5_
net/minecraft/src/Block.func_71868_h(I)Lnet/minecraft/src/Block;=|p_71868_1_
net/minecraft/src/Block.func_71869_a(Lnet/minecraft/src/World;IIILnet/minecraft/src/Entity;)V=|p_71869_1_,p_71869_2_,p_71869_3_,p_71869_4_,p_71869_5_
net/minecraft/src/Block.func_71870_f(Lnet/minecraft/src/IBlockAccess;III)F=|p_71870_1_,p_71870_2_,p_71870_3_,p_71870_4_
@@ -377,7 +366,7 @@ net/minecraft/src/Block.func_71877_c(Lnet/minecraft/src/IBlockAccess;IIII)Z=|p_7
net/minecraft/src/Block.func_71878_a(Lnet/minecraft/src/World;IIILnet/minecraft/src/Vec3;Lnet/minecraft/src/Vec3;)Lnet/minecraft/src/MovingObjectPosition;=|p_71878_1_,p_71878_2_,p_71878_3_,p_71878_4_,p_71878_5_,p_71878_6_
net/minecraft/src/Block.func_71879_a(ILnet/minecraft/src/CreativeTabs;Ljava/util/List;)V=|p_71879_1_,p_71879_2_,p_71879_3_
net/minecraft/src/Block.func_71880_c_(I)Lnet/minecraft/src/ItemStack;=|p_71880_1_
-net/minecraft/src/Block.func_71883_b(Lnet/minecraft/src/World;IIIII)V=|p_71883_1_,p_71883_2_,p_71883_3_,p_71883_4_,p_71883_5_,p_71883_6_
+net/minecraft/src/Block.func_71883_b(Lnet/minecraft/src/World;IIIII)Z=|p_71883_1_,p_71883_2_,p_71883_3_,p_71883_4_,p_71883_5_,p_71883_6_
net/minecraft/src/Block.func_71884_a(Lnet/minecraft/src/StepSound;)Lnet/minecraft/src/Block;=|p_71884_1_
net/minecraft/src/Block.func_71885_a(ILjava/util/Random;I)I=|p_71885_1_,p_71885_2_,p_71885_3_
net/minecraft/src/Block.func_71888_h(Lnet/minecraft/src/IBlockAccess;III)F=|p_71888_1_,p_71888_2_,p_71888_3_,p_71888_4_
@@ -387,7 +376,7 @@ net/minecraft/src/Block.func_71891_b(Lnet/minecraft/src/World;IIILnet/minecraft/
net/minecraft/src/Block.func_71892_f(Lnet/minecraft/src/World;III)V=|p_71892_1_,p_71892_2_,p_71892_3_,p_71892_4_
net/minecraft/src/Block.func_71893_a(Lnet/minecraft/src/World;Lnet/minecraft/src/EntityPlayer;IIII)V=|p_71893_1_,p_71893_2_,p_71893_3_,p_71893_4_,p_71893_5_,p_71893_6_
net/minecraft/src/Block.func_71894_b(F)Lnet/minecraft/src/Block;=|p_71894_1_
-net/minecraft/src/Block.func_71895_b(Lnet/minecraft/src/IBlockAccess;IIII)I=|p_71895_1_,p_71895_2_,p_71895_3_,p_71895_4_,p_71895_5_
+net/minecraft/src/Block.func_71895_b(Lnet/minecraft/src/IBlockAccess;IIII)Lnet/minecraft/src/Icon;=|p_71895_1_,p_71895_2_,p_71895_3_,p_71895_4_,p_71895_5_
net/minecraft/src/Block.func_71897_c(Lnet/minecraft/src/World;IIIII)V=|p_71897_1_,p_71897_2_,p_71897_3_,p_71897_4_,p_71897_5_,p_71897_6_
net/minecraft/src/Block.func_71898_d(Lnet/minecraft/src/World;IIII)V=|p_71898_1_,p_71898_2_,p_71898_3_,p_71898_4_,p_71898_5_
net/minecraft/src/Block.func_71899_b(I)I=|p_71899_1_
@@ -420,10 +409,14 @@ net/minecraft/src/Block.func_71936_b(Lnet/minecraft/src/Vec3;)Z=|p_71936_1_
net/minecraft/src/Block.func_85103_a(Lnet/minecraft/src/Explosion;)Z=|p_85103_1_
net/minecraft/src/Block.func_85104_a(Lnet/minecraft/src/World;IIIIFFFI)I=|p_85104_1_,p_85104_2_,p_85104_3_,p_85104_4_,p_85104_5_,p_85104_6_,p_85104_7_,p_85104_8_,p_85104_9_
net/minecraft/src/Block.func_85105_g(Lnet/minecraft/src/World;IIII)V=|p_85105_1_,p_85105_2_,p_85105_3_,p_85105_4_,p_85105_5_
+net/minecraft/src/Block.func_94328_b_(Lnet/minecraft/src/World;IIII)I=|p_94328_1_,p_94328_2_,p_94328_3_,p_94328_4_,p_94328_5_
+net/minecraft/src/Block.func_94329_b(II)Z=|p_94329_0_,p_94329_1_
+net/minecraft/src/Block.func_94331_a(Lnet/minecraft/src/World;IIIILnet/minecraft/src/ItemStack;)Z=|p_94331_1_,p_94331_2_,p_94331_3_,p_94331_4_,p_94331_5_,p_94331_6_
+net/minecraft/src/Block.func_94332_a(Lnet/minecraft/src/IconRegister;)V=|p_94332_1_
+net/minecraft/src/Block.func_94334_h(I)Z=|p_94334_1_
net/minecraft/src/BlockAnvil.(I)V=|p_i5098_1_
-net/minecraft/src/BlockAnvil.func_71851_a(I)I=|p_71851_1_
-net/minecraft/src/BlockAnvil.func_71858_a(II)I=|p_71858_1_,p_71858_2_
-net/minecraft/src/BlockAnvil.func_71860_a(Lnet/minecraft/src/World;IIILnet/minecraft/src/EntityLiving;)V=|p_71860_1_,p_71860_2_,p_71860_3_,p_71860_4_,p_71860_5_
+net/minecraft/src/BlockAnvil.func_71858_a(II)Lnet/minecraft/src/Icon;=|p_71858_1_,p_71858_2_
+net/minecraft/src/BlockAnvil.func_71860_a(Lnet/minecraft/src/World;IIILnet/minecraft/src/EntityLiving;Lnet/minecraft/src/ItemStack;)V=|p_71860_1_,p_71860_2_,p_71860_3_,p_71860_4_,p_71860_5_,p_71860_6_
net/minecraft/src/BlockAnvil.func_71877_c(Lnet/minecraft/src/IBlockAccess;IIII)Z=|p_71877_1_,p_71877_2_,p_71877_3_,p_71877_4_,p_71877_5_
net/minecraft/src/BlockAnvil.func_71879_a(ILnet/minecraft/src/CreativeTabs;Ljava/util/List;)V=|p_71879_1_,p_71879_2_,p_71879_3_
net/minecraft/src/BlockAnvil.func_71899_b(I)I=|p_71899_1_
@@ -431,12 +424,42 @@ net/minecraft/src/BlockAnvil.func_71902_a(Lnet/minecraft/src/IBlockAccess;III)V=
net/minecraft/src/BlockAnvil.func_71903_a(Lnet/minecraft/src/World;IIILnet/minecraft/src/EntityPlayer;IFFF)Z=|p_71903_1_,p_71903_2_,p_71903_3_,p_71903_4_,p_71903_5_,p_71903_6_,p_71903_7_,p_71903_8_,p_71903_9_
net/minecraft/src/BlockAnvil.func_82519_a_(Lnet/minecraft/src/World;IIII)V=|p_82519_1_,p_82519_2_,p_82519_3_,p_82519_4_,p_82519_5_
net/minecraft/src/BlockAnvil.func_82520_a(Lnet/minecraft/src/EntityFallingSand;)V=|p_82520_1_
+net/minecraft/src/BlockAnvil.func_94332_a(Lnet/minecraft/src/IconRegister;)V=|p_94332_1_
+net/minecraft/src/BlockBasePressurePlate.(ILjava/lang/String;Lnet/minecraft/src/Material;)V=|p_i9036_1_,p_i9036_2_,p_i9036_3_
+net/minecraft/src/BlockBasePressurePlate.func_71847_b(Lnet/minecraft/src/World;IIILjava/util/Random;)V=|p_71847_1_,p_71847_2_,p_71847_3_,p_71847_4_,p_71847_5_
+net/minecraft/src/BlockBasePressurePlate.func_71852_a(Lnet/minecraft/src/World;IIIII)V=|p_71852_1_,p_71852_2_,p_71852_3_,p_71852_4_,p_71852_5_,p_71852_6_
+net/minecraft/src/BlockBasePressurePlate.func_71855_c(Lnet/minecraft/src/IBlockAccess;IIII)I=|p_71855_1_,p_71855_2_,p_71855_3_,p_71855_4_,p_71855_5_
+net/minecraft/src/BlockBasePressurePlate.func_71859_p_(Lnet/minecraft/src/World;)I=|p_71859_1_
+net/minecraft/src/BlockBasePressurePlate.func_71863_a(Lnet/minecraft/src/World;IIII)V=|p_71863_1_,p_71863_2_,p_71863_3_,p_71863_4_,p_71863_5_
+net/minecraft/src/BlockBasePressurePlate.func_71865_a(Lnet/minecraft/src/IBlockAccess;IIII)I=|p_71865_1_,p_71865_2_,p_71865_3_,p_71865_4_,p_71865_5_
+net/minecraft/src/BlockBasePressurePlate.func_71869_a(Lnet/minecraft/src/World;IIILnet/minecraft/src/Entity;)V=|p_71869_1_,p_71869_2_,p_71869_3_,p_71869_4_,p_71869_5_
+net/minecraft/src/BlockBasePressurePlate.func_71872_e(Lnet/minecraft/src/World;III)Lnet/minecraft/src/AxisAlignedBB;=|p_71872_1_,p_71872_2_,p_71872_3_,p_71872_4_
+net/minecraft/src/BlockBasePressurePlate.func_71902_a(Lnet/minecraft/src/IBlockAccess;III)V=|p_71902_1_,p_71902_2_,p_71902_3_,p_71902_4_
+net/minecraft/src/BlockBasePressurePlate.func_71918_c(Lnet/minecraft/src/IBlockAccess;III)Z=|p_71918_1_,p_71918_2_,p_71918_3_,p_71918_4_
+net/minecraft/src/BlockBasePressurePlate.func_71930_b(Lnet/minecraft/src/World;III)Z=|p_71930_1_,p_71930_2_,p_71930_3_,p_71930_4_
+net/minecraft/src/BlockBasePressurePlate.func_72193_l(Lnet/minecraft/src/World;IIII)V=|p_72193_1_,p_72193_2_,p_72193_3_,p_72193_4_,p_72193_5_
+net/minecraft/src/BlockBasePressurePlate.func_94332_a(Lnet/minecraft/src/IconRegister;)V=|p_94332_1_
+net/minecraft/src/BlockBasePressurePlate.func_94352_a(III)Lnet/minecraft/src/AxisAlignedBB;=|p_94352_1_,p_94352_2_,p_94352_3_
+net/minecraft/src/BlockBasePressurePlate.func_94353_c_(I)V=|p_94353_1_
+net/minecraft/src/BlockBasePressurePlate.func_94354_b_(Lnet/minecraft/src/World;III)V=|p_94354_1_,p_94354_2_,p_94354_3_,p_94354_4_
+net/minecraft/src/BlockBaseRailLogic.(Lnet/minecraft/src/BlockRailBase;Lnet/minecraft/src/World;III)V=|p_i9010_1_,p_i9010_2_,p_i9010_3_,p_i9010_4_,p_i9010_5_
+net/minecraft/src/BlockBaseRailLogic.func_94501_a(Lnet/minecraft/src/ChunkPosition;)Lnet/minecraft/src/BlockBaseRailLogic;=|p_94501_1_
+net/minecraft/src/BlockBaseRailLogic.func_94502_a(III)Z=|p_94502_1_,p_94502_2_,p_94502_3_
+net/minecraft/src/BlockBaseRailLogic.func_94503_c(III)Z=|p_94503_1_,p_94503_2_,p_94503_3_
+net/minecraft/src/BlockBaseRailLogic.func_94504_a(I)V=|p_94504_1_
+net/minecraft/src/BlockBaseRailLogic.func_94506_c(Lnet/minecraft/src/BlockBaseRailLogic;)V=|p_94506_1_
+net/minecraft/src/BlockBaseRailLogic.func_94507_b(Lnet/minecraft/src/BlockBaseRailLogic;)Z=|p_94507_1_
+net/minecraft/src/BlockBaseRailLogic.func_94508_a(Lnet/minecraft/src/BlockBaseRailLogic;)Z=|p_94508_1_
+net/minecraft/src/BlockBaseRailLogic.func_94510_b(III)Z=|p_94510_1_,p_94510_2_,p_94510_3_
+net/minecraft/src/BlockBaseRailLogic.func_94511_a(ZZ)V=|p_94511_1_,p_94511_2_
net/minecraft/src/BlockBeacon.(I)V=|p_i5099_1_
+net/minecraft/src/BlockBeacon.func_71860_a(Lnet/minecraft/src/World;IIILnet/minecraft/src/EntityLiving;Lnet/minecraft/src/ItemStack;)V=|p_71860_1_,p_71860_2_,p_71860_3_,p_71860_4_,p_71860_5_,p_71860_6_
net/minecraft/src/BlockBeacon.func_71903_a(Lnet/minecraft/src/World;IIILnet/minecraft/src/EntityPlayer;IFFF)Z=|p_71903_1_,p_71903_2_,p_71903_3_,p_71903_4_,p_71903_5_,p_71903_6_,p_71903_7_,p_71903_8_,p_71903_9_
net/minecraft/src/BlockBeacon.func_72274_a(Lnet/minecraft/src/World;)Lnet/minecraft/src/TileEntity;=|p_72274_1_
+net/minecraft/src/BlockBeacon.func_94332_a(Lnet/minecraft/src/IconRegister;)V=|p_94332_1_
net/minecraft/src/BlockBed.(I)V=|p_i3919_1_
net/minecraft/src/BlockBed.func_71846_a(Lnet/minecraft/src/World;IIIILnet/minecraft/src/EntityPlayer;)V=|p_71846_1_,p_71846_2_,p_71846_3_,p_71846_4_,p_71846_5_,p_71846_6_
-net/minecraft/src/BlockBed.func_71858_a(II)I=|p_71858_1_,p_71858_2_
+net/minecraft/src/BlockBed.func_71858_a(II)Lnet/minecraft/src/Icon;=|p_71858_1_,p_71858_2_
net/minecraft/src/BlockBed.func_71863_a(Lnet/minecraft/src/World;IIII)V=|p_71863_1_,p_71863_2_,p_71863_3_,p_71863_4_,p_71863_5_
net/minecraft/src/BlockBed.func_71885_a(ILjava/util/Random;I)I=|p_71885_1_,p_71885_2_,p_71885_3_
net/minecraft/src/BlockBed.func_71902_a(Lnet/minecraft/src/IBlockAccess;III)V=|p_71902_1_,p_71902_2_,p_71902_3_,p_71902_4_
@@ -447,27 +470,33 @@ net/minecraft/src/BlockBed.func_72225_b_(I)Z=|p_72225_0_
net/minecraft/src/BlockBed.func_72226_b(Lnet/minecraft/src/World;IIII)Lnet/minecraft/src/ChunkCoordinates;=|p_72226_0_,p_72226_1_,p_72226_2_,p_72226_3_,p_72226_4_
net/minecraft/src/BlockBed.func_72228_a(Lnet/minecraft/src/World;IIIZ)V=|p_72228_0_,p_72228_1_,p_72228_2_,p_72228_3_,p_72228_4_
net/minecraft/src/BlockBed.func_72229_a_(I)Z=|p_72229_0_
-net/minecraft/src/BlockBookshelf.(II)V=|p_i3920_1_,p_i3920_2_
-net/minecraft/src/BlockBookshelf.func_71851_a(I)I=|p_71851_1_
+net/minecraft/src/BlockBed.func_94332_a(Lnet/minecraft/src/IconRegister;)V=|p_94332_1_
+net/minecraft/src/BlockBookshelf.(I)V=|p_i9039_1_
+net/minecraft/src/BlockBookshelf.func_71858_a(II)Lnet/minecraft/src/Icon;=|p_71858_1_,p_71858_2_
net/minecraft/src/BlockBookshelf.func_71885_a(ILjava/util/Random;I)I=|p_71885_1_,p_71885_2_,p_71885_3_
net/minecraft/src/BlockBookshelf.func_71925_a(Ljava/util/Random;)I=|p_71925_1_
-net/minecraft/src/BlockBreakable.(IILnet/minecraft/src/Material;Z)V=|p_i3955_1_,p_i3955_2_,p_i3955_3_,p_i3955_4_
+net/minecraft/src/BlockBreakable.(ILjava/lang/String;Lnet/minecraft/src/Material;Z)V=|p_i9059_1_,p_i9059_2_,p_i9059_3_,p_i9059_4_
net/minecraft/src/BlockBreakable.func_71877_c(Lnet/minecraft/src/IBlockAccess;IIII)Z=|p_71877_1_,p_71877_2_,p_71877_3_,p_71877_4_,p_71877_5_
+net/minecraft/src/BlockBreakable.func_94332_a(Lnet/minecraft/src/IconRegister;)V=|p_94332_1_
net/minecraft/src/BlockBrewingStand.(I)V=|p_i3921_1_
net/minecraft/src/BlockBrewingStand.func_71852_a(Lnet/minecraft/src/World;IIIII)V=|p_71852_1_,p_71852_2_,p_71852_3_,p_71852_4_,p_71852_5_,p_71852_6_
+net/minecraft/src/BlockBrewingStand.func_71860_a(Lnet/minecraft/src/World;IIILnet/minecraft/src/EntityLiving;Lnet/minecraft/src/ItemStack;)V=|p_71860_1_,p_71860_2_,p_71860_3_,p_71860_4_,p_71860_5_,p_71860_6_
net/minecraft/src/BlockBrewingStand.func_71862_a(Lnet/minecraft/src/World;IIILjava/util/Random;)V=|p_71862_1_,p_71862_2_,p_71862_3_,p_71862_4_,p_71862_5_
net/minecraft/src/BlockBrewingStand.func_71871_a(Lnet/minecraft/src/World;IIILnet/minecraft/src/AxisAlignedBB;Ljava/util/List;Lnet/minecraft/src/Entity;)V=|p_71871_1_,p_71871_2_,p_71871_3_,p_71871_4_,p_71871_5_,p_71871_6_,p_71871_7_
net/minecraft/src/BlockBrewingStand.func_71885_a(ILjava/util/Random;I)I=|p_71885_1_,p_71885_2_,p_71885_3_
net/minecraft/src/BlockBrewingStand.func_71903_a(Lnet/minecraft/src/World;IIILnet/minecraft/src/EntityPlayer;IFFF)Z=|p_71903_1_,p_71903_2_,p_71903_3_,p_71903_4_,p_71903_5_,p_71903_6_,p_71903_7_,p_71903_8_,p_71903_9_
net/minecraft/src/BlockBrewingStand.func_71922_a(Lnet/minecraft/src/World;III)I=|p_71922_1_,p_71922_2_,p_71922_3_,p_71922_4_
net/minecraft/src/BlockBrewingStand.func_72274_a(Lnet/minecraft/src/World;)Lnet/minecraft/src/TileEntity;=|p_72274_1_
-net/minecraft/src/BlockButton.(IIZ)V=|p_i5100_1_,p_i5100_2_,p_i5100_3_
+net/minecraft/src/BlockBrewingStand.func_94328_b_(Lnet/minecraft/src/World;IIII)I=|p_94328_1_,p_94328_2_,p_94328_3_,p_94328_4_,p_94328_5_
+net/minecraft/src/BlockBrewingStand.func_94332_a(Lnet/minecraft/src/IconRegister;)V=|p_94332_1_
+net/minecraft/src/BlockButton.(IZ)V=|p_i9042_1_,p_i9042_2_
net/minecraft/src/BlockButton.func_71847_b(Lnet/minecraft/src/World;IIILjava/util/Random;)V=|p_71847_1_,p_71847_2_,p_71847_3_,p_71847_4_,p_71847_5_
net/minecraft/src/BlockButton.func_71850_a_(Lnet/minecraft/src/World;IIII)Z=|p_71850_1_,p_71850_2_,p_71850_3_,p_71850_4_,p_71850_5_
net/minecraft/src/BlockButton.func_71852_a(Lnet/minecraft/src/World;IIIII)V=|p_71852_1_,p_71852_2_,p_71852_3_,p_71852_4_,p_71852_5_,p_71852_6_
-net/minecraft/src/BlockButton.func_71855_c(Lnet/minecraft/src/IBlockAccess;IIII)Z=|p_71855_1_,p_71855_2_,p_71855_3_,p_71855_4_,p_71855_5_
+net/minecraft/src/BlockButton.func_71855_c(Lnet/minecraft/src/IBlockAccess;IIII)I=|p_71855_1_,p_71855_2_,p_71855_3_,p_71855_4_,p_71855_5_
+net/minecraft/src/BlockButton.func_71859_p_(Lnet/minecraft/src/World;)I=|p_71859_1_
net/minecraft/src/BlockButton.func_71863_a(Lnet/minecraft/src/World;IIII)V=|p_71863_1_,p_71863_2_,p_71863_3_,p_71863_4_,p_71863_5_
-net/minecraft/src/BlockButton.func_71865_a(Lnet/minecraft/src/IBlockAccess;IIII)Z=|p_71865_1_,p_71865_2_,p_71865_3_,p_71865_4_,p_71865_5_
+net/minecraft/src/BlockButton.func_71865_a(Lnet/minecraft/src/IBlockAccess;IIII)I=|p_71865_1_,p_71865_2_,p_71865_3_,p_71865_4_,p_71865_5_
net/minecraft/src/BlockButton.func_71869_a(Lnet/minecraft/src/World;IIILnet/minecraft/src/Entity;)V=|p_71869_1_,p_71869_2_,p_71869_3_,p_71869_4_,p_71869_5_
net/minecraft/src/BlockButton.func_71872_e(Lnet/minecraft/src/World;III)Lnet/minecraft/src/AxisAlignedBB;=|p_71872_1_,p_71872_2_,p_71872_3_,p_71872_4_
net/minecraft/src/BlockButton.func_71902_a(Lnet/minecraft/src/IBlockAccess;III)V=|p_71902_1_,p_71902_2_,p_71902_3_,p_71902_4_
@@ -480,19 +509,24 @@ net/minecraft/src/BlockButton.func_82534_e(I)V=|p_82534_1_
net/minecraft/src/BlockButton.func_82535_o(Lnet/minecraft/src/World;III)V=|p_82535_1_,p_82535_2_,p_82535_3_,p_82535_4_
net/minecraft/src/BlockButton.func_82536_d(Lnet/minecraft/src/World;IIII)V=|p_82536_1_,p_82536_2_,p_82536_3_,p_82536_4_,p_82536_5_
net/minecraft/src/BlockButton.func_85104_a(Lnet/minecraft/src/World;IIIIFFFI)I=|p_85104_1_,p_85104_2_,p_85104_3_,p_85104_4_,p_85104_5_,p_85104_6_,p_85104_7_,p_85104_8_,p_85104_9_
-net/minecraft/src/BlockCactus.(II)V=|p_i3925_1_,p_i3925_2_
+net/minecraft/src/BlockButton.func_94332_a(Lnet/minecraft/src/IconRegister;)V=|p_94332_1_
+net/minecraft/src/BlockButtonStone.(I)V=|p_i9015_1_
+net/minecraft/src/BlockButtonStone.func_71858_a(II)Lnet/minecraft/src/Icon;=|p_71858_1_,p_71858_2_
+net/minecraft/src/BlockButtonWood.(I)V=|p_i9017_1_
+net/minecraft/src/BlockButtonWood.func_71858_a(II)Lnet/minecraft/src/Icon;=|p_71858_1_,p_71858_2_
+net/minecraft/src/BlockCactus.(I)V=|p_i9043_1_
net/minecraft/src/BlockCactus.func_71847_b(Lnet/minecraft/src/World;IIILjava/util/Random;)V=|p_71847_1_,p_71847_2_,p_71847_3_,p_71847_4_,p_71847_5_
-net/minecraft/src/BlockCactus.func_71851_a(I)I=|p_71851_1_
net/minecraft/src/BlockCactus.func_71854_d(Lnet/minecraft/src/World;III)Z=|p_71854_1_,p_71854_2_,p_71854_3_,p_71854_4_
+net/minecraft/src/BlockCactus.func_71858_a(II)Lnet/minecraft/src/Icon;=|p_71858_1_,p_71858_2_
net/minecraft/src/BlockCactus.func_71863_a(Lnet/minecraft/src/World;IIII)V=|p_71863_1_,p_71863_2_,p_71863_3_,p_71863_4_,p_71863_5_
net/minecraft/src/BlockCactus.func_71869_a(Lnet/minecraft/src/World;IIILnet/minecraft/src/Entity;)V=|p_71869_1_,p_71869_2_,p_71869_3_,p_71869_4_,p_71869_5_
net/minecraft/src/BlockCactus.func_71872_e(Lnet/minecraft/src/World;III)Lnet/minecraft/src/AxisAlignedBB;=|p_71872_1_,p_71872_2_,p_71872_3_,p_71872_4_
net/minecraft/src/BlockCactus.func_71911_a_(Lnet/minecraft/src/World;III)Lnet/minecraft/src/AxisAlignedBB;=|p_71911_1_,p_71911_2_,p_71911_3_,p_71911_4_
net/minecraft/src/BlockCactus.func_71930_b(Lnet/minecraft/src/World;III)Z=|p_71930_1_,p_71930_2_,p_71930_3_,p_71930_4_
-net/minecraft/src/BlockCake.(II)V=|p_i3926_1_,p_i3926_2_
-net/minecraft/src/BlockCake.func_71851_a(I)I=|p_71851_1_
+net/minecraft/src/BlockCactus.func_94332_a(Lnet/minecraft/src/IconRegister;)V=|p_94332_1_
+net/minecraft/src/BlockCake.(I)V=|p_i9044_1_
net/minecraft/src/BlockCake.func_71854_d(Lnet/minecraft/src/World;III)Z=|p_71854_1_,p_71854_2_,p_71854_3_,p_71854_4_
-net/minecraft/src/BlockCake.func_71858_a(II)I=|p_71858_1_,p_71858_2_
+net/minecraft/src/BlockCake.func_71858_a(II)Lnet/minecraft/src/Icon;=|p_71858_1_,p_71858_2_
net/minecraft/src/BlockCake.func_71863_a(Lnet/minecraft/src/World;IIII)V=|p_71863_1_,p_71863_2_,p_71863_3_,p_71863_4_,p_71863_5_
net/minecraft/src/BlockCake.func_71872_e(Lnet/minecraft/src/World;III)Lnet/minecraft/src/AxisAlignedBB;=|p_71872_1_,p_71872_2_,p_71872_3_,p_71872_4_
net/minecraft/src/BlockCake.func_71885_a(ILjava/util/Random;I)I=|p_71885_1_,p_71885_2_,p_71885_3_
@@ -504,22 +538,26 @@ net/minecraft/src/BlockCake.func_71922_a(Lnet/minecraft/src/World;III)I=|p_71922
net/minecraft/src/BlockCake.func_71925_a(Ljava/util/Random;)I=|p_71925_1_
net/minecraft/src/BlockCake.func_71930_b(Lnet/minecraft/src/World;III)Z=|p_71930_1_,p_71930_2_,p_71930_3_,p_71930_4_
net/minecraft/src/BlockCake.func_72259_b(Lnet/minecraft/src/World;IIILnet/minecraft/src/EntityPlayer;)V=|p_72259_1_,p_72259_2_,p_72259_3_,p_72259_4_,p_72259_5_
+net/minecraft/src/BlockCake.func_94332_a(Lnet/minecraft/src/IconRegister;)V=|p_94332_1_
net/minecraft/src/BlockCarrot.(I)V=|p_i5101_1_
-net/minecraft/src/BlockCarrot.func_71858_a(II)I=|p_71858_1_,p_71858_2_
+net/minecraft/src/BlockCarrot.func_71858_a(II)Lnet/minecraft/src/Icon;=|p_71858_1_,p_71858_2_
+net/minecraft/src/BlockCarrot.func_94332_a(Lnet/minecraft/src/IconRegister;)V=|p_94332_1_
net/minecraft/src/BlockCauldron.(I)V=|p_i3927_1_
-net/minecraft/src/BlockCauldron.func_71858_a(II)I=|p_71858_1_,p_71858_2_
+net/minecraft/src/BlockCauldron.func_71858_a(II)Lnet/minecraft/src/Icon;=|p_71858_1_,p_71858_2_
net/minecraft/src/BlockCauldron.func_71871_a(Lnet/minecraft/src/World;IIILnet/minecraft/src/AxisAlignedBB;Ljava/util/List;Lnet/minecraft/src/Entity;)V=|p_71871_1_,p_71871_2_,p_71871_3_,p_71871_4_,p_71871_5_,p_71871_6_,p_71871_7_
net/minecraft/src/BlockCauldron.func_71885_a(ILjava/util/Random;I)I=|p_71885_1_,p_71885_2_,p_71885_3_
net/minecraft/src/BlockCauldron.func_71892_f(Lnet/minecraft/src/World;III)V=|p_71892_1_,p_71892_2_,p_71892_3_,p_71892_4_
net/minecraft/src/BlockCauldron.func_71903_a(Lnet/minecraft/src/World;IIILnet/minecraft/src/EntityPlayer;IFFF)Z=|p_71903_1_,p_71903_2_,p_71903_3_,p_71903_4_,p_71903_5_,p_71903_6_,p_71903_7_,p_71903_8_,p_71903_9_
net/minecraft/src/BlockCauldron.func_71922_a(Lnet/minecraft/src/World;III)I=|p_71922_1_,p_71922_2_,p_71922_3_,p_71922_4_
-net/minecraft/src/BlockChest.(I)V=|p_i3928_1_
-net/minecraft/src/BlockChest.func_71851_a(I)I=|p_71851_1_
+net/minecraft/src/BlockCauldron.func_94332_a(Lnet/minecraft/src/IconRegister;)V=|p_94332_1_
+net/minecraft/src/BlockCauldron.func_94375_b(Ljava/lang/String;)Lnet/minecraft/src/Icon;=|p_94375_0_
+net/minecraft/src/BlockChest.(II)V=|p_i9045_1_,p_i9045_2_
net/minecraft/src/BlockChest.func_71852_a(Lnet/minecraft/src/World;IIIII)V=|p_71852_1_,p_71852_2_,p_71852_3_,p_71852_4_,p_71852_5_,p_71852_6_
-net/minecraft/src/BlockChest.func_71860_a(Lnet/minecraft/src/World;IIILnet/minecraft/src/EntityLiving;)V=|p_71860_1_,p_71860_2_,p_71860_3_,p_71860_4_,p_71860_5_
+net/minecraft/src/BlockChest.func_71855_c(Lnet/minecraft/src/IBlockAccess;IIII)I=|p_71855_1_,p_71855_2_,p_71855_3_,p_71855_4_,p_71855_5_
+net/minecraft/src/BlockChest.func_71860_a(Lnet/minecraft/src/World;IIILnet/minecraft/src/EntityLiving;Lnet/minecraft/src/ItemStack;)V=|p_71860_1_,p_71860_2_,p_71860_3_,p_71860_4_,p_71860_5_,p_71860_6_
net/minecraft/src/BlockChest.func_71861_g(Lnet/minecraft/src/World;III)V=|p_71861_1_,p_71861_2_,p_71861_3_,p_71861_4_
net/minecraft/src/BlockChest.func_71863_a(Lnet/minecraft/src/World;IIII)V=|p_71863_1_,p_71863_2_,p_71863_3_,p_71863_4_,p_71863_5_
-net/minecraft/src/BlockChest.func_71895_b(Lnet/minecraft/src/IBlockAccess;IIII)I=|p_71895_1_,p_71895_2_,p_71895_3_,p_71895_4_,p_71895_5_
+net/minecraft/src/BlockChest.func_71865_a(Lnet/minecraft/src/IBlockAccess;IIII)I=|p_71865_1_,p_71865_2_,p_71865_3_,p_71865_4_,p_71865_5_
net/minecraft/src/BlockChest.func_71902_a(Lnet/minecraft/src/IBlockAccess;III)V=|p_71902_1_,p_71902_2_,p_71902_3_,p_71902_4_
net/minecraft/src/BlockChest.func_71903_a(Lnet/minecraft/src/World;IIILnet/minecraft/src/EntityPlayer;IFFF)Z=|p_71903_1_,p_71903_2_,p_71903_3_,p_71903_4_,p_71903_5_,p_71903_6_,p_71903_7_,p_71903_8_,p_71903_9_
net/minecraft/src/BlockChest.func_71930_b(Lnet/minecraft/src/World;III)Z=|p_71930_1_,p_71930_2_,p_71930_3_,p_71930_4_
@@ -527,18 +565,23 @@ net/minecraft/src/BlockChest.func_72274_a(Lnet/minecraft/src/World;)Lnet/minecra
net/minecraft/src/BlockChest.func_72290_b_(Lnet/minecraft/src/World;III)V=|p_72290_1_,p_72290_2_,p_72290_3_,p_72290_4_
net/minecraft/src/BlockChest.func_72291_l(Lnet/minecraft/src/World;III)Z=|p_72291_1_,p_72291_2_,p_72291_3_,p_72291_4_
net/minecraft/src/BlockChest.func_72292_n(Lnet/minecraft/src/World;III)Z=|p_72292_0_,p_72292_1_,p_72292_2_,p_72292_3_
-net/minecraft/src/BlockClay.(II)V=|p_i3929_1_,p_i3929_2_
+net/minecraft/src/BlockChest.func_94328_b_(Lnet/minecraft/src/World;IIII)I=|p_94328_1_,p_94328_2_,p_94328_3_,p_94328_4_,p_94328_5_
+net/minecraft/src/BlockChest.func_94332_a(Lnet/minecraft/src/IconRegister;)V=|p_94332_1_
+net/minecraft/src/BlockChest.func_94442_h_(Lnet/minecraft/src/World;III)Lnet/minecraft/src/IInventory;=|p_94442_1_,p_94442_2_,p_94442_3_,p_94442_4_
+net/minecraft/src/BlockClay.(I)V=|p_i9046_1_
net/minecraft/src/BlockClay.func_71885_a(ILjava/util/Random;I)I=|p_71885_1_,p_71885_2_,p_71885_3_
net/minecraft/src/BlockClay.func_71925_a(Ljava/util/Random;)I=|p_71925_1_
-net/minecraft/src/BlockCloth.func_71858_a(II)I=|p_71858_1_,p_71858_2_
+net/minecraft/src/BlockCloth.func_71858_a(II)Lnet/minecraft/src/Icon;=|p_71858_1_,p_71858_2_
net/minecraft/src/BlockCloth.func_71879_a(ILnet/minecraft/src/CreativeTabs;Ljava/util/List;)V=|p_71879_1_,p_71879_2_,p_71879_3_
net/minecraft/src/BlockCloth.func_71899_b(I)I=|p_71899_1_
net/minecraft/src/BlockCloth.func_72238_e_(I)I=|p_72238_0_
net/minecraft/src/BlockCloth.func_72239_d(I)I=|p_72239_0_
+net/minecraft/src/BlockCloth.func_94332_a(Lnet/minecraft/src/IconRegister;)V=|p_94332_1_
net/minecraft/src/BlockCocoa.(I)V=|p_i3930_1_
net/minecraft/src/BlockCocoa.func_71847_b(Lnet/minecraft/src/World;IIILjava/util/Random;)V=|p_71847_1_,p_71847_2_,p_71847_3_,p_71847_4_,p_71847_5_
net/minecraft/src/BlockCocoa.func_71854_d(Lnet/minecraft/src/World;III)Z=|p_71854_1_,p_71854_2_,p_71854_3_,p_71854_4_
-net/minecraft/src/BlockCocoa.func_71860_a(Lnet/minecraft/src/World;IIILnet/minecraft/src/EntityLiving;)V=|p_71860_1_,p_71860_2_,p_71860_3_,p_71860_4_,p_71860_5_
+net/minecraft/src/BlockCocoa.func_71858_a(II)Lnet/minecraft/src/Icon;=|p_71858_1_,p_71858_2_
+net/minecraft/src/BlockCocoa.func_71860_a(Lnet/minecraft/src/World;IIILnet/minecraft/src/EntityLiving;Lnet/minecraft/src/ItemStack;)V=|p_71860_1_,p_71860_2_,p_71860_3_,p_71860_4_,p_71860_5_,p_71860_6_
net/minecraft/src/BlockCocoa.func_71863_a(Lnet/minecraft/src/World;IIII)V=|p_71863_1_,p_71863_2_,p_71863_3_,p_71863_4_,p_71863_5_
net/minecraft/src/BlockCocoa.func_71872_e(Lnet/minecraft/src/World;III)Lnet/minecraft/src/AxisAlignedBB;=|p_71872_1_,p_71872_2_,p_71872_3_,p_71872_4_
net/minecraft/src/BlockCocoa.func_71873_h(Lnet/minecraft/src/World;III)I=|p_71873_1_,p_71873_2_,p_71873_3_,p_71873_4_
@@ -548,19 +591,44 @@ net/minecraft/src/BlockCocoa.func_71914_a(Lnet/minecraft/src/World;IIIIFI)V=|p_7
net/minecraft/src/BlockCocoa.func_71922_a(Lnet/minecraft/src/World;III)I=|p_71922_1_,p_71922_2_,p_71922_3_,p_71922_4_
net/minecraft/src/BlockCocoa.func_72219_c(I)I=|p_72219_0_
net/minecraft/src/BlockCocoa.func_85104_a(Lnet/minecraft/src/World;IIIIFFFI)I=|p_85104_1_,p_85104_2_,p_85104_3_,p_85104_4_,p_85104_5_,p_85104_6_,p_85104_7_,p_85104_8_,p_85104_9_
+net/minecraft/src/BlockCocoa.func_94332_a(Lnet/minecraft/src/IconRegister;)V=|p_94332_1_
+net/minecraft/src/BlockCocoa.func_94468_i_(I)Lnet/minecraft/src/Icon;=|p_94468_1_
net/minecraft/src/BlockCommandBlock.(I)V=|p_i5102_1_
net/minecraft/src/BlockCommandBlock.func_71847_b(Lnet/minecraft/src/World;IIILjava/util/Random;)V=|p_71847_1_,p_71847_2_,p_71847_3_,p_71847_4_,p_71847_5_
+net/minecraft/src/BlockCommandBlock.func_71859_p_(Lnet/minecraft/src/World;)I=|p_71859_1_
+net/minecraft/src/BlockCommandBlock.func_71860_a(Lnet/minecraft/src/World;IIILnet/minecraft/src/EntityLiving;Lnet/minecraft/src/ItemStack;)V=|p_71860_1_,p_71860_2_,p_71860_3_,p_71860_4_,p_71860_5_,p_71860_6_
net/minecraft/src/BlockCommandBlock.func_71863_a(Lnet/minecraft/src/World;IIII)V=|p_71863_1_,p_71863_2_,p_71863_3_,p_71863_4_,p_71863_5_
net/minecraft/src/BlockCommandBlock.func_71903_a(Lnet/minecraft/src/World;IIILnet/minecraft/src/EntityPlayer;IFFF)Z=|p_71903_1_,p_71903_2_,p_71903_3_,p_71903_4_,p_71903_5_,p_71903_6_,p_71903_7_,p_71903_8_,p_71903_9_
net/minecraft/src/BlockCommandBlock.func_72274_a(Lnet/minecraft/src/World;)Lnet/minecraft/src/TileEntity;=|p_72274_1_
-net/minecraft/src/BlockContainer.(IILnet/minecraft/src/Material;)V=|p_i3944_1_,p_i3944_2_,p_i3944_3_
-net/minecraft/src/BlockContainer.(ILnet/minecraft/src/Material;)V=|p_i3943_1_,p_i3943_2_
+net/minecraft/src/BlockCommandBlock.func_94328_b_(Lnet/minecraft/src/World;IIII)I=|p_94328_1_,p_94328_2_,p_94328_3_,p_94328_4_,p_94328_5_
+net/minecraft/src/BlockComparator.(IZ)V=|p_i9047_1_,p_i9047_2_
+net/minecraft/src/BlockComparator.func_71847_b(Lnet/minecraft/src/World;IIILjava/util/Random;)V=|p_71847_1_,p_71847_2_,p_71847_3_,p_71847_4_,p_71847_5_
+net/minecraft/src/BlockComparator.func_71852_a(Lnet/minecraft/src/World;IIIII)V=|p_71852_1_,p_71852_2_,p_71852_3_,p_71852_4_,p_71852_5_,p_71852_6_
+net/minecraft/src/BlockComparator.func_71858_a(II)Lnet/minecraft/src/Icon;=|p_71858_1_,p_71858_2_
+net/minecraft/src/BlockComparator.func_71861_g(Lnet/minecraft/src/World;III)V=|p_71861_1_,p_71861_2_,p_71861_3_,p_71861_4_
+net/minecraft/src/BlockComparator.func_71883_b(Lnet/minecraft/src/World;IIIII)Z=|p_71883_1_,p_71883_2_,p_71883_3_,p_71883_4_,p_71883_5_,p_71883_6_
+net/minecraft/src/BlockComparator.func_71885_a(ILjava/util/Random;I)I=|p_71885_1_,p_71885_2_,p_71885_3_
+net/minecraft/src/BlockComparator.func_71903_a(Lnet/minecraft/src/World;IIILnet/minecraft/src/EntityPlayer;IFFF)Z=|p_71903_1_,p_71903_2_,p_71903_3_,p_71903_4_,p_71903_5_,p_71903_6_,p_71903_7_,p_71903_8_,p_71903_9_
+net/minecraft/src/BlockComparator.func_71922_a(Lnet/minecraft/src/World;III)I=|p_71922_1_,p_71922_2_,p_71922_3_,p_71922_4_
+net/minecraft/src/BlockComparator.func_72220_e(Lnet/minecraft/src/World;IIII)I=|p_72220_1_,p_72220_2_,p_72220_3_,p_72220_4_,p_72220_5_
+net/minecraft/src/BlockComparator.func_72274_a(Lnet/minecraft/src/World;)Lnet/minecraft/src/TileEntity;=|p_72274_1_
+net/minecraft/src/BlockComparator.func_94332_a(Lnet/minecraft/src/IconRegister;)V=|p_94332_1_
+net/minecraft/src/BlockComparator.func_94478_d(Lnet/minecraft/src/World;IIII)Z=|p_94478_1_,p_94478_2_,p_94478_3_,p_94478_4_,p_94478_5_
+net/minecraft/src/BlockComparator.func_94479_f(Lnet/minecraft/src/World;IIII)V=|p_94479_1_,p_94479_2_,p_94479_3_,p_94479_4_,p_94479_5_
+net/minecraft/src/BlockComparator.func_94480_d(Lnet/minecraft/src/IBlockAccess;IIII)I=|p_94480_1_,p_94480_2_,p_94480_3_,p_94480_4_,p_94480_5_
+net/minecraft/src/BlockComparator.func_94481_j_(I)I=|p_94481_1_
+net/minecraft/src/BlockComparator.func_94490_c(I)Z=|p_94490_1_
+net/minecraft/src/BlockComparator.func_94491_m(Lnet/minecraft/src/World;IIII)I=|p_94491_1_,p_94491_2_,p_94491_3_,p_94491_4_,p_94491_5_
+net/minecraft/src/BlockComparator.func_96470_c(I)Z=|p_96470_1_
+net/minecraft/src/BlockComparator.func_96475_a_(Lnet/minecraft/src/IBlockAccess;III)Lnet/minecraft/src/TileEntityComparator;=|p_96475_1_,p_96475_2_,p_96475_3_,p_96475_4_
+net/minecraft/src/BlockComparator.func_96476_c(Lnet/minecraft/src/World;IIILjava/util/Random;)V=|p_96476_1_,p_96476_2_,p_96476_3_,p_96476_4_,p_96476_5_
+net/minecraft/src/BlockContainer.(ILnet/minecraft/src/Material;)V=|p_i10059_1_,p_i10059_2_
net/minecraft/src/BlockContainer.func_71852_a(Lnet/minecraft/src/World;IIIII)V=|p_71852_1_,p_71852_2_,p_71852_3_,p_71852_4_,p_71852_5_,p_71852_6_
net/minecraft/src/BlockContainer.func_71861_g(Lnet/minecraft/src/World;III)V=|p_71861_1_,p_71861_2_,p_71861_3_,p_71861_4_
-net/minecraft/src/BlockContainer.func_71883_b(Lnet/minecraft/src/World;IIIII)V=|p_71883_1_,p_71883_2_,p_71883_3_,p_71883_4_,p_71883_5_,p_71883_6_
-net/minecraft/src/BlockCrops.(II)V=|p_i3931_1_,p_i3931_2_
+net/minecraft/src/BlockContainer.func_71883_b(Lnet/minecraft/src/World;IIIII)Z=|p_71883_1_,p_71883_2_,p_71883_3_,p_71883_4_,p_71883_5_,p_71883_6_
+net/minecraft/src/BlockCrops.(I)V=|p_i9048_1_
net/minecraft/src/BlockCrops.func_71847_b(Lnet/minecraft/src/World;IIILjava/util/Random;)V=|p_71847_1_,p_71847_2_,p_71847_3_,p_71847_4_,p_71847_5_
-net/minecraft/src/BlockCrops.func_71858_a(II)I=|p_71858_1_,p_71858_2_
+net/minecraft/src/BlockCrops.func_71858_a(II)Lnet/minecraft/src/Icon;=|p_71858_1_,p_71858_2_
net/minecraft/src/BlockCrops.func_71885_a(ILjava/util/Random;I)I=|p_71885_1_,p_71885_2_,p_71885_3_
net/minecraft/src/BlockCrops.func_71914_a(Lnet/minecraft/src/World;IIIIFI)V=|p_71914_1_,p_71914_2_,p_71914_3_,p_71914_4_,p_71914_5_,p_71914_6_,p_71914_7_
net/minecraft/src/BlockCrops.func_71922_a(Lnet/minecraft/src/World;III)I=|p_71922_1_,p_71922_2_,p_71922_3_,p_71922_4_
@@ -568,42 +636,61 @@ net/minecraft/src/BlockCrops.func_71925_a(Ljava/util/Random;)I=|p_71925_1_
net/minecraft/src/BlockCrops.func_72263_d_(I)Z=|p_72263_1_
net/minecraft/src/BlockCrops.func_72272_c_(Lnet/minecraft/src/World;III)V=|p_72272_1_,p_72272_2_,p_72272_3_,p_72272_4_
net/minecraft/src/BlockCrops.func_72273_l(Lnet/minecraft/src/World;III)F=|p_72273_1_,p_72273_2_,p_72273_3_,p_72273_4_
-net/minecraft/src/BlockDeadBush.(II)V=|p_i3932_1_,p_i3932_2_
-net/minecraft/src/BlockDeadBush.func_71858_a(II)I=|p_71858_1_,p_71858_2_
+net/minecraft/src/BlockCrops.func_94332_a(Lnet/minecraft/src/IconRegister;)V=|p_94332_1_
+net/minecraft/src/BlockDaylightDetector.(I)V=|p_i9049_1_
+net/minecraft/src/BlockDaylightDetector.func_71847_b(Lnet/minecraft/src/World;IIILjava/util/Random;)V=|p_71847_1_,p_71847_2_,p_71847_3_,p_71847_4_,p_71847_5_
+net/minecraft/src/BlockDaylightDetector.func_71858_a(II)Lnet/minecraft/src/Icon;=|p_71858_1_,p_71858_2_
+net/minecraft/src/BlockDaylightDetector.func_71861_g(Lnet/minecraft/src/World;III)V=|p_71861_1_,p_71861_2_,p_71861_3_,p_71861_4_
+net/minecraft/src/BlockDaylightDetector.func_71863_a(Lnet/minecraft/src/World;IIII)V=|p_71863_1_,p_71863_2_,p_71863_3_,p_71863_4_,p_71863_5_
+net/minecraft/src/BlockDaylightDetector.func_71865_a(Lnet/minecraft/src/IBlockAccess;IIII)I=|p_71865_1_,p_71865_2_,p_71865_3_,p_71865_4_,p_71865_5_
+net/minecraft/src/BlockDaylightDetector.func_71902_a(Lnet/minecraft/src/IBlockAccess;III)V=|p_71902_1_,p_71902_2_,p_71902_3_,p_71902_4_
+net/minecraft/src/BlockDaylightDetector.func_72274_a(Lnet/minecraft/src/World;)Lnet/minecraft/src/TileEntity;=|p_72274_1_
+net/minecraft/src/BlockDaylightDetector.func_94332_a(Lnet/minecraft/src/IconRegister;)V=|p_94332_1_
+net/minecraft/src/BlockDaylightDetector.func_94444_j_(Lnet/minecraft/src/World;III)V=|p_94444_1_,p_94444_2_,p_94444_3_,p_94444_4_
+net/minecraft/src/BlockDeadBush.(I)V=|p_i9050_1_
net/minecraft/src/BlockDeadBush.func_71885_a(ILjava/util/Random;I)I=|p_71885_1_,p_71885_2_,p_71885_3_
net/minecraft/src/BlockDeadBush.func_71893_a(Lnet/minecraft/src/World;Lnet/minecraft/src/EntityPlayer;IIII)V=|p_71893_1_,p_71893_2_,p_71893_3_,p_71893_4_,p_71893_5_,p_71893_6_
net/minecraft/src/BlockDeadBush.func_72263_d_(I)Z=|p_72263_1_
-net/minecraft/src/BlockDetectorRail.(II)V=|p_i3933_1_,p_i3933_2_
+net/minecraft/src/BlockDetectorRail.(I)V=|p_i9051_1_
net/minecraft/src/BlockDetectorRail.func_71847_b(Lnet/minecraft/src/World;IIILjava/util/Random;)V=|p_71847_1_,p_71847_2_,p_71847_3_,p_71847_4_,p_71847_5_
-net/minecraft/src/BlockDetectorRail.func_71855_c(Lnet/minecraft/src/IBlockAccess;IIII)Z=|p_71855_1_,p_71855_2_,p_71855_3_,p_71855_4_,p_71855_5_
-net/minecraft/src/BlockDetectorRail.func_71865_a(Lnet/minecraft/src/IBlockAccess;IIII)Z=|p_71865_1_,p_71865_2_,p_71865_3_,p_71865_4_,p_71865_5_
+net/minecraft/src/BlockDetectorRail.func_71855_c(Lnet/minecraft/src/IBlockAccess;IIII)I=|p_71855_1_,p_71855_2_,p_71855_3_,p_71855_4_,p_71855_5_
+net/minecraft/src/BlockDetectorRail.func_71858_a(II)Lnet/minecraft/src/Icon;=|p_71858_1_,p_71858_2_
+net/minecraft/src/BlockDetectorRail.func_71859_p_(Lnet/minecraft/src/World;)I=|p_71859_1_
+net/minecraft/src/BlockDetectorRail.func_71861_g(Lnet/minecraft/src/World;III)V=|p_71861_1_,p_71861_2_,p_71861_3_,p_71861_4_
+net/minecraft/src/BlockDetectorRail.func_71865_a(Lnet/minecraft/src/IBlockAccess;IIII)I=|p_71865_1_,p_71865_2_,p_71865_3_,p_71865_4_,p_71865_5_
net/minecraft/src/BlockDetectorRail.func_71869_a(Lnet/minecraft/src/World;IIILnet/minecraft/src/Entity;)V=|p_71869_1_,p_71869_2_,p_71869_3_,p_71869_4_,p_71869_5_
net/minecraft/src/BlockDetectorRail.func_72187_e(Lnet/minecraft/src/World;IIII)V=|p_72187_1_,p_72187_2_,p_72187_3_,p_72187_4_,p_72187_5_
-net/minecraft/src/BlockDirectional.(IILnet/minecraft/src/Material;)V=|p_i3935_1_,p_i3935_2_,p_i3935_3_
+net/minecraft/src/BlockDetectorRail.func_94328_b_(Lnet/minecraft/src/World;IIII)I=|p_94328_1_,p_94328_2_,p_94328_3_,p_94328_4_,p_94328_5_
+net/minecraft/src/BlockDetectorRail.func_94332_a(Lnet/minecraft/src/IconRegister;)V=|p_94332_1_
net/minecraft/src/BlockDirectional.(ILnet/minecraft/src/Material;)V=|p_i3936_1_,p_i3936_2_
net/minecraft/src/BlockDirectional.func_72217_d(I)I=|p_72217_0_
-net/minecraft/src/BlockDirt.(II)V=|p_i3937_1_,p_i3937_2_
+net/minecraft/src/BlockDirt.(I)V=|p_i9052_1_
net/minecraft/src/BlockDispenser.(I)V=|p_i3938_1_
+net/minecraft/src/BlockDispenser.func_100001_j_(I)Lnet/minecraft/src/EnumFacing;=|p_100001_0_
+net/minecraft/src/BlockDispenser.func_100009_j_(I)Lnet/minecraft/src/EnumFacing;=|p_100009_0_
net/minecraft/src/BlockDispenser.func_71847_b(Lnet/minecraft/src/World;IIILjava/util/Random;)V=|p_71847_1_,p_71847_2_,p_71847_3_,p_71847_4_,p_71847_5_
-net/minecraft/src/BlockDispenser.func_71851_a(I)I=|p_71851_1_
net/minecraft/src/BlockDispenser.func_71852_a(Lnet/minecraft/src/World;IIIII)V=|p_71852_1_,p_71852_2_,p_71852_3_,p_71852_4_,p_71852_5_,p_71852_6_
-net/minecraft/src/BlockDispenser.func_71860_a(Lnet/minecraft/src/World;IIILnet/minecraft/src/EntityLiving;)V=|p_71860_1_,p_71860_2_,p_71860_3_,p_71860_4_,p_71860_5_
+net/minecraft/src/BlockDispenser.func_71858_a(II)Lnet/minecraft/src/Icon;=|p_71858_1_,p_71858_2_
+net/minecraft/src/BlockDispenser.func_71859_p_(Lnet/minecraft/src/World;)I=|p_71859_1_
+net/minecraft/src/BlockDispenser.func_71860_a(Lnet/minecraft/src/World;IIILnet/minecraft/src/EntityLiving;Lnet/minecraft/src/ItemStack;)V=|p_71860_1_,p_71860_2_,p_71860_3_,p_71860_4_,p_71860_5_,p_71860_6_
net/minecraft/src/BlockDispenser.func_71861_g(Lnet/minecraft/src/World;III)V=|p_71861_1_,p_71861_2_,p_71861_3_,p_71861_4_
net/minecraft/src/BlockDispenser.func_71863_a(Lnet/minecraft/src/World;IIII)V=|p_71863_1_,p_71863_2_,p_71863_3_,p_71863_4_,p_71863_5_
-net/minecraft/src/BlockDispenser.func_71885_a(ILjava/util/Random;I)I=|p_71885_1_,p_71885_2_,p_71885_3_
-net/minecraft/src/BlockDispenser.func_71895_b(Lnet/minecraft/src/IBlockAccess;IIII)I=|p_71895_1_,p_71895_2_,p_71895_3_,p_71895_4_,p_71895_5_
net/minecraft/src/BlockDispenser.func_71903_a(Lnet/minecraft/src/World;IIILnet/minecraft/src/EntityPlayer;IFFF)Z=|p_71903_1_,p_71903_2_,p_71903_3_,p_71903_4_,p_71903_5_,p_71903_6_,p_71903_7_,p_71903_8_,p_71903_9_
net/minecraft/src/BlockDispenser.func_72274_a(Lnet/minecraft/src/World;)Lnet/minecraft/src/TileEntity;=|p_72274_1_
net/minecraft/src/BlockDispenser.func_72280_l(Lnet/minecraft/src/World;III)V=|p_72280_1_,p_72280_2_,p_72280_3_,p_72280_4_
net/minecraft/src/BlockDispenser.func_82525_a(Lnet/minecraft/src/IBlockSource;)Lnet/minecraft/src/IPosition;=|p_82525_0_
net/minecraft/src/BlockDispenser.func_82526_n(Lnet/minecraft/src/World;III)V=|p_82526_1_,p_82526_2_,p_82526_3_,p_82526_4_
+net/minecraft/src/BlockDispenser.func_94328_b_(Lnet/minecraft/src/World;IIII)I=|p_94328_1_,p_94328_2_,p_94328_3_,p_94328_4_,p_94328_5_
+net/minecraft/src/BlockDispenser.func_94332_a(Lnet/minecraft/src/IconRegister;)V=|p_94332_1_
+net/minecraft/src/BlockDispenser.func_96472_a(Lnet/minecraft/src/ItemStack;)Lnet/minecraft/src/IBehaviorDispenseItem;=|p_96472_1_
net/minecraft/src/BlockDoor.(ILnet/minecraft/src/Material;)V=|p_i3939_1_,p_i3939_2_
net/minecraft/src/BlockDoor.func_71846_a(Lnet/minecraft/src/World;IIIILnet/minecraft/src/EntityPlayer;)V=|p_71846_1_,p_71846_2_,p_71846_3_,p_71846_4_,p_71846_5_,p_71846_6_
+net/minecraft/src/BlockDoor.func_71858_a(II)Lnet/minecraft/src/Icon;=|p_71858_1_,p_71858_2_
net/minecraft/src/BlockDoor.func_71863_a(Lnet/minecraft/src/World;IIII)V=|p_71863_1_,p_71863_2_,p_71863_3_,p_71863_4_,p_71863_5_
net/minecraft/src/BlockDoor.func_71872_e(Lnet/minecraft/src/World;III)Lnet/minecraft/src/AxisAlignedBB;=|p_71872_1_,p_71872_2_,p_71872_3_,p_71872_4_
net/minecraft/src/BlockDoor.func_71878_a(Lnet/minecraft/src/World;IIILnet/minecraft/src/Vec3;Lnet/minecraft/src/Vec3;)Lnet/minecraft/src/MovingObjectPosition;=|p_71878_1_,p_71878_2_,p_71878_3_,p_71878_4_,p_71878_5_,p_71878_6_
net/minecraft/src/BlockDoor.func_71885_a(ILjava/util/Random;I)I=|p_71885_1_,p_71885_2_,p_71885_3_
-net/minecraft/src/BlockDoor.func_71895_b(Lnet/minecraft/src/IBlockAccess;IIII)I=|p_71895_1_,p_71895_2_,p_71895_3_,p_71895_4_,p_71895_5_
+net/minecraft/src/BlockDoor.func_71895_b(Lnet/minecraft/src/IBlockAccess;IIII)Lnet/minecraft/src/Icon;=|p_71895_1_,p_71895_2_,p_71895_3_,p_71895_4_,p_71895_5_
net/minecraft/src/BlockDoor.func_71902_a(Lnet/minecraft/src/IBlockAccess;III)V=|p_71902_1_,p_71902_2_,p_71902_3_,p_71902_4_
net/minecraft/src/BlockDoor.func_71903_a(Lnet/minecraft/src/World;IIILnet/minecraft/src/EntityPlayer;IFFF)Z=|p_71903_1_,p_71903_2_,p_71903_3_,p_71903_4_,p_71903_5_,p_71903_6_,p_71903_7_,p_71903_8_,p_71903_9_
net/minecraft/src/BlockDoor.func_71911_a_(Lnet/minecraft/src/World;III)Lnet/minecraft/src/AxisAlignedBB;=|p_71911_1_,p_71911_2_,p_71911_3_,p_71911_4_
@@ -616,8 +703,10 @@ net/minecraft/src/BlockDoor.func_72232_e(I)V=|p_72232_1_
net/minecraft/src/BlockDoor.func_72233_a_(Lnet/minecraft/src/IBlockAccess;III)Z=|p_72233_1_,p_72233_2_,p_72233_3_,p_72233_4_
net/minecraft/src/BlockDoor.func_72234_b_(Lnet/minecraft/src/IBlockAccess;III)I=|p_72234_1_,p_72234_2_,p_72234_3_,p_72234_4_
net/minecraft/src/BlockDoor.func_72235_d(Lnet/minecraft/src/IBlockAccess;III)I=|p_72235_1_,p_72235_2_,p_72235_3_,p_72235_4_
-net/minecraft/src/BlockDragonEgg.(II)V=|p_i3940_1_,p_i3940_2_
+net/minecraft/src/BlockDoor.func_94332_a(Lnet/minecraft/src/IconRegister;)V=|p_94332_1_
+net/minecraft/src/BlockDragonEgg.(I)V=|p_i9053_1_
net/minecraft/src/BlockDragonEgg.func_71847_b(Lnet/minecraft/src/World;IIILjava/util/Random;)V=|p_71847_1_,p_71847_2_,p_71847_3_,p_71847_4_,p_71847_5_
+net/minecraft/src/BlockDragonEgg.func_71859_p_(Lnet/minecraft/src/World;)I=|p_71859_1_
net/minecraft/src/BlockDragonEgg.func_71861_g(Lnet/minecraft/src/World;III)V=|p_71861_1_,p_71861_2_,p_71861_3_,p_71861_4_
net/minecraft/src/BlockDragonEgg.func_71863_a(Lnet/minecraft/src/World;IIII)V=|p_71863_1_,p_71863_2_,p_71863_3_,p_71863_4_,p_71863_5_
net/minecraft/src/BlockDragonEgg.func_71877_c(Lnet/minecraft/src/IBlockAccess;IIII)Z=|p_71877_1_,p_71877_2_,p_71877_3_,p_71877_4_,p_71877_5_
@@ -626,12 +715,18 @@ net/minecraft/src/BlockDragonEgg.func_71921_a(Lnet/minecraft/src/World;IIILnet/m
net/minecraft/src/BlockDragonEgg.func_71922_a(Lnet/minecraft/src/World;III)I=|p_71922_1_,p_71922_2_,p_71922_3_,p_71922_4_
net/minecraft/src/BlockDragonEgg.func_72236_l(Lnet/minecraft/src/World;III)V=|p_72236_1_,p_72236_2_,p_72236_3_,p_72236_4_
net/minecraft/src/BlockDragonEgg.func_72237_n(Lnet/minecraft/src/World;III)V=|p_72237_1_,p_72237_2_,p_72237_3_,p_72237_4_
+net/minecraft/src/BlockDropper.(I)V=|p_i10060_1_
+net/minecraft/src/BlockDropper.func_72274_a(Lnet/minecraft/src/World;)Lnet/minecraft/src/TileEntity;=|p_72274_1_
+net/minecraft/src/BlockDropper.func_82526_n(Lnet/minecraft/src/World;III)V=|p_82526_1_,p_82526_2_,p_82526_3_,p_82526_4_
+net/minecraft/src/BlockDropper.func_94332_a(Lnet/minecraft/src/IconRegister;)V=|p_94332_1_
+net/minecraft/src/BlockDropper.func_96472_a(Lnet/minecraft/src/ItemStack;)Lnet/minecraft/src/IBehaviorDispenseItem;=|p_96472_1_
net/minecraft/src/BlockEnchantmentTable.(I)V=|p_i3941_1_
-net/minecraft/src/BlockEnchantmentTable.func_71851_a(I)I=|p_71851_1_
-net/minecraft/src/BlockEnchantmentTable.func_71858_a(II)I=|p_71858_1_,p_71858_2_
+net/minecraft/src/BlockEnchantmentTable.func_71858_a(II)Lnet/minecraft/src/Icon;=|p_71858_1_,p_71858_2_
+net/minecraft/src/BlockEnchantmentTable.func_71860_a(Lnet/minecraft/src/World;IIILnet/minecraft/src/EntityLiving;Lnet/minecraft/src/ItemStack;)V=|p_71860_1_,p_71860_2_,p_71860_3_,p_71860_4_,p_71860_5_,p_71860_6_
net/minecraft/src/BlockEnchantmentTable.func_71862_a(Lnet/minecraft/src/World;IIILjava/util/Random;)V=|p_71862_1_,p_71862_2_,p_71862_3_,p_71862_4_,p_71862_5_
net/minecraft/src/BlockEnchantmentTable.func_71903_a(Lnet/minecraft/src/World;IIILnet/minecraft/src/EntityPlayer;IFFF)Z=|p_71903_1_,p_71903_2_,p_71903_3_,p_71903_4_,p_71903_5_,p_71903_6_,p_71903_7_,p_71903_8_,p_71903_9_
net/minecraft/src/BlockEnchantmentTable.func_72274_a(Lnet/minecraft/src/World;)Lnet/minecraft/src/TileEntity;=|p_72274_1_
+net/minecraft/src/BlockEnchantmentTable.func_94332_a(Lnet/minecraft/src/IconRegister;)V=|p_94332_1_
net/minecraft/src/BlockEndPortal.(ILnet/minecraft/src/Material;)V=|p_i4003_1_,p_i4003_2_
net/minecraft/src/BlockEndPortal.func_71861_g(Lnet/minecraft/src/World;III)V=|p_71861_1_,p_71861_2_,p_71861_3_,p_71861_4_
net/minecraft/src/BlockEndPortal.func_71862_a(Lnet/minecraft/src/World;IIILjava/util/Random;)V=|p_71862_1_,p_71862_2_,p_71862_3_,p_71862_4_,p_71862_5_
@@ -642,24 +737,27 @@ net/minecraft/src/BlockEndPortal.func_71902_a(Lnet/minecraft/src/IBlockAccess;II
net/minecraft/src/BlockEndPortal.func_71922_a(Lnet/minecraft/src/World;III)I=|p_71922_1_,p_71922_2_,p_71922_3_,p_71922_4_
net/minecraft/src/BlockEndPortal.func_71925_a(Ljava/util/Random;)I=|p_71925_1_
net/minecraft/src/BlockEndPortal.func_72274_a(Lnet/minecraft/src/World;)Lnet/minecraft/src/TileEntity;=|p_72274_1_
+net/minecraft/src/BlockEndPortal.func_94332_a(Lnet/minecraft/src/IconRegister;)V=|p_94332_1_
net/minecraft/src/BlockEndPortalFrame.(I)V=|p_i4004_1_
-net/minecraft/src/BlockEndPortalFrame.func_71858_a(II)I=|p_71858_1_,p_71858_2_
-net/minecraft/src/BlockEndPortalFrame.func_71860_a(Lnet/minecraft/src/World;IIILnet/minecraft/src/EntityLiving;)V=|p_71860_1_,p_71860_2_,p_71860_3_,p_71860_4_,p_71860_5_
+net/minecraft/src/BlockEndPortalFrame.func_71858_a(II)Lnet/minecraft/src/Icon;=|p_71858_1_,p_71858_2_
+net/minecraft/src/BlockEndPortalFrame.func_71860_a(Lnet/minecraft/src/World;IIILnet/minecraft/src/EntityLiving;Lnet/minecraft/src/ItemStack;)V=|p_71860_1_,p_71860_2_,p_71860_3_,p_71860_4_,p_71860_5_,p_71860_6_
net/minecraft/src/BlockEndPortalFrame.func_71871_a(Lnet/minecraft/src/World;IIILnet/minecraft/src/AxisAlignedBB;Ljava/util/List;Lnet/minecraft/src/Entity;)V=|p_71871_1_,p_71871_2_,p_71871_3_,p_71871_4_,p_71871_5_,p_71871_6_,p_71871_7_
net/minecraft/src/BlockEndPortalFrame.func_71885_a(ILjava/util/Random;I)I=|p_71885_1_,p_71885_2_,p_71885_3_
net/minecraft/src/BlockEndPortalFrame.func_72165_e(I)Z=|p_72165_0_
+net/minecraft/src/BlockEndPortalFrame.func_94332_a(Lnet/minecraft/src/IconRegister;)V=|p_94332_1_
net/minecraft/src/BlockEnderChest.(I)V=|p_i3942_1_
-net/minecraft/src/BlockEnderChest.func_71860_a(Lnet/minecraft/src/World;IIILnet/minecraft/src/EntityLiving;)V=|p_71860_1_,p_71860_2_,p_71860_3_,p_71860_4_,p_71860_5_
+net/minecraft/src/BlockEnderChest.func_71860_a(Lnet/minecraft/src/World;IIILnet/minecraft/src/EntityLiving;Lnet/minecraft/src/ItemStack;)V=|p_71860_1_,p_71860_2_,p_71860_3_,p_71860_4_,p_71860_5_,p_71860_6_
net/minecraft/src/BlockEnderChest.func_71862_a(Lnet/minecraft/src/World;IIILjava/util/Random;)V=|p_71862_1_,p_71862_2_,p_71862_3_,p_71862_4_,p_71862_5_
net/minecraft/src/BlockEnderChest.func_71885_a(ILjava/util/Random;I)I=|p_71885_1_,p_71885_2_,p_71885_3_
net/minecraft/src/BlockEnderChest.func_71903_a(Lnet/minecraft/src/World;IIILnet/minecraft/src/EntityPlayer;IFFF)Z=|p_71903_1_,p_71903_2_,p_71903_3_,p_71903_4_,p_71903_5_,p_71903_6_,p_71903_7_,p_71903_8_,p_71903_9_
net/minecraft/src/BlockEnderChest.func_71925_a(Ljava/util/Random;)I=|p_71925_1_
net/minecraft/src/BlockEnderChest.func_72274_a(Lnet/minecraft/src/World;)Lnet/minecraft/src/TileEntity;=|p_72274_1_
+net/minecraft/src/BlockEnderChest.func_94332_a(Lnet/minecraft/src/IconRegister;)V=|p_94332_1_
net/minecraft/src/BlockEventData.(IIIIII)V=|p_i3742_1_,p_i3742_2_,p_i3742_3_,p_i3742_4_,p_i3742_5_,p_i3742_6_
net/minecraft/src/BlockEventData.equals(Ljava/lang/Object;)Z=|p_equals_1_
net/minecraft/src/BlockFarmland.(I)V=|p_i3945_1_
net/minecraft/src/BlockFarmland.func_71847_b(Lnet/minecraft/src/World;IIILjava/util/Random;)V=|p_71847_1_,p_71847_2_,p_71847_3_,p_71847_4_,p_71847_5_
-net/minecraft/src/BlockFarmland.func_71858_a(II)I=|p_71858_1_,p_71858_2_
+net/minecraft/src/BlockFarmland.func_71858_a(II)Lnet/minecraft/src/Icon;=|p_71858_1_,p_71858_2_
net/minecraft/src/BlockFarmland.func_71863_a(Lnet/minecraft/src/World;IIII)V=|p_71863_1_,p_71863_2_,p_71863_3_,p_71863_4_,p_71863_5_
net/minecraft/src/BlockFarmland.func_71866_a(Lnet/minecraft/src/World;IIILnet/minecraft/src/Entity;F)V=|p_71866_1_,p_71866_2_,p_71866_3_,p_71866_4_,p_71866_5_,p_71866_6_
net/minecraft/src/BlockFarmland.func_71872_e(Lnet/minecraft/src/World;III)Lnet/minecraft/src/AxisAlignedBB;=|p_71872_1_,p_71872_2_,p_71872_3_,p_71872_4_
@@ -667,16 +765,18 @@ net/minecraft/src/BlockFarmland.func_71885_a(ILjava/util/Random;I)I=|p_71885_1_,
net/minecraft/src/BlockFarmland.func_71922_a(Lnet/minecraft/src/World;III)I=|p_71922_1_,p_71922_2_,p_71922_3_,p_71922_4_
net/minecraft/src/BlockFarmland.func_72247_n(Lnet/minecraft/src/World;III)Z=|p_72247_1_,p_72247_2_,p_72247_3_,p_72247_4_
net/minecraft/src/BlockFarmland.func_72248_l(Lnet/minecraft/src/World;III)Z=|p_72248_1_,p_72248_2_,p_72248_3_,p_72248_4_
-net/minecraft/src/BlockFence.(II)V=|p_i3947_1_,p_i3947_2_
-net/minecraft/src/BlockFence.(IILnet/minecraft/src/Material;)V=|p_i3948_1_,p_i3948_2_,p_i3948_3_
-net/minecraft/src/BlockFence.func_71872_e(Lnet/minecraft/src/World;III)Lnet/minecraft/src/AxisAlignedBB;=|p_71872_1_,p_71872_2_,p_71872_3_,p_71872_4_
+net/minecraft/src/BlockFarmland.func_94332_a(Lnet/minecraft/src/IconRegister;)V=|p_94332_1_
+net/minecraft/src/BlockFence.(ILjava/lang/String;Lnet/minecraft/src/Material;)V=|p_i9055_1_,p_i9055_2_,p_i9055_3_
+net/minecraft/src/BlockFence.func_71871_a(Lnet/minecraft/src/World;IIILnet/minecraft/src/AxisAlignedBB;Ljava/util/List;Lnet/minecraft/src/Entity;)V=|p_71871_1_,p_71871_2_,p_71871_3_,p_71871_4_,p_71871_5_,p_71871_6_,p_71871_7_
net/minecraft/src/BlockFence.func_71877_c(Lnet/minecraft/src/IBlockAccess;IIII)Z=|p_71877_1_,p_71877_2_,p_71877_3_,p_71877_4_,p_71877_5_
net/minecraft/src/BlockFence.func_71902_a(Lnet/minecraft/src/IBlockAccess;III)V=|p_71902_1_,p_71902_2_,p_71902_3_,p_71902_4_
net/minecraft/src/BlockFence.func_71918_c(Lnet/minecraft/src/IBlockAccess;III)Z=|p_71918_1_,p_71918_2_,p_71918_3_,p_71918_4_
net/minecraft/src/BlockFence.func_72249_c(I)Z=|p_72249_0_
net/minecraft/src/BlockFence.func_72250_d(Lnet/minecraft/src/IBlockAccess;III)Z=|p_72250_1_,p_72250_2_,p_72250_3_,p_72250_4_
-net/minecraft/src/BlockFenceGate.(II)V=|p_i3946_1_,p_i3946_2_
-net/minecraft/src/BlockFenceGate.func_71860_a(Lnet/minecraft/src/World;IIILnet/minecraft/src/EntityLiving;)V=|p_71860_1_,p_71860_2_,p_71860_3_,p_71860_4_,p_71860_5_
+net/minecraft/src/BlockFence.func_94332_a(Lnet/minecraft/src/IconRegister;)V=|p_94332_1_
+net/minecraft/src/BlockFenceGate.(I)V=|p_i9054_1_
+net/minecraft/src/BlockFenceGate.func_71858_a(II)Lnet/minecraft/src/Icon;=|p_71858_1_,p_71858_2_
+net/minecraft/src/BlockFenceGate.func_71860_a(Lnet/minecraft/src/World;IIILnet/minecraft/src/EntityLiving;Lnet/minecraft/src/ItemStack;)V=|p_71860_1_,p_71860_2_,p_71860_3_,p_71860_4_,p_71860_5_,p_71860_6_
net/minecraft/src/BlockFenceGate.func_71863_a(Lnet/minecraft/src/World;IIII)V=|p_71863_1_,p_71863_2_,p_71863_3_,p_71863_4_,p_71863_5_
net/minecraft/src/BlockFenceGate.func_71872_e(Lnet/minecraft/src/World;III)Lnet/minecraft/src/AxisAlignedBB;=|p_71872_1_,p_71872_2_,p_71872_3_,p_71872_4_
net/minecraft/src/BlockFenceGate.func_71877_c(Lnet/minecraft/src/IBlockAccess;IIII)Z=|p_71877_1_,p_71877_2_,p_71877_3_,p_71877_4_,p_71877_5_
@@ -685,8 +785,11 @@ net/minecraft/src/BlockFenceGate.func_71903_a(Lnet/minecraft/src/World;IIILnet/m
net/minecraft/src/BlockFenceGate.func_71918_c(Lnet/minecraft/src/IBlockAccess;III)Z=|p_71918_1_,p_71918_2_,p_71918_3_,p_71918_4_
net/minecraft/src/BlockFenceGate.func_71930_b(Lnet/minecraft/src/World;III)Z=|p_71930_1_,p_71930_2_,p_71930_3_,p_71930_4_
net/minecraft/src/BlockFenceGate.func_72224_c(I)Z=|p_72224_0_
-net/minecraft/src/BlockFire.(II)V=|p_i3949_1_,p_i3949_2_
+net/minecraft/src/BlockFenceGate.func_94332_a(Lnet/minecraft/src/IconRegister;)V=|p_94332_1_
+net/minecraft/src/BlockFire.(I)V=|p_i9056_1_
net/minecraft/src/BlockFire.func_71847_b(Lnet/minecraft/src/World;IIILjava/util/Random;)V=|p_71847_1_,p_71847_2_,p_71847_3_,p_71847_4_,p_71847_5_
+net/minecraft/src/BlockFire.func_71858_a(II)Lnet/minecraft/src/Icon;=|p_71858_1_,p_71858_2_
+net/minecraft/src/BlockFire.func_71859_p_(Lnet/minecraft/src/World;)I=|p_71859_1_
net/minecraft/src/BlockFire.func_71861_g(Lnet/minecraft/src/World;III)V=|p_71861_1_,p_71861_2_,p_71861_3_,p_71861_4_
net/minecraft/src/BlockFire.func_71862_a(Lnet/minecraft/src/World;IIILjava/util/Random;)V=|p_71862_1_,p_71862_2_,p_71862_3_,p_71862_4_,p_71862_5_
net/minecraft/src/BlockFire.func_71863_a(Lnet/minecraft/src/World;IIII)V=|p_71863_1_,p_71863_2_,p_71863_3_,p_71863_4_,p_71863_5_
@@ -699,8 +802,10 @@ net/minecraft/src/BlockFire.func_72253_a(III)V=|p_72253_1_,p_72253_2_,p_72253_3_
net/minecraft/src/BlockFire.func_72254_n(Lnet/minecraft/src/World;III)I=|p_72254_1_,p_72254_2_,p_72254_3_,p_72254_4_
net/minecraft/src/BlockFire.func_72255_a(Lnet/minecraft/src/World;IIIILjava/util/Random;I)V=|p_72255_1_,p_72255_2_,p_72255_3_,p_72255_4_,p_72255_5_,p_72255_6_,p_72255_7_
net/minecraft/src/BlockFire.func_72256_d(Lnet/minecraft/src/IBlockAccess;III)Z=|p_72256_1_,p_72256_2_,p_72256_3_,p_72256_4_
-net/minecraft/src/BlockFlower.(II)V=|p_i3923_1_,p_i3923_2_
-net/minecraft/src/BlockFlower.(IILnet/minecraft/src/Material;)V=|p_i3922_1_,p_i3922_2_,p_i3922_3_
+net/minecraft/src/BlockFire.func_94332_a(Lnet/minecraft/src/IconRegister;)V=|p_94332_1_
+net/minecraft/src/BlockFire.func_94438_c(I)Lnet/minecraft/src/Icon;=|p_94438_1_
+net/minecraft/src/BlockFlower.(I)V=|p_i9041_1_
+net/minecraft/src/BlockFlower.(ILnet/minecraft/src/Material;)V=|p_i9040_1_,p_i9040_2_
net/minecraft/src/BlockFlower.func_71847_b(Lnet/minecraft/src/World;IIILjava/util/Random;)V=|p_71847_1_,p_71847_2_,p_71847_3_,p_71847_4_,p_71847_5_
net/minecraft/src/BlockFlower.func_71854_d(Lnet/minecraft/src/World;III)Z=|p_71854_1_,p_71854_2_,p_71854_3_,p_71854_4_
net/minecraft/src/BlockFlower.func_71863_a(Lnet/minecraft/src/World;IIII)V=|p_71863_1_,p_71863_2_,p_71863_3_,p_71863_4_,p_71863_5_
@@ -730,7 +835,8 @@ net/minecraft/src/BlockFlowing.func_72209_d(Lnet/minecraft/src/World;IIIII)I=|p_
net/minecraft/src/BlockFlowing.func_72210_i(Lnet/minecraft/src/World;IIII)V=|p_72210_1_,p_72210_2_,p_72210_3_,p_72210_4_,p_72210_5_
net/minecraft/src/BlockFlowing.func_72211_e(Lnet/minecraft/src/World;IIII)I=|p_72211_1_,p_72211_2_,p_72211_3_,p_72211_4_,p_72211_5_
net/minecraft/src/BlockFluid.(ILnet/minecraft/src/Material;)V=|p_i3964_1_,p_i3964_2_
-net/minecraft/src/BlockFluid.func_71851_a(I)I=|p_71851_1_
+net/minecraft/src/BlockFluid.func_71858_a(II)Lnet/minecraft/src/Icon;=|p_71858_1_,p_71858_2_
+net/minecraft/src/BlockFluid.func_71859_p_(Lnet/minecraft/src/World;)I=|p_71859_1_
net/minecraft/src/BlockFluid.func_71861_g(Lnet/minecraft/src/World;III)V=|p_71861_1_,p_71861_2_,p_71861_3_,p_71861_4_
net/minecraft/src/BlockFluid.func_71862_a(Lnet/minecraft/src/World;IIILjava/util/Random;)V=|p_71862_1_,p_71862_2_,p_71862_3_,p_71862_4_,p_71862_5_
net/minecraft/src/BlockFluid.func_71863_a(Lnet/minecraft/src/World;IIII)V=|p_71863_1_,p_71863_2_,p_71863_3_,p_71863_4_,p_71863_5_
@@ -752,35 +858,38 @@ net/minecraft/src/BlockFluid.func_72201_j(Lnet/minecraft/src/World;III)V=|p_7220
net/minecraft/src/BlockFluid.func_72202_i(Lnet/minecraft/src/IBlockAccess;III)Lnet/minecraft/src/Vec3;=|p_72202_1_,p_72202_2_,p_72202_3_,p_72202_4_
net/minecraft/src/BlockFluid.func_72203_d(Lnet/minecraft/src/IBlockAccess;III)I=|p_72203_1_,p_72203_2_,p_72203_3_,p_72203_4_
net/minecraft/src/BlockFluid.func_72204_a(Lnet/minecraft/src/IBlockAccess;IIILnet/minecraft/src/Material;)D=|p_72204_0_,p_72204_1_,p_72204_2_,p_72204_3_,p_72204_4_
+net/minecraft/src/BlockFluid.func_94332_a(Lnet/minecraft/src/IconRegister;)V=|p_94332_1_
+net/minecraft/src/BlockFluid.func_94424_b(Ljava/lang/String;)Lnet/minecraft/src/Icon;=|p_94424_0_
net/minecraft/src/BlockFurnace.(IZ)V=|p_i3950_1_,p_i3950_2_
-net/minecraft/src/BlockFurnace.func_71851_a(I)I=|p_71851_1_
net/minecraft/src/BlockFurnace.func_71852_a(Lnet/minecraft/src/World;IIIII)V=|p_71852_1_,p_71852_2_,p_71852_3_,p_71852_4_,p_71852_5_,p_71852_6_
-net/minecraft/src/BlockFurnace.func_71860_a(Lnet/minecraft/src/World;IIILnet/minecraft/src/EntityLiving;)V=|p_71860_1_,p_71860_2_,p_71860_3_,p_71860_4_,p_71860_5_
+net/minecraft/src/BlockFurnace.func_71858_a(II)Lnet/minecraft/src/Icon;=|p_71858_1_,p_71858_2_
+net/minecraft/src/BlockFurnace.func_71860_a(Lnet/minecraft/src/World;IIILnet/minecraft/src/EntityLiving;Lnet/minecraft/src/ItemStack;)V=|p_71860_1_,p_71860_2_,p_71860_3_,p_71860_4_,p_71860_5_,p_71860_6_
net/minecraft/src/BlockFurnace.func_71861_g(Lnet/minecraft/src/World;III)V=|p_71861_1_,p_71861_2_,p_71861_3_,p_71861_4_
net/minecraft/src/BlockFurnace.func_71862_a(Lnet/minecraft/src/World;IIILjava/util/Random;)V=|p_71862_1_,p_71862_2_,p_71862_3_,p_71862_4_,p_71862_5_
net/minecraft/src/BlockFurnace.func_71885_a(ILjava/util/Random;I)I=|p_71885_1_,p_71885_2_,p_71885_3_
-net/minecraft/src/BlockFurnace.func_71895_b(Lnet/minecraft/src/IBlockAccess;IIII)I=|p_71895_1_,p_71895_2_,p_71895_3_,p_71895_4_,p_71895_5_
net/minecraft/src/BlockFurnace.func_71903_a(Lnet/minecraft/src/World;IIILnet/minecraft/src/EntityPlayer;IFFF)Z=|p_71903_1_,p_71903_2_,p_71903_3_,p_71903_4_,p_71903_5_,p_71903_6_,p_71903_7_,p_71903_8_,p_71903_9_
net/minecraft/src/BlockFurnace.func_72274_a(Lnet/minecraft/src/World;)Lnet/minecraft/src/TileEntity;=|p_72274_1_
net/minecraft/src/BlockFurnace.func_72285_l(Lnet/minecraft/src/World;III)V=|p_72285_1_,p_72285_2_,p_72285_3_,p_72285_4_
net/minecraft/src/BlockFurnace.func_72286_a(ZLnet/minecraft/src/World;III)V=|p_72286_0_,p_72286_1_,p_72286_2_,p_72286_3_,p_72286_4_
-net/minecraft/src/BlockGlass.(IILnet/minecraft/src/Material;Z)V=|p_i3951_1_,p_i3951_2_,p_i3951_3_,p_i3951_4_
+net/minecraft/src/BlockFurnace.func_94328_b_(Lnet/minecraft/src/World;IIII)I=|p_94328_1_,p_94328_2_,p_94328_3_,p_94328_4_,p_94328_5_
+net/minecraft/src/BlockFurnace.func_94332_a(Lnet/minecraft/src/IconRegister;)V=|p_94332_1_
+net/minecraft/src/BlockGlass.(ILnet/minecraft/src/Material;Z)V=|p_i9057_1_,p_i9057_2_,p_i9057_3_
net/minecraft/src/BlockGlass.func_71925_a(Ljava/util/Random;)I=|p_71925_1_
-net/minecraft/src/BlockGlowStone.(IILnet/minecraft/src/Material;)V=|p_i3963_1_,p_i3963_2_,p_i3963_3_
+net/minecraft/src/BlockGlowStone.(ILnet/minecraft/src/Material;)V=|p_i9070_1_,p_i9070_2_
net/minecraft/src/BlockGlowStone.func_71885_a(ILjava/util/Random;I)I=|p_71885_1_,p_71885_2_,p_71885_3_
net/minecraft/src/BlockGlowStone.func_71910_a(ILjava/util/Random;)I=|p_71910_1_,p_71910_2_
net/minecraft/src/BlockGlowStone.func_71925_a(Ljava/util/Random;)I=|p_71925_1_
net/minecraft/src/BlockGrass.(I)V=|p_i3952_1_
net/minecraft/src/BlockGrass.func_71847_b(Lnet/minecraft/src/World;IIILjava/util/Random;)V=|p_71847_1_,p_71847_2_,p_71847_3_,p_71847_4_,p_71847_5_
-net/minecraft/src/BlockGrass.func_71858_a(II)I=|p_71858_1_,p_71858_2_
+net/minecraft/src/BlockGrass.func_71858_a(II)Lnet/minecraft/src/Icon;=|p_71858_1_,p_71858_2_
net/minecraft/src/BlockGrass.func_71885_a(ILjava/util/Random;I)I=|p_71885_1_,p_71885_2_,p_71885_3_
net/minecraft/src/BlockGrass.func_71889_f_(I)I=|p_71889_1_
-net/minecraft/src/BlockGrass.func_71895_b(Lnet/minecraft/src/IBlockAccess;IIII)I=|p_71895_1_,p_71895_2_,p_71895_3_,p_71895_4_,p_71895_5_
+net/minecraft/src/BlockGrass.func_71895_b(Lnet/minecraft/src/IBlockAccess;IIII)Lnet/minecraft/src/Icon;=|p_71895_1_,p_71895_2_,p_71895_3_,p_71895_4_,p_71895_5_
net/minecraft/src/BlockGrass.func_71920_b(Lnet/minecraft/src/IBlockAccess;III)I=|p_71920_1_,p_71920_2_,p_71920_3_,p_71920_4_
-net/minecraft/src/BlockGravel.(II)V=|p_i3953_1_,p_i3953_2_
+net/minecraft/src/BlockGrass.func_94332_a(Lnet/minecraft/src/IconRegister;)V=|p_94332_1_
+net/minecraft/src/BlockGravel.(I)V=|p_i9058_1_
net/minecraft/src/BlockGravel.func_71885_a(ILjava/util/Random;I)I=|p_71885_1_,p_71885_2_,p_71885_3_
net/minecraft/src/BlockHalfSlab.(IZLnet/minecraft/src/Material;)V=|p_i3954_1_,p_i3954_2_,p_i3954_3_
-net/minecraft/src/BlockHalfSlab.func_71851_a(I)I=|p_71851_1_
net/minecraft/src/BlockHalfSlab.func_71871_a(Lnet/minecraft/src/World;IIILnet/minecraft/src/AxisAlignedBB;Ljava/util/List;Lnet/minecraft/src/Entity;)V=|p_71871_1_,p_71871_2_,p_71871_3_,p_71871_4_,p_71871_5_,p_71871_6_,p_71871_7_
net/minecraft/src/BlockHalfSlab.func_71873_h(Lnet/minecraft/src/World;III)I=|p_71873_1_,p_71873_2_,p_71873_3_,p_71873_4_
net/minecraft/src/BlockHalfSlab.func_71877_c(Lnet/minecraft/src/IBlockAccess;IIII)Z=|p_71877_1_,p_71877_2_,p_71877_3_,p_71877_4_,p_71877_5_
@@ -790,20 +899,41 @@ net/minecraft/src/BlockHalfSlab.func_71922_a(Lnet/minecraft/src/World;III)I=|p_7
net/minecraft/src/BlockHalfSlab.func_71925_a(Ljava/util/Random;)I=|p_71925_1_
net/minecraft/src/BlockHalfSlab.func_72241_e(I)Z=|p_72241_0_
net/minecraft/src/BlockHalfSlab.func_85104_a(Lnet/minecraft/src/World;IIIIFFFI)I=|p_85104_1_,p_85104_2_,p_85104_3_,p_85104_4_,p_85104_5_,p_85104_6_,p_85104_7_,p_85104_8_,p_85104_9_
-net/minecraft/src/BlockIce.(II)V=|p_i3959_1_,p_i3959_2_
+net/minecraft/src/BlockHopper.(I)V=|p_i9064_1_
+net/minecraft/src/BlockHopper.func_71852_a(Lnet/minecraft/src/World;IIIII)V=|p_71852_1_,p_71852_2_,p_71852_3_,p_71852_4_,p_71852_5_,p_71852_6_
+net/minecraft/src/BlockHopper.func_71858_a(II)Lnet/minecraft/src/Icon;=|p_71858_1_,p_71858_2_
+net/minecraft/src/BlockHopper.func_71860_a(Lnet/minecraft/src/World;IIILnet/minecraft/src/EntityLiving;Lnet/minecraft/src/ItemStack;)V=|p_71860_1_,p_71860_2_,p_71860_3_,p_71860_4_,p_71860_5_,p_71860_6_
+net/minecraft/src/BlockHopper.func_71861_g(Lnet/minecraft/src/World;III)V=|p_71861_1_,p_71861_2_,p_71861_3_,p_71861_4_
+net/minecraft/src/BlockHopper.func_71863_a(Lnet/minecraft/src/World;IIII)V=|p_71863_1_,p_71863_2_,p_71863_3_,p_71863_4_,p_71863_5_
+net/minecraft/src/BlockHopper.func_71871_a(Lnet/minecraft/src/World;IIILnet/minecraft/src/AxisAlignedBB;Ljava/util/List;Lnet/minecraft/src/Entity;)V=|p_71871_1_,p_71871_2_,p_71871_3_,p_71871_4_,p_71871_5_,p_71871_6_,p_71871_7_
+net/minecraft/src/BlockHopper.func_71877_c(Lnet/minecraft/src/IBlockAccess;IIII)Z=|p_71877_1_,p_71877_2_,p_71877_3_,p_71877_4_,p_71877_5_
+net/minecraft/src/BlockHopper.func_71902_a(Lnet/minecraft/src/IBlockAccess;III)V=|p_71902_1_,p_71902_2_,p_71902_3_,p_71902_4_
+net/minecraft/src/BlockHopper.func_71903_a(Lnet/minecraft/src/World;IIILnet/minecraft/src/EntityPlayer;IFFF)Z=|p_71903_1_,p_71903_2_,p_71903_3_,p_71903_4_,p_71903_5_,p_71903_6_,p_71903_7_,p_71903_8_,p_71903_9_
+net/minecraft/src/BlockHopper.func_72274_a(Lnet/minecraft/src/World;)Lnet/minecraft/src/TileEntity;=|p_72274_1_
+net/minecraft/src/BlockHopper.func_85104_a(Lnet/minecraft/src/World;IIIIFFFI)I=|p_85104_1_,p_85104_2_,p_85104_3_,p_85104_4_,p_85104_5_,p_85104_6_,p_85104_7_,p_85104_8_,p_85104_9_
+net/minecraft/src/BlockHopper.func_94328_b_(Lnet/minecraft/src/World;IIII)I=|p_94328_1_,p_94328_2_,p_94328_3_,p_94328_4_,p_94328_5_
+net/minecraft/src/BlockHopper.func_94332_a(Lnet/minecraft/src/IconRegister;)V=|p_94332_1_
+net/minecraft/src/BlockHopper.func_94451_c(I)I=|p_94451_0_
+net/minecraft/src/BlockHopper.func_94452_d(I)Z=|p_94452_0_
+net/minecraft/src/BlockHopper.func_94453_b(Ljava/lang/String;)Lnet/minecraft/src/Icon;=|p_94453_0_
+net/minecraft/src/BlockHopper.func_96471_k(Lnet/minecraft/src/World;III)V=|p_96471_1_,p_96471_2_,p_96471_3_,p_96471_4_
+net/minecraft/src/BlockHopper.func_98213_d(Lnet/minecraft/src/IBlockAccess;III)Lnet/minecraft/src/TileEntityHopper;=|p_98213_0_,p_98213_1_,p_98213_2_,p_98213_3_
+net/minecraft/src/BlockIce.(I)V=|p_i9066_1_
net/minecraft/src/BlockIce.func_71847_b(Lnet/minecraft/src/World;IIILjava/util/Random;)V=|p_71847_1_,p_71847_2_,p_71847_3_,p_71847_4_,p_71847_5_
net/minecraft/src/BlockIce.func_71877_c(Lnet/minecraft/src/IBlockAccess;IIII)Z=|p_71877_1_,p_71877_2_,p_71877_3_,p_71877_4_,p_71877_5_
net/minecraft/src/BlockIce.func_71893_a(Lnet/minecraft/src/World;Lnet/minecraft/src/EntityPlayer;IIII)V=|p_71893_1_,p_71893_2_,p_71893_3_,p_71893_4_,p_71893_5_,p_71893_6_
net/minecraft/src/BlockIce.func_71925_a(Ljava/util/Random;)I=|p_71925_1_
-net/minecraft/src/BlockJukeBox.(II)V=|p_i3985_1_,p_i3985_2_
-net/minecraft/src/BlockJukeBox.func_71851_a(I)I=|p_71851_1_
+net/minecraft/src/BlockJukeBox.(I)V=|p_i9084_1_
net/minecraft/src/BlockJukeBox.func_71852_a(Lnet/minecraft/src/World;IIIII)V=|p_71852_1_,p_71852_2_,p_71852_3_,p_71852_4_,p_71852_5_,p_71852_6_
+net/minecraft/src/BlockJukeBox.func_71858_a(II)Lnet/minecraft/src/Icon;=|p_71858_1_,p_71858_2_
net/minecraft/src/BlockJukeBox.func_71903_a(Lnet/minecraft/src/World;IIILnet/minecraft/src/EntityPlayer;IFFF)Z=|p_71903_1_,p_71903_2_,p_71903_3_,p_71903_4_,p_71903_5_,p_71903_6_,p_71903_7_,p_71903_8_,p_71903_9_
net/minecraft/src/BlockJukeBox.func_71914_a(Lnet/minecraft/src/World;IIIIFI)V=|p_71914_1_,p_71914_2_,p_71914_3_,p_71914_4_,p_71914_5_,p_71914_6_,p_71914_7_
net/minecraft/src/BlockJukeBox.func_72274_a(Lnet/minecraft/src/World;)Lnet/minecraft/src/TileEntity;=|p_72274_1_
net/minecraft/src/BlockJukeBox.func_72276_j_(Lnet/minecraft/src/World;III)V=|p_72276_1_,p_72276_2_,p_72276_3_,p_72276_4_
net/minecraft/src/BlockJukeBox.func_85106_a(Lnet/minecraft/src/World;IIILnet/minecraft/src/ItemStack;)V=|p_85106_1_,p_85106_2_,p_85106_3_,p_85106_4_,p_85106_5_
-net/minecraft/src/BlockLadder.(II)V=|p_i3960_1_,p_i3960_2_
+net/minecraft/src/BlockJukeBox.func_94328_b_(Lnet/minecraft/src/World;IIII)I=|p_94328_1_,p_94328_2_,p_94328_3_,p_94328_4_,p_94328_5_
+net/minecraft/src/BlockJukeBox.func_94332_a(Lnet/minecraft/src/IconRegister;)V=|p_94332_1_
+net/minecraft/src/BlockLadder.(I)V=|p_i9067_1_
net/minecraft/src/BlockLadder.func_71863_a(Lnet/minecraft/src/World;IIII)V=|p_71863_1_,p_71863_2_,p_71863_3_,p_71863_4_,p_71863_5_
net/minecraft/src/BlockLadder.func_71872_e(Lnet/minecraft/src/World;III)Lnet/minecraft/src/AxisAlignedBB;=|p_71872_1_,p_71872_2_,p_71872_3_,p_71872_4_
net/minecraft/src/BlockLadder.func_71902_a(Lnet/minecraft/src/IBlockAccess;III)V=|p_71902_1_,p_71902_2_,p_71902_3_,p_71902_4_
@@ -812,10 +942,10 @@ net/minecraft/src/BlockLadder.func_71925_a(Ljava/util/Random;)I=|p_71925_1_
net/minecraft/src/BlockLadder.func_71930_b(Lnet/minecraft/src/World;III)Z=|p_71930_1_,p_71930_2_,p_71930_3_,p_71930_4_
net/minecraft/src/BlockLadder.func_85104_a(Lnet/minecraft/src/World;IIIIFFFI)I=|p_85104_1_,p_85104_2_,p_85104_3_,p_85104_4_,p_85104_5_,p_85104_6_,p_85104_7_,p_85104_8_,p_85104_9_
net/minecraft/src/BlockLadder.func_85107_d(I)V=|p_85107_1_
-net/minecraft/src/BlockLeaves.(II)V=|p_i3961_1_,p_i3961_2_
+net/minecraft/src/BlockLeaves.(I)V=|p_i9068_1_
net/minecraft/src/BlockLeaves.func_71847_b(Lnet/minecraft/src/World;IIILjava/util/Random;)V=|p_71847_1_,p_71847_2_,p_71847_3_,p_71847_4_,p_71847_5_
net/minecraft/src/BlockLeaves.func_71852_a(Lnet/minecraft/src/World;IIIII)V=|p_71852_1_,p_71852_2_,p_71852_3_,p_71852_4_,p_71852_5_,p_71852_6_
-net/minecraft/src/BlockLeaves.func_71858_a(II)I=|p_71858_1_,p_71858_2_
+net/minecraft/src/BlockLeaves.func_71858_a(II)Lnet/minecraft/src/Icon;=|p_71858_1_,p_71858_2_
net/minecraft/src/BlockLeaves.func_71862_a(Lnet/minecraft/src/World;IIILjava/util/Random;)V=|p_71862_1_,p_71862_2_,p_71862_3_,p_71862_4_,p_71862_5_
net/minecraft/src/BlockLeaves.func_71879_a(ILnet/minecraft/src/CreativeTabs;Ljava/util/List;)V=|p_71879_1_,p_71879_2_,p_71879_3_
net/minecraft/src/BlockLeaves.func_71880_c_(I)Lnet/minecraft/src/ItemStack;=|p_71880_1_
@@ -828,23 +958,24 @@ net/minecraft/src/BlockLeaves.func_71920_b(Lnet/minecraft/src/IBlockAccess;III)I
net/minecraft/src/BlockLeaves.func_71925_a(Ljava/util/Random;)I=|p_71925_1_
net/minecraft/src/BlockLeaves.func_72132_l(Lnet/minecraft/src/World;III)V=|p_72132_1_,p_72132_2_,p_72132_3_,p_72132_4_
net/minecraft/src/BlockLeaves.func_72133_a(Z)V=|p_72133_1_
-net/minecraft/src/BlockLeavesBase.(IILnet/minecraft/src/Material;Z)V=|p_i4014_1_,p_i4014_2_,p_i4014_3_,p_i4014_4_
+net/minecraft/src/BlockLeaves.func_94332_a(Lnet/minecraft/src/IconRegister;)V=|p_94332_1_
+net/minecraft/src/BlockLeavesBase.(ILnet/minecraft/src/Material;Z)V=|p_i9098_1_,p_i9098_2_,p_i9098_3_
net/minecraft/src/BlockLeavesBase.func_71877_c(Lnet/minecraft/src/IBlockAccess;IIII)Z=|p_71877_1_,p_71877_2_,p_71877_3_,p_71877_4_,p_71877_5_
-net/minecraft/src/BlockLever.(II)V=|p_i3962_1_,p_i3962_2_
+net/minecraft/src/BlockLever.(I)V=|p_i9069_1_
net/minecraft/src/BlockLever.func_71850_a_(Lnet/minecraft/src/World;IIII)Z=|p_71850_1_,p_71850_2_,p_71850_3_,p_71850_4_,p_71850_5_
net/minecraft/src/BlockLever.func_71852_a(Lnet/minecraft/src/World;IIIII)V=|p_71852_1_,p_71852_2_,p_71852_3_,p_71852_4_,p_71852_5_,p_71852_6_
-net/minecraft/src/BlockLever.func_71855_c(Lnet/minecraft/src/IBlockAccess;IIII)Z=|p_71855_1_,p_71855_2_,p_71855_3_,p_71855_4_,p_71855_5_
+net/minecraft/src/BlockLever.func_71855_c(Lnet/minecraft/src/IBlockAccess;IIII)I=|p_71855_1_,p_71855_2_,p_71855_3_,p_71855_4_,p_71855_5_
+net/minecraft/src/BlockLever.func_71860_a(Lnet/minecraft/src/World;IIILnet/minecraft/src/EntityLiving;Lnet/minecraft/src/ItemStack;)V=|p_71860_1_,p_71860_2_,p_71860_3_,p_71860_4_,p_71860_5_,p_71860_6_
net/minecraft/src/BlockLever.func_71863_a(Lnet/minecraft/src/World;IIII)V=|p_71863_1_,p_71863_2_,p_71863_3_,p_71863_4_,p_71863_5_
-net/minecraft/src/BlockLever.func_71865_a(Lnet/minecraft/src/IBlockAccess;IIII)Z=|p_71865_1_,p_71865_2_,p_71865_3_,p_71865_4_,p_71865_5_
+net/minecraft/src/BlockLever.func_71865_a(Lnet/minecraft/src/IBlockAccess;IIII)I=|p_71865_1_,p_71865_2_,p_71865_3_,p_71865_4_,p_71865_5_
net/minecraft/src/BlockLever.func_71872_e(Lnet/minecraft/src/World;III)Lnet/minecraft/src/AxisAlignedBB;=|p_71872_1_,p_71872_2_,p_71872_3_,p_71872_4_
net/minecraft/src/BlockLever.func_71902_a(Lnet/minecraft/src/IBlockAccess;III)V=|p_71902_1_,p_71902_2_,p_71902_3_,p_71902_4_
net/minecraft/src/BlockLever.func_71903_a(Lnet/minecraft/src/World;IIILnet/minecraft/src/EntityPlayer;IFFF)Z=|p_71903_1_,p_71903_2_,p_71903_3_,p_71903_4_,p_71903_5_,p_71903_6_,p_71903_7_,p_71903_8_,p_71903_9_
-net/minecraft/src/BlockLever.func_71921_a(Lnet/minecraft/src/World;IIILnet/minecraft/src/EntityPlayer;)V=|p_71921_1_,p_71921_2_,p_71921_3_,p_71921_4_,p_71921_5_
net/minecraft/src/BlockLever.func_71930_b(Lnet/minecraft/src/World;III)Z=|p_71930_1_,p_71930_2_,p_71930_3_,p_71930_4_
net/minecraft/src/BlockLever.func_72195_l(Lnet/minecraft/src/World;III)Z=|p_72195_1_,p_72195_2_,p_72195_3_,p_72195_4_
net/minecraft/src/BlockLever.func_72196_d(I)I=|p_72196_0_
net/minecraft/src/BlockLever.func_85104_a(Lnet/minecraft/src/World;IIIIFFFI)I=|p_85104_1_,p_85104_2_,p_85104_3_,p_85104_4_,p_85104_5_,p_85104_6_,p_85104_7_,p_85104_8_,p_85104_9_
-net/minecraft/src/BlockLilyPad.(II)V=|p_i4020_1_,p_i4020_2_
+net/minecraft/src/BlockLilyPad.(I)V=|p_i9099_1_
net/minecraft/src/BlockLilyPad.func_71854_d(Lnet/minecraft/src/World;III)Z=|p_71854_1_,p_71854_2_,p_71854_3_,p_71854_4_
net/minecraft/src/BlockLilyPad.func_71871_a(Lnet/minecraft/src/World;IIILnet/minecraft/src/AxisAlignedBB;Ljava/util/List;Lnet/minecraft/src/Entity;)V=|p_71871_1_,p_71871_2_,p_71871_3_,p_71871_4_,p_71871_5_,p_71871_6_,p_71871_7_
net/minecraft/src/BlockLilyPad.func_71872_e(Lnet/minecraft/src/World;III)Lnet/minecraft/src/AxisAlignedBB;=|p_71872_1_,p_71872_2_,p_71872_3_,p_71872_4_
@@ -853,12 +984,11 @@ net/minecraft/src/BlockLilyPad.func_71920_b(Lnet/minecraft/src/IBlockAccess;III)
net/minecraft/src/BlockLilyPad.func_72263_d_(I)Z=|p_72263_1_
net/minecraft/src/BlockLockedChest.(I)V=|p_i3967_1_
net/minecraft/src/BlockLockedChest.func_71847_b(Lnet/minecraft/src/World;IIILjava/util/Random;)V=|p_71847_1_,p_71847_2_,p_71847_3_,p_71847_4_,p_71847_5_
-net/minecraft/src/BlockLockedChest.func_71851_a(I)I=|p_71851_1_
-net/minecraft/src/BlockLockedChest.func_71895_b(Lnet/minecraft/src/IBlockAccess;IIII)I=|p_71895_1_,p_71895_2_,p_71895_3_,p_71895_4_,p_71895_5_
net/minecraft/src/BlockLockedChest.func_71930_b(Lnet/minecraft/src/World;III)Z=|p_71930_1_,p_71930_2_,p_71930_3_,p_71930_4_
+net/minecraft/src/BlockLockedChest.func_94332_a(Lnet/minecraft/src/IconRegister;)V=|p_94332_1_
net/minecraft/src/BlockLog.(I)V=|p_i4016_1_
net/minecraft/src/BlockLog.func_71852_a(Lnet/minecraft/src/World;IIIII)V=|p_71852_1_,p_71852_2_,p_71852_3_,p_71852_4_,p_71852_5_,p_71852_6_
-net/minecraft/src/BlockLog.func_71858_a(II)I=|p_71858_1_,p_71858_2_
+net/minecraft/src/BlockLog.func_71858_a(II)Lnet/minecraft/src/Icon;=|p_71858_1_,p_71858_2_
net/minecraft/src/BlockLog.func_71879_a(ILnet/minecraft/src/CreativeTabs;Ljava/util/List;)V=|p_71879_1_,p_71879_2_,p_71879_3_
net/minecraft/src/BlockLog.func_71880_c_(I)Lnet/minecraft/src/ItemStack;=|p_71880_1_
net/minecraft/src/BlockLog.func_71885_a(ILjava/util/Random;I)I=|p_71885_1_,p_71885_2_,p_71885_3_
@@ -866,78 +996,82 @@ net/minecraft/src/BlockLog.func_71899_b(I)I=|p_71899_1_
net/minecraft/src/BlockLog.func_71925_a(Ljava/util/Random;)I=|p_71925_1_
net/minecraft/src/BlockLog.func_72141_e(I)I=|p_72141_0_
net/minecraft/src/BlockLog.func_85104_a(Lnet/minecraft/src/World;IIIIFFFI)I=|p_85104_1_,p_85104_2_,p_85104_3_,p_85104_4_,p_85104_5_,p_85104_6_,p_85104_7_,p_85104_8_,p_85104_9_
+net/minecraft/src/BlockLog.func_94332_a(Lnet/minecraft/src/IconRegister;)V=|p_94332_1_
net/minecraft/src/BlockMelon.(I)V=|p_i3968_1_
-net/minecraft/src/BlockMelon.func_71851_a(I)I=|p_71851_1_
-net/minecraft/src/BlockMelon.func_71858_a(II)I=|p_71858_1_,p_71858_2_
+net/minecraft/src/BlockMelon.func_71858_a(II)Lnet/minecraft/src/Icon;=|p_71858_1_,p_71858_2_
net/minecraft/src/BlockMelon.func_71885_a(ILjava/util/Random;I)I=|p_71885_1_,p_71885_2_,p_71885_3_
net/minecraft/src/BlockMelon.func_71910_a(ILjava/util/Random;)I=|p_71910_1_,p_71910_2_
net/minecraft/src/BlockMelon.func_71925_a(Ljava/util/Random;)I=|p_71925_1_
-net/minecraft/src/BlockMobSpawner.(II)V=|p_i3970_1_,p_i3970_2_
+net/minecraft/src/BlockMelon.func_94332_a(Lnet/minecraft/src/IconRegister;)V=|p_94332_1_
+net/minecraft/src/BlockMobSpawner.(I)V=|p_i9072_1_
net/minecraft/src/BlockMobSpawner.func_71885_a(ILjava/util/Random;I)I=|p_71885_1_,p_71885_2_,p_71885_3_
net/minecraft/src/BlockMobSpawner.func_71914_a(Lnet/minecraft/src/World;IIIIFI)V=|p_71914_1_,p_71914_2_,p_71914_3_,p_71914_4_,p_71914_5_,p_71914_6_,p_71914_7_
net/minecraft/src/BlockMobSpawner.func_71922_a(Lnet/minecraft/src/World;III)I=|p_71922_1_,p_71922_2_,p_71922_3_,p_71922_4_
net/minecraft/src/BlockMobSpawner.func_71925_a(Ljava/util/Random;)I=|p_71925_1_
net/minecraft/src/BlockMobSpawner.func_72274_a(Lnet/minecraft/src/World;)Lnet/minecraft/src/TileEntity;=|p_72274_1_
-net/minecraft/src/BlockMushroom.(II)V=|p_i3971_1_,p_i3971_2_
+net/minecraft/src/BlockMushroom.(ILjava/lang/String;)V=|p_i9073_1_,p_i9073_2_
net/minecraft/src/BlockMushroom.func_71847_b(Lnet/minecraft/src/World;IIILjava/util/Random;)V=|p_71847_1_,p_71847_2_,p_71847_3_,p_71847_4_,p_71847_5_
net/minecraft/src/BlockMushroom.func_71854_d(Lnet/minecraft/src/World;III)Z=|p_71854_1_,p_71854_2_,p_71854_3_,p_71854_4_
net/minecraft/src/BlockMushroom.func_71930_b(Lnet/minecraft/src/World;III)Z=|p_71930_1_,p_71930_2_,p_71930_3_,p_71930_4_
net/minecraft/src/BlockMushroom.func_72263_d_(I)Z=|p_72263_1_
net/minecraft/src/BlockMushroom.func_72271_c(Lnet/minecraft/src/World;IIILjava/util/Random;)Z=|p_72271_1_,p_72271_2_,p_72271_3_,p_72271_4_,p_72271_5_
-net/minecraft/src/BlockMushroomCap.(ILnet/minecraft/src/Material;II)V=|p_i3958_1_,p_i3958_2_,p_i3958_3_,p_i3958_4_
-net/minecraft/src/BlockMushroomCap.func_71858_a(II)I=|p_71858_1_,p_71858_2_
+net/minecraft/src/BlockMushroom.func_94332_a(Lnet/minecraft/src/IconRegister;)V=|p_94332_1_
+net/minecraft/src/BlockMushroomCap.(ILnet/minecraft/src/Material;I)V=|p_i9065_1_,p_i9065_2_,p_i9065_3_
+net/minecraft/src/BlockMushroomCap.func_71858_a(II)Lnet/minecraft/src/Icon;=|p_71858_1_,p_71858_2_
net/minecraft/src/BlockMushroomCap.func_71885_a(ILjava/util/Random;I)I=|p_71885_1_,p_71885_2_,p_71885_3_
net/minecraft/src/BlockMushroomCap.func_71922_a(Lnet/minecraft/src/World;III)I=|p_71922_1_,p_71922_2_,p_71922_3_,p_71922_4_
net/minecraft/src/BlockMushroomCap.func_71925_a(Ljava/util/Random;)I=|p_71925_1_
+net/minecraft/src/BlockMushroomCap.func_94332_a(Lnet/minecraft/src/IconRegister;)V=|p_94332_1_
net/minecraft/src/BlockMycelium.(I)V=|p_i3973_1_
net/minecraft/src/BlockMycelium.func_71847_b(Lnet/minecraft/src/World;IIILjava/util/Random;)V=|p_71847_1_,p_71847_2_,p_71847_3_,p_71847_4_,p_71847_5_
-net/minecraft/src/BlockMycelium.func_71858_a(II)I=|p_71858_1_,p_71858_2_
+net/minecraft/src/BlockMycelium.func_71858_a(II)Lnet/minecraft/src/Icon;=|p_71858_1_,p_71858_2_
net/minecraft/src/BlockMycelium.func_71862_a(Lnet/minecraft/src/World;IIILjava/util/Random;)V=|p_71862_1_,p_71862_2_,p_71862_3_,p_71862_4_,p_71862_5_
net/minecraft/src/BlockMycelium.func_71885_a(ILjava/util/Random;I)I=|p_71885_1_,p_71885_2_,p_71885_3_
-net/minecraft/src/BlockMycelium.func_71895_b(Lnet/minecraft/src/IBlockAccess;IIII)I=|p_71895_1_,p_71895_2_,p_71895_3_,p_71895_4_,p_71895_5_
+net/minecraft/src/BlockMycelium.func_71895_b(Lnet/minecraft/src/IBlockAccess;IIII)Lnet/minecraft/src/Icon;=|p_71895_1_,p_71895_2_,p_71895_3_,p_71895_4_,p_71895_5_
+net/minecraft/src/BlockMycelium.func_94332_a(Lnet/minecraft/src/IconRegister;)V=|p_94332_1_
net/minecraft/src/BlockNetherStalk.(I)V=|p_i3974_1_
net/minecraft/src/BlockNetherStalk.func_71847_b(Lnet/minecraft/src/World;IIILjava/util/Random;)V=|p_71847_1_,p_71847_2_,p_71847_3_,p_71847_4_,p_71847_5_
net/minecraft/src/BlockNetherStalk.func_71854_d(Lnet/minecraft/src/World;III)Z=|p_71854_1_,p_71854_2_,p_71854_3_,p_71854_4_
-net/minecraft/src/BlockNetherStalk.func_71858_a(II)I=|p_71858_1_,p_71858_2_
+net/minecraft/src/BlockNetherStalk.func_71858_a(II)Lnet/minecraft/src/Icon;=|p_71858_1_,p_71858_2_
net/minecraft/src/BlockNetherStalk.func_71885_a(ILjava/util/Random;I)I=|p_71885_1_,p_71885_2_,p_71885_3_
net/minecraft/src/BlockNetherStalk.func_71914_a(Lnet/minecraft/src/World;IIIIFI)V=|p_71914_1_,p_71914_2_,p_71914_3_,p_71914_4_,p_71914_5_,p_71914_6_,p_71914_7_
net/minecraft/src/BlockNetherStalk.func_71922_a(Lnet/minecraft/src/World;III)I=|p_71922_1_,p_71922_2_,p_71922_3_,p_71922_4_
net/minecraft/src/BlockNetherStalk.func_71925_a(Ljava/util/Random;)I=|p_71925_1_
net/minecraft/src/BlockNetherStalk.func_72263_d_(I)Z=|p_72263_1_
-net/minecraft/src/BlockNetherrack.(II)V=|p_i3957_1_,p_i3957_2_
+net/minecraft/src/BlockNetherStalk.func_94332_a(Lnet/minecraft/src/IconRegister;)V=|p_94332_1_
+net/minecraft/src/BlockNetherrack.(I)V=|p_i9063_1_
net/minecraft/src/BlockNote.(I)V=|p_i3972_1_
-net/minecraft/src/BlockNote.func_71851_a(I)I=|p_71851_1_
net/minecraft/src/BlockNote.func_71863_a(Lnet/minecraft/src/World;IIII)V=|p_71863_1_,p_71863_2_,p_71863_3_,p_71863_4_,p_71863_5_
-net/minecraft/src/BlockNote.func_71883_b(Lnet/minecraft/src/World;IIIII)V=|p_71883_1_,p_71883_2_,p_71883_3_,p_71883_4_,p_71883_5_,p_71883_6_
+net/minecraft/src/BlockNote.func_71883_b(Lnet/minecraft/src/World;IIIII)Z=|p_71883_1_,p_71883_2_,p_71883_3_,p_71883_4_,p_71883_5_,p_71883_6_
net/minecraft/src/BlockNote.func_71903_a(Lnet/minecraft/src/World;IIILnet/minecraft/src/EntityPlayer;IFFF)Z=|p_71903_1_,p_71903_2_,p_71903_3_,p_71903_4_,p_71903_5_,p_71903_6_,p_71903_7_,p_71903_8_,p_71903_9_
net/minecraft/src/BlockNote.func_71921_a(Lnet/minecraft/src/World;IIILnet/minecraft/src/EntityPlayer;)V=|p_71921_1_,p_71921_2_,p_71921_3_,p_71921_4_,p_71921_5_
net/minecraft/src/BlockNote.func_72274_a(Lnet/minecraft/src/World;)Lnet/minecraft/src/TileEntity;=|p_72274_1_
-net/minecraft/src/BlockObsidian.(II)V=|p_i3977_1_,p_i3977_2_
+net/minecraft/src/BlockObsidian.(I)V=|p_i9075_1_
net/minecraft/src/BlockObsidian.func_71885_a(ILjava/util/Random;I)I=|p_71885_1_,p_71885_2_,p_71885_3_
net/minecraft/src/BlockObsidian.func_71925_a(Ljava/util/Random;)I=|p_71925_1_
-net/minecraft/src/BlockOre.(II)V=|p_i3978_1_,p_i3978_2_
+net/minecraft/src/BlockOre.(I)V=|p_i9076_1_
net/minecraft/src/BlockOre.func_71885_a(ILjava/util/Random;I)I=|p_71885_1_,p_71885_2_,p_71885_3_
net/minecraft/src/BlockOre.func_71899_b(I)I=|p_71899_1_
net/minecraft/src/BlockOre.func_71910_a(ILjava/util/Random;)I=|p_71910_1_,p_71910_2_
net/minecraft/src/BlockOre.func_71914_a(Lnet/minecraft/src/World;IIIIFI)V=|p_71914_1_,p_71914_2_,p_71914_3_,p_71914_4_,p_71914_5_,p_71914_6_,p_71914_7_
net/minecraft/src/BlockOre.func_71925_a(Ljava/util/Random;)I=|p_71925_1_
-net/minecraft/src/BlockOreStorage.(II)V=|p_i3969_1_,p_i3969_2_
-net/minecraft/src/BlockOreStorage.func_71851_a(I)I=|p_71851_1_
-net/minecraft/src/BlockPane.(IIILnet/minecraft/src/Material;Z)V=|p_i4005_1_,p_i4005_2_,p_i4005_3_,p_i4005_4_,p_i4005_5_
+net/minecraft/src/BlockOreStorage.(I)V=|p_i9071_1_
+net/minecraft/src/BlockPane.(ILjava/lang/String;Ljava/lang/String;Lnet/minecraft/src/Material;Z)V=|p_i9094_1_,p_i9094_2_,p_i9094_3_,p_i9094_4_,p_i9094_5_
net/minecraft/src/BlockPane.func_71871_a(Lnet/minecraft/src/World;IIILnet/minecraft/src/AxisAlignedBB;Ljava/util/List;Lnet/minecraft/src/Entity;)V=|p_71871_1_,p_71871_2_,p_71871_3_,p_71871_4_,p_71871_5_,p_71871_6_,p_71871_7_
net/minecraft/src/BlockPane.func_71877_c(Lnet/minecraft/src/IBlockAccess;IIII)Z=|p_71877_1_,p_71877_2_,p_71877_3_,p_71877_4_,p_71877_5_
net/minecraft/src/BlockPane.func_71880_c_(I)Lnet/minecraft/src/ItemStack;=|p_71880_1_
net/minecraft/src/BlockPane.func_71885_a(ILjava/util/Random;I)I=|p_71885_1_,p_71885_2_,p_71885_3_
net/minecraft/src/BlockPane.func_71902_a(Lnet/minecraft/src/IBlockAccess;III)V=|p_71902_1_,p_71902_2_,p_71902_3_,p_71902_4_
net/minecraft/src/BlockPane.func_72161_e(I)Z=|p_72161_1_
-net/minecraft/src/BlockPistonBase.(IIZ)V=|p_i4025_1_,p_i4025_2_,p_i4025_3_
-net/minecraft/src/BlockPistonBase.func_71858_a(II)I=|p_71858_1_,p_71858_2_
-net/minecraft/src/BlockPistonBase.func_71860_a(Lnet/minecraft/src/World;IIILnet/minecraft/src/EntityLiving;)V=|p_71860_1_,p_71860_2_,p_71860_3_,p_71860_4_,p_71860_5_
+net/minecraft/src/BlockPane.func_94332_a(Lnet/minecraft/src/IconRegister;)V=|p_94332_1_
+net/minecraft/src/BlockPistonBase.(IZ)V=|p_i9105_1_,p_i9105_2_
+net/minecraft/src/BlockPistonBase.func_71858_a(II)Lnet/minecraft/src/Icon;=|p_71858_1_,p_71858_2_
+net/minecraft/src/BlockPistonBase.func_71860_a(Lnet/minecraft/src/World;IIILnet/minecraft/src/EntityLiving;Lnet/minecraft/src/ItemStack;)V=|p_71860_1_,p_71860_2_,p_71860_3_,p_71860_4_,p_71860_5_,p_71860_6_
net/minecraft/src/BlockPistonBase.func_71861_g(Lnet/minecraft/src/World;III)V=|p_71861_1_,p_71861_2_,p_71861_3_,p_71861_4_
net/minecraft/src/BlockPistonBase.func_71863_a(Lnet/minecraft/src/World;IIII)V=|p_71863_1_,p_71863_2_,p_71863_3_,p_71863_4_,p_71863_5_
net/minecraft/src/BlockPistonBase.func_71871_a(Lnet/minecraft/src/World;IIILnet/minecraft/src/AxisAlignedBB;Ljava/util/List;Lnet/minecraft/src/Entity;)V=|p_71871_1_,p_71871_2_,p_71871_3_,p_71871_4_,p_71871_5_,p_71871_6_,p_71871_7_
net/minecraft/src/BlockPistonBase.func_71872_e(Lnet/minecraft/src/World;III)Lnet/minecraft/src/AxisAlignedBB;=|p_71872_1_,p_71872_2_,p_71872_3_,p_71872_4_
-net/minecraft/src/BlockPistonBase.func_71883_b(Lnet/minecraft/src/World;IIIII)V=|p_71883_1_,p_71883_2_,p_71883_3_,p_71883_4_,p_71883_5_,p_71883_6_
+net/minecraft/src/BlockPistonBase.func_71883_b(Lnet/minecraft/src/World;IIIII)Z=|p_71883_1_,p_71883_2_,p_71883_3_,p_71883_4_,p_71883_5_,p_71883_6_
net/minecraft/src/BlockPistonBase.func_71902_a(Lnet/minecraft/src/IBlockAccess;III)V=|p_71902_1_,p_71902_2_,p_71902_3_,p_71902_4_
net/minecraft/src/BlockPistonBase.func_71903_a(Lnet/minecraft/src/World;IIILnet/minecraft/src/EntityPlayer;IFFF)Z=|p_71903_1_,p_71903_2_,p_71903_3_,p_71903_4_,p_71903_5_,p_71903_6_,p_71903_7_,p_71903_8_,p_71903_9_
net/minecraft/src/BlockPistonBase.func_72110_l(Lnet/minecraft/src/World;III)V=|p_72110_1_,p_72110_2_,p_72110_3_,p_72110_4_
@@ -946,12 +1080,15 @@ net/minecraft/src/BlockPistonBase.func_72112_i(Lnet/minecraft/src/World;IIII)Z=|
net/minecraft/src/BlockPistonBase.func_72113_e(Lnet/minecraft/src/World;IIII)Z=|p_72113_1_,p_72113_2_,p_72113_3_,p_72113_4_,p_72113_5_
net/minecraft/src/BlockPistonBase.func_72114_f(I)Z=|p_72114_0_
net/minecraft/src/BlockPistonBase.func_72115_j(Lnet/minecraft/src/World;IIII)Z=|p_72115_1_,p_72115_2_,p_72115_3_,p_72115_4_,p_72115_5_
-net/minecraft/src/BlockPistonBase.func_72116_b(Lnet/minecraft/src/World;IIILnet/minecraft/src/EntityPlayer;)I=|p_72116_0_,p_72116_1_,p_72116_2_,p_72116_3_,p_72116_4_
+net/minecraft/src/BlockPistonBase.func_72116_b(Lnet/minecraft/src/World;IIILnet/minecraft/src/EntityLiving;)I=|p_72116_0_,p_72116_1_,p_72116_2_,p_72116_3_,p_72116_4_
net/minecraft/src/BlockPistonBase.func_72117_e(I)I=|p_72117_0_
-net/minecraft/src/BlockPistonExtension.(II)V=|p_i4026_1_,p_i4026_2_
+net/minecraft/src/BlockPistonBase.func_94332_a(Lnet/minecraft/src/IconRegister;)V=|p_94332_1_
+net/minecraft/src/BlockPistonBase.func_94496_b(Ljava/lang/String;)Lnet/minecraft/src/Icon;=|p_94496_0_
+net/minecraft/src/BlockPistonBase.func_96479_b(FFFFFF)V=|p_96479_1_,p_96479_2_,p_96479_3_,p_96479_4_,p_96479_5_,p_96479_6_
+net/minecraft/src/BlockPistonExtension.(I)V=|p_i9106_1_
net/minecraft/src/BlockPistonExtension.func_71850_a_(Lnet/minecraft/src/World;IIII)Z=|p_71850_1_,p_71850_2_,p_71850_3_,p_71850_4_,p_71850_5_
net/minecraft/src/BlockPistonExtension.func_71852_a(Lnet/minecraft/src/World;IIIII)V=|p_71852_1_,p_71852_2_,p_71852_3_,p_71852_4_,p_71852_5_,p_71852_6_
-net/minecraft/src/BlockPistonExtension.func_71858_a(II)I=|p_71858_1_,p_71858_2_
+net/minecraft/src/BlockPistonExtension.func_71858_a(II)Lnet/minecraft/src/Icon;=|p_71858_1_,p_71858_2_
net/minecraft/src/BlockPistonExtension.func_71863_a(Lnet/minecraft/src/World;IIII)V=|p_71863_1_,p_71863_2_,p_71863_3_,p_71863_4_,p_71863_5_
net/minecraft/src/BlockPistonExtension.func_71871_a(Lnet/minecraft/src/World;IIILnet/minecraft/src/AxisAlignedBB;Ljava/util/List;Lnet/minecraft/src/Entity;)V=|p_71871_1_,p_71871_2_,p_71871_3_,p_71871_4_,p_71871_5_,p_71871_6_,p_71871_7_
net/minecraft/src/BlockPistonExtension.func_71902_a(Lnet/minecraft/src/IBlockAccess;III)V=|p_71902_1_,p_71902_2_,p_71902_3_,p_71902_4_
@@ -959,7 +1096,8 @@ net/minecraft/src/BlockPistonExtension.func_71922_a(Lnet/minecraft/src/World;III
net/minecraft/src/BlockPistonExtension.func_71925_a(Ljava/util/Random;)I=|p_71925_1_
net/minecraft/src/BlockPistonExtension.func_71930_b(Lnet/minecraft/src/World;III)Z=|p_71930_1_,p_71930_2_,p_71930_3_,p_71930_4_
net/minecraft/src/BlockPistonExtension.func_72121_f(I)I=|p_72121_0_
-net/minecraft/src/BlockPistonExtension.func_72122_e(I)V=|p_72122_1_
+net/minecraft/src/BlockPistonExtension.func_72122_e(Lnet/minecraft/src/Icon;)V=|p_72122_1_
+net/minecraft/src/BlockPistonExtension.func_94332_a(Lnet/minecraft/src/IconRegister;)V=|p_94332_1_
net/minecraft/src/BlockPistonMoving.(I)V=|p_i4027_1_
net/minecraft/src/BlockPistonMoving.func_71850_a_(Lnet/minecraft/src/World;IIII)Z=|p_71850_1_,p_71850_2_,p_71850_3_,p_71850_4_,p_71850_5_
net/minecraft/src/BlockPistonMoving.func_71852_a(Lnet/minecraft/src/World;IIIII)V=|p_71852_1_,p_71852_2_,p_71852_3_,p_71852_4_,p_71852_5_,p_71852_6_
@@ -976,7 +1114,8 @@ net/minecraft/src/BlockPistonMoving.func_72274_a(Lnet/minecraft/src/World;)Lnet/
net/minecraft/src/BlockPistonMoving.func_72295_d(Lnet/minecraft/src/IBlockAccess;III)Lnet/minecraft/src/TileEntityPiston;=|p_72295_1_,p_72295_2_,p_72295_3_,p_72295_4_
net/minecraft/src/BlockPistonMoving.func_72296_b(Lnet/minecraft/src/World;IIIIFI)Lnet/minecraft/src/AxisAlignedBB;=|p_72296_1_,p_72296_2_,p_72296_3_,p_72296_4_,p_72296_5_,p_72296_6_,p_72296_7_
net/minecraft/src/BlockPistonMoving.func_72297_a(IIIZZ)Lnet/minecraft/src/TileEntity;=|p_72297_0_,p_72297_1_,p_72297_2_,p_72297_3_,p_72297_4_
-net/minecraft/src/BlockPortal.(II)V=|p_i3979_1_,p_i3979_2_
+net/minecraft/src/BlockPistonMoving.func_94332_a(Lnet/minecraft/src/IconRegister;)V=|p_94332_1_
+net/minecraft/src/BlockPortal.(I)V=|p_i9077_1_
net/minecraft/src/BlockPortal.func_71847_b(Lnet/minecraft/src/World;IIILjava/util/Random;)V=|p_71847_1_,p_71847_2_,p_71847_3_,p_71847_4_,p_71847_5_
net/minecraft/src/BlockPortal.func_71862_a(Lnet/minecraft/src/World;IIILjava/util/Random;)V=|p_71862_1_,p_71862_2_,p_71862_3_,p_71862_4_,p_71862_5_
net/minecraft/src/BlockPortal.func_71863_a(Lnet/minecraft/src/World;IIII)V=|p_71863_1_,p_71863_2_,p_71863_3_,p_71863_4_,p_71863_5_
@@ -988,49 +1127,94 @@ net/minecraft/src/BlockPortal.func_71922_a(Lnet/minecraft/src/World;III)I=|p_719
net/minecraft/src/BlockPortal.func_71925_a(Ljava/util/Random;)I=|p_71925_1_
net/minecraft/src/BlockPortal.func_72246_i_(Lnet/minecraft/src/World;III)Z=|p_72246_1_,p_72246_2_,p_72246_3_,p_72246_4_
net/minecraft/src/BlockPotato.(I)V=|p_i5105_1_
-net/minecraft/src/BlockPotato.func_71858_a(II)I=|p_71858_1_,p_71858_2_
+net/minecraft/src/BlockPotato.func_71858_a(II)Lnet/minecraft/src/Icon;=|p_71858_1_,p_71858_2_
net/minecraft/src/BlockPotato.func_71914_a(Lnet/minecraft/src/World;IIIIFI)V=|p_71914_1_,p_71914_2_,p_71914_3_,p_71914_4_,p_71914_5_,p_71914_6_,p_71914_7_
-net/minecraft/src/BlockPressurePlate.(IILnet/minecraft/src/EnumMobType;Lnet/minecraft/src/Material;)V=|p_i3981_1_,p_i3981_2_,p_i3981_3_,p_i3981_4_
-net/minecraft/src/BlockPressurePlate.func_71847_b(Lnet/minecraft/src/World;IIILjava/util/Random;)V=|p_71847_1_,p_71847_2_,p_71847_3_,p_71847_4_,p_71847_5_
-net/minecraft/src/BlockPressurePlate.func_71852_a(Lnet/minecraft/src/World;IIIII)V=|p_71852_1_,p_71852_2_,p_71852_3_,p_71852_4_,p_71852_5_,p_71852_6_
-net/minecraft/src/BlockPressurePlate.func_71855_c(Lnet/minecraft/src/IBlockAccess;IIII)Z=|p_71855_1_,p_71855_2_,p_71855_3_,p_71855_4_,p_71855_5_
-net/minecraft/src/BlockPressurePlate.func_71863_a(Lnet/minecraft/src/World;IIII)V=|p_71863_1_,p_71863_2_,p_71863_3_,p_71863_4_,p_71863_5_
-net/minecraft/src/BlockPressurePlate.func_71865_a(Lnet/minecraft/src/IBlockAccess;IIII)Z=|p_71865_1_,p_71865_2_,p_71865_3_,p_71865_4_,p_71865_5_
-net/minecraft/src/BlockPressurePlate.func_71869_a(Lnet/minecraft/src/World;IIILnet/minecraft/src/Entity;)V=|p_71869_1_,p_71869_2_,p_71869_3_,p_71869_4_,p_71869_5_
-net/minecraft/src/BlockPressurePlate.func_71872_e(Lnet/minecraft/src/World;III)Lnet/minecraft/src/AxisAlignedBB;=|p_71872_1_,p_71872_2_,p_71872_3_,p_71872_4_
-net/minecraft/src/BlockPressurePlate.func_71902_a(Lnet/minecraft/src/IBlockAccess;III)V=|p_71902_1_,p_71902_2_,p_71902_3_,p_71902_4_
-net/minecraft/src/BlockPressurePlate.func_71918_c(Lnet/minecraft/src/IBlockAccess;III)Z=|p_71918_1_,p_71918_2_,p_71918_3_,p_71918_4_
-net/minecraft/src/BlockPressurePlate.func_71930_b(Lnet/minecraft/src/World;III)Z=|p_71930_1_,p_71930_2_,p_71930_3_,p_71930_4_
-net/minecraft/src/BlockPressurePlate.func_72193_l(Lnet/minecraft/src/World;III)V=|p_72193_1_,p_72193_2_,p_72193_3_,p_72193_4_
-net/minecraft/src/BlockPumpkin.(IIZ)V=|p_i3982_1_,p_i3982_2_,p_i3982_3_
-net/minecraft/src/BlockPumpkin.func_71851_a(I)I=|p_71851_1_
-net/minecraft/src/BlockPumpkin.func_71858_a(II)I=|p_71858_1_,p_71858_2_
-net/minecraft/src/BlockPumpkin.func_71860_a(Lnet/minecraft/src/World;IIILnet/minecraft/src/EntityLiving;)V=|p_71860_1_,p_71860_2_,p_71860_3_,p_71860_4_,p_71860_5_
+net/minecraft/src/BlockPotato.func_94332_a(Lnet/minecraft/src/IconRegister;)V=|p_94332_1_
+net/minecraft/src/BlockPoweredOre.(I)V=|p_i9013_1_
+net/minecraft/src/BlockPoweredOre.func_71865_a(Lnet/minecraft/src/IBlockAccess;IIII)I=|p_71865_1_,p_71865_2_,p_71865_3_,p_71865_4_,p_71865_5_
+net/minecraft/src/BlockPressurePlate.(ILjava/lang/String;Lnet/minecraft/src/Material;Lnet/minecraft/src/EnumMobType;)V=|p_i9080_1_,p_i9080_2_,p_i9080_3_,p_i9080_4_
+net/minecraft/src/BlockPressurePlate.func_94350_c(I)I=|p_94350_1_
+net/minecraft/src/BlockPressurePlate.func_94351_d(Lnet/minecraft/src/World;III)I=|p_94351_1_,p_94351_2_,p_94351_3_,p_94351_4_
+net/minecraft/src/BlockPressurePlate.func_94355_d(I)I=|p_94355_1_
+net/minecraft/src/BlockPressurePlateWeighted.(ILjava/lang/String;Lnet/minecraft/src/Material;I)V=|p_i9016_1_,p_i9016_2_,p_i9016_3_,p_i9016_4_
+net/minecraft/src/BlockPressurePlateWeighted.func_71859_p_(Lnet/minecraft/src/World;)I=|p_71859_1_
+net/minecraft/src/BlockPressurePlateWeighted.func_94350_c(I)I=|p_94350_1_
+net/minecraft/src/BlockPressurePlateWeighted.func_94351_d(Lnet/minecraft/src/World;III)I=|p_94351_1_,p_94351_2_,p_94351_3_,p_94351_4_
+net/minecraft/src/BlockPressurePlateWeighted.func_94355_d(I)I=|p_94355_1_
+net/minecraft/src/BlockPumpkin.(IZ)V=|p_i9081_1_,p_i9081_2_
+net/minecraft/src/BlockPumpkin.func_71858_a(II)Lnet/minecraft/src/Icon;=|p_71858_1_,p_71858_2_
+net/minecraft/src/BlockPumpkin.func_71860_a(Lnet/minecraft/src/World;IIILnet/minecraft/src/EntityLiving;Lnet/minecraft/src/ItemStack;)V=|p_71860_1_,p_71860_2_,p_71860_3_,p_71860_4_,p_71860_5_,p_71860_6_
net/minecraft/src/BlockPumpkin.func_71861_g(Lnet/minecraft/src/World;III)V=|p_71861_1_,p_71861_2_,p_71861_3_,p_71861_4_
net/minecraft/src/BlockPumpkin.func_71930_b(Lnet/minecraft/src/World;III)Z=|p_71930_1_,p_71930_2_,p_71930_3_,p_71930_4_
-net/minecraft/src/BlockRail.(IIZ)V=|p_i3984_1_,p_i3984_2_,p_i3984_3_
-net/minecraft/src/BlockRail.func_71858_a(II)I=|p_71858_1_,p_71858_2_
-net/minecraft/src/BlockRail.func_71861_g(Lnet/minecraft/src/World;III)V=|p_71861_1_,p_71861_2_,p_71861_3_,p_71861_4_
-net/minecraft/src/BlockRail.func_71863_a(Lnet/minecraft/src/World;IIII)V=|p_71863_1_,p_71863_2_,p_71863_3_,p_71863_4_,p_71863_5_
-net/minecraft/src/BlockRail.func_71872_e(Lnet/minecraft/src/World;III)Lnet/minecraft/src/AxisAlignedBB;=|p_71872_1_,p_71872_2_,p_71872_3_,p_71872_4_
-net/minecraft/src/BlockRail.func_71878_a(Lnet/minecraft/src/World;IIILnet/minecraft/src/Vec3;Lnet/minecraft/src/Vec3;)Lnet/minecraft/src/MovingObjectPosition;=|p_71878_1_,p_71878_2_,p_71878_3_,p_71878_4_,p_71878_5_,p_71878_6_
-net/minecraft/src/BlockRail.func_71902_a(Lnet/minecraft/src/IBlockAccess;III)V=|p_71902_1_,p_71902_2_,p_71902_3_,p_71902_4_
-net/minecraft/src/BlockRail.func_71925_a(Ljava/util/Random;)I=|p_71925_1_
-net/minecraft/src/BlockRail.func_71930_b(Lnet/minecraft/src/World;III)Z=|p_71930_1_,p_71930_2_,p_71930_3_,p_71930_4_
-net/minecraft/src/BlockRail.func_72179_a(Lnet/minecraft/src/BlockRail;)Z=|p_72179_0_
-net/minecraft/src/BlockRail.func_72180_d_(Lnet/minecraft/src/World;III)Z=|p_72180_0_,p_72180_1_,p_72180_2_,p_72180_3_
-net/minecraft/src/BlockRail.func_72181_a(Lnet/minecraft/src/World;IIIZ)V=|p_72181_1_,p_72181_2_,p_72181_3_,p_72181_4_,p_72181_5_
-net/minecraft/src/BlockRail.func_72182_a(Lnet/minecraft/src/World;IIIIZI)Z=|p_72182_1_,p_72182_2_,p_72182_3_,p_72182_4_,p_72182_5_,p_72182_6_,p_72182_7_
-net/minecraft/src/BlockRail.func_72184_d(I)Z=|p_72184_0_
-net/minecraft/src/BlockRail.func_72185_a(Lnet/minecraft/src/World;IIIZII)Z=|p_72185_1_,p_72185_2_,p_72185_3_,p_72185_4_,p_72185_5_,p_72185_6_,p_72185_7_
+net/minecraft/src/BlockPumpkin.func_94332_a(Lnet/minecraft/src/IconRegister;)V=|p_94332_1_
+net/minecraft/src/BlockQuartz.(I)V=|p_i9082_1_
+net/minecraft/src/BlockQuartz.func_71858_a(II)Lnet/minecraft/src/Icon;=|p_71858_1_,p_71858_2_
+net/minecraft/src/BlockQuartz.func_71879_a(ILnet/minecraft/src/CreativeTabs;Ljava/util/List;)V=|p_71879_1_,p_71879_2_,p_71879_3_
+net/minecraft/src/BlockQuartz.func_71880_c_(I)Lnet/minecraft/src/ItemStack;=|p_71880_1_
+net/minecraft/src/BlockQuartz.func_71899_b(I)I=|p_71899_1_
+net/minecraft/src/BlockQuartz.func_85104_a(Lnet/minecraft/src/World;IIIIFFFI)I=|p_85104_1_,p_85104_2_,p_85104_3_,p_85104_4_,p_85104_5_,p_85104_6_,p_85104_7_,p_85104_8_,p_85104_9_
+net/minecraft/src/BlockQuartz.func_94332_a(Lnet/minecraft/src/IconRegister;)V=|p_94332_1_
+net/minecraft/src/BlockRail.(I)V=|p_i9083_1_
+net/minecraft/src/BlockRail.func_71858_a(II)Lnet/minecraft/src/Icon;=|p_71858_1_,p_71858_2_
+net/minecraft/src/BlockRail.func_94332_a(Lnet/minecraft/src/IconRegister;)V=|p_94332_1_
+net/minecraft/src/BlockRail.func_94358_a(Lnet/minecraft/src/World;IIIIII)V=|p_94358_1_,p_94358_2_,p_94358_3_,p_94358_4_,p_94358_5_,p_94358_6_,p_94358_7_
+net/minecraft/src/BlockRailBase.(IZ)V=|p_i9011_1_,p_i9011_2_
+net/minecraft/src/BlockRailBase.func_71852_a(Lnet/minecraft/src/World;IIIII)V=|p_71852_1_,p_71852_2_,p_71852_3_,p_71852_4_,p_71852_5_,p_71852_6_
+net/minecraft/src/BlockRailBase.func_71861_g(Lnet/minecraft/src/World;III)V=|p_71861_1_,p_71861_2_,p_71861_3_,p_71861_4_
+net/minecraft/src/BlockRailBase.func_71863_a(Lnet/minecraft/src/World;IIII)V=|p_71863_1_,p_71863_2_,p_71863_3_,p_71863_4_,p_71863_5_
+net/minecraft/src/BlockRailBase.func_71872_e(Lnet/minecraft/src/World;III)Lnet/minecraft/src/AxisAlignedBB;=|p_71872_1_,p_71872_2_,p_71872_3_,p_71872_4_
+net/minecraft/src/BlockRailBase.func_71878_a(Lnet/minecraft/src/World;IIILnet/minecraft/src/Vec3;Lnet/minecraft/src/Vec3;)Lnet/minecraft/src/MovingObjectPosition;=|p_71878_1_,p_71878_2_,p_71878_3_,p_71878_4_,p_71878_5_,p_71878_6_
+net/minecraft/src/BlockRailBase.func_71902_a(Lnet/minecraft/src/IBlockAccess;III)V=|p_71902_1_,p_71902_2_,p_71902_3_,p_71902_4_
+net/minecraft/src/BlockRailBase.func_71925_a(Ljava/util/Random;)I=|p_71925_1_
+net/minecraft/src/BlockRailBase.func_71930_b(Lnet/minecraft/src/World;III)Z=|p_71930_1_,p_71930_2_,p_71930_3_,p_71930_4_
+net/minecraft/src/BlockRailBase.func_72180_d_(Lnet/minecraft/src/World;III)Z=|p_72180_0_,p_72180_1_,p_72180_2_,p_72180_3_
+net/minecraft/src/BlockRailBase.func_72181_a(Lnet/minecraft/src/World;IIIZ)V=|p_72181_1_,p_72181_2_,p_72181_3_,p_72181_4_,p_72181_5_
+net/minecraft/src/BlockRailBase.func_72184_d(I)Z=|p_72184_0_
+net/minecraft/src/BlockRailBase.func_94358_a(Lnet/minecraft/src/World;IIIIII)V=|p_94358_1_,p_94358_2_,p_94358_3_,p_94358_4_,p_94358_5_,p_94358_6_,p_94358_7_
+net/minecraft/src/BlockRailPowered.(I)V=|p_i9014_1_
+net/minecraft/src/BlockRailPowered.func_71858_a(II)Lnet/minecraft/src/Icon;=|p_71858_1_,p_71858_2_
+net/minecraft/src/BlockRailPowered.func_94332_a(Lnet/minecraft/src/IconRegister;)V=|p_94332_1_
+net/minecraft/src/BlockRailPowered.func_94358_a(Lnet/minecraft/src/World;IIIIII)V=|p_94358_1_,p_94358_2_,p_94358_3_,p_94358_4_,p_94358_5_,p_94358_6_,p_94358_7_
+net/minecraft/src/BlockRailPowered.func_94360_a(Lnet/minecraft/src/World;IIIIZI)Z=|p_94360_1_,p_94360_2_,p_94360_3_,p_94360_4_,p_94360_5_,p_94360_6_,p_94360_7_
+net/minecraft/src/BlockRailPowered.func_94361_a(Lnet/minecraft/src/World;IIIZII)Z=|p_94361_1_,p_94361_2_,p_94361_3_,p_94361_4_,p_94361_5_,p_94361_6_,p_94361_7_
net/minecraft/src/BlockRedstoneLight.(IZ)V=|p_i3988_1_,p_i3988_2_
net/minecraft/src/BlockRedstoneLight.func_71847_b(Lnet/minecraft/src/World;IIILjava/util/Random;)V=|p_71847_1_,p_71847_2_,p_71847_3_,p_71847_4_,p_71847_5_
net/minecraft/src/BlockRedstoneLight.func_71861_g(Lnet/minecraft/src/World;III)V=|p_71861_1_,p_71861_2_,p_71861_3_,p_71861_4_
net/minecraft/src/BlockRedstoneLight.func_71863_a(Lnet/minecraft/src/World;IIII)V=|p_71863_1_,p_71863_2_,p_71863_3_,p_71863_4_,p_71863_5_
net/minecraft/src/BlockRedstoneLight.func_71885_a(ILjava/util/Random;I)I=|p_71885_1_,p_71885_2_,p_71885_3_
net/minecraft/src/BlockRedstoneLight.func_71922_a(Lnet/minecraft/src/World;III)I=|p_71922_1_,p_71922_2_,p_71922_3_,p_71922_4_
-net/minecraft/src/BlockRedstoneOre.